Tower: upload laundry_management 19.0.19.0.4 (via marketplace)

This commit is contained in:
2026-05-01 15:00:43 +00:00
parent 6e56dc2437
commit 008ca2b8a7

View File

@@ -0,0 +1,105 @@
<?xml version="1.0" encoding="UTF-8"?>
<templates id="template" xml:space="preserve">
<!-- ─────────────────────────────────────────────────────────────
Reusable receipt details block for laundry orders.
Renders only when at least one of type / attributes / delivery
is present — otherwise renders nothing. RTL/LTR safe.
───────────────────────────────────────────────────────────── -->
<t t-name="laundry_management.LaundryReceiptDetails">
<div class="laundry-receipt-details" t-if="hasContent">
<div class="laundry-receipt-details__sep"/>
<div class="laundry-receipt-details__title">Order Details</div>
<div t-if="orderType" class="laundry-receipt-details__row">
<span class="laundry-receipt-details__label">Type</span>
<span class="laundry-receipt-details__value">
<t t-if="isUrgent"></t>
<t t-elif="orderType.is_delivery">🚚 </t>
<t t-esc="orderType.name"/>
</span>
</div>
<div t-if="attributes.length" class="laundry-receipt-details__row">
<span class="laundry-receipt-details__label">Attributes</span>
<span class="laundry-receipt-details__value">
<t t-foreach="attributes" t-as="attr" t-key="attr.id">
<span class="laundry-receipt-details__chip">
<t t-esc="attr.name"/>
</span>
</t>
</span>
</div>
<t t-if="isDelivery">
<div class="laundry-receipt-details__row">
<span class="laundry-receipt-details__label">Delivery</span>
<span class="laundry-receipt-details__value">🚚 Yes</span>
</div>
<div t-if="deliveryAddress" class="laundry-receipt-details__row">
<span class="laundry-receipt-details__label">Address</span>
<span class="laundry-receipt-details__value" t-esc="deliveryAddress"/>
</div>
<div t-if="deliveryScheduledAt" class="laundry-receipt-details__row">
<span class="laundry-receipt-details__label">Scheduled</span>
<span class="laundry-receipt-details__value" t-esc="deliveryScheduledAt"/>
</div>
</t>
<div class="laundry-receipt-details__sep"/>
</div>
</t>
<!-- ─────────────────────────────────────────────────────────────
Inject the details block + the (legacy) settlement block
into the core OrderReceipt template.
───────────────────────────────────────────────────────────── -->
<t t-name="laundry_management.OrderReceipt"
t-inherit="point_of_sale.OrderReceipt"
t-inherit-mode="extension">
<xpath expr="//div[hasclass('pos-receipt')]" position="inside">
<LaundryReceiptDetails order="order"/>
<t t-if="order.laundry_settlement_info">
<div class="pos-receipt-laundry-settlement mt-2 pt-2"
style="border-top: 1px dashed #000;">
<div class="text-center fw-bold mb-1">Laundry Dues Payment</div>
<div class="small">
Customer: <t t-esc="order.laundry_settlement_info.partnerName"/>
</div>
<div class="small mb-1">
Total outstanding:
<span t-esc="order.laundry_settlement_info.totalDue.toFixed(2)"/>
</div>
<table class="w-100 small">
<thead>
<tr>
<th class="text-start">Order</th>
<th class="text-end">Due</th>
</tr>
</thead>
<tbody>
<t t-foreach="order.laundry_settlement_info.orders"
t-as="lorder" t-key="lorder.name">
<tr>
<td class="text-start" t-esc="lorder.name"/>
<td class="text-end" t-esc="lorder.amount_due.toFixed(2)"/>
</tr>
</t>
</tbody>
</table>
<div class="d-flex justify-content-between fw-bold mt-1">
<span>Paid now:</span>
<span t-esc="order.laundry_settlement_info.amount.toFixed(2)"/>
</div>
<div class="d-flex justify-content-between">
<span>Remaining balance:</span>
<span t-esc="order.laundry_settlement_info.remaining.toFixed(2)"/>
</div>
</div>
</t>
</xpath>
</t>
</templates>