From 94aac2ed5a5f021ab4eadde2efb5e6d0e97403ab Mon Sep 17 00:00:00 2001 From: Julien Van Roy <juvr@odoo.com> Date: Wed, 30 Aug 2023 12:01:38 +0200 Subject: [PATCH] [FIX] account_edi_ubl_cii: line id start at 1 in UBL In Saudi Arabia, the InvoiceLine/ID should not be greater than 6 digits. Using the move.line_id, this limit can be exceeded. Simply count the invoice line ids starting from 1 instead. In master, add a parameter `line_id` to `_get_invoice_line_vals`. closes odoo/odoo#133590 Signed-off-by: Josse Colpaert <jco@odoo.com> --- .../models/account_edi_xml_ubl_20.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/addons/account_edi_ubl_cii/models/account_edi_xml_ubl_20.py b/addons/account_edi_ubl_cii/models/account_edi_xml_ubl_20.py index 1f1082e93453..0fae3fe1088a 100644 --- a/addons/account_edi_ubl_cii/models/account_edi_xml_ubl_20.py +++ b/addons/account_edi_ubl_cii/models/account_edi_xml_ubl_20.py @@ -327,15 +327,9 @@ class AccountEdiXmlUBL20(models.AbstractModel): return { 'currency': line.currency_id, 'currency_dp': line.currency_id.decimal_places, - - # The requirement is the id has to be unique by invoice line. - 'id': line.id, - 'invoiced_quantity': line.quantity, 'invoiced_quantity_attrs': {'unitCode': uom}, - 'line_extension_amount': line.price_subtotal + total_fixed_tax_amount, - 'allowance_charge_vals': allowance_charge_vals_list, 'tax_total_vals': self._get_invoice_tax_totals_vals_list(line.move_id, taxes_vals), 'item_vals': self._get_invoice_line_item_vals(line, taxes_vals), @@ -382,9 +376,11 @@ class AccountEdiXmlUBL20(models.AbstractModel): invoice_lines = invoice.invoice_line_ids.filtered(lambda line: not line.display_type) document_allowance_charge_vals_list = self._get_document_allowance_charge_vals_list(invoice) invoice_line_vals_list = [] - for line in invoice_lines: + for line_id, line in enumerate(invoice_lines): line_taxes_vals = taxes_vals['invoice_line_tax_details'][line] line_vals = self._get_invoice_line_vals(line, line_taxes_vals) + if not line_vals.get('id'): + line_vals['id'] = line_id + 1 invoice_line_vals_list.append(line_vals) line_extension_amount += line_vals['line_extension_amount'] -- GitLab