From 1c9d07f9309a6a8ce83111dbfe57d5806bf944ce Mon Sep 17 00:00:00 2001 From: Mahamadasif Ansari Date: Sat, 16 Sep 2023 19:36:52 +0530 Subject: [PATCH] [FIX] l10n_sa_edi: adapt code with new structure of field 'display_type' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently, errors occur when generating the e-invoicing for ZATCA (Saudi Arabia). This is because currently, users create invoices without a tax, but in Saudi Arabia, the invoice line must require at least one tax. The validation error is present at Line [1], but due to recent changes in Code [1], the validation is not working. As a result, the user can create an invoice line without tax. see https://github.com/odoo/odoo/pull/130034. This commit fixes the above issue by filtering invlocice line ids that have display_type 'product'. Line [1]-https://github.com/odoo/odoo/blob/d2f0a0f2c9a18a7a6cef8ca3be52324ad2a1dad6/addons/l10n_sa_edi/models/account_edi_format.py#L406 Code [1] odoo@d8d47f9#diff-78f3e1847de8ca0acf28d72a412947a549acdb08142d1dadf7646363d7972cb0R268-R280 sentry-4467808485, 4467794808 closes odoo/odoo#136568 X-original-commit: 6ee82c26483fabd7962ff4f421924c7330f9b70c Signed-off-by: de Wouters de Bouchout Jean-BenoƮt (jbw) Signed-off-by: ANSARI MAHAMADASIF (maan) --- addons/l10n_sa_edi/models/account_edi_format.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/l10n_sa_edi/models/account_edi_format.py b/addons/l10n_sa_edi/models/account_edi_format.py index 4209413c56b..faf90ed5919 100644 --- a/addons/l10n_sa_edi/models/account_edi_format.py +++ b/addons/l10n_sa_edi/models/account_edi_format.py @@ -281,7 +281,7 @@ class AccountEdiFormat(models.Model): fields_to_check = [] if any(tax.l10n_sa_exemption_reason_code in ('VATEX-SA-HEA', 'VATEX-SA-EDU') for tax in invoice.invoice_line_ids.filtered( - lambda line: not line.display_type).tax_ids): + lambda line: line.display_type == 'product').tax_ids): fields_to_check += [ ('l10n_sa_additional_identification_scheme', _('Additional Identification Scheme is required for the Buyer if tax exemption reason is either ' @@ -403,7 +403,7 @@ class AccountEdiFormat(models.Model): if invoice.commercial_partner_id == invoice.company_id.partner_id.commercial_partner_id: errors.append(_("- You cannot post invoices where the Seller is the Buyer")) - if not all(line.tax_ids for line in invoice.invoice_line_ids.filtered(lambda line: not line.display_type)): + if not all(line.tax_ids for line in invoice.invoice_line_ids.filtered(lambda line: line.display_type == 'product')): errors.append(_("- Invoice lines should have at least one Tax applied.")) if not journal._l10n_sa_ready_to_submit_einvoices():