diff --git a/source/app/controllers/util.py b/source/app/controllers/util.py
index 8f009be..1902419 100644
--- a/source/app/controllers/util.py
+++ b/source/app/controllers/util.py
@@ -822,6 +822,14 @@ class LIBO(object):
image.Anchor = self._set_cell('{timbre.cbb}')
return
+ def _donataria(self, data):
+ if not data:
+ return
+
+ for k, v in data.items():
+ self._set_cell('{donataria.%s}' % k, v)
+ return
+
def _render(self, data):
self._set_search()
self._es_pre = data.pop('es_pre', False)
@@ -831,6 +839,7 @@ class LIBO(object):
self._conceptos(data['conceptos'])
self._totales(data['totales'])
self._timbre(data['timbre'])
+ self._donataria(data['donataria'])
self._cancelado(data['cancelada'])
self._clean()
return
@@ -856,14 +865,19 @@ class LIBO(object):
return self._read(path)
-def to_pdf(data):
+def to_pdf(data, emisor_rfc):
rfc = data['emisor']['rfc']
+ if DEBUG:
+ rfc = emisor_rfc
version = data['comprobante']['version']
if APP_LIBO:
app = LIBO()
if app.is_running:
- name = '{}_{}.ods'.format(rfc, version)
+ donativo = ''
+ if data['donativo']:
+ donativo = '_donativo'
+ name = '{}_{}{}.ods'.format(rfc.lower(), version, donativo)
path = get_template_ods(name)
if path:
return app.pdf(path, data)
@@ -1099,8 +1113,18 @@ def _timbre(doc, version, values):
return data
+def _donataria(doc, version):
+ node = doc.find('{}Complemento/{}Donatarias'.format(
+ PRE[version], PRE['DONATARIA']))
+ if node is None:
+ return {}
+
+ data = CaseInsensitiveDict(node.attrib.copy())
+ return data
+
+
def get_data_from_xml(invoice, values):
- data = {'cancelada': invoice.cancelada}
+ data = {'cancelada': invoice.cancelada, 'donativo': invoice.donativo}
doc = parse_xml(invoice.xml)
data['comprobante'] = _comprobante(doc, values)
version = data['comprobante']['version']
@@ -1108,6 +1132,7 @@ def get_data_from_xml(invoice, values):
data['receptor'] = _receptor(doc, version, values)
data['conceptos'] = _conceptos(doc, version)
data['totales'] = _totales(doc, data['comprobante'], version)
+ data['donataria'] = _donataria(doc, version)
options = {
'rfc_emisor': data['emisor']['rfc'],
@@ -1217,7 +1242,7 @@ def upload_file(rfc, opt, file_obj):
msg = 'Extensión de archivo incorrecta, selecciona un archivo ODS'
return {'status': 'server', 'name': msg, 'ok': False}
- name = '{}_3.3_donataria.ods'.format(rfc.lower())
+ name = '{}_3.3_donativo.ods'.format(rfc.lower())
path = _join(PATH_MEDIA, 'templates', name)
if save_file(path, file_obj.file.read()):
diff --git a/source/app/models/main.py b/source/app/models/main.py
index 91ac870..0201f27 100644
--- a/source/app/models/main.py
+++ b/source/app/models/main.py
@@ -153,7 +153,8 @@ class Configuracion(BaseModel):
fields = (
'txt_plantilla_factura_32',
'txt_plantilla_factura_33',
- 'txt_plantilla_factura_33j'
+ 'txt_plantilla_factura_33j',
+ 'txt_plantilla_donataria',
)
data = (Configuracion
.select()
@@ -1928,6 +1929,7 @@ class Facturas(BaseModel):
@classmethod
def get_pdf(cls, id, rfc):
+ emisor = Emisor.select()[0]
obj = Facturas.get(Facturas.id==id)
name = '{}{}_{}.pdf'.format(obj.serie, obj.folio, obj.cliente.rfc)
if obj.uuid is None:
@@ -1935,7 +1937,7 @@ class Facturas(BaseModel):
values = cls._get_not_in_xml(cls, obj)
data = util.get_data_from_xml(obj, values)
- doc = util.to_pdf(data)
+ doc = util.to_pdf(data, emisor.rfc)
return doc, name
@classmethod
diff --git a/source/app/settings.py b/source/app/settings.py
index 2a4e9df..51f7e4f 100644
--- a/source/app/settings.py
+++ b/source/app/settings.py
@@ -84,6 +84,7 @@ PRE = {
'3.2': '{http://www.sat.gob.mx/cfd/3}',
'3.3': '{http://www.sat.gob.mx/cfd/3}',
'TIMBRE': '{http://www.sat.gob.mx/TimbreFiscalDigital}',
+ 'DONATARIA': '{http://www.sat.gob.mx/donat}',
'NOMINA': {
'1.1': '{http://www.sat.gob.mx/nomina}',
'1.2': '{http://www.sat.gob.mx/nomina12}',
diff --git a/source/static/css/app.css b/source/static/css/app.css
index 4e8eb53..1634313 100644
--- a/source/static/css/app.css
+++ b/source/static/css/app.css
@@ -56,6 +56,14 @@
.webix_success div {
background-color: #00a65a !important;
- font-size: 1vw;
+ font-weight: bold;
+ font-size: 1.5vw;
+ color: white;
+}
+
+.webix_error div {
+ background-color: #DF0101 !important;
+ font-weight: bold;
+ font-size: 1.5vw;
color: white;
}
diff --git a/source/static/js/controller/admin.js b/source/static/js/controller/admin.js
index e8be6ea..4330737 100644
--- a/source/static/js/controller/admin.js
+++ b/source/static/js/controller/admin.js
@@ -136,7 +136,7 @@ function cmd_save_emisor_click(){
success:function(text, data, XmlHttpRequest){
var values = data.json()
if(values.ok){
- msg_sucess('Emisor guardado correctamente')
+ msg_ok('Emisor guardado correctamente')
}else{
msg_error(values.msg)
}
@@ -492,7 +492,7 @@ function up_cert_upload_complete(response){
}
msg = 'Archivos subidos correctamente. Esperando validación'
- msg_sucess(msg)
+ msg_ok(msg)
var values = $$('form_upload').getValues()
$$('form_upload').setValues({})
@@ -507,7 +507,7 @@ function up_cert_upload_complete(response){
var values = data.json()
if(values.ok){
$$('form_cert').setValues(values.data)
- msg_sucess(values.msg)
+ msg_ok(values.msg)
}else{
msg_error(values.msg)
}
@@ -564,7 +564,7 @@ function cmd_agregar_serie_click(){
{folio_serie: '', folio_inicio: 1, folio_usarcon: 'S'})
grid.add(values.row)
msg = 'Serie agregada correctamente'
- msg_sucess(msg)
+ msg_ok(msg)
}else{
msg_error(values.msg)
}
@@ -591,7 +591,7 @@ function grid_folios_click(id, e, node){
msg = 'Serie eliminada correctamente'
if(xhr.status == 200){
$$('grid_folios').remove(id.row)
- msg_sucess(msg)
+ msg_ok(msg)
}else{
msg = 'No se pudo eliminar'
msg_error(msg)
@@ -658,7 +658,7 @@ function cmd_probar_correo_click(){
if (values.ok){
msg = 'Correo de prueba enviado correctamente. Ya puedes \
guardar esta configuración'
- msg_sucess(msg)
+ msg_ok(msg)
}else{
msg_error(values.msg)
}
@@ -679,7 +679,7 @@ function save_config_mail(values){
var values = data.json();
if (values.ok){
msg = 'Configuración guardada correctamente'
- msg_sucess(msg)
+ msg_ok(msg)
}else{
msg_error(values.msg)
}
@@ -732,7 +732,7 @@ function emisor_logo_click(id, e){
$$('up_emisor_logo').attachEvent('onUploadComplete', function(response){
$$('emisor_logo').setValue(response.name)
- msg_sucess('Logotipo cargado correctamente')
+ msg_ok('Logotipo cargado correctamente')
})
}
@@ -768,7 +768,7 @@ function txt_plantilla_factura_33_click(e){
$$('up_template').attachEvent('onUploadComplete', function(response){
if(response.ok){
$$('txt_plantilla_factura_33').setValue(response.name)
- msg_sucess('Plantilla cargada correctamente')
+ msg_ok('Plantilla cargada correctamente')
}else{
msg_error(response.name)
}
@@ -806,7 +806,7 @@ function txt_plantilla_factura_32_click(e){
$$('up_template').attachEvent('onUploadComplete', function(response){
if(response.ok){
$$('txt_plantilla_factura_32').setValue(response.name)
- msg_sucess('Plantilla cargada correctamente')
+ msg_ok('Plantilla cargada correctamente')
}else{
msg_error(response.name)
}
@@ -844,7 +844,7 @@ function txt_plantilla_factura_33j_click(e){
$$('up_template').attachEvent('onUploadComplete', function(response){
if(response.ok){
$$('txt_plantilla_factura_33j').setValue(response.name)
- msg_sucess('Plantilla cargada correctamente')
+ msg_ok('Plantilla cargada correctamente')
}else{
msg_error(response.name)
}
@@ -882,7 +882,7 @@ function txt_plantilla_donataria_click(e){
$$('up_template').attachEvent('onUploadComplete', function(response){
if(response.ok){
$$('txt_plantilla_donataria').setValue(response.name)
- msg_sucess('Plantilla cargada correctamente')
+ msg_ok('Plantilla cargada correctamente')
}else{
msg_error(response.name)
}
@@ -1188,10 +1188,10 @@ function borrar_impuesto(row){
msg = 'Impuesto eliminado correctamente'
if(xhr.status == 200){
grid.remove(row)
- msg_sucess(msg)
+ msg_ok(msg)
}else{
msg = 'Impuesto en uso, no se pudo eliminar.'
- msg_sucess(msg)
+ msg_error(msg)
}
})
}
@@ -1226,7 +1226,7 @@ function eliminar_cuenta_banco(id){
msg = 'Cuenta eliminada correctamente'
if(xhr.status == 200){
grid.remove(id)
- msg_sucess(msg)
+ msg_ok(msg)
}else{
msg = 'No se pudo eliminar'
msg_error(msg)
diff --git a/source/static/js/controller/bancos.js b/source/static/js/controller/bancos.js
index 836593b..7c88523 100644
--- a/source/static/js/controller/bancos.js
+++ b/source/static/js/controller/bancos.js
@@ -566,7 +566,7 @@ function cancelar_movimiento(id){
if(xhr.status == 200){
get_estado_cuenta()
get_saldo_cuenta()
- msg_sucess('Movimiento cancelado correctamente')
+ msg_ok('Movimiento cancelado correctamente')
}else{
msg_error('No se pudo eliminar')
}
@@ -590,12 +590,12 @@ function cmd_cancelar_movimiento_click(){
var msg = '¿Estás seguro de cancelar el movimiento seleccionado?'
msg += '
ESTA ACCIÓN NO SE PUEDE DESHACER
'
webix.confirm({
- title:'Cancelar Movimiento',
- ok:'Si',
- cancel:'No',
- type:'confirm-error',
- text:msg,
- callback:function(result){
+ title: 'Cancelar Movimiento',
+ ok: 'Si',
+ cancel: 'No',
+ type: 'confirm-error',
+ text: msg,
+ callback: function(result){
if (result){
cancelar_movimiento(row['id'])
}
diff --git a/source/static/js/controller/invoices.js b/source/static/js/controller/invoices.js
index 7520e67..fa51c75 100644
--- a/source/static/js/controller/invoices.js
+++ b/source/static/js/controller/invoices.js
@@ -150,7 +150,7 @@ function delete_invoice(id){
webix.ajax().del('/invoices', {id: id}, function(text, xml, xhr){
if(xhr.status == 200){
gi.remove(id)
- msg_sucess('Factura eliminada correctamente')
+ msg_ok('Factura eliminada correctamente')
}else{
msg_error('No se pudo eliminar')
}
@@ -340,7 +340,7 @@ function send_anticipo_egreso(id){
webix.ajax().get('/values/anticipoegreso', {id: id}, function(text, data){
var values = data.json()
if(values.ok){
- msg_sucess(values.msg)
+ msg_ok(values.msg)
gi.add(values.row)
}else{
webix.alert({
@@ -377,7 +377,7 @@ function send_timbrar(id){
webix.ajax().get('/values/timbrar', {id: id}, function(text, data){
var values = data.json()
if(values.ok){
- msg_sucess(values.msg)
+ msg_ok(values.msg)
gi.updateItem(id, values.row)
if(values.anticipo){
//~ generar_anticipo_egreso(id)
@@ -407,7 +407,7 @@ function save_invoice(data){
success:function(text, data, XmlHttpRequest){
values = data.json();
if(values.ok){
- msg_sucess('Factura guardada correctamente. Enviando a timbrar')
+ msg_ok('Factura guardada correctamente. Enviando a timbrar')
update_grid_invoices(values)
gi.select(values.row['id'], false)
send_timbrar(values.row['id'])
@@ -442,7 +442,7 @@ function save_preinvoice(data){
success:function(text, data, XmlHttpRequest){
values = data.json();
if(values.ok){
- msg_sucess('Pre Factura generada correctamente')
+ msg_ok('Pre Factura generada correctamente')
result = true
}else{
msg_error(values.msg)
@@ -530,7 +530,7 @@ function cmd_timbrar_click(id, e, node){
var form = this.getFormView();
if(!form.validate()) {
- webix.message({type:'error', text:'Valores inválidos'})
+ msg_error('Valores inválidos')
return
}
@@ -573,7 +573,7 @@ function search_client_by_id(id){
var msg = ''
webix.ajax().get('/values/client', {'id': id}, {
error: function(text, data, xhr) {
- webix.message({type: 'error', text: 'Error al consultar'})
+ msg_error('Error al consultar')
},
success: function(text, data, xhr){
var values = data.json()
@@ -581,7 +581,7 @@ function search_client_by_id(id){
set_client(values.row)
}else{
msg = 'No se encontró un cliente con la clave: ' + id
- webix.message({type:'error', text: msg})
+ msg_error(msg)
}
}
})
@@ -612,7 +612,7 @@ function search_client_id_key_press(code, e){
if(code == 13 && value.length > 0){
var id = parseInt(value, 10)
if (isNaN(id)){
- webix.message({type:'error', text:'Captura una clave válida'});
+ msg_error('Captura una clave válida')
}else{
search_client_by_id(id)
}
@@ -730,7 +730,7 @@ function search_product_by_id(id){
webix.ajax().get('/values/product', {'id': id}, {
error: function(text, data, xhr) {
- webix.message({type: 'error', text: 'Error al consultar'})
+ msg_error('Error al consultar')
},
success: function(text, data, xhr){
var values = data.json()
@@ -738,7 +738,7 @@ function search_product_by_id(id){
set_product(values)
} else {
msg = 'No se encontró un producto con la clave: ' + id
- webix.message({type: 'error', text: msg})
+ msg_error(msg)
}
}
})
@@ -751,7 +751,7 @@ function search_product_id_key_press(code, e){
if(code == 13 && value.length > 0){
var id = parseInt(value, 10)
if (isNaN(id)){
- webix.message({type: 'error', text: 'Captura una clave válida'});
+ msg_error('Captura una clave válida')
}else{
search_product_by_id(id)
}
@@ -773,7 +773,7 @@ function grid_details_before_edit_stop(state, editor){
if(editor.column == 'descripcion'){
if(!state.value.trim()){
msg = 'La descripción no puede estar vacía'
- webix.message({type:'error', text: msg})
+ msg_error(msg)
grid.blockEvent()
state.value = state.old
grid.editCancel()
@@ -788,7 +788,7 @@ function grid_details_before_edit_stop(state, editor){
var cantidad = parseFloat(state.value)
if(isNaN(cantidad)){
msg = 'La cantidad debe ser un número'
- webix.message({type:'error', text: msg})
+ msg_error(msg)
grid.blockEvent()
state.value = state.old
grid.editCancel()
@@ -803,7 +803,7 @@ function grid_details_before_edit_stop(state, editor){
var valor_unitario = parseFloat(state.value)
if(isNaN(valor_unitario)){
msg = 'El valor unitario debe ser un número'
- webix.message({type:'error', text: msg})
+ msg_error(msg)
grid.blockEvent()
state.value = state.old
grid.editCancel()
@@ -818,7 +818,7 @@ function grid_details_before_edit_stop(state, editor){
var descuento = parseFloat(state.value)
if(isNaN(descuento)){
msg = 'El descuento debe ser un número'
- webix.message({type:'error', text: msg})
+ msg_error(msg)
grid.blockEvent()
state.value = state.old
grid.editCancel()
@@ -928,7 +928,7 @@ function enviar_correo(row){
success:function(text, data, XmlHttpRequest){
values = data.json();
if(values.ok){
- msg_sucess(values.msg)
+ msg_ok(values.msg)
}else{
msg_error(values.msg)
}
@@ -960,7 +960,7 @@ function send_cancel(id){
webix.ajax().get('/values/cancelinvoice', {id: id}, function(text, data){
var values = data.json()
if(values.ok){
- msg_sucess(values.msg)
+ msg_ok(values.msg)
gi.updateItem(id, values.row)
}else{
webix.alert({
@@ -1026,7 +1026,7 @@ function get_invoices(rango){
webix.ajax().get('/invoices', rango, {
error: function(text, data, xhr) {
- webix.message({type: 'error', text: 'Error al consultar'})
+ msg_error('Error al consultar')
},
success: function(text, data, xhr) {
var values = data.json();
@@ -1163,7 +1163,7 @@ function get_prefacturas(){
var grid = $$('grid_preinvoices')
webix.ajax().get('/preinvoices', rango, {
error: function(text, data, xhr) {
- webix.message({type: 'error', text: 'Error al consultar'})
+ msg_error('Error al consultar')
},
success: function(text, data, xhr) {
var values = data.json();
@@ -1197,7 +1197,7 @@ function delete_preinvoice(id){
webix.ajax().del('/preinvoices', {id: id}, function(text, xml, xhr){
if(xhr.status == 200){
$$('grid_preinvoices').remove(id)
- msg_sucess('PreFactura eliminada correctamente')
+ msg_ok('PreFactura eliminada correctamente')
}else{
msg_error('No se pudo eliminar')
}
@@ -1330,7 +1330,7 @@ function enviar_prefactura(id){
success:function(text, data, XmlHttpRequest){
values = data.json();
if(values.ok){
- msg_sucess(values.msg)
+ msg_ok(values.msg)
}else{
msg_error(values.msg)
}
@@ -1382,7 +1382,7 @@ function get_facturas_por_cliente(){
webix.ajax().get('/invoices', filters, {
error: function(text, data, xhr) {
- webix.message({type: 'error', text: 'Error al consultar'})
+ msg_error('Error al consultar')
},
success: function(text, data, xhr) {
var values = data.json();
@@ -1449,7 +1449,7 @@ function cmd_limpiar_relacionados_click(){
$$('grid_relacionados').clearAll()
table_relaciones.clear()
tipo_relacion = ''
- msg_sucess('Las relaciones han sido eliminadas')
+ msg_ok('Las relaciones han sido eliminadas')
}
}
})
@@ -1474,7 +1474,7 @@ function cmd_guardar_relacionados_click(){
table_relaciones.clear()
table_relaciones.insert(data)
tipo_relacion = value
- msg_sucess('Relaciones guardadas correctamente')
+ msg_ok('Relaciones guardadas correctamente')
}
diff --git a/source/static/js/controller/main.js b/source/static/js/controller/main.js
index 68e0815..d74004a 100644
--- a/source/static/js/controller/main.js
+++ b/source/static/js/controller/main.js
@@ -98,7 +98,7 @@ function get_uso_cfdi_to_table(){
function get_partners(){
webix.ajax().get('/partners', {}, {
error: function(text, data, xhr) {
- webix.message({type: 'error', text: 'Error al consultar'});
+ msg_error('Error al consultar')
},
success: function(text, data, xhr) {
var values = data.json();
@@ -115,7 +115,7 @@ function get_products(){
var grid = $$('grid_products')
webix.ajax().get('/products', {}, {
error: function(text, data, xhr) {
- webix.message({type: 'error', text: 'Error al consultar'})
+ msg_error('Error al consultar')
},
success: function(text, data, xhr) {
var values = data.json();
@@ -166,7 +166,6 @@ function current_dates(){
function multi_change(prevID, nextID){
- //~ webix.message(nextID)
if(nextID == 'app_partners'){
active = $$('multi_partners').getActiveId()
if(active == 'partners_home'){
diff --git a/source/static/js/controller/partners.js b/source/static/js/controller/partners.js
index 7b331ae..93b4346 100644
--- a/source/static/js/controller/partners.js
+++ b/source/static/js/controller/partners.js
@@ -40,14 +40,14 @@ function cmd_edit_partner_click(id, e, node){
if (row == undefined){
msg = 'Selecciona un Socio de Negocio'
- webix.message({type:'error', text: msg})
+ msg_error(msg)
return
}
get_condicion_pago()
webix.ajax().get("/partners", {id: row['id']}, {
error: function(text, data, xhr) {
- webix.message({type:"error", text: "Error al consultar"})
+ msg_error()
},
success: function(text, data, xhr){
var values = data.json()
@@ -83,7 +83,7 @@ function cmd_delete_partner_click(id, e, node){
if (row == undefined){
msg = 'Selecciona un Cliente o Proveedor'
- webix.message({type:'error', text: msg})
+ msg_error(msg)
return
}
@@ -112,10 +112,10 @@ function delete_partner(id){
var msg = 'Socio eliminado correctamente'
if (xhr.status == 200){
$$('grid_partners').remove(id);
- webix.message({type: 'success', text: msg})
+ msg_ok(msg)
} else {
msg = 'No se pudo eliminar. Asegurate de que no tenga documentos relacionados'
- webix.message({type: 'error', text: msg})
+ msg_error(msg)
}
})
}
@@ -126,7 +126,7 @@ function cmd_save_partner_click(id, e, node){
var form = this.getFormView();
if (!form.validate()) {
- webix.message({type: 'error', text: msg})
+ msg_error(msg)
return
}
@@ -148,14 +148,14 @@ function cmd_save_partner_click(id, e, node){
webix.ajax().post('/partners', values, {
error:function(text, data, XmlHttpRequest){
msg = 'Ocurrio un error, consulta a soporte técnico';
- webix.message({type:'error', text:msg});
+ msg_error(msg)
},
success:function(text, data, XmlHttpRequest){
var values = data.json();
if (values.ok) {
update_grid_partner(values)
} else {
- webix.message({type:'error', text:values.msg});
+ msg_error(msg)
}
}
})
@@ -173,7 +173,7 @@ function update_grid_partner(values){
$$("grid_partners").updateItem(values.row['id'], values.row)
}
$$('multi_partners').setValue('partners_home')
- webix.message({type:'success', text: msg})
+ msg_ok(msg)
}
@@ -193,13 +193,13 @@ function postal_code_key_up(){
if( value.length == 5 ){
webix.ajax().get('/values/cp', {cp: value}, {
error: function(text, data, xhr) {
- webix.message({type:'error', text:'Error al consultar el C.P.'})
+ msg_error('Error al consultar el C.P.')
},
success: function(text, data, xhr) {
var values = data.json();
if (values.estado == undefined){
msg = 'No se encontró el C.P., asegurate de que sea correcto'
- webix.message({type:'error', text:msg})
+ msg_error(msg)
} else {
$$('form_partner').setValues({
estado: values.estado,
diff --git a/source/static/js/controller/products.js b/source/static/js/controller/products.js
index da87d4f..52074c9 100644
--- a/source/static/js/controller/products.js
+++ b/source/static/js/controller/products.js
@@ -25,7 +25,7 @@ function cmd_edit_product_click(id, e, node){
var grid = $$('grid_products')
var row = grid.getSelectedItem()
if(row == undefined){
- webix.message({type: 'error', text: 'Selecciona un Producto'})
+ msg_error('Selecciona un Producto')
return
}
@@ -35,7 +35,7 @@ function cmd_edit_product_click(id, e, node){
webix.ajax().get('/products', {id:row['id']}, {
error: function(text, data, xhr) {
- webix.message({type: 'error', text: 'Error al consultar'})
+ msg_error()
},
success: function(text, data, xhr){
var values = data.json()
@@ -56,10 +56,10 @@ function delete_product(id){
var msg = 'Producto eliminado correctamente'
if(xhr.status == 200){
$$('grid_products').remove(id)
- webix.message({type:'success', text:msg})
+ msg_ok(msg)
}else{
msg = 'No se pudo eliminar'
- webix.message({type:'error', text:msg})
+ msg_error(msg)
}
})
}
@@ -68,7 +68,7 @@ function delete_product(id){
function cmd_delete_product_click(id, e, node){
var row = $$('grid_products').getSelectedItem()
if (row == undefined){
- webix.message({type:'error', text: 'Selecciona un Producto'})
+ msg_error('Selecciona un Producto')
return
}
@@ -117,7 +117,7 @@ function update_grid_products(values){
$$("grid_products").updateItem(values.row['id'], values.row)
}
$$('multi_products').setValue('products_home')
- webix.message({type: 'success', text: msg})
+ msg_ok(msg)
}
@@ -126,20 +126,20 @@ function cmd_save_product_click(id, e, node){
var form = this.getFormView()
if(!form.validate()){
- webix.message({type: 'error', text: 'Valores inválidos'})
+ msg_error('Valores inválidos')
return
}
var rows = $$('grid_product_taxes').getSelectedId(true, true)
if (rows.length == 0){
- webix.message({type: 'error', text: 'Selecciona un impuesto'})
+ msg_error('Selecciona un impuesto')
return
}
var values = form.getValues();
if (!validate_sat_key_product(values.clave_sat, false)){
- webix.message({ type:'error', text:'La clave SAT no existe' })
+ msg_error('La clave SAT no existe')
return
}
@@ -147,14 +147,14 @@ function cmd_save_product_click(id, e, node){
webix.ajax().sync().post('products', values, {
error:function(text, data, XmlHttpRequest){
msg = 'Ocurrio un error, consulta a soporte técnico'
- webix.message({type: 'error', text: msg})
+ msg_error(msg)
},
success:function(text, data, XmlHttpRequest){
var values = data.json();
if (values.ok) {
update_grid_products(values)
}else{
- webix.message({type:'error', text:values.msg})
+ msg_error(values.msg)
}
}
})
@@ -192,7 +192,7 @@ function chk_automatica_change(new_value, old_value){
function get_new_key(){
webix.ajax().get('/values/newkey', {
error: function(text, data, xhr) {
- webix.message({type:'error', text: text})
+ msg_error(text)
},
success: function(text, data, xhr) {
var values = data.json();
diff --git a/source/static/js/controller/util.js b/source/static/js/controller/util.js
index 7d53233..713a3bb 100644
--- a/source/static/js/controller/util.js
+++ b/source/static/js/controller/util.js
@@ -56,12 +56,15 @@ function show(nombre, value){
function msg_error(msg){
+ if(!msg){
+ msg = 'Error al consultar'
+ }
webix.message({type: 'error', text: msg})
}
-function msg_sucess(msg){
- webix.message({type: 'sucess', text: msg})
+function msg_ok(msg){
+ webix.message({type: 'success', text: msg})
}
@@ -119,7 +122,7 @@ webix.ui.datafilter.rowCount = webix.extend({
function validate_rfc(value){
rfc = value.trim().toUpperCase();
if ( rfc == ""){
- webix.message({ type:"error", text:"El RFC no puede estar vacío" });
+ msg_error('El RFC no puede estar vacío')
return false
}
@@ -131,41 +134,41 @@ function validate_rfc(value){
start = 2
}
if (rfc.length != length){
- webix.message({ type:"error", text:"Longitud incorrecta del RFC" });
+ msg_error('Longitud incorrecta del RFC')
return false
}
if (tipo_persona < 3 && (rfc == RFC_PUBLICO || rfc == RFC_EXTRANJERO)){
- webix.message({ type:"error", text:"RFC incorrecto" });
+ msg_error('RFC incorrecto')
return false
}
var part = rfc.slice(0, start);
var re = new RegExp('[a-z&Ñ]{' + start + '}', 'i');
if (!part.match(re)){
- webix.message({ type:"error", text: "El RFC tiene caractéres inválidos al inicio" });
+ msg_error('El RFC tiene caractéres inválidos al inicio')
return false
}
part = rfc.slice(-3);
re = new RegExp('[a-z0-9]{3}', 'i');
if (!part.match(re)){
- webix.message({ type:"error", text: "El RFC tiene caractéres inválidos al final" });
+ msg_error('El RFC tiene caractéres inválidos al final')
return false
}
part = rfc.slice(-9, -3);
re = new RegExp('[0-9]{6}', 'i');
if (!part.match(re)){
- webix.message({ type:"error", text: "Fecha inválida" });
+ msg_error('Fecha inválida')
return false
}
var month = parseInt(part.slice(-4, -2))
if (month == 0 || month > 12 ){
- webix.message({ type:"error", text: "Fecha inválida" });
+ msg_error('Fecha inválida')
return false
}
var day = parseInt(part.slice(-2))
if (day == 0 || day > 31 ){
- webix.message({ type:"error", text: "Fecha inválida" });
+ msg_error('Fecha inválida')
return false
}
diff --git a/source/static/js/ui/invoices.js b/source/static/js/ui/invoices.js
index 5d94855..d8b30a3 100644
--- a/source/static/js/ui/invoices.js
+++ b/source/static/js/ui/invoices.js
@@ -615,8 +615,3 @@ var app_invoices = {
multi_invoices
],
}
-
-
-
-
-