diff options
4 files changed, 11 insertions, 7 deletions
diff --git a/addons/point_of_sale/static/src/css/pos.css b/addons/point_of_sale/static/src/css/pos.css index 6853fce5d8c..3c9798779c1 100644 --- a/addons/point_of_sale/static/src/css/pos.css +++ b/addons/point_of_sale/static/src/css/pos.css @@ -2973,6 +2973,10 @@ td { color: white; } +.order-receipt-hidden { + display: none; +} + .order-receipt { color: white; font-size: medium; diff --git a/addons/point_of_sale/static/src/js/Screens/OrderManagementScreen/ControlButtons/ReprintReceiptButton.js b/addons/point_of_sale/static/src/js/Screens/OrderManagementScreen/ControlButtons/ReprintReceiptButton.js index 913f98af4e6..5878e96294e 100644 --- a/addons/point_of_sale/static/src/js/Screens/OrderManagementScreen/ControlButtons/ReprintReceiptButton.js +++ b/addons/point_of_sale/static/src/js/Screens/OrderManagementScreen/ControlButtons/ReprintReceiptButton.js @@ -6,7 +6,6 @@ odoo.define('point_of_sale.ReprintReceiptButton', function (require) { const PosComponent = require('point_of_sale.PosComponent'); const OrderManagementScreen = require('point_of_sale.OrderManagementScreen'); const Registries = require('point_of_sale.Registries'); - const OrderReceipt = require('point_of_sale.OrderReceipt'); const contexts = require('point_of_sale.PosContext'); class ReprintReceiptButton extends PosComponent { @@ -20,10 +19,7 @@ odoo.define('point_of_sale.ReprintReceiptButton', function (require) { if (!order) return; if (this.env.pos.proxy.printer) { - const fixture = document.createElement('div'); - const orderReceipt = new (Registries.Component.get(OrderReceipt))(this, { order }); - await orderReceipt.mount(fixture); - const receiptHtml = orderReceipt.el.outerHTML; + const receiptHtml = this.props.hiddenOrderReceipt.el.outerHTML; const printResult = await this.env.pos.proxy.printer.print_receipt(receiptHtml); if (!printResult.successful) { this.showTempScreen('ReprintReceiptScreen', { order: order }); diff --git a/addons/point_of_sale/static/src/js/Screens/OrderManagementScreen/OrderManagementScreen.js b/addons/point_of_sale/static/src/js/Screens/OrderManagementScreen/OrderManagementScreen.js index 4ce88054e25..429d4f91f83 100644 --- a/addons/point_of_sale/static/src/js/Screens/OrderManagementScreen/OrderManagementScreen.js +++ b/addons/point_of_sale/static/src/js/Screens/OrderManagementScreen/OrderManagementScreen.js @@ -1,7 +1,7 @@ odoo.define('point_of_sale.OrderManagementScreen', function (require) { 'use strict'; - const { useContext } = owl.hooks; + const { useContext, useRef } = owl.hooks; const { useListener } = require('web.custom_hooks'); const ControlButtonsMixin = require('point_of_sale.ControlButtonsMixin'); const NumberBuffer = require('point_of_sale.NumberBuffer'); @@ -27,6 +27,7 @@ odoo.define('point_of_sale.OrderManagementScreen', function (require) { OrderFetcher.setComponent(this); OrderFetcher.setConfigId(this.env.pos.config_id); this.orderManagementContext = useContext(contexts.orderManagement); + this.receiptRef = useRef('order-receipt'); } mounted() { OrderFetcher.on('update', this, this.render); diff --git a/addons/point_of_sale/static/src/xml/Screens/OrderManagementScreen/OrderManagementScreen.xml b/addons/point_of_sale/static/src/xml/Screens/OrderManagementScreen/OrderManagementScreen.xml index 8992e2c80ee..94d7358e7fe 100644 --- a/addons/point_of_sale/static/src/xml/Screens/OrderManagementScreen/OrderManagementScreen.xml +++ b/addons/point_of_sale/static/src/xml/Screens/OrderManagementScreen/OrderManagementScreen.xml @@ -9,7 +9,7 @@ <div class="pads"> <div class="control-buttons"> <t t-foreach="controlButtons" t-as="cb" t-key="cb.name"> - <t t-component="cb.component" t-key="cb.name" /> + <t t-component="cb.component" t-key="cb.name" hiddenOrderReceipt="receiptRef"/> </t> </div> <div class="subpads"> @@ -26,6 +26,9 @@ </div> </div> <MobileOrderManagementScreen t-else="" /> + <div class="order-receipt-hidden"> + <OrderReceipt t-if="orderManagementContext.selectedOrder" order="orderManagementContext.selectedOrder" t-ref="order-receipt" /> + </div> </div> </t> |
