Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Estate Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
    • Meet an advisor
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Get a demo
  • Pricing
  • Help

Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:

  • CRM
  • e-Commerce
  • Accounting
  • Inventory
  • PoS
  • Project
  • MRP
All apps
You need to be registered to interact with the community.
All Posts People Badges
Tags (View all)
odoo accounting v14 pos v15
About this forum
You need to be registered to interact with the community.
All Posts People Badges
Tags (View all)
odoo accounting v14 pos v15
About this forum
Help

How to create an auto increment ID Number field in HR Employee?

Subscribe

Get notified when there's activity on this post

This question has been flagged
hremployee
7 Replies
26042 Views
Avatar
Ken Kasai

How to create an auto increment ID Number field in HR Employee? So that everytime I create an employee, the id number of an employee will automatically increment + 1 in a custom field (readonly). anyone can help? thank you in advance.

0
Avatar
Discard
Sehrish

hope this will helps: https://learnopenerp.blogspot.com/2020/08/generate-create-sequence-number-odoo.html

Avatar
ABU K
Best Answer

Hi create a custom module like below code .any issue

hr_custom.py file
==========================================================================================
class hr_employee(osv.osv):
    
 
    _inherit='hr.employee'

_columns={
    'emp_id':fields.char('Employee ID',readonly=True)
}

 

def create(self, cr, uid, vals, context=None):
           vals['emp_id'] = self.pool.get('ir.sequence').get(cr, uid, 'hr.employee')
           return super(hr_employee, self).create(cr, uid, vals, context=context)


_defaults={
                'emp_id': lambda obj, cr, uid, context: '/',
               
                
              }


====================================================================================
create xml view file

 

<record id="hr_form_inherited" model="ir.ui.view">
                <field name="name">hr new1</field>
                <field name="model">hr.employee</field>
                <field name="type">form</field>
                <field name="inherit_id" ref="hr.view_employee_form"/>
                <field name="arch" type="xml">
                    <xpath expr="/form/sheet/div/field[@name='category_ids']" position="after">
                        
                        <field name="emp_id" string="Employee ID" />
                    </xpath>


</record>
===========================================================================================


==========================================================================================

create a xml file like below and add this file name in openerp.py

<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data noupdate="1">
 
        <!-- Sequences for employee code -->
        <record id="seq__hr_code_inh1" model="ir.sequence.type">
            <field name="name">Employee ID</field>
            <field name="code">hr.employee</field>
        </record>
 
        <record id="seq_hr_code_inh2" model="ir.sequence">
            <field name="name">Employee ID </field>
            <field name="code">hr.employee</field>
            <field name="prefix">CU</field>
            <field name="padding">2</field>
             
        </record>
         
        
 
 
    </data>
</openerp>

=================================================================================================

0
Avatar
Discard
klacus

We are working parallel :-) Nice job!

ABU K

Hi We can override the super class method once create a new record in hr.employee using super() .Same way we can access all the super class method when we use inherit or...

Avatar
Anil Kesariya
Best Answer

@Ken Kasai

This question is already asked some one.

Click Here   For more better solution.

Regards,

Anil.

2
Avatar
Discard
Avatar
Marcus Baw
Best Answer

I looked all over and the only tutorial or explanation that was in any way helpful is this excellent YouTube video from Odoo Mates, which completely solved the problem of adding auto-incrementing behaviour to a field

https://www.youtube.com/watch?v=Cz5eM5FDmTE

0
Avatar
Discard
Avatar
Umashankar Subramani
Best Answer

Hi LIBU Plz tell me what is the use of the super keyword, i am new to odoo....thanks in advance

0
Avatar
Discard
Avatar
Mahesh P M
Best Answer


Just other flavor with out messing up with the code.

I used pgSQL Trigger For that..

I created 1 table(<table name> with only one column<column name> as of integer type and inserted 0 (count down start) to it as first row

on the sql window

i typed and executed

CREATE OR REPLACE FUNCTION process_emp_generate() RETURNS TRIGGER AS $emp_key$

DECLARE

ind_key integer;

BEGIN

SELECT <column name>

into ind_key

FROM <table name>;

IF (TG_OP = 'INSERT') THEN

UPDATE hr_employee SET <column name by which odoo stores employee id> = ind_key , identification_id = ind_key WHERE id = new.id;

update <table name> set <column name> = (select <column name>+1 from <table name>);

END IF;

RETURN NULL; -- result is ignored since this is an AFTER trigger

END;

$emp_key$ LANGUAGE plpgsql;

then

created a trigger event

CREATE TRIGGER emp_insert

AFTER INSERT ON hr_employee

FOR EACH ROW EXECUTE PROCEDURE process_emp_generate();


hope you solved the problem if other things are not working

0
Avatar
Discard
Avatar
Ken Kasai
Author Best Answer

thank you!

0
Avatar
Discard
Avatar
klacus
Best Answer

You have to inherit the hr.employee object. create the new modul put the folder a new file>> hr_employee.py

class hr_employee(osv.osv):

    _name = 'hr.employee'
    _inherit = 'hr.employee'

    _columns = {
                'name_id':fields.char('HR code',size=8,required=True),

}

    _defaults = {
                 'name_id': lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid, 'hr_id.code'),
                 }

hr_employee()

You have to create an xml file what is define the sequence:

<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data noupdate="1">

        <record id="seq_type_hr_code" model="ir.sequence.type">
            <field name="name">HR Seq</field>
            <field name="code">hr_id.code</field>
        </record>

        <record id="seq_hr_code" model="ir.sequence">
            <field name="name">HR Seq</field>
            <field name="code">hr_id.code</field>
            <field name="prefix">HRE_</field>
            <field name="padding">4</field>
            <field name="company_id" eval="False"/>
        </record>

    </data>
</openerp>

After that you have to inherit hr_employe.xml, in form. like:

 <record id="view_employee_form" model="ir.ui.view">
            <field name="name">hr.employee.form.csysc.inherit</field>
            <field name="model">hr.employee</field>
            <field name="type">form</field>
              <field name="inherit_id" ref="hr.view_employee_form"/>              
            <field name="arch" type="xml">           
                    <field name="birthday" position="after">
                        <field name="name_id" readonly='1'/>   

                        </field>

            </field>
 </record>

put the py in the import section for ___init___.py file, and put the xml (inherit and sequence into the __openerp__.py according the rule of the inheriting

https://doc.odoo.com/v6.0/developer/2_5_Objects_Fields_Methods/object_inherit.html/

)

Hope this helps.

0
Avatar
Discard
Enjoying the discussion? Don't just read, join in!

Create an account today to enjoy exclusive features and engage with our awesome community!

Sign up
Related Posts Replies Views Activity
I want create menu that show list of employee birthday in current month. Solved
hr employee
Avatar
Avatar
Avatar
Avatar
Avatar
11
Jan 19
10761
Employee Resume - Department Changes (V17)
hr employee department
Avatar
Avatar
1
Jun 24
2343
[Odoo 16] How to end collaboration with / separate / offboard an employee Solved
hr employee quickstart
Avatar
1
Dec 22
5034
How can I create Employee Code in a sequence field Solved
v6.1 hr employee
Avatar
Avatar
Avatar
Avatar
14
Aug 20
32904
How to manage employee training ?
hr employee training
Avatar
Avatar
Avatar
3
Feb 19
10838
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk slovenščina Español (América Latina) Español ภาษาไทย Türkçe українська Tiếng Việt

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now