Skip to content

Commit

Permalink
[FIX] l10n_ke_edi_tremol: currency rate zero division error
Browse files Browse the repository at this point in the history
When posting an invoice to the fiscal device, the currency rate is
calculated from an invoice line by dividing its balance by the lines
subtotal. This is because the balance in the database will be in
KES (Kenyan shillings), whereas the currency on the line can differ.

From v16.0 onwards the way that a line is retrieved in order to
calculate the currency rate incorrect. When (for example) an invoice has
'Section' lines, then a division by zero is attempted (resulting in a
zero division error).

This commit amends the line so that the first line of the previously
assigned 'lines' variable is used instead. This variable contains only
valid invoice lines (non-zero, non-display type etc). It is already done
this way from v15.0 onwards (up to v16.0).

closes odoo#110143

Signed-off-by: Josse Colpaert <[email protected]>
  • Loading branch information
dbkosky committed Jan 17, 2023
1 parent bb55e72 commit 4e0374f
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion addons/l10n_ke_edi_tremol/models/account_move.py
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ def is_candidate(discount_line, other_line):
if self.currency_id == self.company_id.currency_id:
currency_rate = 1
else:
currency_rate = abs(self.invoice_line_ids[0].balance / self.invoice_line_ids[0].price_subtotal)
currency_rate = abs(lines[0].balance / lines[0].price_subtotal)

discount_dict = {line.id: line.discount for line in lines if line.price_total > 0}
for line in lines:
Expand Down

0 comments on commit 4e0374f

Please sign in to comment.