Hello, I have been stuck trying to update the payslip name generated when the employee is changed;
This is my code:
def onchange_employee_id(self, date_from, date_to, employee_id=False, contract_id=False):
# defaults
res = {
'value': {
'line_ids': [],
# delete old input lines
'input_line_ids': [(2, x,) for x in self.input_line_ids.ids],
# delete old worked days lines
'worked_days_line_ids': [(2, x,) for x in self.worked_days_line_ids.ids],
# 'details_by_salary_head':[], TODO put me back
'name': '',
'contract_id': False,
'struct_id': False,
}
}
if (not employee_id) or (not date_from) or (not date_to):
return res
ttyme = datetime.combine(fields.Date.from_string(date_from), time.max)
employee = self.env['hr.employee'].browse(employee_id)
locale = self.env.context.get('lang') or 'en_US'
res['value'].update({
'name': _('Pay Slip of %s for %s') % (
employee.name, tools.ustr(babel.dates.format_date(date=ttyme, format='MMMM-y', locale=locale))),
'company_id': employee.company_id.id,
})
if not self.env.context.get('contract'):
# fill with the first contract of the employee
contract_ids = self.get_contract(employee, date_from, date_to)
else:
if contract_id:
# set the list of contract for which the input have to be filled
contract_ids = [contract_id]
else:
# if we don't give the contract, then the input to fill should be for all current contracts of the employee
contract_ids = self.get_contract(employee, date_from, date_to)
if not contract_ids:
return res
contract = self.env['hr.contract'].browse(contract_ids[0])
res['value'].update({
'contract_id': contract.id
})
struct = contract.struct_id
if not struct:
return res
res['value'].update({
'struct_id': struct.id,
})
# computation of the salary input
contracts = self.env['hr.contract'].browse(contract_ids)
worked_days_line_ids = self.get_worked_day_lines(contracts, date_from, date_to)
input_line_ids = self.get_inputs(contracts, date_from, date_to)
res['value'].update({
'worked_days_line_ids': worked_days_line_ids,
'input_line_ids': input_line_ids,
})
return res
>> I changed the original payslip name and the time function but still, nothing changes
Hello Sudir, thanks for the response. Any edit on the code doesn't seem to change anything on the payslip so I am beginning to think the file I am editing is the wrong file.
This is the location of the file I am editing - /odoo/custom/addons/hr_payroll_community/models/hr_payslip.py