diff --git a/source/app/controllers/util.py b/source/app/controllers/util.py index 0b40093..c23ac9b 100644 --- a/source/app/controllers/util.py +++ b/source/app/controllers/util.py @@ -8,6 +8,7 @@ import locale import mimetypes import os import re +import requests import sqlite3 import socket import subprocess @@ -41,7 +42,7 @@ from settings import DEBUG, MV, log, template_lookup, COMPANIES, DB_SAT, \ PATH_XSLT, PATH_XSLTPROC, PATH_OPENSSL, PATH_TEMPLATES, PATH_MEDIA, PRE, \ PATH_XMLSEC, TEMPLATE_CANCEL, DEFAULT_SAT_PRODUCTO, DECIMALES, DIR_FACTURAS -from settings import SEAFILE_SERVER, USAR_TOKEN +from settings import SEAFILE_SERVER, USAR_TOKEN, API from .configpac import AUTH @@ -3269,3 +3270,14 @@ def get_log(name): return data, name +def get_timbres(rfc, token): + if DEBUG: + return '-1' + + url = API.format('/timbres/{}'.format(rfc)) + headers = {'Auth-Token': token} + try: + result = requests.get(url, headers=headers, timeout=10) + return result.json() + except Exception as e: + return '' diff --git a/source/app/models/db.py b/source/app/models/db.py index ff69824..201d503 100644 --- a/source/app/models/db.py +++ b/source/app/models/db.py @@ -36,6 +36,9 @@ class StorageEngine(object): return getattr(self, '_get_{}'.format(table))(values, session) return getattr(self, '_get_{}'.format(table))(values) + def _get_timbres(self, values): + return main.get_timbres() + def _get_schoolgroups(self, values): return main.Grupos.get_by(values) diff --git a/source/app/models/main.py b/source/app/models/main.py index 3fe6f67..744bda5 100644 --- a/source/app/models/main.py +++ b/source/app/models/main.py @@ -193,6 +193,15 @@ def get_doc(type_doc, id, rfc): return data, file_name, content_type +def get_timbres(): + try: + obj = Emisor.select()[0] + except IndexError: + return 0 + + return util.get_timbres(obj.rfc, obj.token_timbrado) + + def config_main(): try: obj = Emisor.select()[0] @@ -206,11 +215,13 @@ def config_main(): 'punto_de_venta': punto_de_venta, 'escuela': False, 'nomina': nomina, + 'timbres': 0, } if not obj is None: titulo = '{} - {}' data['empresa'] = titulo.format(data['empresa'], obj.nombre) data['escuela'] = obj.es_escuela + data['timbres'] = util.get_timbres(obj.rfc, obj.token_timbrado) return data diff --git a/source/app/settings.py b/source/app/settings.py index 5d49065..8e83e74 100644 --- a/source/app/settings.py +++ b/source/app/settings.py @@ -148,4 +148,8 @@ DEFAULT_SAT_NOMINA = { 'CLAVE': '84111505', 'UNIDAD': 'ACT', 'DESCRIPCION': 'Pago de nómina', -} \ No newline at end of file +} + +API = 'http://139.162.255.71:4043{}' +if DEBUG: + API = 'http://127.0.0.1:8080{}' \ No newline at end of file diff --git a/source/static/js/controller/invoices.js b/source/static/js/controller/invoices.js index 7934de3..7ec6581 100644 --- a/source/static/js/controller/invoices.js +++ b/source/static/js/controller/invoices.js @@ -460,6 +460,7 @@ function send_timbrar(id){ webix.ajax().get('/values/timbrar', {id: id}, function(text, data){ var values = data.json() if(values.ok){ + cmd_update_timbres_click() msg_ok(values.msg) gi.updateItem(id, values.row) if(values.anticipo){ diff --git a/source/static/js/controller/main.js b/source/static/js/controller/main.js index 4463fc1..fbd93c4 100644 --- a/source/static/js/controller/main.js +++ b/source/static/js/controller/main.js @@ -33,6 +33,9 @@ function configuracion_inicial(){ value: 'Punto de venta'} $$('main_sidebar').add(node, pos) } + + $$('cmd_update_timbres').define('badge', values.timbres) + $$('cmd_update_timbres').refresh() }) } @@ -55,6 +58,7 @@ var controllers = { $$('prefilter_month').attachEvent('onChange', prefilter_month_change) $$('cmd_delete_preinvoice').attachEvent('onItemClick', cmd_delete_preinvoice_click) $$('cmd_facturar_preinvoice').attachEvent('onItemClick', cmd_facturar_preinvoice_click) + $$('cmd_update_timbres').attachEvent('onItemClick', cmd_update_timbres_click) $$('grid_preinvoices').attachEvent('onItemClick', grid_preinvoices_click) partners_controllers.init() @@ -203,3 +207,12 @@ function get_taxes(){ $$("grid_product_taxes").parse(values, 'json') }) } + + +function cmd_update_timbres_click(){ + webix.ajax().get('/values/timbres', function(text, data){ + var value = data.json() + $$('cmd_update_timbres').define('badge', value) + $$('cmd_update_timbres').refresh() + }) +} \ No newline at end of file diff --git a/source/static/js/controller/main.js.orig b/source/static/js/controller/main.js.orig deleted file mode 100644 index 9f19ebe..0000000 --- a/source/static/js/controller/main.js.orig +++ /dev/null @@ -1,210 +0,0 @@ -var gi = null - - -function configuracion_inicial(){ - webix.ajax().get('/values/admin', function(text, data){ - var values = data.json() - show('cmd_ir_al_admin', values) - }) - webix.ajax().get('/values/main', function(text, data){ - var values = data.json() - $$('lbl_title_main').setValue(values.empresa) -<<<<<<< HEAD - //~ showvar() - var pos = 4 - if(values.escuela){ - var node = { - id: 'app_school', - icon: 'graduation-cap', - value: 'Escuela'} -======= - var pos = 4 - if(values.nomina){ - var node = { - id: 'app_nomina', - icon: 'users', - value: 'Nómina'} ->>>>>>> nomina - $$('main_sidebar').add(node, pos) - pos += 1 - } - if(values.punto_de_venta){ - var node = { - id: 'app_tickets', - icon: 'money', - value: 'Punto de venta'} - $$('main_sidebar').add(node, pos) - } - }) - -} - - -function cmd_ir_al_admin_click(){ - window.location = '/admin' -} - - -var controllers = { - init: function(){ - //~ Main - $$('menu_user').attachEvent('onMenuItemClick', menu_user_click); - configuracion_inicial() - - var tb_invoice = $$('tv_invoice').getTabbar() - tb_invoice.attachEvent('onChange', tb_invoice_change) - $$('prefilter_year').attachEvent('onChange', prefilter_year_change) - $$('prefilter_month').attachEvent('onChange', prefilter_month_change) - $$('cmd_delete_preinvoice').attachEvent('onItemClick', cmd_delete_preinvoice_click) - $$('cmd_facturar_preinvoice').attachEvent('onItemClick', cmd_facturar_preinvoice_click) - $$('grid_preinvoices').attachEvent('onItemClick', grid_preinvoices_click) - - partners_controllers.init() - products_controllers.init() - bancos_controllers.init() - invoices_controllers.init() -<<<<<<< HEAD - controllers_school.init() -======= - nomina_controllers.init() ->>>>>>> nomina - tickets_controllers.init() - } -} - - -function get_uso_cfdi_to_table(){ - webix.ajax().sync().get('/values/usocfdi', function(text, data){ - var values = data.json() - table_usocfdi.clear() - table_usocfdi.insert(values) - }) -} - - -function get_partners(){ - webix.ajax().get('/partners', {}, { - error: function(text, data, xhr) { - msg_error('Error al consultar') - }, - success: function(text, data, xhr) { - var values = data.json(); - $$('grid_partners').clearAll(); - if (values.data){ - $$('grid_partners').parse(values.data, 'json'); - }; - } - }) -} - - -function menu_user_click(id, e, node){ - if (id == 1){ - window.location = '/logout'; - return - } -} - - -function current_dates(){ - var fy = $$('filter_year') - var fm = $$('filter_month') - var pfy = $$('prefilter_year') - var pfm = $$('prefilter_month') - var d = new Date() - - fy.blockEvent() - fm.blockEvent() - pfy.blockEvent() - pfm.blockEvent() - - fm.setValue(d.getMonth() + 1) - pfm.setValue(d.getMonth() + 1) - webix.ajax().sync().get('/values/filteryears', function(text, data){ - var values = data.json() - fy.getList().parse(values[0]) - pfy.getList().parse(values[1]) - fy.setValue(d.getFullYear()) - pfy.setValue(d.getFullYear()) - }) - - fy.unblockEvent() - fm.unblockEvent() - pfy.unblockEvent() - pfm.unblockEvent() -} - - -function multi_change(prevID, nextID){ - - if(nextID == 'app_partners'){ - active = $$('multi_partners').getActiveId() - if(active == 'partners_home'){ - get_partners() - } - return - } - - if(nextID == 'app_products'){ - active = $$('multi_products').getActiveId() - if(active == 'products_home'){ - get_products() - } - return - } - - if(nextID == 'app_bancos'){ - active = $$('multi_bancos').getActiveId() - if(active == 'banco_home'){ - get_cuentas_banco() - } - return - } - - if(nextID == 'app_school'){ - active = $$('multi_school').getActiveId() - if(active == 'school_home'){ - init_config_school() - } - return - } - - if(nextID == 'app_tickets'){ - active = $$('multi_tickets').getActiveId() - if(active == 'tickets_home'){ - configuracion_inicial_ticket() - } - return - } - - if(nextID == 'app_nomina'){ - active = $$('multi_nomina').getActiveId() - if(active == 'nomina_home'){ - default_config_nomina() - } - return - } - - if(nextID == 'app_invoices'){ - active = $$('multi_invoices').getActiveId() - if(active == 'invoices_home'){ - current_dates() - get_invoices() - validar_timbrar() - } - gi = $$('grid_invoices') - return - } - -} - - -function get_taxes(){ - webix.ajax().sync().get('/values/taxes', function(text, data){ - var values = data.json() - table_taxes.clear() - table_taxes.insert(values) - $$("grid_product_taxes").clearAll() - $$("grid_product_taxes").parse(values, 'json') - }) -} diff --git a/source/static/js/controller/nomina.js b/source/static/js/controller/nomina.js index d5305bb..98b7244 100644 --- a/source/static/js/controller/nomina.js +++ b/source/static/js/controller/nomina.js @@ -373,6 +373,7 @@ function timbrar_nomina(){ success: function(text, data, xhr) { var values = data.json(); if(values.ok){ + cmd_update_timbres_click() get_nomina() msg_ok(values.msg_ok) } diff --git a/source/static/js/ui/main.js b/source/static/js/ui/main.js index 0fe6ecf..17f652a 100644 --- a/source/static/js/ui/main.js +++ b/source/static/js/ui/main.js @@ -70,8 +70,8 @@ var ui_main = { {view: 'label', id: 'lbl_title_main', label: 'Empresa Libre'}, {}, menu_user, - {view: 'button', type: 'icon', width: 45, css: 'app_button', - icon: 'bell-o', badge: 0}, + {view: 'button', id: 'cmd_update_timbres', type: 'icon', width: 45, + css: 'app_button', icon: 'bell-o', badge: 0}, {view: 'button', type: 'icon', width: 45, css: 'app_button', icon: 'cogs', id: 'cmd_ir_al_admin', hidden: true, click: 'cmd_ir_al_admin_click'} diff --git a/source/static/js/ui/main.js.orig b/source/static/js/ui/main.js.orig deleted file mode 100644 index 77c5018..0000000 --- a/source/static/js/ui/main.js.orig +++ /dev/null @@ -1,90 +0,0 @@ - - -var menu_data = [ - {id: 'app_home', icon: 'dashboard', value: 'Inicio'}, - {id: 'app_partners', icon: 'address-book-o', value: 'Clientes y Proveedores'}, - {id: 'app_products', icon: 'server', value: 'Productos y Servicios'}, - {id: 'app_bancos', icon: 'university', value: 'Bancos'}, - {id: 'app_invoices', icon: 'file-code-o', value: 'Facturas'}, -] - - -var sidebar = { - view: 'sidebar', - id: 'main_sidebar', - data: menu_data, - ready: function(){ - this.select('app_home'); - this.open(this.getParentId('app_home')); - }, - on:{ - onAfterSelect: function(id){ - $$('multi').setValue(id) - } - }, -} - - -var multi_main = { - id: 'multi', - animate: true, - cells:[ - { - id: 'app_home', - view: 'template', - template: 'HOME' - }, - app_partners, - app_products, - app_bancos, -<<<<<<< HEAD - app_school, -======= - app_nomina, ->>>>>>> nomina - app_tickets, - app_invoices, - ], -} - - -var menu_user = { - view: 'menu', - id: 'menu_user', - width: 150, - autowidth: true, - data: [ - {id: '0', value: 'User...', submenu:[{id:1, value:'Cerrar Sesión'}]}, - ], - type: { - subsign: true, - }, -} - - -var ui_main = { - rows: [ - {view: 'toolbar', padding: 3, elements: [ - {view: 'button', type: 'icon', icon: 'bars', - width: 37, align: 'left', css: 'app_button', click: function(){ - $$('main_sidebar').toggle() - } - }, - {view: 'label', id: 'lbl_title_main', label: 'Empresa Libre'}, - {}, - menu_user, - {view: 'button', type: 'icon', width: 45, css: 'app_button', - icon: 'bell-o', badge: 0}, - {view: 'button', type: 'icon', width: 45, css: 'app_button', - icon: 'cogs', id: 'cmd_ir_al_admin', hidden: true, - click: 'cmd_ir_al_admin_click'} - ] - }, - { - cols:[ - sidebar, - multi_main, - ] - } - ] -};