From 54338ff5a18c94263044b2109d094982b768423a Mon Sep 17 00:00:00 2001 From: Mustufa Rangwala Date: Wed, 20 Apr 2011 16:52:22 +0530 Subject: [PATCH 1/4] [FIX] payroll_account: fix bzr revid: mra@mra-laptop-20110420112222-l0ztdl70fxhyqs16 --- addons/hr_payroll_account/hr_payroll_account.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/addons/hr_payroll_account/hr_payroll_account.py b/addons/hr_payroll_account/hr_payroll_account.py index 7cd12a58c78..3f6010bd5ad 100644 --- a/addons/hr_payroll_account/hr_payroll_account.py +++ b/addons/hr_payroll_account/hr_payroll_account.py @@ -221,7 +221,7 @@ class hr_payslip(osv.osv): 'period_id': fields.many2one('account.period', 'Force Period', domain=[('state','<>','done')], help="Keep empty to use the period of the validation(Payslip) date."), 'account_move_ids': fields.many2many('account.move', 'payslip_move_rel', 'slip_id', 'move_id', 'Accounting Entries', readonly=True), } - + def get_payslip_lines(self, cr, uid, contract_ids, payslip_id, context): journal_obj = self.pool.get('account.journal') rule_obj = self.pool.get('hr.salary.rule') @@ -233,10 +233,9 @@ class hr_payslip(osv.osv): #get the rules of the structure and thier children rule_ids = structure_obj.get_all_rules(cr, uid, structure_ids, context=context) sorted_rule_ids = [id for id, sequence in sorted(rule_ids, key=lambda x:x[1])] - journal_id = [record.journal_id.id for record in self.browse(cr, uid, [payslip_id], context=context)] - for jou in journal_obj.browse(cr ,uid, journal_id, context=context): - credit_account = jou.default_credit_account_id.id - debit_account = jou.default_debit_account_id.id + journal = self.browse(cr, uid, payslip_id, context=context).journal_id.id + credit_account = journal.default_credit_account_id and journal.default_credit_account_id.id or False + debit_account = journal.default_debit_account_id and journal.default_debit_account_id.id or False for rule in rule_obj.browse(cr, uid, sorted_rule_ids, context=context): if not rule.account_debit.id: rule_obj.write(cr, uid, [rule.id], {'account_debit': debit_account}) @@ -260,7 +259,7 @@ class hr_payslip(osv.osv): if rule.analytic_account_id: value['analytic_account_id'] = rule.analytic_account_id.id return result - + def create_voucher(self, cr, uid, ids, name, voucher, sequence=5): slip_move = self.pool.get('hr.payslip.account.move') for slip in ids: @@ -307,11 +306,11 @@ class hr_payslip(osv.osv): partner = slip.employee_id.bank_account_id.partner_id partner_id = partner.id - + for line in slip.line_ids: if line.category_id.name == 'Net': amt = line.total - + fiscal_year_ids = fiscalyear_pool.search(cr, uid, [], context=context) if not fiscal_year_ids: raise osv.except_osv(_('Warning !'), _('Please define fiscal year for perticular contract')) @@ -736,7 +735,7 @@ class account_move_link_slip(osv.osv): account_move_link_slip() class hr_contract(osv.osv): - + _inherit = 'hr.contract' _description = 'Employee Contract' _columns = { From 4ef126925944901407871eb0b48f365e2a7d7639 Mon Sep 17 00:00:00 2001 From: Mustufa Rangwala Date: Wed, 20 Apr 2011 17:08:47 +0530 Subject: [PATCH 2/4] [FIX] payroll_account: improve code bzr revid: mra@mra-laptop-20110420113847-fu562g080n3svr8b --- addons/hr_payroll_account/hr_payroll_account.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/addons/hr_payroll_account/hr_payroll_account.py b/addons/hr_payroll_account/hr_payroll_account.py index 3f6010bd5ad..affe06c8499 100644 --- a/addons/hr_payroll_account/hr_payroll_account.py +++ b/addons/hr_payroll_account/hr_payroll_account.py @@ -282,10 +282,8 @@ class hr_payslip(osv.osv): if line.move_id.state == 'posted': move_pool.button_cancel(cr, uid [line.move_id.id], context) move_pool.unlink(cr, uid, [line.move_id.id], context=context) - slip_move.unlink(cr, uid, move_ids, context=context) - self.write(cr, uid, ids, {'state':'cancel'}, context=context) - return True + return self.write(cr, uid, ids, {'state':'cancel'}, context=context) def process_sheet(self, cr, uid, ids, context=None): move_pool = self.pool.get('account.move') @@ -446,12 +444,10 @@ class hr_payslip(osv.osv): return True def account_check_sheet(self, cr, uid, ids, context=None): - self.write(cr, uid, ids, {'state':'accont_check'}, context=context) - return True + return self.write(cr, uid, ids, {'state':'accont_check'}, context=context) def hr_check_sheet(self, cr, uid, ids, context=None): - self.write(cr, uid, ids, {'state':'hr_check'}, context=context) - return True + return self.write(cr, uid, ids, {'state':'hr_check'}, context=context) def verify_sheet(self, cr, uid, ids, context=None): move_pool = self.pool.get('account.move') From 956f12eccd494afeac364f01e3b2a481f327e308 Mon Sep 17 00:00:00 2001 From: mtr Date: Wed, 20 Apr 2011 18:55:08 +0530 Subject: [PATCH 3/4] [IMP] hr_payroll_account: assign journal on payslip with contract journal bzr revid: mtr@mtr-20110420132508-7u5lry0mkq9533a9 --- addons/hr_payroll_account/hr_payroll_account.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/addons/hr_payroll_account/hr_payroll_account.py b/addons/hr_payroll_account/hr_payroll_account.py index affe06c8499..1c7cd5735bb 100644 --- a/addons/hr_payroll_account/hr_payroll_account.py +++ b/addons/hr_payroll_account/hr_payroll_account.py @@ -221,6 +221,13 @@ class hr_payslip(osv.osv): 'period_id': fields.many2one('account.period', 'Force Period', domain=[('state','<>','done')], help="Keep empty to use the period of the validation(Payslip) date."), 'account_move_ids': fields.many2many('account.move', 'payslip_move_rel', 'slip_id', 'move_id', 'Accounting Entries', readonly=True), } + + def onchange_contract_id(self, cr, uid, ids, date_from, date_to, employee_id=False, contract_id=False, context=None): + contract_obj = self.pool.get('hr.contract') + res = super(hr_payslip, self).onchange_contract_id(cr, uid, ids, date_from=date_from, date_to=date_to, employee_id=employee_id, contract_id=contract_id, context=context) + journal_id = contract_obj.browse(cr, uid, contract_id, context=context).journal_id.id + res['value'].update({'journal_id': journal_id}) + return res def get_payslip_lines(self, cr, uid, contract_ids, payslip_id, context): journal_obj = self.pool.get('account.journal') From 398f82a1b1b3e511825e8e11e549d9f575ac6877 Mon Sep 17 00:00:00 2001 From: mtr Date: Wed, 20 Apr 2011 19:00:58 +0530 Subject: [PATCH 4/4] [IMP] hr_payroll_account: code cleaning bzr revid: mtr@mtr-20110420133058-wrt4tzupai4osgfs --- addons/hr_payroll_account/hr_payroll_account.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/hr_payroll_account/hr_payroll_account.py b/addons/hr_payroll_account/hr_payroll_account.py index 1c7cd5735bb..231a8b8d837 100644 --- a/addons/hr_payroll_account/hr_payroll_account.py +++ b/addons/hr_payroll_account/hr_payroll_account.py @@ -240,7 +240,7 @@ class hr_payslip(osv.osv): #get the rules of the structure and thier children rule_ids = structure_obj.get_all_rules(cr, uid, structure_ids, context=context) sorted_rule_ids = [id for id, sequence in sorted(rule_ids, key=lambda x:x[1])] - journal = self.browse(cr, uid, payslip_id, context=context).journal_id.id + journal = self.browse(cr, uid, payslip_id, context=context).journal_id credit_account = journal.default_credit_account_id and journal.default_credit_account_id.id or False debit_account = journal.default_debit_account_id and journal.default_debit_account_id.id or False for rule in rule_obj.browse(cr, uid, sorted_rule_ids, context=context): @@ -261,8 +261,8 @@ class hr_payslip(osv.osv): else: value['account_id'] = rule.account_credit.id else: - emp_account_id = [record.employee_id.employee_account.id for record in self.browse(cr, uid, [payslip_id], context=context)] - value['account_id'] = emp_account_id[0] + emp_account_id = self.browse(cr, uid, payslip_id, context=context).employee_id.employee_account.id + value['account_id'] = emp_account_id if rule.analytic_account_id: value['analytic_account_id'] = rule.analytic_account_id.id return result