When you have Salary Rule with code = 'LOAN' and in your Payslip you have multiple (2,3,4) inputs with input code = 'LOAN', Salary computation repeats the rule computation by x times.
I can't seem to replicate it copying code from
module: hr_payroll
model: hr.payslip in file hr_payslip
function: def _get_payslip_lines(self):
and creating a function _get_payslip_lines_test does not seem to duplicate the entry but calling _get_payslip_lines itself duplicates the entry.
Workaround: make sure Rule codes are not same as Input codes. I don't know if this is a bug or a feature.