[FIX] l10n_es_pos: handle missing partner in the ReceiptHeader template

Currently, if you have Spanish POS installed and create a Cash In/Out,
you are met with an error.

Steps to reproduce
------------------
* install `l10n_es_pos`
* start a POS session
* click on the hamburger button in the top-right corner > Cash In/Out
* add any amount and confirm

You should be met with an error.

Fix
---
At first glance, the original condition:
```
partner?.id !== props.data.simplified_partner_id
```

and the revised condition:
```
partner && partner.id !== props.data.simplified_partner_id
```

might seem equivalent. However, they behave differently when `partner`
is `null` or `undefined`.

In the original condition, the optional chaining operator evaluates
to `undefined`, leading to the following `undefined !==
props.data.simplified_partner_id` (which is most likely true).

The revised condition will shorcircuit when `partner` is falsy, ensuring
that the code only executes when `partner` is a truthy object.

opw-3667287

closes odoo/odoo#148688

Signed-off-by: John Laterre (jol) <jol@odoo.com>
This commit is contained in:
sesn-odoo
2024-01-16 18:00:21 +00:00
parent 6597672736
commit 5afc1af40e
@@ -16,7 +16,7 @@
</xpath>
<xpath expr="//div[hasclass('pos-receipt-contact')]" position="inside">
<t t-set="partner" t-value="props.data.partner"/>
<t t-if="props.data.is_spanish and partner?.id !== props.data.simplified_partner_id">
<t t-if="props.data.is_spanish and partner and partner.id !== props.data.simplified_partner_id">
<div>Customer: <t t-esc="partner.name" /></div>
<div t-if="partner.vat"><t t-esc="props.data.company.country?.vat_label || 'Tax ID'"/>: <t t-esc="partner.vat" /></div>
<div t-if="partner.address" t-esc="partner.address"/>