[FIX] account: rounding error when the balanced operation done in bank statement reconciliation is converted to the company currency.
This commit is contained in:
parent
d13ca06c8e
commit
25429656c7
|
@ -811,6 +811,15 @@ class account_bank_statement_line(osv.osv):
|
|||
prorata_factor = (mv_line_dict['debit'] - mv_line_dict['credit']) / st_line.amount_currency
|
||||
mv_line_dict['amount_currency'] = prorata_factor * st_line.amount
|
||||
to_create.append(mv_line_dict)
|
||||
# If the reconciliation is performed in another currency than the company currency, the amounts are converted to get the right debit/credit.
|
||||
# If there is more than 1 debit and 1 credit, this can induce a rounding error, which we put in the foreign exchane gain/loss account.
|
||||
if st_line_currency.id != company_currency.id:
|
||||
diff_amount = bank_st_move_vals['debit'] - bank_st_move_vals['credit'] \
|
||||
+ sum(aml['debit'] for aml in to_create) - sum(aml['credit'] for aml in to_create)
|
||||
if not company_currency.is_zero(diff_amount):
|
||||
diff_aml = self.get_currency_rate_line(cr, uid, st_line, diff_amount, move_id, context=context)
|
||||
diff_aml['name'] = _('Rounding error from currency conversion')
|
||||
to_create.append(diff_aml)
|
||||
# Create move lines
|
||||
move_line_pairs_to_reconcile = []
|
||||
for mv_line_dict in to_create:
|
||||
|
|
Loading…
Reference in New Issue