diff --git a/source/app/models/main.py b/source/app/models/main.py index d1a658e..cb19171 100644 --- a/source/app/models/main.py +++ b/source/app/models/main.py @@ -2394,10 +2394,13 @@ class Socios(BaseModel): ft = ('nombre_comercial', 'calle', 'no_exterior', 'no_interior', 'colonia', 'municipio', 'estado', 'pais', 'codigo_postal', 'notas', 'telefonos', 'cuenta_cliente', 'cuenta_proveedor', 'web', - 'correo_facturas', 'plantilla') + 'correo_facturas', 'plantilla', 'id_fiscal') for name in ft: fields[name] = values.get(name, '') + if fields['pais'] != 'México': + fields['pais'] = fields['pais'].upper() + return fields @classmethod @@ -3866,6 +3869,11 @@ class Facturas(BaseModel): 'Nombre': invoice.cliente.nombre, 'UsoCFDI': invoice.uso_cfdi, } + if invoice.cliente.tipo_persona == 4: + if invoice.cliente.pais: + receptor['ResidenciaFiscal'] = invoice.cliente.pais + if invoice.cliente.id_fiscal: + receptor['NumRegIdTrib'] = invoice.cliente.id_fiscal conceptos = [] rows = FacturasDetalle.select().where(FacturasDetalle.factura==invoice) diff --git a/source/static/js/controller/partners.js b/source/static/js/controller/partners.js index 155ab7f..6a09c38 100644 --- a/source/static/js/controller/partners.js +++ b/source/static/js/controller/partners.js @@ -169,6 +169,14 @@ function cmd_save_partner_click(id, e, node){ return } + if(values.tipo_persona == 4){ + if(values.pais && values.pais.length != 3){ + msg = 'Longitud de país inválida' + msg_error(msg) + return + } + } + webix.ajax().post('/partners', values, { error:function(text, data, XmlHttpRequest){ msg = 'Ocurrio un error, consulta a soporte técnico'; @@ -268,20 +276,21 @@ function opt_tipo_change(new_value, old_value){ $$("nombre").define("value", "") $$("pais").define("readonly", true) $$("pais").define("value", PAIS) - + $$('id_fiscal').define('value', '') + show('id_fiscal', new_value == 4) if (new_value == 1 || new_value == 2){ - $$("rfc").define("value", ""); - $$("rfc").define("readonly", false); + $$("rfc").define("value", "") + $$("rfc").define("readonly", false) } else if (new_value == 3) { - $$("rfc").define("value", RFC_PUBLICO); - $$("nombre").define("value", PUBLICO); - $$("rfc").define("readonly", true); + $$("rfc").define("value", RFC_PUBLICO) + $$("nombre").define("value", PUBLICO) + $$("rfc").define("readonly", true) } else if (new_value == 4) { - $$("rfc").define("value", RFC_EXTRANJERO); - $$("rfc").define("readonly", true); - $$("pais").define("readonly", false); - $$("pais").define("value", ""); + $$("rfc").define("value", RFC_EXTRANJERO) + $$("rfc").define("readonly", true) + $$("pais").define("readonly", false) + $$("pais").define("value", "") } $$("nombre").refresh(); diff --git a/source/static/js/ui/partners.js b/source/static/js/ui/partners.js index a2572fe..efba303 100644 --- a/source/static/js/ui/partners.js +++ b/source/static/js/ui/partners.js @@ -69,7 +69,10 @@ var controls_fiscales = [ invalidMessage: 'El Tipo de Persona es requerido'}, {template: 'Dirección Fiscal', type: 'section'}, {cols: [{view: 'text', id: 'rfc', name: 'rfc', label: 'RFC: ', width: 300, - required: true, invalidMessage: 'RFC inválido', attributes: {maxlength: 13}},{}]}, + required: true, invalidMessage: 'RFC inválido', attributes: {maxlength: 13}}, + {view: 'text', id: 'id_fiscal', name: 'id_fiscal', label: 'ID Fiscal: ', + width: 400, required: false, attributes: {maxlength: 40}, hidden: true}, + {}]}, {view: 'text', id: 'nombre', name: 'nombre', label: 'Razón Social: ', required: true, invalidMessage: 'La Razón Social es requerida'}, {view: 'text', id: 'calle', name: 'calle', label: 'Calle: '}, @@ -82,8 +85,8 @@ var controls_fiscales = [ {view: 'text', id: 'colonia', name: 'colonia', label: 'Colonia: '}, {view: 'text', id: 'municipio', name: 'municipio', label: 'Municipio: '}, {view: 'text', id: 'estado', name: 'estado', label: 'Estado: '}, - {view: 'text', id: 'pais', name: 'pais', label: 'País: ', - value: 'México', readonly: true}, + {view: 'text', id: 'pais', name: 'pais', label: 'País: ', value: 'México', + readonly: true, placeholder: 'Usa solo tres letras de acuerdo al catalogo del SAT'}, {template: 'Condiciones Comerciales', type: 'section'}, {cols: [ {view: 'richselect', id: 'forma_pago', name: 'forma_pago', diff --git a/source/templates/plantilla_factura.ods b/source/templates/plantilla_factura.ods index c2c7afe..8061850 100644 Binary files a/source/templates/plantilla_factura.ods and b/source/templates/plantilla_factura.ods differ