[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
This commit is contained in:
Maximilien (malb)
2024-04-19 23:49:53 +00:00
parent 9c4c4b65ba
commit 28fdcaabda
2 changed files with 27 additions and 7 deletions
+20 -7
View File
@@ -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)
@@ -70,6 +70,13 @@
<span>|</span> <span t-field="company.country_id.name"/>
</t>
<hr class="company_invoice_line" />
<t t-if="o and 'l10n_din5008_addresses' in o" t-set="address">
<address class="mb-0" t-field="o.partner_id.commercial_partner_id" t-options='{"widget": "contact", "fields": ["address", "name", "phone"], "no_marker": True}'/>
<div t-if="o.partner_id.commercial_partner_id.vat" id="partner_vat_address_same_as_shipping">
<t t-if="o.company_id.account_fiscal_country_id.vat_label" t-out="o.company_id.account_fiscal_country_id.vat_label" id="inv_tax_id_label"/>
<t t-else="">Tax ID</t>: <span t-field="o.partner_id.commercial_partner_id.vat"/>
</div>
</t>
<div t-if="address">
<t t-out="address"/>
</div>