Khushboo Bhatt(openerp) has proposed merging lp:~openerp-dev/openobject-addons/trunk-hr_resource-jam-add_resource_management-kbh into lp:~openerp-dev/openobject-addons/trunk-hr_resource-jam.
Requested reviews: Jigar Amin (OpenERP) (jam-openerp) For more details, see: https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-hr_resource-jam-add_resource_management-kbh/+merge/84438 hello, - create new module "hr_resource_management". - create one Scheduler to check for the Attendance Rules. thanks. -- https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-hr_resource-jam-add_resource_management-kbh/+merge/84438 Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-addons/trunk-hr_resource-jam.
=== added directory 'hr_resource_management' === added file 'hr_resource_management/__init__.py' --- hr_resource_management/__init__.py 1970-01-01 00:00:00 +0000 +++ hr_resource_management/__init__.py 2011-12-05 06:23:26 +0000 @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## + +import resource_attendance_rule + + + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: === added file 'hr_resource_management/__openerp__.py' --- hr_resource_management/__openerp__.py 1970-01-01 00:00:00 +0000 +++ hr_resource_management/__openerp__.py 2011-12-05 06:23:26 +0000 @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## + +{ + 'author': 'OpenERP SA', + 'website': 'http://www.openerp.com', + 'depends': ['hr_timesheet_sheet', 'hr_holidays'], + 'init_xml': [ + 'hr_resource_management_data.xml' + ], + 'update_xml': [ + 'resource_attendance_rule.xml' + ], +} +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: === added file 'hr_resource_management/hr_resource_management_data.xml' --- hr_resource_management/hr_resource_management_data.xml 1970-01-01 00:00:00 +0000 +++ hr_resource_management/hr_resource_management_data.xml 2011-12-05 06:23:26 +0000 @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="utf-8"?> +<openerp> + <data noupdate="1"> + + <record id="ir_cron_crm_action" model="ir.cron"> + <field name="name">Check Resource Attendance Rules</field> + <field name="interval_number">4</field> + <field name="interval_type">hours</field> + <field name="numbercall">-1</field> + <field eval="False" name="doall"/> + <field eval="'resource.attendance.rule'" name="model"/> + <field eval="'_check'" name="function"/> + <field eval="'()'" name="args"/> + </record> + + </data> +</openerp> === added file 'hr_resource_management/resource_attendance_rule.py' --- hr_resource_management/resource_attendance_rule.py 1970-01-01 00:00:00 +0000 +++ hr_resource_management/resource_attendance_rule.py 2011-12-05 06:23:26 +0000 @@ -0,0 +1,29 @@ +from osv import fields, osv + + +class resource_attendance_rule(osv.osv): + _name = "resource.attendance.rule" + _description = "Resource Attendance Rule" + _inherit = "resource.resource" + _columns = { + 'rule_name' : fields.char("Short Description", size=64, required=True), + 'rule_type' : fields.selection([('attendance','Resource Attendance')], 'Rule Type',required=True), + 'operator' : fields.selection([('<','Less Than(<)'),('>','Greater Than(>)'),('=','Equal To(=)'),('<=','Less Than Equal To(<=)'),('>=','Greater Than Equal To(>=)')], 'Resource Type', required=True), + 'uom' : fields.selection([('hours','Hours'),('minutes','Minutes')],'Unit of Measure',required=True), + 'val' : fields.float('Value', digits=(16, 2)), + 'server_action_id' : fields.many2one('ir.actions.server', 'Server Action'), + } + + def _check(self, cr, uid, automatic=False, use_new_cursor=False, \ + context=None): + """ + This Function is call by scheduler. + """ + rule_pool = self.pool.get('resource.attendance.rule') + rule_ids = rule_pool.search(cr, uid, [], context=context) + self._register_hook(cr, uid, rule_ids, context=context) + + rules = self.browse(cr, uid, rule_ids, context=context) + print ">>>>>>>>>>>>>>>>>>",rule_ids,rules + +resource_attendance_rule() \ No newline at end of file === added file 'hr_resource_management/resource_attendance_rule.xml' --- hr_resource_management/resource_attendance_rule.xml 1970-01-01 00:00:00 +0000 +++ hr_resource_management/resource_attendance_rule.xml 2011-12-05 06:23:26 +0000 @@ -0,0 +1,57 @@ +<openerp> + <data> + <record id="view_resource_attendance_rule_form" model="ir.ui.view"> + <field name="name">resource.attendance.rule.form</field> + <field name="model">resource.attendance.rule</field> + <field name="type">form</field> + <field name="inherit_id" ref="resource.resource_resource_form"/> + <field name="arch" type="xml"> + <xpath expr="//field[@name='time_efficiency']" position="after"> + <separator colspan="4" string="Resource Attendance rule"/> + <newline/> + <field name="rule_ids" nolabel="1" colspan="6"> + <form string="Resource Rules"> + <field name="rule_name" colspan="4"/> + <separator colspan="4" string="Condition"/> + <newline/> + <field name="rule_type" /> + <field name="operator"/> + <field name="uom" /> + <field name="val"/> + <separator colspan="4" string="Action"/> + <field name="server_action_id" colspan="4"/> + </form> + </field> + </xpath> + </field> + </record> + + <record id="view_resource_attendance_rule_tree" model="ir.ui.view"> + <field name="name">resource.attendance.rule.tree</field> + <field name="model">resource.attendance.rule</field> + <field name="type">tree</field> + <field name="arch" type="xml"> + <tree string="Resource Attendance rule"> + <field name="rule_name" /> + <field name="rule_type" /> + <field name="operator"/> + <field name="uom" /> + <field name="val"/> + </tree> + </field> + </record> + + <record model="ir.actions.act_window" id="action_view_resource_attendance_mgmt"> + <field name="name">Resource Rules</field> + <field name="res_model">resource.attendance.rule</field> + <field name="view_type">form</field> + <field name="view_mode">tree,form</field> + <field name="view_id" ref="view_resource_attendance_rule_form"/> + </record> + + <menuitem id="menu_hr_resource1" name="Resources" parent="hr.menu_hr_root" sequence="0" /> + <menuitem id="resource13" parent="menu_hr_resource1" action="action_view_resource_attendance_mgmt"/> + + + </data> +</openerp> === modified file 'resource/resource.py' --- resource/resource.py 2011-11-11 13:46:12 +0000 +++ resource/resource.py 2011-12-05 06:23:26 +0000 @@ -53,7 +53,7 @@ for working_day in resource_calendar_id.attendance_ids: if (int(working_day.dayofweek) + 1) == day.isoweekday(): res += working_day.hour_to - working_day.hour_from - return res + return res def _get_leaves(self, cr, uid, id, resource): resource_cal_leaves = self.pool.get('resource.calendar.leaves') @@ -211,7 +211,7 @@ class resource_calendar_attendance(osv.osv): _name = "resource.calendar.attendance" _description = "Work Detail" - + _columns = { 'name' : fields.char("Name", size=64, required=True), 'dayofweek': fields.selection([('0','Monday'),('1','Tuesday'),('2','Wednesday'),('3','Thursday'),('4','Friday'),('5','Saturday'),('6','Sunday')], 'Day of week', required=True), @@ -220,9 +220,9 @@ 'hour_to' : fields.float("Work to", size=8, required=True, help="Working time will end at"), 'calendar_id' : fields.many2one("resource.calendar", "Resource's Calendar", required=True), } - + _order = 'dayofweek, hour_from' - + _defaults = { 'dayofweek' : '0' } @@ -248,6 +248,7 @@ 'user_id' : fields.many2one('res.users', 'User', help='Related user name for the resource to manage its access.'), 'time_efficiency' : fields.float('Efficiency factor', size=8, required=True, help="This field depict the efficiency of the resource to complete tasks. e.g resource put alone on a phase of 5 days with 5 tasks assigned to him, will show a load of 100% for this phase by default, but if we put a efficency of 200%, then his load will only be 50%."), 'calendar_id' : fields.many2one("resource.calendar", "Working Time", help="Define the schedule of resource"), + 'rule_ids': fields.one2many('resource.attendance.rule', 'server_action_id', 'Resource Rules'), } _defaults = { 'resource_type' : 'user', @@ -256,7 +257,7 @@ 'company_id': lambda self, cr, uid, context: self.pool.get('res.company')._company_default_get(cr, uid, 'resource.resource', context=context) } - + def copy(self, cr, uid, id, default=None, context=None): if default is None: default = {} @@ -321,7 +322,7 @@ """ if not calendar_id: # Calendar is not specified: working days: 24/7 - return [('fri', '8:0-12:0','13:0-17:0'), ('thu', '8:0-12:0','13:0-17:0'), ('wed', '8:0-12:0','13:0-17:0'), + return [('fri', '8:0-12:0','13:0-17:0'), ('thu', '8:0-12:0','13:0-17:0'), ('wed', '8:0-12:0','13:0-17:0'), ('mon', '8:0-12:0','13:0-17:0'), ('tue', '8:0-12:0','13:0-17:0')] resource_attendance_pool = self.pool.get('resource.calendar.attendance') time_range = "8:00-8:00"
_______________________________________________ Mailing list: https://launchpad.net/~openerp-dev-gtk Post to : [email protected] Unsubscribe : https://launchpad.net/~openerp-dev-gtk More help : https://help.launchpad.net/ListHelp

