Browse Source

[FIX] correccion en el pedido del ticket

Rodney Elpidio Enciso Arias 7 năm trước cách đây
mục cha
commit
6a478ef5e7
1 tập tin đã thay đổi với 31 bổ sung27 xóa
  1. 31 27
      static/src/js/main.js

+ 31 - 27
static/src/js/main.js

@@ -1,11 +1,3 @@
-/*
-    POS Kitchen Ticket for Odoo
-    Copyright (C) 2016 Dhinesh D <dvdhinesh.mail@gmail.com>
-    @author: Dhinesh D <dvdhinesh.mail@gmail.com>
-    The licence is in the file __openerp__.py
-*/
-
-
 openerp.eiru_kitchen_ticket = function (instance) {
 	var module   = instance.point_of_sale;
     var _t = instance.web._t,
@@ -30,7 +22,6 @@ openerp.eiru_kitchen_ticket = function (instance) {
                 },
             });
             this.refresh();
-            this.saveChanges();
         },
 
         print: function() {
@@ -59,23 +50,15 @@ openerp.eiru_kitchen_ticket = function (instance) {
             return resume;
         },
 
-        saveChanges: function(){
-            this.old_resume = this.lineResume();
-        },
-        
-        refresh: function() {
-            var self = this;
+        computeChanges: function(){
             var order = this.pos.get('selectedOrder');
-            var categories = self.pos.printers[0].config.product_categories_ids;
-            
-            // **************************************************
-
+            var categories = this.pos.printers[0].config.product_categories_ids;
             var current = this.lineResume();
-            var old     = this.old_resume || {};
+            var old     = this.pos.get('selectedOrder').old_resume || {};
             var add = [];
             var rem = [];
 
-            for(product in current){
+            for( product in current){
                 if (typeof old[product] === 'undefined'){
                     add.push({
                         'id': product,
@@ -108,7 +91,6 @@ openerp.eiru_kitchen_ticket = function (instance) {
             }
 
             if(categories && categories.length > 0){
-
                 var self = this;
                 function product_in_category(product_id){
                     var cat = self.pos.db.get_product_by_id(product_id).pos_categ_id[0];
@@ -140,14 +122,34 @@ openerp.eiru_kitchen_ticket = function (instance) {
                 }
                 rem = _rem;
             }
+            return {
+                'new': add,
+                'cancelled': rem,
+                'name': this.pos.get('selectedOrder').attributes.name
+            };
+            
+        },
 
-            // ******************************************
-
+        hasChangesToPrint: function(){
+            var printers = this.pos.printers;
+            for(var i = 0; i < printers.length; i++){
+                var changes = this.computeChanges(printers[i].config.product_categories_ids);
+                if ( changes['new'].length > 0 || changes['cancelled'].length > 0){
+                    return true;
+                }
+            }
+            return false;
+        },
+        
+        refresh: function() {
+            var self = this;
+            var order = self.pos.get('selectedOrder');
+            var change = self.computeChanges();
             $('.pos-receipt-container', this.$el).html(QWeb.render('KitchenTicket',{
                 widget:this,
                 order: order,
                 orderlines: order.get('orderLines').models,
-                filterLines: add,
+                filterLines: change.new,
             }));
         },
     });
@@ -163,8 +165,11 @@ openerp.eiru_kitchen_ticket = function (instance) {
             var kitchen_ticket_button = $(QWeb.render('KitchenTicketButton'));
 
             kitchen_ticket_button.click(function(){
-                if(self.pos.get('selectedOrder').get('orderLines').models.length > 0){ 
+                var order = self.pos.get('selectedOrder');
+                if(order.hasChangesToPrint()){
                     self.pos_widget.screen_selector.set_current_screen('kitchenticket');
+                    order.saveChanges();
+                    self.pos_widget.order_widget.update_summary();
                 }
             });
 
@@ -172,5 +177,4 @@ openerp.eiru_kitchen_ticket = function (instance) {
             this.$('.control-buttons').removeClass('oe_hidden');
         },
     });
-
 };