Thursday 19 April 2012

How To create scheduler in openERP

py File : - 


from osv import orm
import time
from datetime import date

class register_entry(orm.Model):
    _inherit = 'lib.register'

    def lib_resource_register_cron(self, cr, uid, context=None):
        domain = [('state', 'in',('issue','exception')), ('return_date',  '<' , time.strftime('%Y-%m-%d'))]
        reg_ids = self.search(cr, uid, domain, context=context)
        registers = self.browse(cr, uid, reg_ids, context=context)
        for register in registers:
            year, month, day = [int(value) for value in register.return_date.split("-")]
            days = (date.today() - date(year, month, day)).days
            penalty = days * int(register.resource_id.resource_tmpl_id.min_penalty)
            register.write({'state' : 'exception', 'penalty':penalty}, context=context)
        return True

register_entry()

xml File : -

<?xml version="1.0" encoding='UTF-8'?>
<openerp>
    <data>
        <record model="ir.cron" id="lib_register_entry_cron">
            <field name="name">Register Entry</field>
            <field name="interval_number">1</field>
            <field name="interval_type">minutes</field>
            <field name="numbercall">-1</field>
            <field eval="False" name="doall"/>
            <field eval="'lib.register'" name="model"/>
            <field eval="'lib_resource_register_cron'" name="function"/>
            <field eval="'()'" name="args"/>
        </record>
    </data>
</openerp>

1 comment: