From 0bff771edab196b67c87ae450d520e57957c8492 Mon Sep 17 00:00:00 2001 From: mtr Date: Mon, 16 May 2011 16:02:31 +0530 Subject: [PATCH 1/6] [IMP] hr_payroll_account: removed fields from contribution.register and salary.rule bzr revid: mtr@mtr-20110516103231-vzmxbdy11zyhs52y --- .../hr_payroll_account/hr_payroll_account.py | 64 ++++++++----------- .../hr_payroll_account_view.xml | 2 - 2 files changed, 28 insertions(+), 38 deletions(-) diff --git a/addons/hr_payroll_account/hr_payroll_account.py b/addons/hr_payroll_account/hr_payroll_account.py index a58aed22730..63cac3f8684 100644 --- a/addons/hr_payroll_account/hr_payroll_account.py +++ b/addons/hr_payroll_account/hr_payroll_account.py @@ -33,7 +33,6 @@ class contrib_register(osv.osv): _description = 'Contribution Register' _columns = { - 'account_id': fields.many2one('account.account', 'Account'), 'analytic_account_id':fields.many2one('account.analytic.account', 'Analytic Account'), } contrib_register() @@ -109,40 +108,34 @@ class hr_payslip(osv.osv): 'narration': name } for line in slip.line_ids: - if line.salary_rule_id.accounting_select != 'none': - amt = slip.credit_note and -line.total or line.total - partner_id = False - name = line.name - debit_account_id = line.salary_rule_id.account_debit.id - credit_account_id = line.salary_rule_id.account_credit.id - if line.salary_rule_id.accounting_select == 'third_party': - if line.salary_rule_id.register_id: - credit_account_id = line.salary_rule_id.register_id.account_id.id - else: - partner_id = slip.employee_id.partner_id.id - debit_line = (0,0,{ - 'name': line.name, - 'account_id': debit_account_id, - 'debit': amt > 0.0 and amt or 0.0, - 'credit': amt < 0.0 and -amt or 0.0, - 'date': timenow, - 'journal_id': slip.journal_id.id, - 'period_id': period_id, - }) - credit_line = (0,0,{ - 'date': timenow, - 'journal_id': slip.journal_id.id, - 'period_id': period_id, - 'name': name, - 'partner_id': partner_id, - 'account_id': credit_account_id, - 'debit': amt < 0.0 and -amt or 0.0, - 'credit': amt > 0.0 and amt or 0.0, - }) - if debit_account_id: - line_ids.append(debit_line) - if credit_account_id: - line_ids.append(credit_line) + amt = slip.credit_note and -line.total or line.total + partner_id = False + name = line.name + debit_account_id = line.salary_rule_id.account_debit.id + credit_account_id = line.salary_rule_id.account_credit.id + debit_line = (0,0,{ + 'name': line.name, + 'account_id': debit_account_id, + 'debit': amt > 0.0 and amt or 0.0, + 'credit': amt < 0.0 and -amt or 0.0, + 'date': timenow, + 'journal_id': slip.journal_id.id, + 'period_id': period_id, + }) + credit_line = (0,0,{ + 'date': timenow, + 'journal_id': slip.journal_id.id, + 'period_id': period_id, + 'name': name, + 'partner_id': partner_id, + 'account_id': credit_account_id, + 'debit': amt < 0.0 and -amt or 0.0, + 'credit': amt > 0.0 and amt or 0.0, + }) + if debit_account_id: + line_ids.append(debit_line) + if credit_account_id: + line_ids.append(credit_line) move.update({'line_id': line_ids}) move_id = move_pool.create(cr, uid, move, context=context) self.write(cr, uid, [slip.id], {'move_id': move_id}, context=context) @@ -381,7 +374,6 @@ hr_payslip() class hr_salary_rule(osv.osv): _inherit = 'hr.salary.rule' _columns = { - 'accounting_select':fields.selection([('none', 'No Accounting Entries'), ('third_party', 'To Employee or contribution Register'), ('yes','Regular Entries')], 'Accounting Entries Option'), 'analytic_account_id':fields.many2one('account.analytic.account', 'Analytic Account'), 'account_tax_id':fields.many2one('account.tax.code', 'Tax Code'), 'account_debit': fields.many2one('account.account', 'Debit Account'), diff --git a/addons/hr_payroll_account/hr_payroll_account_view.xml b/addons/hr_payroll_account/hr_payroll_account_view.xml index 4b36508138d..9b9895c31a7 100644 --- a/addons/hr_payroll_account/hr_payroll_account_view.xml +++ b/addons/hr_payroll_account/hr_payroll_account_view.xml @@ -26,7 +26,6 @@ - @@ -41,7 +40,6 @@ - From 2aeb9b6ef444f20305ea0335020b7ea9d8d84b19 Mon Sep 17 00:00:00 2001 From: mtr Date: Thu, 26 May 2011 18:40:45 +0530 Subject: [PATCH 2/6] [IMP] hr_payroll_account: improved code to create accounting entries in order to balance the moves bzr revid: mtr@mtr-20110526131045-st6zsk868ul0zs3q --- .../hr_payroll_account/hr_payroll_account.py | 31 ++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/addons/hr_payroll_account/hr_payroll_account.py b/addons/hr_payroll_account/hr_payroll_account.py index 63cac3f8684..b210365c6eb 100644 --- a/addons/hr_payroll_account/hr_payroll_account.py +++ b/addons/hr_payroll_account/hr_payroll_account.py @@ -90,7 +90,8 @@ class hr_payslip(osv.osv): for slip in self.browse(cr, uid, ids, context=context): line_ids = [] - + debit_sum = 0.0 + credit_sum = 0.0 if not slip.period_id: search_periods = period_pool.search(cr, uid, [('date_start','<=',slip.date_from),('date_stop','>=',slip.date_to)], context=context) if not search_periods: @@ -122,6 +123,7 @@ class hr_payslip(osv.osv): 'journal_id': slip.journal_id.id, 'period_id': period_id, }) + debit_sum += debit_line[2]['debit'] credit_line = (0,0,{ 'date': timenow, 'journal_id': slip.journal_id.id, @@ -132,10 +134,37 @@ class hr_payslip(osv.osv): 'debit': amt < 0.0 and -amt or 0.0, 'credit': amt > 0.0 and amt or 0.0, }) + credit_sum += debit_line[2]['credit'] if debit_account_id: line_ids.append(debit_line) if credit_account_id: line_ids.append(credit_line) + + if debit_sum > credit_sum: + bal_credit_line = (0,0,{ + 'date': timenow, + 'journal_id': slip.journal_id.id, + 'period_id': period_id, + 'name': 'Balancing Entry', + 'partner_id': partner_id, + 'account_id': slip.journal_id.default_credit_account_id.id, + 'debit': 0.0, + 'credit': debit_sum - credit_sum, + }) + line_ids.append(bal_credit_line) + else: + bal_debit_line = (0,0,{ + 'date': timenow, + 'journal_id': slip.journal_id.id, + 'period_id': period_id, + 'name': 'Balancing Entry', + 'partner_id': partner_id, + 'account_id': slip.journal_id.default_debit_account_id.id, + 'debit': 0.0, + 'credit': credit_sum - debit_sum, + }) + line_ids.append(bal_debit_line) + move.update({'line_id': line_ids}) move_id = move_pool.create(cr, uid, move, context=context) self.write(cr, uid, [slip.id], {'move_id': move_id}, context=context) From 4f28c87d46705faa8f2e3953fbc9d70b806d7dbe Mon Sep 17 00:00:00 2001 From: mtr Date: Fri, 27 May 2011 10:46:11 +0530 Subject: [PATCH 3/6] [IMP] hr_payroll_account: changed variable name and string for adjustment moves bzr revid: mtr@mtr-20110527051611-plh7e43c6n9brx5x --- addons/hr_payroll_account/hr_payroll_account.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/addons/hr_payroll_account/hr_payroll_account.py b/addons/hr_payroll_account/hr_payroll_account.py index b210365c6eb..cf43cb01679 100644 --- a/addons/hr_payroll_account/hr_payroll_account.py +++ b/addons/hr_payroll_account/hr_payroll_account.py @@ -141,29 +141,29 @@ class hr_payslip(osv.osv): line_ids.append(credit_line) if debit_sum > credit_sum: - bal_credit_line = (0,0,{ + adjust_credit = (0,0,{ 'date': timenow, 'journal_id': slip.journal_id.id, 'period_id': period_id, - 'name': 'Balancing Entry', + 'name': 'Adjustment Entry', 'partner_id': partner_id, 'account_id': slip.journal_id.default_credit_account_id.id, 'debit': 0.0, 'credit': debit_sum - credit_sum, }) - line_ids.append(bal_credit_line) + line_ids.append(adjust_credit) else: - bal_debit_line = (0,0,{ + adjust_debit = (0,0,{ 'date': timenow, 'journal_id': slip.journal_id.id, 'period_id': period_id, - 'name': 'Balancing Entry', + 'name': 'Adjustment Entry', 'partner_id': partner_id, 'account_id': slip.journal_id.default_debit_account_id.id, 'debit': 0.0, 'credit': credit_sum - debit_sum, }) - line_ids.append(bal_debit_line) + line_ids.append(adjust_debit) move.update({'line_id': line_ids}) move_id = move_pool.create(cr, uid, move, context=context) From d65bc5d7ca7d0b51071f4f0b7e74ae1905597087 Mon Sep 17 00:00:00 2001 From: mtr Date: Fri, 27 May 2011 10:59:21 +0530 Subject: [PATCH 4/6] [IMP] hr_payroll_account: minor change in Adjustment entry for debit bzr revid: mtr@mtr-20110527052921-w6dnm07rpn3nzx3b --- addons/hr_payroll_account/hr_payroll_account.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/hr_payroll_account/hr_payroll_account.py b/addons/hr_payroll_account/hr_payroll_account.py index cf43cb01679..23c6a2bea49 100644 --- a/addons/hr_payroll_account/hr_payroll_account.py +++ b/addons/hr_payroll_account/hr_payroll_account.py @@ -160,8 +160,8 @@ class hr_payslip(osv.osv): 'name': 'Adjustment Entry', 'partner_id': partner_id, 'account_id': slip.journal_id.default_debit_account_id.id, - 'debit': 0.0, - 'credit': credit_sum - debit_sum, + 'debit': credit_sum - debit_sum, + 'credit': 0.0 }) line_ids.append(adjust_debit) From bc343fe2515cfb1ab55655e2aa243e53c2f54890 Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Mon, 30 May 2011 12:06:45 +0200 Subject: [PATCH 5/6] [FIX] hr_payroll_account: misc fixes bzr revid: qdp-launchpad@openerp.com-20110530100645-f9auedgpta62zp77 --- addons/hr_payroll_account/hr_payroll_account.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/addons/hr_payroll_account/hr_payroll_account.py b/addons/hr_payroll_account/hr_payroll_account.py index 23c6a2bea49..2b70ae698b4 100644 --- a/addons/hr_payroll_account/hr_payroll_account.py +++ b/addons/hr_payroll_account/hr_payroll_account.py @@ -123,7 +123,6 @@ class hr_payslip(osv.osv): 'journal_id': slip.journal_id.id, 'period_id': period_id, }) - debit_sum += debit_line[2]['debit'] credit_line = (0,0,{ 'date': timenow, 'journal_id': slip.journal_id.id, @@ -134,30 +133,31 @@ class hr_payslip(osv.osv): 'debit': amt < 0.0 and -amt or 0.0, 'credit': amt > 0.0 and amt or 0.0, }) - credit_sum += debit_line[2]['credit'] if debit_account_id: line_ids.append(debit_line) + debit_sum += debit_line[2]['debit'] if credit_account_id: line_ids.append(credit_line) + credit_sum += credit_line[2]['credit'] if debit_sum > credit_sum: adjust_credit = (0,0,{ 'date': timenow, 'journal_id': slip.journal_id.id, 'period_id': period_id, - 'name': 'Adjustment Entry', + 'name': _('Adjustment Entry'), 'partner_id': partner_id, 'account_id': slip.journal_id.default_credit_account_id.id, 'debit': 0.0, 'credit': debit_sum - credit_sum, }) line_ids.append(adjust_credit) - else: + elif debit_sum < credit_sum: adjust_debit = (0,0,{ 'date': timenow, 'journal_id': slip.journal_id.id, 'period_id': period_id, - 'name': 'Adjustment Entry', + 'name': _('Adjustment Entry'), 'partner_id': partner_id, 'account_id': slip.journal_id.default_debit_account_id.id, 'debit': credit_sum - debit_sum, From 3eaa5428eefe4bcec4844a80017a4d3cc724152f Mon Sep 17 00:00:00 2001 From: "psi (Open ERP)" Date: Tue, 31 May 2011 12:32:28 +0530 Subject: [PATCH 6/6] [IMP] hr_payroll_account: remove analaytic_account_id field and post the move only if the boolean 'skip draft state for new entry' is set on the selected journal of payslip bzr revid: psi@tinyerp.co.in-20110531070228-vp7doq20e6cbgjro --- .../hr_payroll_account/hr_payroll_account.py | 58 ++++++++----------- .../hr_payroll_account_view.xml | 31 +++------- 2 files changed, 33 insertions(+), 56 deletions(-) diff --git a/addons/hr_payroll_account/hr_payroll_account.py b/addons/hr_payroll_account/hr_payroll_account.py index 2b70ae698b4..476196759b2 100644 --- a/addons/hr_payroll_account/hr_payroll_account.py +++ b/addons/hr_payroll_account/hr_payroll_account.py @@ -27,16 +27,6 @@ from osv import fields, osv from tools import config from tools.translate import _ - -class contrib_register(osv.osv): - _inherit = 'hr.contribution.register' - _description = 'Contribution Register' - - _columns = { - 'analytic_account_id':fields.many2one('account.analytic.account', 'Analytic Account'), - } -contrib_register() - #class account_move_line(osv.osv): # # _inherit = 'account.move.line' @@ -83,8 +73,6 @@ class hr_payslip(osv.osv): #TODO: to correct def process_sheet(self, cr, uid, ids, context=None): move_pool = self.pool.get('account.move') - movel_pool = self.pool.get('account.move.line') - invoice_pool = self.pool.get('account.invoice') period_pool = self.pool.get('account.period') timenow = time.strftime('%Y-%m-%d') @@ -102,34 +90,34 @@ class hr_payslip(osv.osv): name = _('Payslip of %s') % (slip.employee_id.name) move = { + 'narration': name, + 'date': timenow, + 'ref': slip.number, 'journal_id': slip.journal_id.id, 'period_id': period_id, - 'date': timenow, - 'ref':slip.number, - 'narration': name } for line in slip.line_ids: amt = slip.credit_note and -line.total or line.total partner_id = False - name = line.name debit_account_id = line.salary_rule_id.account_debit.id credit_account_id = line.salary_rule_id.account_credit.id - debit_line = (0,0,{ + debit_line = (0, 0, { 'name': line.name, + 'date': timenow, + 'partner_id': partner_id, 'account_id': debit_account_id, + 'journal_id': slip.journal_id.id, + 'period_id': period_id, 'debit': amt > 0.0 and amt or 0.0, 'credit': amt < 0.0 and -amt or 0.0, - 'date': timenow, - 'journal_id': slip.journal_id.id, - 'period_id': period_id, }) - credit_line = (0,0,{ + credit_line = (0, 0, { + 'name': line.name, 'date': timenow, - 'journal_id': slip.journal_id.id, - 'period_id': period_id, - 'name': name, 'partner_id': partner_id, 'account_id': credit_account_id, + 'journal_id': slip.journal_id.id, + 'period_id': period_id, 'debit': amt < 0.0 and -amt or 0.0, 'credit': amt > 0.0 and amt or 0.0, }) @@ -139,35 +127,37 @@ class hr_payslip(osv.osv): if credit_account_id: line_ids.append(credit_line) credit_sum += credit_line[2]['credit'] - + if debit_sum > credit_sum: - adjust_credit = (0,0,{ - 'date': timenow, - 'journal_id': slip.journal_id.id, - 'period_id': period_id, + adjust_credit = (0, 0, { 'name': _('Adjustment Entry'), + 'date': timenow, 'partner_id': partner_id, 'account_id': slip.journal_id.default_credit_account_id.id, + 'journal_id': slip.journal_id.id, + 'period_id': period_id, 'debit': 0.0, 'credit': debit_sum - credit_sum, }) line_ids.append(adjust_credit) elif debit_sum < credit_sum: - adjust_debit = (0,0,{ - 'date': timenow, - 'journal_id': slip.journal_id.id, - 'period_id': period_id, + adjust_debit = (0, 0, { 'name': _('Adjustment Entry'), + 'date': timenow, 'partner_id': partner_id, 'account_id': slip.journal_id.default_debit_account_id.id, + 'journal_id': slip.journal_id.id, + 'period_id': period_id, 'debit': credit_sum - debit_sum, 'credit': 0.0 }) line_ids.append(adjust_debit) - + move.update({'line_id': line_ids}) move_id = move_pool.create(cr, uid, move, context=context) self.write(cr, uid, [slip.id], {'move_id': move_id}, context=context) + if slip.journal_id.entry_posted: + move_pool.post(cr, uid, [move_id], context=context) return super(hr_payslip, self).process_sheet(cr, uid, [slip.id], context=context) #TODO: to clean: the verofying doesn't do anything in the accounting.. diff --git a/addons/hr_payroll_account/hr_payroll_account_view.xml b/addons/hr_payroll_account/hr_payroll_account_view.xml index 9b9895c31a7..825fac9cab4 100644 --- a/addons/hr_payroll_account/hr_payroll_account_view.xml +++ b/addons/hr_payroll_account/hr_payroll_account_view.xml @@ -18,19 +18,6 @@ - - hr.contribution.register.inherit.form - hr.contribution.register - - form - - - - - - - - @@ -40,10 +27,10 @@ - - - - + + + + @@ -57,11 +44,11 @@ form - - - - - + + + + +