From 28fdcaabda9dc61b352e58e692bc5adf15a08a1e Mon Sep 17 00:00:00 2001 From: "Maximilien (malb)" Date: Wed, 10 Apr 2024 09:16:09 +0200 Subject: [PATCH] [IMP] l10n_din5008: address display Before this commit, we always had the address of the partner even if the address were the same. Now, depending on the address in the customer field or delivery address, we can decide to display the invoicing address or shipping address or both. Task: 3817563 Part-of: odoo/odoo#162557 --- addons/l10n_din5008/models/account_move.py | 27 ++++++++++++++----- addons/l10n_din5008/report/din5008_report.xml | 7 +++++ 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/addons/l10n_din5008/models/account_move.py b/addons/l10n_din5008/models/account_move.py index 8dbdf0c6098..07da9b1f499 100644 --- a/addons/l10n_din5008/models/account_move.py +++ b/addons/l10n_din5008/models/account_move.py @@ -45,13 +45,26 @@ class AccountMove(models.Model): def _compute_l10n_din5008_addresses(self): for record in self: record.l10n_din5008_addresses = data = [] - if record.partner_shipping_id == record.partner_id: - data.append((_("Invoicing and Shipping Address:"), record.partner_shipping_id)) - elif record.move_type in ("in_invoice", "in_refund") or not record.partner_shipping_id: - data.append((_("Invoicing and Shipping Address:"), record.partner_id)) - else: - data.append((_("Shipping Address:"), record.partner_shipping_id)) - data.append((_("Invoicing Address:"), record.partner_id)) + commercial_partner = record.partner_id.commercial_partner_id + delivery_partner = record.partner_shipping_id + invoice_partner = record.partner_id + + different_partner_count = len({partner.id for partner in [commercial_partner, delivery_partner, invoice_partner] if partner}) + # To avoid repetition in the address block. + if different_partner_count <= 1: + continue + elif different_partner_count == 3: + data.extend([(_("Shipping Address:"), delivery_partner), (_("Invoicing Address:"), invoice_partner)]) + continue + elif commercial_partner == invoice_partner: + data.append((_("Shipping Address:"), delivery_partner)) + continue + elif commercial_partner == delivery_partner: + data.append((_("Invoicing Address:"), invoice_partner)) + continue + elif invoice_partner == delivery_partner: + data.append((_("Invoicing and Shipping Address:"), invoice_partner)) + continue def check_field_access_rights(self, operation, field_names): field_names = super().check_field_access_rights(operation, field_names) diff --git a/addons/l10n_din5008/report/din5008_report.xml b/addons/l10n_din5008/report/din5008_report.xml index 96521923de5..cb97fbd4514 100644 --- a/addons/l10n_din5008/report/din5008_report.xml +++ b/addons/l10n_din5008/report/din5008_report.xml @@ -70,6 +70,13 @@ |
+ +
+
+ + Tax ID: +
+