diff --git a/liquidation.py b/liquidation.py index 56866c5..cfd1336 100644 --- a/liquidation.py +++ b/liquidation.py @@ -573,25 +573,27 @@ class Liquidation(Workflow, ModelSQL, ModelView): moves = [p.move.id for p in payrolls] for payroll in payrolls: for l in payroll.lines: - if not l.wage_type.contract_finish and not l.wage_type.provision_cancellation: - continue - if self.kind == 'contract': - if l.wage_type.type_concept not in CONTRACT: + wage = l.wage_type + if l.wage_type.contract_finish or l.wage_type.provision_cancellation: + if l.wage_type.provision_cancellation and not l.wage_type.contract_finish: + wage = l.wage_type.provision_cancellation + if self.kind == 'contract': + if wage.type_concept not in CONTRACT: + continue + elif self.kind != wage.type_concept: continue - elif self.kind != l.wage_type.type_concept: - continue - if l.wage_type.id not in wages_target.keys(): - mlines = self.get_moves_lines_pending( - payroll.employee, l.wage_type, date_end, moves - ) - if not mlines: - continue - wages_target[l.wage_type.id] = [ - l.wage_type.credit_account.id, - mlines, - l.wage_type, - ] + if wage.id not in wages_target.keys(): + mlines = self.get_moves_lines_pending( + payroll.employee, wage, date_end, moves + ) + if not mlines: + continue + wages_target[wage.id] = [ + wage.credit_account.id, + mlines, + wage, + ] for (account_id, lines, wage_type) in wages_target.values(): values = []