You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
1.3 KiB
25 lines
1.3 KiB
# -*- coding: utf-8 -*-
|
|
from datetime import datetime
|
|
from openerp import models
|
|
|
|
|
|
class SalaryRuleInput(models.Model):
|
|
_inherit = 'hr.payslip'
|
|
|
|
def get_inputs(self, cr, uid, contract_ids, date_from, date_to, context=None):
|
|
res = super(SalaryRuleInput, self).get_inputs(cr, uid, contract_ids, date_from, date_to, context=None)
|
|
contract_obj = self.pool.get('hr.contract')
|
|
emp_id = contract_obj.browse(cr, uid, contract_ids[0], context=context).employee_id.name
|
|
adv_salary = self.pool.get('salary.advance').search(cr, uid, [('employee_id', '=', emp_id)])
|
|
for each_employee in adv_salary:
|
|
current_date = datetime.strptime(date_from, '%Y-%m-%d').date().month
|
|
date = self.pool.get('salary.advance').browse(cr, uid, each_employee, context).date
|
|
existing_date = datetime.strptime(date, '%Y-%m-%d').date().month
|
|
if current_date == existing_date:
|
|
adv_browse = self.pool.get('salary.advance').browse(cr, uid, each_employee, context)
|
|
state = adv_browse.state
|
|
amount = adv_browse.advance
|
|
for result in res:
|
|
if state == 'approved' and amount != 0 and result.get('code') == 'SAR':
|
|
result['amount'] = amount
|
|
return res
|
|
|