Skip to main content

Odoo/OpenERP: Generate Employee Code

Employee code can be generated in following three simple steps:

1. Create a sequence file

emp_code_sequence_view.xml

<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data>
        <!-- Sequences for employee code -->
        <record id="emp_code_sequence" model="ir.sequence.type">
            <field name="name">Employee Code</field>
            <field name="code">hr.employee</field>
        </record>

        <record id="seq_hr_employee" model="ir.sequence">
            <field name="name">Employee Code</field>
            <field name="code">hr.employee</field>
           <field name="prefix">EMP</field>
            <field name="padding">5</field>
            <field name="company_id" eval="False"/>
        </record>
        <!-- End of Sequence code for employee code -->

    </data>
</openerp>


2. Add new field to class

class hr_employee(osv.osv):
    _name = 'hr.employee'
    _inherit = 'hr.employee'    
    _columns = {
                'emp_code':fields.char('Employee Code', size=8, readonly=True)
    }

3. Update database

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

create function will be called only when new employee is added.

and you are done.

Employee code will start from EMP00001

You can generate emp_code without sequence file as well and write code directly in create function as well. But standard way is using sequence file only.

Note: Don't forget to include 'emp_code_sequence_view.xml' file in data section of '__openerp__.py' file.


Thanks!!!!!!!!! Enjoy Programming :)


Comments

  1. Nice Article...really helped me get started with sequences

    ReplyDelete
  2. i wanna work in interface how can i call a sequence in new field

    ReplyDelete
  3. I want to generate the same but as a product_id in the product.template model. How can I achieve that?

    ReplyDelete

Post a Comment

Thanks for your valuable comments.

Popular posts from this blog

Odoo/OpenERP: one2one relational field example

one2one relational field is deprecated in OpenERP version>5 but you can achieve the same using many2one relational field. You can achieve it in following two ways : 1) using many2one field in both the objects ( http://tutorialopenerp.wordpress.com/2014/04/23/one2one/ ) 2)  using inheritance by deligation You can easily find the first solution with little search over internet so let's start with 2nd solution. Scenario :  I want to create a one2one relation between two objects of openerp hr.employee and hr.employee.medical.details What I should do  i. Add _inherits section in hr_employee class ii. Add field medical_detail_id in hr_employee class class hr_employee(osv.osv):     _name = 'hr.employee'     _inherits = {' hr.employee.medical.details ': "medical_detail_id"}     _inherit = 'hr.employee'         _columns = {              'emp_code':fields.char('Employee Code', si

How to draw Dynamic Line or Timeseries Chart in Java using jfreechart library?

Today we are going to write a code to draw a dynamic timeseries-cum-line chart in java.   The only difference between simple and dynamic chart is that a dynamic event is used to create a new series and update the graph. In out example we are using timer which automatically calls a funtion after every 1/4 th second and graph is updated with random data. Let's try with the code : Note : I had tried my best to provide complete documentation along with code. If at any time anyone have any doubt or question please post in comments section. DynamicLineAndTimeSeriesChart.java import java.awt.BorderLayout; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.Timer; import javax.swing.JPanel; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.ValueAxis; import org.jfree.chart.plot.XYPlot; import

pyodbc.OperationalError: ('08001', '[08001] [Microsoft][ODBC Driver 17 for SQL Server]

Recently, I faced this error in our Docker-Container environment. All the necessary packages were already installed but still, I was facing this clueless error. I search a bit and after an hour and so I found the exact reason and solution for this error. To know more about this error in detail. Please follow this Github thread. https://github.com/mkleehammer/pyodbc/issues/610 https://github.com/mkleehammer/pyodbc/issues/610#issuecomment-587523802 Solution: It's because the   server's certificate has too weak a key. In case you are using Linux env directly/not the Docker one.  Just edited /etc/ssl/openssl.cnf and change these 2 lines. MinProtocol = TLSv1.0 CipherString = DEFAULT@SECLEVEL=1 In case you are also using a container, please add these three lines to your Docker file. RUN chmod +rwx /etc/ssl/openssl.cnf RUN sed -i ' s/TLSv1.2/TLSv1/g ' /etc/ssl/openssl.cnf RUN sed -i ' s/SECLEVEL=2/SECLEVEL=1/g ' /etc/ssl/openssl.cnf Thanks!! Enjoy Programming! Refer