minor fix

This commit is contained in:
Wilson Gomez 2023-03-27 10:54:02 -05:00
parent 4226478216
commit 042a4a1452
1 changed files with 22 additions and 20 deletions

View File

@ -163,9 +163,11 @@ class Payroll(metaclass=PoolMeta):
return
self.date_effective = self.period.end
self.on_change_employee()
period_start = self.period.start
period_end = self.period.end
# Search last contract
contract = self.search_contract_on_period(self.employee, self.period)
contract = self.search_contract_on_period(self.employee.id, period_start, period_end)
start_date = None
end_date = None
@ -173,32 +175,32 @@ class Payroll(metaclass=PoolMeta):
contract_end_date = None
if contract:
if not contract.end_date:
end_date = self.period.end
end_date = period_end
if self.period.start >= contract.start_date:
start_date = self.period.start
elif contract.start_date >= self.period.start and \
contract.start_date <= self.period.end:
if period_start >= contract.start_date:
start_date = period_start
elif contract.start_date >= period_start and \
contract.start_date <= period_end:
start_date = contract.start_date
else:
contract_end_date = contract.finished_date if contract.finished_date else contract.end_date
if contract.start_date <= self.period.start and \
contract_end_date >= self.period.end:
start_date = self.period.start
end_date = self.period.end
elif contract.start_date >= self.period.start and \
contract_end_date <= self.period.end:
if contract.start_date <= period_start and \
contract_end_date >= period_end:
start_date = period_start
end_date = period_end
elif contract.start_date >= period_start and \
contract_end_date <= period_end:
start_date = contract.start_date
end_date = contract_end_date
elif contract.start_date >= self.period.start and \
contract.start_date <= self.period.end and \
contract_end_date >= self.period.end:
elif contract.start_date >= period_start and \
contract.start_date <= period_end and \
contract_end_date >= period_end:
start_date = contract.start_date
end_date = self.period.end
elif contract.start_date <= self.period.start and \
contract_end_date >= self.period.start and \
contract_end_date <= self.period.end:
start_date = self.period.start
end_date = period_end
elif contract.start_date <= period_start and \
contract_end_date >= period_start and \
contract_end_date <= period_end:
start_date = period_start
end_date = contract_end_date
if start_date and end_date: