[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:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user