From b6be57e58fb1b9f6eaa6e11077f59f5048d1cf68 Mon Sep 17 00:00:00 2001 From: git_admin Date: Fri, 1 May 2026 15:00:25 +0000 Subject: [PATCH] Tower: upload laundry_management 19.0.19.0.4 (via marketplace) --- .../static/src/js/laundry_thermal_receipt.js | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 addons/laundry_management/static/src/js/laundry_thermal_receipt.js diff --git a/addons/laundry_management/static/src/js/laundry_thermal_receipt.js b/addons/laundry_management/static/src/js/laundry_thermal_receipt.js new file mode 100644 index 0000000..4a4df66 --- /dev/null +++ b/addons/laundry_management/static/src/js/laundry_thermal_receipt.js @@ -0,0 +1,47 @@ +/** @odoo-module + * + * LaundryWorkOrderThermal — receipt-style component for the POS printer. + * + * Rendered by `pos.printer.print(LaundryWorkOrderThermal, {data}, {webPrintFallback: true})`. + * The data payload comes from `laundry.order.pos_get_thermal_data` — + * a self-contained dict so this component never reads from the POS env. + * + * Styling lives in laundry_pos.scss under `.laundry-thermal`. The + * `webPrintFallback` option means this component also works when no + * hardware printer is configured: POS opens a print preview in a new + * tab using the same DOM. + */ +import { Component } from "@odoo/owl"; + +export class LaundryWorkOrderThermal extends Component { + static template = "laundry_management.LaundryWorkOrderThermal"; + static props = { + data: { type: Object }, + }; + + fmt(amount) { + return parseFloat(amount || 0).toFixed(2); + } + + fmtDate(s) { + if (!s) return ""; + try { + const d = new Date(s.replace(" ", "T") + "Z"); + if (!isNaN(d.getTime())) return d.toLocaleString(); + } catch (_e) { /* fall through */ } + return s; + } + + get currency() { + const sym = this.props.data?.currency_symbol || ""; + const pos = this.props.data?.currency_position || "after"; + return { sym, pos }; + } + + money(amount) { + const v = this.fmt(amount); + const { sym, pos } = this.currency; + if (!sym) return v; + return pos === "before" ? `${sym} ${v}` : `${v} ${sym}`; + } +}