From 61a8937eb37984bc5edbf30805a83d43efac0b61 Mon Sep 17 00:00:00 2001 From: Mauricio Baeza Date: Mon, 23 Aug 2021 15:49:29 -0500 Subject: [PATCH] Add product by warehouse --- source/app/models/main.py | 22 +++++++++++++++++++++- source/static/js/controller/products.js | 14 ++++++++++++-- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/source/app/models/main.py b/source/app/models/main.py index 43eccdc..3ad1ce3 100644 --- a/source/app/models/main.py +++ b/source/app/models/main.py @@ -4048,6 +4048,20 @@ class WareHouseProduct(BaseModel): (('warehouse', 'product'), True), ) + @classmethod + def update_exists(cls, args): + if args['storage'] is None: + return + + values = dict( + warehouse = args['storage'], + product = args['product'], + ) + obj, created = WareHouseProduct.get_or_create(**values) + obj.exists += args['cant'] + obj.save() + return + class RangosPrecios(BaseModel): producto = ForeignKeyField(Productos) @@ -9718,8 +9732,12 @@ class InventoryEntries(BaseModel): result = {'ok': False, 'msg': msg} return result - cant = args['cant'] + storage = None + if args['warehouse']: + storage = args['warehouse'] + cant = Decimal(args['cant']) values = dict( + storage = storage, product = product, cant = cant, ) @@ -9727,6 +9745,8 @@ class InventoryEntries(BaseModel): msg = 'a {}'.format(obj.id) _save_log(user.usuario, msg, 'IE') + WareHouseProduct.update_exists(values) + product.existencia += cant product.save() diff --git a/source/static/js/controller/products.js b/source/static/js/controller/products.js index 3049bc5..67031c3 100644 --- a/source/static/js/controller/products.js +++ b/source/static/js/controller/products.js @@ -727,6 +727,7 @@ function cmd_add_inventory_save_click(id, e, node){ var product_id = $$('txt_add_id').getValue() //~ var product_key = $$('txt_add_key').getValue() var new_cant = $$('txt_new_cant').getValue() + var warehouse = $$('lst_warehouses').getValue() if(new_cant<=0) { msg = 'La cantidad no puede ser cero' @@ -734,6 +735,14 @@ function cmd_add_inventory_save_click(id, e, node){ return } + if($$('lst_warehouses').isVisible()){ + if(!warehouse){ + msg = 'Selecciona un almacen' + msg_error(msg) + return + } + } + msg = '¿Estas seguro de guardar esta entrada?

\ Esta acción no se puede deshacer' @@ -745,7 +754,7 @@ function cmd_add_inventory_save_click(id, e, node){ text: msg, callback:function(result){ if(result){ - add_product_stock(product_id, new_cant) + add_product_stock(product_id, new_cant, warehouse) } } }) @@ -753,10 +762,11 @@ function cmd_add_inventory_save_click(id, e, node){ } -function add_product_stock(product_id, new_cant){ +function add_product_stock(product_id, new_cant, warehouse){ var data = { product_id: product_id, cant: new_cant, + warehouse: warehouse, } _add_entries_inventory_manual(product_id, data) $$('win_add_inventory').close()