From 2f62a2debef34bce9975f1e590f34a8f96f1777c Mon Sep 17 00:00:00 2001 From: Mauricio Baeza Date: Sat, 28 Oct 2017 21:58:18 -0500 Subject: [PATCH] =?UTF-8?q?Filtro=20por=20a=C3=B1o=20y=20mes=20en=20factur?= =?UTF-8?q?as?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/app/models/main.py | 18 ++++++++++++++- source/static/js/controller/invoices.js | 30 +++++++++++++++++++++++-- source/static/js/controller/main.js | 23 ------------------- source/static/js/ui/invoices.js | 4 ++-- 4 files changed, 47 insertions(+), 28 deletions(-) diff --git a/source/app/models/main.py b/source/app/models/main.py index d5764b5..c0b0291 100644 --- a/source/app/models/main.py +++ b/source/app/models/main.py @@ -1187,11 +1187,27 @@ class Facturas(BaseModel): @classmethod def get_(cls, values): - #~ print (values) + print (values) + + if 'dates' in values: + print (values) + else: + if values['year'] == '-1': + fy = (Facturas.fecha.year > 0) + else: + fy = (Facturas.fecha.year == int(values['year'])) + if values['month'] == '-1': + fm = (Facturas.fecha.month > 0) + else: + fm = (Facturas.fecha.month == int(values['month'])) + + filters = (fy & fm) + rows = tuple(Facturas .select(Facturas.id, Facturas.serie, Facturas.folio, Facturas.uuid, Facturas.fecha, Facturas.tipo_comprobante, Facturas.estatus, Facturas.total_mn, Socios.nombre.alias('cliente')) + .where(filters) .join(Socios) .switch(Facturas).dicts() ) diff --git a/source/static/js/controller/invoices.js b/source/static/js/controller/invoices.js index 2ff408f..f29bff5 100644 --- a/source/static/js/controller/invoices.js +++ b/source/static/js/controller/invoices.js @@ -734,13 +734,39 @@ function cmd_invoice_cancelar_click(){ } +function get_invoices(rango){ + if(rango == undefined){ + var fy = $$('filter_year') + var fm = $$('filter_month') + + var y = fy.getValue() + var m = fm.getValue() + rango = {'year': y, 'month': m} + } + + var grid = $$('grid_invoices') + webix.ajax().get('/invoices', rango, { + error: function(text, data, xhr) { + webix.message({type: 'error', text: 'Error al consultar'}) + }, + success: function(text, data, xhr) { + var values = data.json(); + grid.clearAll(); + if (values.ok){ + grid.parse(values.rows, 'json'); + }; + } + }); +} + + function filter_year_change(nv, ov){ - show(nv) + get_invoices() } function filter_month_change(nv, ov){ - show(nv) + get_invoices() } diff --git a/source/static/js/controller/main.js b/source/static/js/controller/main.js index f8416be..3647b85 100644 --- a/source/static/js/controller/main.js +++ b/source/static/js/controller/main.js @@ -95,29 +95,6 @@ function get_products(){ } -function get_invoices(){ - var fy = $$('filter_year') - var fm = $$('filter_month') - - var y = fy.getValue() - var m = fm.getValue() - - var grid = $$('grid_invoices') - webix.ajax().get('/invoices', {'year': y, 'month': m}, { - error: function(text, data, xhr) { - webix.message({type: 'error', text: 'Error al consultar'}) - }, - success: function(text, data, xhr) { - var values = data.json(); - grid.clearAll(); - if (values.ok){ - grid.parse(values.rows, 'json'); - }; - } - }); -} - - function menu_user_click(id, e, node){ if (id == 1){ window.location = '/logout'; diff --git a/source/static/js/ui/invoices.js b/source/static/js/ui/invoices.js index 2a2fb46..6092c15 100644 --- a/source/static/js/ui/invoices.js +++ b/source/static/js/ui/invoices.js @@ -43,7 +43,7 @@ var toolbar_invoices_filter = [ {view: 'richselect', id: 'filter_month', label: 'Mes', labelAlign: 'right', labelWidth: 50, width: 200, options: months}, {view: 'daterangepicker', id: 'filter_dates', label: 'Fechas', - labelAlign: 'right', width: 300}, + labelAlign: 'right', width: 300, hidden: true}, ] @@ -62,7 +62,7 @@ var grid_invoices_cols = [ {id: "uuid", header: ["UUID", {content: "textFilter"}], adjust: "data", sort:"string", hidden:true}, {id: "fecha", header: ["Fecha y Hora"], - adjust: "data", sort:"date"}, + adjust: "data", sort: "date"}, {id: "tipo_comprobante", header: ["Tipo", {content: "selectFilter"}], adjust: 'header', sort: 'string'}, {id: "estatus", header: ["Estatus", {content: "selectFilter"}],