From babfb0f78d1d73594433da93112bcdac593173ac Mon Sep 17 00:00:00 2001 From: Simon Lejeune Date: Tue, 15 Apr 2014 21:19:11 +0200 Subject: [PATCH] [IMP] hr* reports converted to qweb bzr revid: sle@openerp.com-20140415191911-0rttsd7ayk6exm6u --- addons/hr_attendance/__openerp__.py | 7 +- addons/hr_attendance/hr_attendance_report.xml | 11 +- .../hr_attendance/report/attendance_errors.py | 12 +- .../report/attendance_errors.rml | 137 ------ .../views/report_attendanceerrors.xml | 45 ++ .../wizard/hr_attendance_error.py | 10 +- addons/hr_expense/__openerp__.py | 2 + addons/hr_expense/hr_expense_report.xml | 11 +- addons/hr_expense/report/__init__.py | 2 - addons/hr_expense/report/expense.py | 37 -- addons/hr_expense/report/expense.rml | 302 ------------- addons/hr_expense/test/expense_process.yml | 8 - addons/hr_expense/views/report_expense.xml | 89 ++++ addons/hr_payroll/__openerp__.py | 18 +- addons/hr_payroll/hr_payroll_report.xml | 45 +- .../report/report_contribution_register.py | 11 +- .../report/report_contribution_register.rml | 234 ---------- addons/hr_payroll/report/report_payslip.py | 12 +- addons/hr_payroll/report/report_payslip.rml | 340 -------------- .../report/report_payslip_details.py | 11 +- .../report/report_payslip_details.rml | 426 ------------------ addons/hr_payroll/test/hr_payroll_report.yml | 12 - addons/hr_payroll/test/payslip.yml | 29 +- .../views/report_contributionregister.xml | 68 +++ addons/hr_payroll/views/report_payslip.xml | 74 +++ .../views/report_payslipdetails.xml | 99 ++++ ...hr_payroll_contribution_register_report.py | 11 +- addons/hr_timesheet_invoice/__openerp__.py | 1 + .../hr_timesheet_invoice_report.xml | 13 +- .../report/account_analytic_profit.py | 10 +- .../report/account_analytic_profit.rml | 341 -------------- .../test/hr_timesheet_invoice_report.yml | 2 +- .../views/report_analyticprofit.xml | 84 ++++ .../wizard/hr_timesheet_analytic_profit.py | 18 +- 34 files changed, 606 insertions(+), 1926 deletions(-) delete mode 100644 addons/hr_attendance/report/attendance_errors.rml create mode 100644 addons/hr_attendance/views/report_attendanceerrors.xml delete mode 100644 addons/hr_expense/report/expense.py delete mode 100644 addons/hr_expense/report/expense.rml create mode 100644 addons/hr_expense/views/report_expense.xml delete mode 100644 addons/hr_payroll/report/report_contribution_register.rml delete mode 100644 addons/hr_payroll/report/report_payslip.rml delete mode 100644 addons/hr_payroll/report/report_payslip_details.rml delete mode 100644 addons/hr_payroll/test/hr_payroll_report.yml create mode 100644 addons/hr_payroll/views/report_contributionregister.xml create mode 100644 addons/hr_payroll/views/report_payslip.xml create mode 100644 addons/hr_payroll/views/report_payslipdetails.xml delete mode 100644 addons/hr_timesheet_invoice/report/account_analytic_profit.rml create mode 100644 addons/hr_timesheet_invoice/views/report_analyticprofit.xml diff --git a/addons/hr_attendance/__openerp__.py b/addons/hr_attendance/__openerp__.py index 631880ec73b..08523ba6b29 100644 --- a/addons/hr_attendance/__openerp__.py +++ b/addons/hr_attendance/__openerp__.py @@ -43,6 +43,7 @@ actions(Sign in/Sign out) performed by them. 'wizard/hr_attendance_byweek_view.xml', 'wizard/hr_attendance_error_view.xml', 'res_config_view.xml', + 'views/report_attendanceerrors.xml', ], 'demo': ['hr_attendance_demo.xml'], 'test': [ @@ -51,10 +52,10 @@ actions(Sign in/Sign out) performed by them. ], 'installable': True, 'auto_install': False, - #web "js": ["static/src/js/attendance.js"], - 'qweb' : ["static/src/xml/attendance.xml"], - 'css' : ["static/src/css/slider.css"], + 'qweb': ["static/src/xml/attendance.xml"], + 'css': ["static/src/css/slider.css"], } + # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/hr_attendance/hr_attendance_report.xml b/addons/hr_attendance/hr_attendance_report.xml index d3e9448ead3..f98eb6c053b 100644 --- a/addons/hr_attendance/hr_attendance_report.xml +++ b/addons/hr_attendance/hr_attendance_report.xml @@ -1,8 +1,13 @@ - - - + diff --git a/addons/hr_attendance/report/attendance_errors.py b/addons/hr_attendance/report/attendance_errors.py index 811f4d8d906..e37a329ac60 100644 --- a/addons/hr_attendance/report/attendance_errors.py +++ b/addons/hr_attendance/report/attendance_errors.py @@ -21,9 +21,10 @@ import datetime import time - +from openerp.osv import osv from openerp.report import report_sxw + class attendance_print(report_sxw.rml_parse): def __init__(self, cr, uid, name, context): @@ -39,7 +40,6 @@ class attendance_print(report_sxw.rml_parse): emp_obj_list = self.pool.get('hr.employee').browse(self.cr, self.uid, emp_ids) return emp_obj_list - def _lst(self, employee_id, dt_from, dt_to, max, *args): self.cr.execute("select name as date, create_date, action, create_date-name as delay from hr_attendance where employee_id=%s and to_char(name,'YYYY-mm-dd')<=%s and to_char(name,'YYYY-mm-dd')>=%s and action IN (%s,%s) order by name", (employee_id, dt_to, dt_from, 'sign_in', 'sign_out')) res = self.cr.dictfetchall() @@ -75,7 +75,11 @@ class attendance_print(report_sxw.rml_parse): } return [result_dict] -report_sxw.report_sxw('report.hr.attendance.error', 'hr.employee', 'addons/hr_attendance/report/attendance_errors.rml', parser=attendance_print, header='internal') + +class report_hr_attendanceerrors(osv.AbstractModel): + _name = 'report.hr_attendance.report_attendanceerrors' + _inherit = 'report.abstract_report' + _template = 'hr_attendance.report_attendanceerrors' + _wrapped_report_class = attendance_print # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: - diff --git a/addons/hr_attendance/report/attendance_errors.rml b/addons/hr_attendance/report/attendance_errors.rml deleted file mode 100644 index 6806c02c422..00000000000 --- a/addons/hr_attendance/report/attendance_errors.rml +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [[ repeatIn(get_employees(data['form']['emp_ids']),'employee') ]] - Attendance Errors - [[ employee.name ]] - - - - Operation - - - Date Signed - - - Date Recorded - - - Delay - - - Min Delay - - - -
- [[ repeatIn(lst(employee.id,data['form']['init_date'], data['form']['end_date'], data['form']['max_delay']), 'att') ]] - - - - [[ att['action'] ]] - - - [[ formatLang(att['date'],date_time=True) ]] - - - [[ formatLang(att['create_date'],date_time=True) ]] - - - [[ att['delay'] ]] - - - [[ att['delay2'] ]] - - - -
- - - - Total period:[[ repeatIn(total(employee.id,data['form']['init_date'], data['form']['end_date'], data['form']['max_delay']),'total') ]] - - - [[ total['total'] ]] - - - [[ total['total2'] ]] - - - - - - - (*) A positive delay means that the employee worked less than recorded. - (*) A negative delay means that the employee worked more than encoded. -
-
\ No newline at end of file diff --git a/addons/hr_attendance/views/report_attendanceerrors.xml b/addons/hr_attendance/views/report_attendanceerrors.xml new file mode 100644 index 00000000000..8ee00a60534 --- /dev/null +++ b/addons/hr_attendance/views/report_attendanceerrors.xml @@ -0,0 +1,45 @@ + + + + + + \ No newline at end of file diff --git a/addons/hr_attendance/wizard/hr_attendance_error.py b/addons/hr_attendance/wizard/hr_attendance_error.py index 82d75149428..58a165baff3 100644 --- a/addons/hr_attendance/wizard/hr_attendance_error.py +++ b/addons/hr_attendance/wizard/hr_attendance_error.py @@ -23,6 +23,7 @@ import time from openerp.osv import fields, osv from openerp.tools.translate import _ + class hr_attendance_error(osv.osv_memory): _name = 'hr.attendance.error' @@ -58,11 +59,8 @@ class hr_attendance_error(osv.osv_memory): 'model': 'hr.employee', 'form': data_error } - return { - 'type': 'ir.actions.report.xml', - 'report_name': 'hr.attendance.error', - 'datas': datas, - } - + return self.pool['report'].get_action( + cr, uid, [], 'hr_attendance.report_attendanceerrors', data=datas, context=context + ) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/hr_expense/__openerp__.py b/addons/hr_expense/__openerp__.py index f149bc0c7c6..2fc7afc00d9 100644 --- a/addons/hr_expense/__openerp__.py +++ b/addons/hr_expense/__openerp__.py @@ -59,6 +59,7 @@ This module also uses analytic accounting and is compatible with the invoice on 'report/hr_expense_report_view.xml', 'board_hr_expense_view.xml', 'hr_expense_installer_view.xml', + 'views/report_expense.xml', ], 'demo': ['hr_expense_demo.xml'], 'test': [ @@ -69,4 +70,5 @@ This module also uses analytic accounting and is compatible with the invoice on 'auto_install': False, 'application': True, } + # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/hr_expense/hr_expense_report.xml b/addons/hr_expense/hr_expense_report.xml index 5defbfec330..ab3200e5a54 100644 --- a/addons/hr_expense/hr_expense_report.xml +++ b/addons/hr_expense/hr_expense_report.xml @@ -1,8 +1,13 @@ - - - + diff --git a/addons/hr_expense/report/__init__.py b/addons/hr_expense/report/__init__.py index ad0c48a0819..9ec287fb9c7 100644 --- a/addons/hr_expense/report/__init__.py +++ b/addons/hr_expense/report/__init__.py @@ -19,8 +19,6 @@ # ############################################################################## -import expense import hr_expense_report # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: - diff --git a/addons/hr_expense/report/expense.py b/addons/hr_expense/report/expense.py deleted file mode 100644 index a6898204741..00000000000 --- a/addons/hr_expense/report/expense.py +++ /dev/null @@ -1,37 +0,0 @@ -# -*- 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 datetime -import time - -from openerp.report import report_sxw - -class expense(report_sxw.rml_parse): - - def __init__(self, cr, uid, name, context): - super(expense, self).__init__(cr, uid, name, context=context) - self.localcontext.update({'time': time, }) - -report_sxw.report_sxw('report.hr.expense', 'hr.expense.expense', 'addons/hr_expense/report/expense.rml',parser=expense) - - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: - diff --git a/addons/hr_expense/report/expense.rml b/addons/hr_expense/report/expense.rml deleted file mode 100644 index 3e07516c01b..00000000000 --- a/addons/hr_expense/report/expense.rml +++ /dev/null @@ -1,302 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Date - - - Name - - - Ref. - - - Unit Price - - - Qty - - - Price - - - - - [[ repeatIn(objects,'o') ]] - - - - HR Expenses - - [[ o.name or '' ]] - - - - - - - - Employee - - - Date - - - Description - - - Validated By - - - - - - - [[ o.employee_id.name ]] - - - [[ formatLang(o.date,date=True) ]] - - - [[ o.name ]] - - - [[ o.user_valid.name ]] - - - - - - - - - - Date - - - Name - - - Ref. - - - Unit Price - - - Qty - - - Price - - - - - - -
- [[ repeatIn(o.line_ids,'line') ]] - - - - [[ formatLang(line.date_value,date=True) ]] - - - [[ line.name or '' ]] [[ line.description or '' ]] - - - [[ line.ref or '' ]] - - - [[ formatLang(line.unit_amount) ]] - - - [[ formatLang(line.unit_quantity) ]] - - - [[ formatLang(line.total_amount, currency_obj=o.currency_id) ]] - - - - - - - - - - [[ line.analytic_account and line.analytic_account.complete_name or removeParentNode('tr') ]] - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - Total: - - - [[ formatLang(o.amount, currency_obj=o.currency_id) ]] - - - - - - - [[ o.note or '' ]] - - - - Certified honest and conform, - (Date and signature) - - - - - - - This document must be dated and signed for reimbursement -
-
-
diff --git a/addons/hr_expense/test/expense_process.yml b/addons/hr_expense/test/expense_process.yml index e9339e24a95..b3e19714c74 100644 --- a/addons/hr_expense/test/expense_process.yml +++ b/addons/hr_expense/test/expense_process.yml @@ -32,11 +32,3 @@ !python {model: hr.expense.expense}: | duplicate_id = self.copy(cr, uid, ref('sep_expenses'), context=context) self.expense_canceled(cr, uid, [duplicate_id]) -- - I print a report of the expenses. -- - !python {model: hr.expense.expense}: | - data, format = self.print_report(cr, uid, [ref('hr_expense.sep_expenses')], 'hr.expense', {}, {}) - if openerp.tools.config['test_report_directory']: - import os - file(os.path.join(openerp.tools.config['test_report_directory'], 'hr_expense-report.'+format), 'wb+').write(data) diff --git a/addons/hr_expense/views/report_expense.xml b/addons/hr_expense/views/report_expense.xml new file mode 100644 index 00000000000..5bb2e1dd8e2 --- /dev/null +++ b/addons/hr_expense/views/report_expense.xml @@ -0,0 +1,89 @@ + + + + + + diff --git a/addons/hr_payroll/__openerp__.py b/addons/hr_payroll/__openerp__.py index dfa87622264..26c52799688 100644 --- a/addons/hr_payroll/__openerp__.py +++ b/addons/hr_payroll/__openerp__.py @@ -19,6 +19,7 @@ # along with this program. If not, see . # ############################################################################## + { 'name': 'Payroll', 'version': '1.0', @@ -37,9 +38,14 @@ Generic Payroll system. * Monthly Payroll Register * Integrated with Holiday Management """, - 'author':'OpenERP SA', - 'website':'http://www.openerp.com', - 'images': ['images/hr_company_contributions.jpeg','images/hr_salary_heads.jpeg','images/hr_salary_structure.jpeg','images/hr_employee_payslip.jpeg'], + 'author': 'OpenERP SA', + 'website': 'http://www.openerp.com', + 'images': [ + 'images/hr_company_contributions.jpeg', + 'images/hr_salary_heads.jpeg', + 'images/hr_salary_structure.jpeg', + 'images/hr_employee_payslip.jpeg' + ], 'depends': [ 'hr', 'hr_contract', @@ -57,12 +63,12 @@ Generic Payroll system. 'security/ir.model.access.csv', 'wizard/hr_payroll_contribution_register_report.xml', 'res_config_view.xml', + 'views/report_contributionregister.xml', + 'views/report_payslip.xml', + 'views/report_payslipdetails.xml', ], 'test': [ 'test/payslip.yml', -# 'test/payment_advice.yml', -# 'test/payroll_register.yml', - # 'test/hr_payroll_report.yml', ], 'demo': ['hr_payroll_demo.xml'], 'installable': True, diff --git a/addons/hr_payroll/hr_payroll_report.xml b/addons/hr_payroll/hr_payroll_report.xml index a1b3587313a..86d5b3b8a66 100644 --- a/addons/hr_payroll/hr_payroll_report.xml +++ b/addons/hr_payroll/hr_payroll_report.xml @@ -1,31 +1,30 @@ - + + - - - - - + string="PaySlip Details" + report_type="qweb-pdf" + name="hr_payroll.report_payslipdetails" + file="hr_payroll.report_payslipdetails" + /> diff --git a/addons/hr_payroll/report/report_contribution_register.py b/addons/hr_payroll/report/report_contribution_register.py index 72500a9c6c9..27cc0eb6458 100644 --- a/addons/hr_payroll/report/report_contribution_register.py +++ b/addons/hr_payroll/report/report_contribution_register.py @@ -24,9 +24,10 @@ import time from datetime import datetime from dateutil import relativedelta - +from openerp.osv import osv from openerp.report import report_sxw + class contribution_register_report(report_sxw.rml_parse): def __init__(self, cr, uid, name, context): super(contribution_register_report, self).__init__(cr, uid, name, context) @@ -44,7 +45,6 @@ class contribution_register_report(report_sxw.rml_parse): return self.regi_total def _get_payslip_lines(self, obj): - payslip_obj = self.pool.get('hr.payslip') payslip_line = self.pool.get('hr.payslip.line') payslip_lines = [] res = [] @@ -69,6 +69,11 @@ class contribution_register_report(report_sxw.rml_parse): self.regi_total += line.total return res -report_sxw.report_sxw('report.contribution.register.lines', 'hr.contribution.register', 'hr_payroll/report/report_contribution_register.rml', parser=contribution_register_report) + +class wrapped_report_contribution_register(osv.AbstractModel): + _name = 'report.hr_payroll.report_contributionregister' + _inherit = 'report.abstract_report' + _template = 'hr_payroll.report_contributionregister' + _wrapped_report_class = contribution_register_report # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/hr_payroll/report/report_contribution_register.rml b/addons/hr_payroll/report/report_contribution_register.rml deleted file mode 100644 index 8a5897c6091..00000000000 --- a/addons/hr_payroll/report/report_contribution_register.rml +++ /dev/null @@ -1,234 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [[repeatIn(objects,'o')]] - - - - PaySlip Lines by Contribution Register - - - - - - - - - - - - - - Register Name - - - Date From - - - Date To - - - - - - - [[ o.name or '']] - - - [[ data['form']['date_from'] or '']] - - - [[ data['form']['date_to'] or '' ]] - - - - - - - - - - - - - - PaySlip Name - - - Code - - - Name - - - Quantity/Rate - - - Amount - - - Total - - - - - - -
- [[repeatIn(get_payslip_lines(o),'r') ]] - - - - [[ r.get('payslip_name', False) ]][[ r.get('payslip_name', False) and ( setTag('para','para',{'style':'terp_default_8'})) or removeParentNode('font')]] - - - [[ r['code'] ]] - - - [[ r['name'] ]] - - - [[ formatLang(r['quantity']) ]] - - - [[ formatLang(r['amount']) ]] - - - [[ formatLang(r['total'], currency_obj = o.company_id and o.company_id.currency_id)]] - - - -
- - - - - - - - - Total: - - - [[ formatLang(sum_total(), currency_obj = o.company_id and o.company_id.currency_id)]] - - - - - - -
-
- diff --git a/addons/hr_payroll/report/report_payslip.py b/addons/hr_payroll/report/report_payslip.py index 3e1dc2b1966..0c78ceec49a 100644 --- a/addons/hr_payroll/report/report_payslip.py +++ b/addons/hr_payroll/report/report_payslip.py @@ -21,8 +21,9 @@ # ############################################################################## +from openerp.osv import osv from openerp.report import report_sxw -from openerp.tools import amount_to_text_en + class payslip_report(report_sxw.rml_parse): @@ -37,12 +38,17 @@ class payslip_report(report_sxw.rml_parse): res = [] ids = [] for id in range(len(obj)): - if obj[id].appears_on_payslip == True: + if obj[id].appears_on_payslip is True: ids.append(obj[id].id) if ids: res = payslip_line.browse(self.cr, self.uid, ids) return res -report_sxw.report_sxw('report.payslip', 'hr.payslip', 'hr_payroll/report/report_payslip.rml', parser=payslip_report) + +class wrapped_report_payslip(osv.AbstractModel): + _name = 'report.hr_payroll.report_payslip' + _inherit = 'report.abstract_report' + _template = 'hr_payroll.report_payslip' + _wrapped_report_class = payslip_report # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/hr_payroll/report/report_payslip.rml b/addons/hr_payroll/report/report_payslip.rml deleted file mode 100644 index 990419ee5f1..00000000000 --- a/addons/hr_payroll/report/report_payslip.rml +++ /dev/null @@ -1,340 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [[repeatIn(objects,'o')]] - - - - Pay Slip - - - - - [[o.credit_note==False and removeParentNode('para')]] - Credit - - Note - - ([[o.name or removeParentNode('para')]]) - - - - Name - - - [[o.employee_id.name]] - - - Designation - - - [[ o.employee_id.job_id.name or '' ]] - - - - - - - - Address - - - - [[o.employee_id.address_home_id and o.employee_id.address_home_id.name or '' ]] - [[o.employee_id.address_home_id and display_address(o.employee_id.address_home_id)]] - - - - - - - Email - - - [[ o.employee_id.work_email or '' ]] - - - - Identification No - - - - [[ o.employee_id.identification_id or '' ]] - - - - - - - Reference - - - [[ o.number or '' ]] - - - Bank Account - - - [[ o.employee_id.otherid or '' ]] - - - - - - - Date From - - - [[ o.date_from or '']] - - - - Date To - - - - [[ o.date_to or '' ]] - - - - - - - - - - - Code - - - Name - - - Quantity/Rate - - - Amount - - - Total - - - -
- [[repeatIn(get_payslip_lines(o.line_ids),'p') ]] - - - - [[ p.code ]] - - - [[ p.name ]] - - - [[ formatLang(p.quantity) ]] - - - [[ formatLang(p.amount) ]] - - - [[ formatLang(p.total, currency_obj = o.company_id and o.company_id.currency_id)]] - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Authorized Signature - - - - - - -
-
- diff --git a/addons/hr_payroll/report/report_payslip_details.py b/addons/hr_payroll/report/report_payslip_details.py index 6b561b8d688..45d35373455 100644 --- a/addons/hr_payroll/report/report_payslip_details.py +++ b/addons/hr_payroll/report/report_payslip_details.py @@ -1,5 +1,4 @@ #-*- coding:utf-8 -*- - ############################################################################## # # OpenERP, Open Source Management Solution @@ -21,8 +20,9 @@ # ############################################################################## +from openerp.osv import osv from openerp.report import report_sxw -from openerp.tools import amount_to_text_en + class payslip_details_report(report_sxw.rml_parse): @@ -113,6 +113,11 @@ class payslip_details_report(report_sxw.rml_parse): }) return res -report_sxw.report_sxw('report.paylip.details', 'hr.payslip', 'hr_payroll/report/report_payslip_details.rml', parser=payslip_details_report) + +class wrapped_report_payslipdetails(osv.AbstractModel): + _name = 'report.hr_payroll.report_payslipdetails' + _inherit = 'report.abstract_report' + _template = 'hr_payroll.report_payslipdetails' + _wrapped_report_class = payslip_details_report # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/hr_payroll/report/report_payslip_details.rml b/addons/hr_payroll/report/report_payslip_details.rml deleted file mode 100644 index 4ace0ad2f82..00000000000 --- a/addons/hr_payroll/report/report_payslip_details.rml +++ /dev/null @@ -1,426 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [[repeatIn(objects,'o')]] - - - - Pay Slip Details - - - - - [[o.credit_note==False and removeParentNode('para')]] - Credit - - Note - - ([[o.name or removeParentNode('para')]]) - - - - Name - - - [[o.employee_id.name]] - - - Designation - - - [[ o.employee_id.job_id.name or '' ]] - - - - - - - - Address - - - - [[o.employee_id.address_home_id and o.employee_id.address_home_id.name or '' ]] - [[o.employee_id.address_home_id and display_address(o.employee_id.address_home_id)]] - - - - - - - Email - - - [[ o.employee_id.work_email or '' ]] - - - - Identification No - - - - [[ o.employee_id.identification_id or '' ]] - - - - - - - Reference - - - [[ o.number or '' ]] - - - Bank Account - - - [[ o.employee_id.otherid or '' ]] - - - - - - - Date From - - - [[ o.date_from or '']] - - - - Date To - - - - [[ o.date_to or '' ]] - - - - - - - - - - - - - - Details by Salary Rule Category: - - - - - - - Code - - - Salary Rule Category - - - Total - - - - - - -
- [[repeatIn(get_details_by_rule_category(o.details_by_salary_rule_category),'h') ]] - - - - - [[ h['code'] ]] - [[ h['level']!=0 and ( setTag('para','para',{'style':'terp_default_8'})) or removeParentNode('font')]] - - - - [[ '..'*h['level'] ]][[ h['rule_category'] ]][[ h['level']!=0 and ( setTag('para','para',{'style':'terp_default_8'})) or removeParentNode('font') ]] - - - [[ formatLang(h['total'], currency_obj = o.company_id and o.company_id.currency_id)]] [[ h['level']==0 and ( setTag('para','para',{'style':'terp_default_10'})) or removeParentNode('font') ]] - - - -
- - - - - - - Payslip Lines by Contribution Register: - - - - - - - Register Name - - - Code - - - Name - - - Quantity/Rate - - - Amount - - - Total - - - -
- [[repeatIn(get_lines_by_contribution_register(o.details_by_salary_rule_category),'r') ]] - - - - [[ r.get('register_name', False) ]][[ h.get('register_name', False) and ( setTag('para','para',{'style':'terp_default_8'})) or removeParentNode('font')]] - - - [[ r['code'] ]] - - - [[ r['name'] ]] - - - [[ formatLang(r['quantity']) ]] - - - [[ formatLang(r['amount']) ]] - - - [[ formatLang(r['total'], currency_obj = o.company_id and o.company_id.currency_id)]][[ r.get('register_name', False) and ( setTag('para','para',{'style':'terp_default_10'})) or removeParentNode('font')]] - - - -
- - - - - - - - - - - - - - - - - - Authorized Signature - - - - - - -
-
- diff --git a/addons/hr_payroll/test/hr_payroll_report.yml b/addons/hr_payroll/test/hr_payroll_report.yml deleted file mode 100644 index ab4b0fa97e1..00000000000 --- a/addons/hr_payroll/test/hr_payroll_report.yml +++ /dev/null @@ -1,12 +0,0 @@ -- - In order to test the PDF reports defined on HR Payroll, we will print Employees' Salary Structure -- - Print HR Payslip -- - !python {model: hr.payslip}: | - import os - import openerp.report - from openerp import tools - data, format = openerp.report.render_report(cr, uid, [ref('hr_payroll.hr_payslip_salaryslipofbonamyforjune0')], 'payslip.pdf', {}, {}) - if tools.config['test_report_directory']: - file(os.path.join(tools.config['test_report_directory'], 'hr_payroll-payslip_report.'+format), 'wb+').write(data) diff --git a/addons/hr_payroll/test/payslip.yml b/addons/hr_payroll/test/payslip.yml index f78ad4a374d..b4029146b6d 100644 --- a/addons/hr_payroll/test/payslip.yml +++ b/addons/hr_payroll/test/payslip.yml @@ -107,8 +107,29 @@ date_from: '2011-09-30' date_to: '2011-09-01' - - I print the report. + I print the payslip report - - !python {model: payslip.lines.contribution.register}: | - self.print_report(cr, uid, [ref('payslip_lines_contribution_register0')], context={'active_ids': [ref('hr_houserent_register')]}) - + !python {model: hr.payslip}: | + import os + import openerp.report + from openerp import tools + data, format = openerp.report.render_report(cr, uid, [ref('hr_payslip_0')], 'hr_payroll.report_payslip', {}, {}) + if tools.config['test_report_directory']: + file(os.path.join(tools.config['test_report_directory'], 'hr_payroll-payslip.'+format), 'wb+').write(data) +- + I print the payslip details report +- + !python {model: hr.payslip}: | + import os + import openerp.report + from openerp import tools + data, format = openerp.report.render_report(cr, uid, [ref('hr_payslip_0')], 'hr_payroll.report_payslipdetails', {}, {}) + if tools.config['test_report_directory']: + file(os.path.join(tools.config['test_report_directory'], 'hr_payroll-payslipdetails.'+format), 'wb+').write(data) +- + I print the contribution register report +- + !python {model: hr.contribution.register}: | + ctx={'model': 'hr.contribution.register', 'active_ids': [ref('hr_houserent_register')]} + from openerp.tools import test_reports + test_reports.try_report_action(cr, uid, 'action_payslip_lines_contribution_register', context=ctx, our_module='hr_payroll') diff --git a/addons/hr_payroll/views/report_contributionregister.xml b/addons/hr_payroll/views/report_contributionregister.xml new file mode 100644 index 00000000000..814a6025268 --- /dev/null +++ b/addons/hr_payroll/views/report_contributionregister.xml @@ -0,0 +1,68 @@ + + + + + + diff --git a/addons/hr_payroll/views/report_payslip.xml b/addons/hr_payroll/views/report_payslip.xml new file mode 100644 index 00000000000..5ac9dfa557e --- /dev/null +++ b/addons/hr_payroll/views/report_payslip.xml @@ -0,0 +1,74 @@ + + + + + + diff --git a/addons/hr_payroll/views/report_payslipdetails.xml b/addons/hr_payroll/views/report_payslipdetails.xml new file mode 100644 index 00000000000..acd0fbc2610 --- /dev/null +++ b/addons/hr_payroll/views/report_payslipdetails.xml @@ -0,0 +1,99 @@ + + + + + + diff --git a/addons/hr_payroll/wizard/hr_payroll_contribution_register_report.py b/addons/hr_payroll/wizard/hr_payroll_contribution_register_report.py index ff078b09a67..20e3c0413aa 100644 --- a/addons/hr_payroll/wizard/hr_payroll_contribution_register_report.py +++ b/addons/hr_payroll/wizard/hr_payroll_contribution_register_report.py @@ -22,9 +22,9 @@ import time from datetime import datetime from dateutil import relativedelta - from openerp.osv import fields, osv + class payslip_lines_contribution_register(osv.osv_memory): _name = 'payslip.lines.contribution.register' _description = 'PaySlip Lines by Contribution Registers' @@ -44,11 +44,8 @@ class payslip_lines_contribution_register(osv.osv_memory): 'model': 'hr.contribution.register', 'form': self.read(cr, uid, ids, [], context=context)[0] } - return { - 'type': 'ir.actions.report.xml', - 'report_name': 'contribution.register.lines', - 'datas': datas, - } - + return self.pool['report'].get_action( + cr, uid, [], 'hr_payroll.report_contributionregister', data=datas, context=context + ) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/hr_timesheet_invoice/__openerp__.py b/addons/hr_timesheet_invoice/__openerp__.py index d15dd3b0e3b..9fb386c479d 100644 --- a/addons/hr_timesheet_invoice/__openerp__.py +++ b/addons/hr_timesheet_invoice/__openerp__.py @@ -47,6 +47,7 @@ reports.""", 'wizard/hr_timesheet_analytic_profit_view.xml', 'wizard/hr_timesheet_invoice_create_view.xml', 'wizard/hr_timesheet_invoice_create_final_view.xml', + 'views/report_analyticprofit.xml', ], 'demo': ['hr_timesheet_invoice_demo.xml'], 'test': ['test/test_hr_timesheet_invoice.yml', diff --git a/addons/hr_timesheet_invoice/hr_timesheet_invoice_report.xml b/addons/hr_timesheet_invoice/hr_timesheet_invoice_report.xml index 473820d5123..3c6df8ef378 100644 --- a/addons/hr_timesheet_invoice/hr_timesheet_invoice_report.xml +++ b/addons/hr_timesheet_invoice/hr_timesheet_invoice_report.xml @@ -2,13 +2,12 @@ - + name="hr_timesheet_invoice.report_analyticprofit" + file="hr_timesheet_invoice.report_analyticprofit" + report_type="qweb-pdf" + string="Timesheet Profit" + /> diff --git a/addons/hr_timesheet_invoice/report/account_analytic_profit.py b/addons/hr_timesheet_invoice/report/account_analytic_profit.py index bfaf585aff5..3f7108fb665 100644 --- a/addons/hr_timesheet_invoice/report/account_analytic_profit.py +++ b/addons/hr_timesheet_invoice/report/account_analytic_profit.py @@ -20,6 +20,8 @@ ############################################################################## from openerp.report import report_sxw +from openerp.osv import osv + class account_analytic_profit(report_sxw.rml_parse): def __init__(self, cr, uid, name, context): @@ -30,6 +32,7 @@ class account_analytic_profit(report_sxw.rml_parse): 'journal_ids': self._journal_ids, 'line': self._line, }) + def _user_ids(self, lines): user_obj = self.pool['res.users'] ids=list(set([b.user_id.id for b in lines])) @@ -116,6 +119,11 @@ class account_analytic_profit(report_sxw.rml_parse): ]) return line_obj.browse(self.cr, self.uid, ids) -report_sxw.report_sxw('report.account.analytic.profit', 'account.analytic.line', 'addons/hr_timesheet_invoice/report/account_analytic_profit.rml', parser=account_analytic_profit) + +class report_account_analytic_profit(osv.AbstractModel): + _name = 'report.hr_timesheet_invoice.report_analyticprofit' + _inherit = 'report.abstract_report' + _template = 'hr_timesheet_invoice.report_analyticprofit' + _wrapped_report_class = account_analytic_profit # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/hr_timesheet_invoice/report/account_analytic_profit.rml b/addons/hr_timesheet_invoice/report/account_analytic_profit.rml deleted file mode 100644 index 57ca806061a..00000000000 --- a/addons/hr_timesheet_invoice/report/account_analytic_profit.rml +++ /dev/null @@ -1,341 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Invoice rate by user - - - - - - - - - - - - - - - - - - Period from startdate - - - Period to enddate - - - Currency - - - - - - - [[ formatLang(data['form']['date_from'],date=True) ]] - - - [[ formatLang (data['form']['date_to'] ,date=True)]] - - - [[ company.currency_id.name ]] - - - - - - - - - - - - - User or Journal Name - - - Units - - - Theorical - - - Income - - - Cost - - - Profit - - - Eff. - - - - - - - - - - Totals: - - - [[ reduce(lambda x, y: x+y['unit_amount'], line(data['form'], data['form']['journal_ids'][0][2], data['form']['employee_ids'][0][2]), 0) ]] - - - - - - - - [[ reduce(lambda x, y: x+y['amount'], line(data['form'],data['form']['journal_ids'][0][2], data['form']['employee_ids'][0][2]), 0) ]] - - - [[ reduce(lambda x, y: x+y['cost'], line(data['form'],data['form']['journal_ids'][0][2], data['form']['employee_ids'][0][2]), 0) ]] - - - [[ reduce(lambda x, y: x+y['profit'], line(data['form'],data['form']['journal_ids'][0][2], data['form']['employee_ids'][0][2]), 0) ]] - - - [[ reduce(lambda x, y: x+y['cost'], line(data['form'],data['form']['journal_ids'][0][2], data['form']['employee_ids'][0][2]), 0) and round(reduce(lambda x, y: x+y['amount'], line(data['form'],data['form']['journal_ids'][0][2], data['form']['employee_ids'][0][2]), 0)/reduce(lambda x, y: x+y['cost'], line(data['form'],data['form']['journal_ids'][0][2], data['form']['employee_ids'][0][2]), 0)* -100, 2)]] % - - - - -
- [[ repeatIn(user_ids(lines(data['form'])), 'e') ]] - - - - [[ e.name ]] - - - [[ repeatIn(journal_ids(data['form'], [e.id]), 'j') ]] - - - [[ reduce(lambda x, y: x+y['unit_amount'], line(data['form'], [j.id], [e.id]), 0) ]] - - - [[ reduce(lambda x, y: x+y['amount_th'], line(data['form'], [j.id], [e.id]), 0) ]] - - - [[ reduce(lambda x, y: x+y['amount'], line(data['form'], [j.id], [e.id]), 0) ]] - - - [[ reduce(lambda x, y: x+y['cost'], line(data['form'], [j.id], [e.id]), 0) ]] - - - [[ reduce(lambda x, y: x+y['profit'], line(data['form'], [j.id], [e.id]), 0) ]] - - - [[reduce(lambda x, y: x+y['cost'], line(data['form'], [j.id], [e.id]), 0) and '%d' % (reduce(lambda x, y: x+y['amount'], line(data['form'], [j.id], [e.id]), 0) / reduce(lambda x, y: x+y['cost'], line(data['form'], [j.id], [e.id]), 0) * 100.0, 2)]] % - - - - - - - [[ j.name ]] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- [[ repeatIn(line(data['form'], [j.id],[e.id]), 'l') ]] - - - - [[ l['name'] ]] - - - [[ l['unit_amount'] ]] - - - [[ l['amount_th'] ]] - - - [[ l['amount'] ]] - - - [[ l['cost'] ]] - - - [[ l['profit'] ]] - - - [[ l['eff'] ]] % - - - - - - -
- - - -
- - - -
-
diff --git a/addons/hr_timesheet_invoice/test/hr_timesheet_invoice_report.yml b/addons/hr_timesheet_invoice/test/hr_timesheet_invoice_report.yml index 39c3161f244..e2fa5b344a9 100644 --- a/addons/hr_timesheet_invoice/test/hr_timesheet_invoice_report.yml +++ b/addons/hr_timesheet_invoice/test/hr_timesheet_invoice_report.yml @@ -6,6 +6,6 @@ import openerp.report from openerp import tools data_dict = {'model': 'ir.ui.menu', 'form': {'date_from': time.strftime('%Y-%m-01'), 'employee_ids': [[6,0,[ref('hr.employee_fp'), ref('hr.employee_qdp'),ref('hr.employee_al')]]], 'journal_ids': [[6,0,[ref('hr_timesheet.analytic_journal')]]], 'date_to': time.strftime('%Y-%m-%d')}} - data, format = openerp.report.render_report(cr, uid, [], 'account.analytic.profit', data_dict, {}) + data, format = openerp.report.render_report(cr, uid, [], 'hr_timesheet_invoice.report_analyticprofit', data_dict, {}) if tools.config['test_report_directory']: file(os.path.join(tools.config['test_report_directory'], 'hr_timesheet_invoice-account_analytic_profit_report.'+format), 'wb+').write(data) diff --git a/addons/hr_timesheet_invoice/views/report_analyticprofit.xml b/addons/hr_timesheet_invoice/views/report_analyticprofit.xml new file mode 100644 index 00000000000..c067a9b1d2d --- /dev/null +++ b/addons/hr_timesheet_invoice/views/report_analyticprofit.xml @@ -0,0 +1,84 @@ + + + + + + diff --git a/addons/hr_timesheet_invoice/wizard/hr_timesheet_analytic_profit.py b/addons/hr_timesheet_invoice/wizard/hr_timesheet_analytic_profit.py index 2675556e8ac..a78bc1c5bf5 100644 --- a/addons/hr_timesheet_invoice/wizard/hr_timesheet_analytic_profit.py +++ b/addons/hr_timesheet_invoice/wizard/hr_timesheet_analytic_profit.py @@ -23,6 +23,7 @@ import datetime from openerp.osv import fields, osv from openerp.tools.translate import _ + class account_analytic_profit(osv.osv_memory): _name = 'hr.timesheet.analytic.profit' _description = 'Print Timesheet Profit' @@ -60,15 +61,12 @@ class account_analytic_profit(osv.osv_memory): data['form']['journal_ids'] = [(6, 0, data['form']['journal_ids'])] # Improve me => Change the rml/sxw so that it can support withou [0][2] data['form']['employee_ids'] = [(6, 0, data['form']['employee_ids'])] datas = { - 'ids': [], - 'model': 'account.analytic.line', - 'form': data['form'] - } - return { - 'type': 'ir.actions.report.xml', - 'report_name': 'account.analytic.profit', - 'datas': datas, - } - + 'ids': [], + 'model': 'account.analytic.line', + 'form': data['form'] + } + return self.pool['report'].get_action( + cr, uid, [], 'hr_timesheet_invoice.report_analyticprofit', data=datas, context=context + ) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: