From b2f3cdd66edb0b4559f982b18b04c85d43d9529e Mon Sep 17 00:00:00 2001 From: Mauricio Baeza Date: Sun, 23 Feb 2020 22:02:46 -0600 Subject: [PATCH 1/2] Filter by sucursal --- source/app/controllers/comercio/comercio.py | 2 +- source/app/controllers/main.py | 6 ++-- source/app/models/db.py | 8 +++--- source/app/models/main.py | 32 +++++++++++++++------ 4 files changed, 32 insertions(+), 16 deletions(-) diff --git a/source/app/controllers/comercio/comercio.py b/source/app/controllers/comercio/comercio.py index 21292a9..8836156 100644 --- a/source/app/controllers/comercio/comercio.py +++ b/source/app/controllers/comercio/comercio.py @@ -38,7 +38,7 @@ try: from .conf import DEBUG, AUTH except ImportError: DEBUG = False - log.error('Need make conf.py') + log.debug('Need make conf.py') TIMEOUT = 10 diff --git a/source/app/controllers/main.py b/source/app/controllers/main.py index 1db632e..41a8e3e 100644 --- a/source/app/controllers/main.py +++ b/source/app/controllers/main.py @@ -302,7 +302,8 @@ class AppInvoices(object): def on_get(self, req, resp): values = req.params - req.context['result'] = self._db.get_invoices(values) + session = req.env['beaker.session'] + req.context['result'] = self._db.get_invoices(values, session['userobj']) resp.status = falcon.HTTP_200 def on_post(self, req, resp): @@ -356,7 +357,8 @@ class AppTickets(object): def on_get(self, req, resp): values = req.params - req.context['result'] = self._db.get_tickets(values) + session = req.env['beaker.session'] + req.context['result'] = self._db.get_tickets(values, session['userobj']) resp.status = falcon.HTTP_200 def on_post(self, req, resp): diff --git a/source/app/models/db.py b/source/app/models/db.py index b302198..cff00e8 100644 --- a/source/app/models/db.py +++ b/source/app/models/db.py @@ -378,12 +378,12 @@ class StorageEngine(object): if opt == 'print': return main.Tickets.printer(values) - def get_tickets(self, values): - return main.Tickets.get_by(values) + def get_tickets(self, values, user): + return main.Tickets.get_by(values, user) - def get_invoices(self, filters): + def get_invoices(self, filters, user): if filters.get('by', ''): - return main.Facturas.get_by(filters) + return main.Facturas.get_by(filters, user) return main.Facturas.get_(filters) def get_preinvoices(self, values): diff --git a/source/app/models/main.py b/source/app/models/main.py index 70cdd3f..5e82a14 100644 --- a/source/app/models/main.py +++ b/source/app/models/main.py @@ -2640,7 +2640,7 @@ class Socios(BaseModel): SATUsoCfdi.key.alias('uso_cfdi')) .join(SATFormaPago, JOIN.LEFT_OUTER).switch(Socios) .join(SATUsoCfdi, JOIN.LEFT_OUTER).switch(Socios) - .where((Socios.es_cliente==True) & + .where((Socios.es_cliente==True & Socios.es_activo==True) & (Socios.rfc.contains(name) | Socios.nombre.contains(name))) .dicts()) @@ -3788,7 +3788,14 @@ class Facturas(BaseModel): return filters - def _get_invoices(self, filters): + def _get_invoices(self, filters, user): + filter_serie = False + if not user.sucursal is None and not user.sucursal.serie_facturas is None: + filter_serie = (Facturas.serie==user.sucursal.serie_facturas) + + if filter_serie: + filters &= filter_serie + rows = tuple(Facturas.select( Facturas.id, Facturas.serie, @@ -3811,19 +3818,19 @@ class Facturas(BaseModel): ) return {'ok': True, 'rows': rows} - def _get_by_dates(self, filters): + def _get_by_dates(self, filters, user): filters = self._get_filters(self, filters) - return self._get_invoices(self, filters) + return self._get_invoices(self, filters, user) - def _get_by_notes(self, filters): + def _get_by_notes(self, filters, user): notes = filters['notes'] filters = self._get_filters(self, filters) filters &= (Facturas.notas.contains(notes)) - return self._get_invoices(self, filters) + return self._get_invoices(self, filters, user) @classmethod - def get_by(cls, filters): - return getattr(cls, f"_get_by_{filters['by']}")(cls, filters) + def get_by(cls, filters, user): + return getattr(cls, f"_get_by_{filters['by']}")(cls, filters, user) @classmethod def filter_years(cls): @@ -7220,9 +7227,16 @@ class Tickets(BaseModel): return @classmethod - def get_by(cls, values): + def get_by(cls, values, user): + filter_serie = False + if not user.sucursal is None and not user.sucursal.serie_tickets is None: + filter_serie = (Tickets.serie==user.sucursal.serie_tickets) + filters = cls._get_filters(cls, values) + if filter_serie: + filters = filters & filter_serie + rows = tuple(Tickets .select( Tickets.id, From bf3ed47facf8e0fe8faed4274235d1597e38eced Mon Sep 17 00:00:00 2001 From: Mauricio Baeza Date: Mon, 24 Feb 2020 22:34:54 -0600 Subject: [PATCH 2/2] Update changelog --- CHANGELOG.md | 5 +++++ VERSION | 2 +- source/app/settings.py | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 452b21d..e606778 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,9 @@ +v 1.35.0 [24-feb-2020] +---------------------- + - Mejora: Filtrado de documentos por sucursal + + v 1.34.1 [09-feb-2020] ---------------------- - Error: Al timbrar nĂ³mina de asimilados diff --git a/VERSION b/VERSION index 2b17ffd..2aeaa11 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.34.0 +1.35.0 diff --git a/source/app/settings.py b/source/app/settings.py index 0a07311..d3bba93 100644 --- a/source/app/settings.py +++ b/source/app/settings.py @@ -47,7 +47,7 @@ except ImportError: DEBUG = DEBUG -VERSION = '1.34.1' +VERSION = '1.35.0' EMAIL_SUPPORT = ('soporte@empresalibre.mx',) TITLE_APP = '{} v{}'.format(TITLE_APP, VERSION)