diff options
| -rw-r--r-- | addons/point_of_sale/static/src/xml/pos.xml | 2 | ||||
| -rw-r--r-- | addons/pos_restaurant/static/src/js/printbill.js | 31 | ||||
| -rw-r--r-- | addons/pos_restaurant/static/src/xml/printbill.xml | 133 |
3 files changed, 19 insertions, 147 deletions
diff --git a/addons/point_of_sale/static/src/xml/pos.xml b/addons/point_of_sale/static/src/xml/pos.xml index d693c3f15cb..3a6353991ab 100644 --- a/addons/point_of_sale/static/src/xml/pos.xml +++ b/addons/point_of_sale/static/src/xml/pos.xml @@ -1003,7 +1003,7 @@ </t> <br/> - <div class="pos-receipt-amount"> + <div class="pos-receipt-amount receipt-change"> CHANGE <span t-esc='widget.format_currency_no_symbol(receipt.change)' class="pos-receipt-right-align"/> </div> diff --git a/addons/pos_restaurant/static/src/js/printbill.js b/addons/pos_restaurant/static/src/js/printbill.js index 233e25c757f..88966c72ec1 100644 --- a/addons/pos_restaurant/static/src/js/printbill.js +++ b/addons/pos_restaurant/static/src/js/printbill.js @@ -15,35 +15,30 @@ var BillScreenWidget = screens.ReceiptScreenWidget.extend({ click_back: function(){ this.gui.show_screen('products'); }, + get_receipt_render_env: function(){ + var render_env = this._super(); + render_env.receipt.bill = true; + return render_env; + }, render_receipt: function(){ this._super(); - this.$('.receipt-paymentlines').remove(); this.$('.receipt-change').remove(); }, - print_web: function(){ - window.print(); - }, }); gui.define_screen({name:'bill', widget: BillScreenWidget}); var PrintBillButton = screens.ActionButtonWidget.extend({ template: 'PrintBillButton', - print_html: function(){ - var order = this.pos.get('selectedOrder'); - if(order.get_orderlines().length > 0){ - var receipt = order.export_for_printing(); - receipt.bill = true; - this.pos.proxy.printer.print_receipt(QWeb.render('BillReceipt',{ - receipt: receipt, widget: this, pos: this.pos, order: order, - })); - } - }, button_click: function(){ - if (!this.pos.config.iface_print_via_proxy) { + var order = this.pos.get('selectedOrder'); + if(order.get_orderlines().length > 0) { this.gui.show_screen('bill'); } else { - this.print_html(); + this.gui.show_popup('error', { + 'title': _t('Nothing to Print'), + 'body': _t('There is no order lines'), + }); } }, }); @@ -51,12 +46,12 @@ var PrintBillButton = screens.ActionButtonWidget.extend({ screens.define_action_button({ 'name': 'print_bill', 'widget': PrintBillButton, - 'condition': function(){ + 'condition': function(){ return this.pos.config.iface_printbill; }, }); return { BillScreenWidget: BillScreenWidget, PrintBillButton: PrintBillButton, -} +}; }); diff --git a/addons/pos_restaurant/static/src/xml/printbill.xml b/addons/pos_restaurant/static/src/xml/printbill.xml index 3e64f249bf3..47fe78fd44f 100644 --- a/addons/pos_restaurant/static/src/xml/printbill.xml +++ b/addons/pos_restaurant/static/src/xml/printbill.xml @@ -33,135 +33,12 @@ </span> </t> - <t t-name="BillReceipt"> - <div class="pos-receipt"> - <t t-if='receipt.company.logo'> - <img class="pos-receipt-logo" t-att-src='receipt.company.logo' alt="Logo"/> - <br/> + <t t-extend="OrderReceipt"> + <t t-jquery='.pos-receipt-order-data' t-operation='append'> + <t t-if='receipt.bill === true'> + <div>PRO FORMA</div> </t> - <t t-if='!receipt.company.logo'> - <h1 class="pos-receipt-center-align"> - <t t-esc='receipt.company.name' /> - </h1> - <br/> - </t> - <div class="pos-receipt-contact"> - <t t-if='receipt.company.contact_address'> - <div><t t-esc='receipt.company.contact_address' /></div> - </t> - <t t-if='receipt.company.phone'> - <div>Tel:<t t-esc='receipt.company.phone' /></div> - </t> - <t t-if='receipt.company.vat'> - <div><t t-esc="receipt.company.vat_label or 'Tax ID'"/>:<t t-esc='receipt.company.vat' /></div> - </t> - <t t-if='receipt.company.email'> - <div><t t-esc='receipt.company.email' /></div> - </t> - <t t-if='receipt.company.website'> - <div><t t-esc='receipt.company.website' /></div> - </t> - <t t-if='receipt.header'> - <div><t t-esc='receipt.header' /></div> - </t> - <t t-if='receipt.cashier'> - <div class='cashier'> - <div>--------------------------------</div> - <div>Served by <t t-esc='receipt.cashier' /></div> - </div> - </t> - </div> - <br /><br /> - - <!-- Orderlines --> - - <div class='orderlines'> - <t t-foreach='receipt.orderlines' t-as='line'> - <t t-set='simple' t-value='line.discount === 0 and line.unit_name === "Units" and line.quantity === 1' /> - <t t-if='simple'> - <div> - <t t-esc='line.product_name' /> - <span t-esc='widget.format_currency_no_symbol(line.price_display)' class="pos-receipt-right-align"/> - </div> - </t> - <t t-if='!simple'> - <div><t t-esc='line.product_name' /></div> - <t t-if='line.discount !== 0'> - <div class="pos-receipt-left-padding">Discount: <t t-esc='line.discount'/>%</div> - </t> - <div class="pos-receipt-left-padding"> - <t t-esc='Math.round(line.quantity * 1000) / 1000' /> - <t t-if='line.unit_name !== "Units"'> - <t t-esc='line.unit_name' /> - </t> - x - <t t-esc='widget.format_currency_no_symbol(line.price)'/> - <span t-esc='widget.format_currency_no_symbol(line.price_display)' class="price-display pos-receipt-right-align"/> - </div> - </t> - </t> - </div> - - <!-- Subtotal --> - <t t-set='taxincluded' t-value='Math.abs(receipt.subtotal - receipt.total_with_tax) <= 0.000001' /> - <t t-if='!taxincluded'> - <div class="pos-receipt-right-align">--------</div> - <br/> - <div>Subtotal<span t-esc='widget.format_currency_no_symbol(receipt.subtotal)' class="pos-receipt-right-align"/></div> - <t t-foreach='receipt.tax_details' t-as='tax'> - <div> - <t t-esc='tax.name' /> - <span t-esc='widget.format_currency_no_symbol(tax.amount)' class="pos-receipt-right-align"/> - </div> - </t> - </t> - - <!-- Total --> - - <div class="pos-receipt-right-align">--------</div> - <br/> - <div class="pos-receipt-amount"> - TOTAL - <span t-esc='widget.format_currency_no_symbol(receipt.total_with_tax)' class="pos-receipt-right-align"/> - </div> - <br/><br/> - - <!-- Extra Payment Info --> - - <t t-if='receipt.total_discount'> - <div> - Discounts - <span t-esc='widget.format_currency_no_symbol(receipt.total_discount)' class="pos-receipt-right-align"/> - </div> - </t> - <t t-if='taxincluded'> - <t t-foreach='receipt.tax_details' t-as='tax'> - <div> - <t t-esc='tax.name' /> - <span t-esc='widget.format_currency_no_symbol(tax.amount)' class="pos-receipt-right-align"/> - </div> - </t> - </t> - - <!-- Footer --> - <t t-if='receipt.footer_html'> - <t t-raw='receipt.footer_html' class="pos-receipt-center-align"/> - </t> - - <t t-if='!receipt.footer_html and receipt.footer'> - <br/> - <t t-esc='receipt.footer' class="pos-receipt-center-align"/> - <br/> - <br/> - </t> - - <br/> - <div class="pos-receipt-order-data"> - <div><t t-esc='receipt.name' /></div> - <div><t t-esc='receipt.date.localestring' /></div> - </div> - - </div> + </t> </t> </templates> |
