diff options
| author | Frédéric van der Essen <fvdessen@gmail.com> | 2015-04-07 14:36:10 +0200 |
|---|---|---|
| committer | Frédéric van der Essen <fvdessen@gmail.com> | 2015-04-07 14:36:43 +0200 |
| commit | d58e5309dde669a896e88d1a396987abb257e14b (patch) | |
| tree | cc306a3b580190e6415c912c5be89cd8453a9ab8 /addons | |
| parent | 2d40c7120eae8a934f537e144624abb5f66dd122 (diff) | |
[IMP] pos_restaurant: allow to print bill with web printing
Diffstat (limited to 'addons')
| -rw-r--r-- | addons/point_of_sale/static/src/js/screens.js | 10 | ||||
| -rw-r--r-- | addons/point_of_sale/static/src/xml/pos.xml | 8 | ||||
| -rw-r--r-- | addons/pos_restaurant/static/src/js/printbill.js | 30 | ||||
| -rw-r--r-- | addons/pos_restaurant/static/src/xml/printbill.xml | 25 |
4 files changed, 68 insertions, 5 deletions
diff --git a/addons/point_of_sale/static/src/js/screens.js b/addons/point_of_sale/static/src/js/screens.js index a89f4db5e98..661e5e18b0f 100644 --- a/addons/point_of_sale/static/src/js/screens.js +++ b/addons/point_of_sale/static/src/js/screens.js @@ -1394,6 +1394,10 @@ var ReceiptScreenWidget = ScreenWidget.extend({ click_next: function() { this.pos.get_order().finalize(); }, + click_back: function() { + // Placeholder method for ReceiptScreen extensions that + // can go back ... + }, renderElement: function() { var self = this; this._super(); @@ -1402,6 +1406,11 @@ var ReceiptScreenWidget = ScreenWidget.extend({ self.click_next(); } }); + this.$('.back').click(function(){ + if (!self._locked) { + self.click_back(); + } + }); this.$('.button.print').click(function(){ if (!self._locked) { self.print(); @@ -1825,6 +1834,7 @@ var PaymentScreenWidget = ScreenWidget.extend({ gui.define_screen({name:'payment', widget: PaymentScreenWidget}); return { + ReceiptScreenWidget: ReceiptScreenWidget, ActionButtonWidget: ActionButtonWidget, define_action_button: define_action_button, ScreenWidget: ScreenWidget, diff --git a/addons/point_of_sale/static/src/xml/pos.xml b/addons/point_of_sale/static/src/xml/pos.xml index 0b2364d0c2e..98dc3e464d5 100644 --- a/addons/point_of_sale/static/src/xml/pos.xml +++ b/addons/point_of_sale/static/src/xml/pos.xml @@ -1250,7 +1250,7 @@ </div> <br /> </t> - <table> + <table class='receipt-orderlines'> <colgroup> <col width='50%' /> <col width='25%' /> @@ -1274,7 +1274,7 @@ </tr> </table> <br /> - <table> + <table class='receipt-total'> <tr> <td>Subtotal:</td> <td class="pos-right-align"> @@ -1303,7 +1303,7 @@ </tr> </table> <br /> - <table> + <table class='receipt-paymentlines'> <tr t-foreach="paymentlines" t-as="line"> <td> <t t-esc="line.name"/> @@ -1314,7 +1314,7 @@ </tr> </table> <br /> - <table> + <table class='receipt-change'> <tr><td>Change:</td><td class="pos-right-align"> <t t-esc="widget.format_currency(order.get_change())"/> </td></tr> diff --git a/addons/pos_restaurant/static/src/js/printbill.js b/addons/pos_restaurant/static/src/js/printbill.js index 3c9cacdda91..578fd250403 100644 --- a/addons/pos_restaurant/static/src/js/printbill.js +++ b/addons/pos_restaurant/static/src/js/printbill.js @@ -3,12 +3,33 @@ odoo.define('pos_restaurant.printbill', function (require) { var core = require('web.core'); var screens = require('point_of_sale.screens'); +var gui = require('point_of_sale.gui'); var QWeb = core.qweb; +var BillScreenWidget = screens.ReceiptScreenWidget.extend({ + template: 'BillScreenWidget', + click_next: function(){ + this.gui.show_screen('products'); + }, + click_back: function(){ + this.gui.show_screen('products'); + }, + 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', - button_click: function(){ + print_xml: function(){ var order = this.pos.get('selectedOrder'); if(order.get_orderlines().length > 0){ var receipt = order.export_for_printing(); @@ -18,6 +39,13 @@ var PrintBillButton = screens.ActionButtonWidget.extend({ })); } }, + button_click: function(){ + if (!this.pos.config.iface_print_via_proxy) { + this.gui.show_screen('bill'); + } else { + this.print_xml(); + } + }, }); screens.define_action_button({ diff --git a/addons/pos_restaurant/static/src/xml/printbill.xml b/addons/pos_restaurant/static/src/xml/printbill.xml index 7bceefb05e6..79c82ea95b2 100644 --- a/addons/pos_restaurant/static/src/xml/printbill.xml +++ b/addons/pos_restaurant/static/src/xml/printbill.xml @@ -1,6 +1,31 @@ <?xml version="1.0" encoding="UTF-8"?> <templates id="template" xml:space="preserve"> + <t t-name="BillScreenWidget"> + <div class='receipt-screen screen'> + <div class='screen-content'> + <div class='top-content'> + <span class='button back'> + <i class='fa fa-angle-double-left'></i> + Back + </span> + <h1>Bill Printing</h1> + <span class='button next'> + Ok + <i class='fa fa-angle-double-right'></i> + </span> + </div> + <div class="centered-content"> + <div class="button print"> + <i class='fa fa-print'></i> Print + </div> + <div class="pos-receipt-container"> + </div> + </div> + </div> + </div> + </t> + <t t-name="PrintBillButton"> <span class="control-button order-printbill"> <i class="fa fa-print"></i> |
