Rodney Enciso Arias 7 лет назад
Родитель
Сommit
96b4f3ba74
3 измененных файлов с 75 добавлено и 6 удалено
  1. 13 0
      model/sale_order.py
  2. BIN
      model/sale_order.pyc
  3. 62 6
      static/src/js/sale_order_curve.js

+ 13 - 0
model/sale_order.py

@@ -10,6 +10,7 @@ class SaleOrder(models.Model):
 	amount_tax = fields.Float( compute='_compute_amount_all') 
 	amount_tax = fields.Float( compute='_compute_amount_all') 
 	amount_total = fields.Float( compute='_compute_amount_all') 
 	amount_total = fields.Float( compute='_compute_amount_all') 
 
 
+	# Create Sale Order Line
 	@api.model
 	@api.model
 	def join_sale_lines(self, values):
 	def join_sale_lines(self, values):
 	    new_line = self.env['sale.order.line']
 	    new_line = self.env['sale.order.line']
@@ -21,6 +22,18 @@ class SaleOrder(models.Model):
 
 
 	    new_line.create(sale_order_line)
 	    new_line.create(sale_order_line)
 
 
+	# Update Sale Order Line
+	@api.model
+	def update_sale_order_lines(self, values):
+		update_line = self.env['sale.order.line'].search([('order_id', '=', values['id'])])
+
+		line_update = {
+		    'product_uom_qty': values['product_uom_qty']
+		}
+
+		update_line.write(line_update)
+
+    # Compute Sale Order Lines
 	@api.depends('order_line.price_subtotal')
 	@api.depends('order_line.price_subtotal')
 	def _compute_amount_all(self):
 	def _compute_amount_all(self):
 		for order in self:
 		for order in self:

BIN
model/sale_order.pyc


+ 62 - 6
static/src/js/sale_order_curve.js

@@ -32,6 +32,9 @@ openerp.eiru_sale_order = function (instance, local) {
                 return sale;
                 return sale;
             }).then(function(sale){
             }).then(function(sale){
                 self.sale = sale;
                 self.sale = sale;
+                return self.fecthSaleLine();
+            }).then(function(saleLine){
+                self.saleLine = saleLine;
                 return self.fetchProductTemplate();
                 return self.fetchProductTemplate();
             }).then(function(ProductTemplate){
             }).then(function(ProductTemplate){
                 self.ProductTemplate = ProductTemplate;
                 self.ProductTemplate = ProductTemplate;
@@ -53,6 +56,21 @@ openerp.eiru_sale_order = function (instance, local) {
             });
             });
             return defer;
             return defer;
         },
         },
+
+        fecthSaleLine: function(){
+            var self = this
+            var defer = $.Deferred();
+            var id = _.flatten(_.map(self.sale,function(map){
+                return map.id;
+            }))
+            var domain=[['order_id','=', id]];
+            var fields=['id','name','order_id','product_id','product_uom_qty'];
+            var Sale = new instance.web.Model('sale.order.line');
+            Sale.query(fields).filter(domain).order_by('id').all().then(function(results){
+                defer.resolve(results);
+            });
+            return defer;
+        },
         
         
         fetchProductTemplate: function () {
         fetchProductTemplate: function () {
             var defer = $.Deferred();
             var defer = $.Deferred();
@@ -107,6 +125,7 @@ openerp.eiru_sale_order = function (instance, local) {
 
 
         inicializarBuscador: function () {
         inicializarBuscador: function () {
             var self = this;
             var self = this;
+            // console.log(self.saleLine);
             var selectProduct;
             var selectProduct;
             var searchType = $('#SearchByCurve').is(":checked");
             var searchType = $('#SearchByCurve').is(":checked");
             if(searchType){
             if(searchType){
@@ -189,17 +208,36 @@ openerp.eiru_sale_order = function (instance, local) {
 
 
         factInsertProduct:function(selectProduct){
         factInsertProduct:function(selectProduct){
             var self = this;
             var self = this;
+            var line = self.saleLine;
             var product = selectProduct.value.split('-');
             var product = selectProduct.value.split('-');
             var variant = self.getProductProduct(product[0]);
             var variant = self.getProductProduct(product[0]);
             var qty = 1;
             var qty = 1;
-            self.joinSaleLine(variant[0].id, qty).then(function(results) {
-                return results;
-            }).then(function(){
-                self.reloadLine();
-            });
+            
+            for (var i = 0; i < line.length; i++) {
+                if(variant[0].id == line[i].product_id[0]){
+                    qty = line[i].product_uom_qty + 1;
+                    console.log(line[i].product_uom_qty);
+
+
+                    
+                    self.updateSaleLine(variant[0].id, qty).then(function(results) {
+                        return results;
+                    }).then(function(){
+                        self.reloadLine();
+                    });
+                    break;
+                }
+            }
+
+
+            // self.createSaleLine(variant[0].id, qty).then(function(results) {
+            //     return results;
+            // }).then(function(){
+            //     self.reloadLine();
+            // });
         },
         },
 
 
-        joinSaleLine: function(product_id, qty) {
+        createSaleLine: function(product_id, qty) {
             var self = this;
             var self = this;
             var defer = $.Deferred();
             var defer = $.Deferred();
             var sale = new openerp.web.Model('sale.order');
             var sale = new openerp.web.Model('sale.order');
@@ -216,6 +254,24 @@ openerp.eiru_sale_order = function (instance, local) {
             });
             });
             return defer;
             return defer;
         },
         },
+
+        updateSaleLine: function(id, qty) {
+            var self = this;
+            var defer = $.Deferred();
+
+            var sale_line = new openerp.web.Model('sale.order');
+            sale_line.call('update_sale_order_lines',[
+                {
+                    id: self.sale[0].id,
+                    product_uom_qty: qty
+                }
+            ],{
+                context: new openerp.web.CompoundContext()
+            }).then(function(results) {
+                defer.resolve(results);
+            });
+            return defer;
+        },
     });
     });
 
 
     if (instance.web && instance.web.FormView) {
     if (instance.web && instance.web.FormView) {