From 9fa35d5592ce6fa49837ff54e79afef19007c729 Mon Sep 17 00:00:00 2001 From: Mauricio Baeza Date: Fri, 23 Jul 2021 22:01:59 -0500 Subject: [PATCH] Add wharehouse --- CHANGELOG.md | 14 +++++++++++ source/app/controllers/main.py | 17 +++++++++++++ source/app/main.py | 2 ++ source/app/models/db.py | 3 +++ source/app/models/main.py | 36 ++++++++++++++++++++++++++++ source/static/js/controller/admin.js | 30 +++++++++++++++++++++++ 6 files changed, 102 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e494d41..011875f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,21 @@ v 1.43.0 [00-Jul-2021] ---------------------- - Soporte para entradas de almacen + - Soporte para m almacen +* IMPORTANTE: + +Es necesario hacer una migració. + +``` +git pull origin master + +cd source/app/models + +python main.py -bk + +python main.py -m -r RFC +``` v 1.42.1 [31-May-2021] ---------------------- diff --git a/source/app/controllers/main.py b/source/app/controllers/main.py index caa60ea..e60462c 100644 --- a/source/app/controllers/main.py +++ b/source/app/controllers/main.py @@ -698,6 +698,23 @@ class AppInventoryEntries(object): resp.status = falcon.HTTP_200 +class AppWhareHouse(object): + + def __init__(self, db): + self._db = db + + def on_get(self, req, resp): + values = req.params + req.context['result'] = self._db.wharehouse_get(values) + resp.status = falcon.HTTP_200 + + def on_post(self, req, resp): + values = req.params + user = req.env['beaker.session']['userobj'] + req.context['result'] = self._db.wharehouse_post(values, user) + resp.status = falcon.HTTP_200 + + class AppUsers(object): def __init__(self, db): diff --git a/source/app/main.py b/source/app/main.py index 054711a..9206d5e 100644 --- a/source/app/main.py +++ b/source/app/main.py @@ -20,6 +20,7 @@ from controllers.main import (AppEmpresas, AppSATFormaPago, AppSATLeyendaFiscales, AppCert, AppSucursales, AppPartnerProducts, AppInventoryEntries, + AppWhareHouse, AppUsers, ) @@ -69,6 +70,7 @@ api.add_route('/cert', AppCert(db)) api.add_route('/sucursales', AppSucursales(db)) api.add_route('/partnerproducts', AppPartnerProducts(db)) api.add_route('/inventoryentries', AppInventoryEntries(db)) +api.add_route('/wharehouse', AppWhareHouse(db)) api.add_route('/users', AppUsers(db)) diff --git a/source/app/models/db.py b/source/app/models/db.py index 7c530b3..b8703a4 100644 --- a/source/app/models/db.py +++ b/source/app/models/db.py @@ -487,6 +487,9 @@ class StorageEngine(object): def inventory_entries_post(self, filters, user): return main.InventoryEntries.post(filters, user) + def wharehouse_post(self, values, user): + return main.Almacenes.post(values, user) + def users_get(self, filters, user): return main.Usuarios.get_data(filters, user) diff --git a/source/app/models/main.py b/source/app/models/main.py index 8dca3cd..75cb6d3 100644 --- a/source/app/models/main.py +++ b/source/app/models/main.py @@ -3385,6 +3385,42 @@ class Almacenes(BaseModel): class Meta: order_by = ('name',) + @classmethod + def _get_all(cls): + rows = (Almacenes + .select( + Almacenes.id, + Almacenes.name, + ) + .dicts() + ) + return tuple(rows) + + @classmethod + def _create(cls, args, user): + try: + obj, created = Almacenes.get_or_create(**args) + except Exception as e: + log.error(e) + msg = 'Ocurrio un error al agregar el almacen' + result = {'ok': False, 'msg': msg} + return result + + if created: + rows = Almacenes._get_all() + result = {'ok': True, 'rows': rows} + else: + msg = 'El almacen ya existe' + result = {'ok': True, 'msg': msg} + + return result + + @classmethod + def post(cls, values, user): + opt = values['opt'] + args = utils.loads(values['values']) + return getattr(cls, f'_{opt}')(args, user) + class Sucursales(BaseModel): wharehouse = ForeignKeyField(Almacenes, null=True) diff --git a/source/static/js/controller/admin.js b/source/static/js/controller/admin.js index 33fac40..b8e3775 100644 --- a/source/static/js/controller/admin.js +++ b/source/static/js/controller/admin.js @@ -2994,3 +2994,33 @@ function cmd_add_wharehouse_click(){ } }) } + +function add_wharehouse(name){ + var grid = $$('grid_warehouse') + var data = { + opt: 'create', + values: {name: name}, + } + + webix.ajax().post('/wharehouse', data, { + error:function(text, data, XmlHttpRequest){ + msg = 'Ocurrio un error, consulta a soporte técnico' + msg_error(msg) + }, + success:function(text, data, XmlHttpRequest){ + var values = data.json() + if(values.ok){ + $$('txt_add_wharehouse').setValue('') + if(values.msg){ + msg_ok(values.msg) + }else{ + grid.parse(values.rows) + msg_ok('Almacen agregado correctamente') + } + }else{ + msg_error(values.msg) + } + } + }) +} +