[IMP] hr_payroll: add contract id on onchange on contract on payslip

bzr revid: mra@mra-laptop-20110323114112-2q1bvj1db1qtnpwz
This commit is contained in:
Mustufa Rangwala 2011-03-23 17:11:12 +05:30
parent 946dd1d299
commit 66d96e0cf1
2 changed files with 19 additions and 16 deletions

View File

@ -204,7 +204,7 @@ class payroll_register(osv.osv):
'date': vals.date,
}
slip_id = slip_pool.create(cr, uid, res, context=context)
data = slip_pool.onchange_employee_id(cr, uid, [slip_id], vals.date, emp.id, context=context)
data = slip_pool.onchange_employee_id(cr, uid, [slip_id], vals.date, emp.id, contract_id=False, context=context) # fix me can we pass contract_id ?
for line in data['value']['line_ids']:
line.update({'slip_id': slip_id})
slip_line_pool.create(cr, uid, line, context=context)
@ -890,7 +890,7 @@ class hr_payslip(osv.osv):
self.write(cr, uid, [slip.id], update, context=context)
return True
def onchange_employee_id(self, cr, uid, ids, ddate, employee_id=False, context=None):
def onchange_employee_id(self, cr, uid, ids, ddate, employee_id=False, contract_id=False, context=None):
func_pool = self.pool.get('hr.payroll.structure')
slip_line_pool = self.pool.get('hr.payslip.line')
salary_rule_pool = self.pool.get('hr.salary.rule')
@ -911,21 +911,24 @@ class hr_payslip(osv.osv):
return update
employee_id = empolyee_obj.browse(cr, uid, employee_id, context=context)
ttyme = datetime.fromtimestamp(time.mktime(time.strptime(ddate,"%Y-%m-%d")))
contracts = self.get_contract(cr, uid, employee_id, ddate, context=context)
if not contracts.get('id', False):
update['value'].update({
'basic_amount': 0.0,
'basic_before_leaves': 0.0,
'name':'Salary Slip of %s for %s' % (employee_id.name, tools.ustr(ttyme.strftime('%B-%Y'))),
'contract_id':False,
'company_id':employee_id.company_id.id
})
return update
ttyme = datetime.fromtimestamp(time.mktime(time.strptime(ddate, "%Y-%m-%d")))
if not contract_id:
contracts = self.get_contract(cr, uid, employee_id, ddate, context=context)
if not contracts.get('id', False):
update['value'].update({
'basic_amount': 0.0,
'basic_before_leaves': 0.0,
'name':'Salary Slip of %s for %s' % (employee_id.name, tools.ustr(ttyme.strftime('%B-%Y'))),
'contract_id':False,
'company_id':employee_id.company_id.id
})
return update
contract = employee_id.contract_id
else:
contract = self.pool.get('hr.contract').browse(cr, uid, contract_id, context=context)
contract = employee_id.contract_id
sal_structure = []
function = contract.struct_id.id
sal_structure = []
if function:
sal_structure = self._get_parent_structure(cr, uid, [function], context=context)

View File

@ -208,7 +208,7 @@
<field name="arch" type="xml">
<form string="Payslip">
<group col="6" colspan="4">
<field name="employee_id" on_change="onchange_employee_id(date, employee_id)"/>
<field name="employee_id" on_change="onchange_employee_id(date, employee_id, contract_id)"/>
<field name="name"/>
<field name="number"/>
<field name="date"/>