Wednesday 25 April 2012

Creating Widget In OpenERP

library/static/src/js/library.js : -


console.log('hi..........')  // Custome message to dispaly on console
openerp.library = function(instance){
    console.log('Object',instance)
  
    instance.web.form.widgets.add('link', 'openerp.library.Mywidget');
    instance.library.Mywidget = instance.web.form.Widget.extend( {  //Extend the form view
        template : 'link',  // Template Name
        init : function(arg){
            console.log('initi....my custome widget');
    }
    })
}

library/static/src/xml/library.xml :-


<?xml version="1.0" encoding="UTF-8"?>
    <templates id="template" xml:space="preserve">
        <t t-name="link">
            <div>
                Currently Not Defined
            </div>
        </t>
    </templates>

__openerp__.py :-

{
    "name": "Library Management System",
    "version": "0.1",
    "author": "Hiral",
    'js': ['static/src/js/library.js',],  #Path  of js file
    'qweb': ['static/src/xml/library.xml'],  #Path of XML file
}

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>

Creating analysis report in openERP

report_view.py : -



import tools
from osv import fields,osv

class report_lib_register(osv.osv):
    _name = "report.resource.register"  # View Name
    _description = "Report Registration Statistics" # Short Description
    _auto = False  # If false then does not create a table but create a view
    _columns = { # Define the columns
        'state': fields.selection([('draft','Draft'),('issue','Issue'),('exception','Exception'),('pay','Pay'),('close','Close'),('cancel','Cancel')],"State"),
        'regisertid': fields.one2many('lib.sub.resource', 'id', select=True),
        'eid': fields.many2one("hr.employee" , "Employee Id" , select=True),
        'panelty': fields.boolean("Panalty paid/unpaid"),
        'issue_date': fields.datetime("Issue Date"),
        'return_date': fields.datetime("Return Date"),
        'id': fields.datetime("Resource Id"),
        }
     
    def init(self, cr):  # Required this method when _auto = False
        tools.drop_view_if_exists(cr, 'report_resource_register')  # Drop the view if exist
     
        # Select query of view
        cr.execute("""
            create or replace view report_resource_register as (
               SELECT lib_sub_resource.id as id,
                   lib_register.resource_id as regisertid,
                   lib_register.state as state,
                   lib_register.return_date as return_date,
                   lib_register.employee_id as eid,
                   lib_register.issue_date as issue_date,
                   lib_register.is_paid_panelty as panelty
               FROM
                   lib_register, lib_sub_resource
               WHERE
                   lib_register.sub_res_id = lib_sub_resource.id
               )
            """)
report_lib_register()



report_view.xml : -


<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data>
 
        <!-- Form View of Report Resource Register -->
     
        <record id="view_report_lib_register_tree" model="ir.ui.view">
            <field name="name">report.library.tree</field>
            <field name="model">report.resource.register</field>
            <field name="type">tree</field>
            <field name="arch" type="xml">
                <tree string="Library Resource Register Analysis">
                    <field name="regisertid" string="Resource ID"/>
                    <field name="state"/>
                    <field name="eid"/>
                    <field name="panelty"/>
                    <field name="issue_date"/>
                    <field name="return_date"/>
                </tree>
            </field>
        </record>

        <!-- Search View of Report Resource Register -->

        <record id="view_report_lib_register_search" model="ir.ui.view">
            <field name="name">report.lib_register.search</field>
            <field name="model">report.resource.register</field>
            <field name="type">search</field>
            <field name="arch" type="xml">
                <search string="Library Resource Registe Analysis">
                    <group>
                 
                        <!-- Search Parameters -->
                        <filter icon="terp-camera_test"
                            string="Draft"
                            domain="[('state','=',('draft'))]"/>
                        <filter icon="terp-camera_test"
                            string="Issued"
                            domain="[('state','=',('issue'))]"/>
                        <filter icon="terp-camera_test"
                            string="Exception"
                            domain="[('state','=',('exception'))]"/>
                        <filter icon="terp-gtk-stop"
                            string="Close"
                            domain="[('state','=',('close'))]"/>
                        <separator orientation="vertical"/>
                    </group>
                    <newline/>
                    <group expand="1" string="Group By...">
                        <filter string="State" icon="terp-stock_effects-object-colorize" name="State" context="{'group_by':'state'}"/>
                    </group>
                </search>
            </field>
        </record>

        <!-- Action of Report Resource Register -->

        <record id="action_report_lib_register_all" model="ir.actions.act_window">
            <field name="name">Resource Register Analysis</field>
            <field name="res_model">report.resource.register</field>
            <field name="view_type">form</field>
            <field name="view_mode">tree,form</field>
            <field name="search_view_id" ref="view_report_lib_register_search"/>
        </record>

        <!-- Menuitem -->
     
        <menuitem action="action_report_lib_register_all" id="menu_report_lib_register_all" parent="menu_register" sequence="1"/>
    </data>
</openerp>