diff --git a/addons/hr_attendance/__openerp__.py b/addons/hr_attendance/__openerp__.py index eee14eaff2b..5f352cca69b 100644 --- a/addons/hr_attendance/__openerp__.py +++ b/addons/hr_attendance/__openerp__.py @@ -40,6 +40,7 @@ 'security/ir.model.access.csv', 'wizard/hr_attendance_bymonth_view.xml', 'wizard/hr_attendance_byweek_view.xml', + 'wizard/hr_attendance_error_view.xml', ], 'demo_xml': ['hr_attendance_demo.xml'], 'installable': True, diff --git a/addons/hr_attendance/hr_attendance_wizard.xml b/addons/hr_attendance/hr_attendance_wizard.xml index b6d4e40dc81..1d527a4bde8 100644 --- a/addons/hr_attendance/hr_attendance_wizard.xml +++ b/addons/hr_attendance/hr_attendance_wizard.xml @@ -3,9 +3,9 @@ - + diff --git a/addons/hr_attendance/wizard/__init__.py b/addons/hr_attendance/wizard/__init__.py index 86f07d6fb52..49884d5e024 100644 --- a/addons/hr_attendance/wizard/__init__.py +++ b/addons/hr_attendance/wizard/__init__.py @@ -20,7 +20,7 @@ ############################################################################## import sign_in_out -import print_attendance_error +import hr_attendance_error import hr_attendance_byweek import hr_attendance_bymonth diff --git a/addons/hr_attendance/wizard/hr_attendance_error.py b/addons/hr_attendance/wizard/hr_attendance_error.py new file mode 100644 index 00000000000..c14ddcd9032 --- /dev/null +++ b/addons/hr_attendance/wizard/hr_attendance_error.py @@ -0,0 +1,70 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (). +# +# 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 . +# +############################################################################## +import time + +from osv import osv, fields +from tools.translate import _ + +class hr_attendance_error(osv.osv_memory): + + _name = 'hr.attendance.error' + _description = 'Print Error Attendance Report' + _columns = { + 'init_date': fields.date('Starting Date', required=True), + 'end_date': fields.date('Ending Date', required=True), + 'max_delay': fields.integer('Max. Delay (Min)', required=True) + + } + _defaults = { + 'init_date': lambda *a: time.strftime('%Y-%m-%d'), + 'end_date': lambda *a: time.strftime('%Y-%m-%d'), + 'max_delay': 120, + } + + def print_report(self, cr, uid, ids, context=None): + emp_ids = [] + data_error = self.read(cr, uid, ids)[0] + date_from = data_error['init_date'] + date_to = data_error['end_date'] + cr.execute("select id from hr_attendance where employee_id =ANY(%s) and to_char(name,'YYYY-mm-dd')<=%s and to_char(name,'YYYY-mm-dd')>=%s and action =ANY(%s) order by name" ,(context['active_ids'], date_to, date_from, ['sign_in','sign_out'])) + attendance_ids = [x[0] for x in cr.fetchall()] + if not attendance_ids: + raise osv.except_osv(_('No Data Available'), _('No records found for your selection!')) + attendance_records = self.pool.get('hr.attendance').browse(cr, uid, attendance_ids) + + for rec in attendance_records: + if rec.employee_id.id not in emp_ids: + emp_ids.append(rec.employee_id.id) + data_error['emp_ids'] = emp_ids + datas = { + 'ids': [], + 'model': 'hr.employee', + 'form': data_error + } + return { + 'type': 'ir.actions.report.xml', + 'report_name': 'hr.attendance.error', + 'datas': datas, + } + +hr_attendance_error() + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file diff --git a/addons/hr_attendance/wizard/hr_attendance_error_view.xml b/addons/hr_attendance/wizard/hr_attendance_error_view.xml new file mode 100644 index 00000000000..16769f66df0 --- /dev/null +++ b/addons/hr_attendance/wizard/hr_attendance_error_view.xml @@ -0,0 +1,48 @@ + + + + + + Attendance Report Error + hr.attendance.error + form + +
+ + + + + + + + +