Add UI for CE
This commit is contained in:
parent
390ec60fdd
commit
6fd8f9e2ea
|
@ -117,10 +117,10 @@ SAT = {
|
||||||
'schema': ' http://www.sat.gob.mx/CartaPorte20 http://www.sat.gob.mx/sitio_internet/cfd/CartaPorte/CartaPorte20.xsd',
|
'schema': ' http://www.sat.gob.mx/CartaPorte20 http://www.sat.gob.mx/sitio_internet/cfd/CartaPorte/CartaPorte20.xsd',
|
||||||
},
|
},
|
||||||
'comercioe': {
|
'comercioe': {
|
||||||
'version': '1.1',
|
'version': '2.0',
|
||||||
'prefix': 'cce11',
|
'prefix': 'cce20',
|
||||||
'xmlns': 'http://www.sat.gob.mx/ComercioExterior11',
|
'xmlns': 'http://www.sat.gob.mx/ComercioExterior20',
|
||||||
'schema': ' http://www.sat.gob.mx/ComercioExterior11 http://www.sat.gob.mx/sitio_internet/cfd/ComercioExterior11/ComercioExterior11.xsd',
|
'schema': ' http://www.sat.gob.mx/ComercioExterior20 http://www.sat.gob.mx/sitio_internet/cfd/ComercioExterior20/ComercioExterior20.xsd',
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -144,6 +144,7 @@ class CFDI(object):
|
||||||
self._comercio_exterior = False
|
self._comercio_exterior = False
|
||||||
self._divisas = ''
|
self._divisas = ''
|
||||||
self._tipo_de_comprobante = ''
|
self._tipo_de_comprobante = ''
|
||||||
|
self._exportacion = DEFAULT['exportacion']
|
||||||
self.error = ''
|
self.error = ''
|
||||||
|
|
||||||
def _now(self):
|
def _now(self):
|
||||||
|
@ -198,6 +199,8 @@ class CFDI(object):
|
||||||
self._leyendas = bool(datos['complementos'].get('leyendas', False))
|
self._leyendas = bool(datos['complementos'].get('leyendas', False))
|
||||||
self._carta_porte = bool(datos['complementos'].get('cartaporte', False))
|
self._carta_porte = bool(datos['complementos'].get('cartaporte', False))
|
||||||
self._comercio_exterior = bool(datos['complementos'].get('comercioe', False))
|
self._comercio_exterior = bool(datos['complementos'].get('comercioe', False))
|
||||||
|
if self._comercio_exterior:
|
||||||
|
self._exportacion = datos['complementos']['comercioe'].pop('Exportacion')
|
||||||
|
|
||||||
self._divisas = datos['comprobante'].pop('divisas', '')
|
self._divisas = datos['comprobante'].pop('divisas', '')
|
||||||
|
|
||||||
|
@ -288,7 +291,7 @@ class CFDI(object):
|
||||||
|
|
||||||
# ~ cfdi4
|
# ~ cfdi4
|
||||||
if not 'Exportacion' in attributes:
|
if not 'Exportacion' in attributes:
|
||||||
attributes['Exportacion'] = DEFAULT['exportacion']
|
attributes['Exportacion'] = self._exportacion
|
||||||
|
|
||||||
self._tipo_de_comprobante = attributes['TipoDeComprobante']
|
self._tipo_de_comprobante = attributes['TipoDeComprobante']
|
||||||
|
|
||||||
|
@ -644,16 +647,9 @@ class CFDI(object):
|
||||||
emisor = datos.pop('emisor')
|
emisor = datos.pop('emisor')
|
||||||
# ~ propietario = datos.pop('propietario')
|
# ~ propietario = datos.pop('propietario')
|
||||||
receptor = datos.pop('receptor')
|
receptor = datos.pop('receptor')
|
||||||
destinatario = datos.pop('destinatario')
|
# ~ destinatario = datos.pop('destinatario')
|
||||||
conceptos = datos.pop('mercancias')
|
conceptos = datos.pop('mercancias')
|
||||||
|
|
||||||
# ~ attributes = {}
|
|
||||||
# ~ attributes['xmlns:{}'.format(pre)] = \
|
|
||||||
# ~ 'http://www.sat.gob.mx/ComercioExterior11'
|
|
||||||
# ~ attributes['xsi:schemaLocation'] = \
|
|
||||||
# ~ 'http://www.sat.gob.mx/ComercioExterior11 ' \
|
|
||||||
# ~ 'http://www.sat.gob.mx/sitio_internet/cfd/ComercioExterior11/ComercioExterior11.xsd'
|
|
||||||
|
|
||||||
attr = {'Version': SAT['comercioe']['version']}
|
attr = {'Version': SAT['comercioe']['version']}
|
||||||
attr.update(datos)
|
attr.update(datos)
|
||||||
ce = ET.SubElement(
|
ce = ET.SubElement(
|
||||||
|
@ -674,13 +670,13 @@ class CFDI(object):
|
||||||
node = ET.SubElement(ce, '{}:Receptor'.format(prefix), attributes)
|
node = ET.SubElement(ce, '{}:Receptor'.format(prefix), attributes)
|
||||||
ET.SubElement(node, '{}:Domicilio'.format(prefix), receptor)
|
ET.SubElement(node, '{}:Domicilio'.format(prefix), receptor)
|
||||||
|
|
||||||
attributes = {}
|
# ~ attributes = {}
|
||||||
if 'NumRegIdTrib' in destinatario:
|
# ~ if 'NumRegIdTrib' in destinatario:
|
||||||
attributes = {'NumRegIdTrib': destinatario.pop('NumRegIdTrib')}
|
# ~ attributes = {'NumRegIdTrib': destinatario.pop('NumRegIdTrib')}
|
||||||
if 'Nombre' in destinatario:
|
# ~ if 'Nombre' in destinatario:
|
||||||
attributes.update({'Nombre': destinatario.pop('Nombre')})
|
# ~ attributes.update({'Nombre': destinatario.pop('Nombre')})
|
||||||
node = ET.SubElement(ce, '{}:Destinatario'.format(prefix), attributes)
|
# ~ node = ET.SubElement(ce, '{}:Destinatario'.format(prefix), attributes)
|
||||||
ET.SubElement(node, '{}:Domicilio'.format(prefix), destinatario)
|
# ~ ET.SubElement(node, '{}:Domicilio'.format(prefix), destinatario)
|
||||||
|
|
||||||
node = ET.SubElement(ce, '{}:Mercancias'.format(prefix))
|
node = ET.SubElement(ce, '{}:Mercancias'.format(prefix))
|
||||||
fields = ('Marca', 'Modelo', 'SubModelo', 'NumeroSerie')
|
fields = ('Marca', 'Modelo', 'SubModelo', 'NumeroSerie')
|
||||||
|
|
|
@ -861,9 +861,6 @@ def get_cert(args):
|
||||||
|
|
||||||
def make_xml(data, certificado):
|
def make_xml(data, certificado):
|
||||||
cert = SATCertificate(certificado.cer, certificado.key_enc.encode())
|
cert = SATCertificate(certificado.cer, certificado.key_enc.encode())
|
||||||
# ~ if DEBUG:
|
|
||||||
# ~ data['emisor']['Rfc'] = certificado.rfc
|
|
||||||
# ~ data['emisor']['RegimenFiscal'] = '603'
|
|
||||||
|
|
||||||
cfdi = CFDI()
|
cfdi = CFDI()
|
||||||
xml = ET.parse(BytesIO(cfdi.get_xml(data).encode()))
|
xml = ET.parse(BytesIO(cfdi.get_xml(data).encode()))
|
||||||
|
|
|
@ -5616,7 +5616,6 @@ class Facturas(BaseModel):
|
||||||
data = {
|
data = {
|
||||||
'factura': invoice,
|
'factura': invoice,
|
||||||
'nombre': 'comercioe',
|
'nombre': 'comercioe',
|
||||||
# ~ 'valores': utils.dumps(values),
|
|
||||||
'valores': valores,
|
'valores': valores,
|
||||||
}
|
}
|
||||||
FacturasComplementos.create(**data)
|
FacturasComplementos.create(**data)
|
||||||
|
|
|
@ -102,7 +102,14 @@ var invoices_controllers = {
|
||||||
$$('cmd_carta_add_product').attachEvent('onItemClick', cmd_carta_add_product_click)
|
$$('cmd_carta_add_product').attachEvent('onItemClick', cmd_carta_add_product_click)
|
||||||
$$('cmd_carta_copy_from_invoice').attachEvent('onItemClick', cmd_carta_copy_from_invoice_click)
|
$$('cmd_carta_copy_from_invoice').attachEvent('onItemClick', cmd_carta_copy_from_invoice_click)
|
||||||
$$('cmd_carta_import_json').attachEvent('onItemClick', cmd_carta_import_json_click)
|
$$('cmd_carta_import_json').attachEvent('onItemClick', cmd_carta_import_json_click)
|
||||||
|
|
||||||
$$('cmd_import_json_comercioe').attachEvent('onItemClick', cmd_import_json_comercioe_click)
|
$$('cmd_import_json_comercioe').attachEvent('onItemClick', cmd_import_json_comercioe_click)
|
||||||
|
$$('cmd_ce_tipo_cambio').attachEvent('onItemClick', cmd_ce_tipo_cambio_click)
|
||||||
|
$$('cmd_ce_add_propietario').attachEvent('onItemClick', cmd_ce_add_propietario_click)
|
||||||
|
$$('cmd_ce_add_mercancia').attachEvent('onItemClick', cmd_ce_add_mercancia_click)
|
||||||
|
$$('grid_ce_propietarios').attachEvent('onItemClick', grid_ce_propietarios_click)
|
||||||
|
$$('grid_ce_mercancias').attachEvent('onItemClick', grid_ce_mercancias_click)
|
||||||
|
|
||||||
$$('cmd_show_global_information').attachEvent('onItemClick', cmd_show_global_information_click)
|
$$('cmd_show_global_information').attachEvent('onItemClick', cmd_show_global_information_click)
|
||||||
|
|
||||||
webix.extend($$('grid_invoices'), webix.ProgressBar)
|
webix.extend($$('grid_invoices'), webix.ProgressBar)
|
||||||
|
@ -907,11 +914,11 @@ function cmd_timbrar_click(id, e, node){
|
||||||
|
|
||||||
usar_ine = $$('chk_cfdi_usar_ine').getValue()
|
usar_ine = $$('chk_cfdi_usar_ine').getValue()
|
||||||
if(usar_ine){
|
if(usar_ine){
|
||||||
msg += 'Estas usando el complemento INE<BR><BR>'
|
msg += 'Estas usando el complemento: INE<BR><BR>'
|
||||||
}
|
}
|
||||||
|
|
||||||
if($$('chk_cfdi_usar_comercioe').getValue()){
|
if($$('chk_cfdi_usar_comercioe').getValue()){
|
||||||
msg += 'Estas usando el complemento Comercio Exterior<BR><BR>'
|
msg += 'Estas usando el complemento:<BR>Comercio Exterior<BR><BR>'
|
||||||
if(values_comercioe === null){
|
if(values_comercioe === null){
|
||||||
msg = 'El complemento de Comercio Exterior esta vacío'
|
msg = 'El complemento de Comercio Exterior esta vacío'
|
||||||
msg_error(msg)
|
msg_error(msg)
|
||||||
|
@ -3000,3 +3007,36 @@ function cmd_save_global_information_click(){
|
||||||
function cmd_win_global_close_click(){
|
function cmd_win_global_close_click(){
|
||||||
$$('win_global_information').close()
|
$$('win_global_information').close()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function cmd_ce_tipo_cambio_click(){
|
||||||
|
window.open('https://www.banxico.org.mx/tipcamb/llenarTiposCambioAction.do?idioma=sp', '_blank')
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function cmd_ce_add_propietario_click(){
|
||||||
|
var g = $$('grid_ce_propietarios')
|
||||||
|
g.add({delete: '-'})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function grid_ce_propietarios_click(id, e, node){
|
||||||
|
if(id.column != 'delete'){
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.remove(id.row)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function cmd_ce_add_mercancia_click(){
|
||||||
|
var g = $$('grid_ce_mercancias')
|
||||||
|
g.add({delete: '-'})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function grid_ce_mercancias_click(id, e, node){
|
||||||
|
if(id.column != 'delete'){
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.remove(id.row)
|
||||||
|
}
|
||||||
|
|
|
@ -1210,13 +1210,266 @@ var controls_carta_porte = [
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
var opt_ce_exportacion = [
|
||||||
|
{id: '02', value: '[02] Definitiva con clave A1'},
|
||||||
|
{id: '03', value: '[03] Temporal'},
|
||||||
|
{id: '04', value: '[04] Definitiva con clave distinta a A1'},
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
var opt_ce_motivo_traslado = [
|
||||||
|
{id: '', value: ''},
|
||||||
|
{id: '01', value: '[01] Envío de mercancias facturadas con anterioridad'},
|
||||||
|
{id: '02', value: '[02] Reubicación de mercancías propias'},
|
||||||
|
{id: '03', value: '[03] Envío de mercancías objeto de contrato de consignación'},
|
||||||
|
{id: '04', value: '[04] Envío de mercancías para posterior enajenación'},
|
||||||
|
{id: '05', value: '[05] Envío de mercancías propiedad de terceros'},
|
||||||
|
{id: '99', value: '[99] Otros'},
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
var opt_ce_clave_pedimento = [
|
||||||
|
{id: 'A1', value: '[A1] Definitiva'},
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
var opt_ce_certificado_origen = [
|
||||||
|
{id: '0', value: '[0] No funge'},
|
||||||
|
{id: '1', value: '[1] Funge'},
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
var opt_ce_incoterm = [
|
||||||
|
{id: 'CFR', value: '[CFR] Coste y flete (puerto de destino convenido)'},
|
||||||
|
{id: 'CIF', value: '[CIF] Coste, seguro y flete (puerto de destino convenido)'},
|
||||||
|
{id: 'CPT', value: '[CPT] Trasnporte pagado hasta el lugar de destino convenido'},
|
||||||
|
{id: 'CIP', value: '[CIP] Trasnporte y seguro pagado hasta el lugar de destino convenido'},
|
||||||
|
{id: 'DAP', value: '[DAP] Entregada en lugar'},
|
||||||
|
{id: 'DDP', value: '[DDP] Entregada derechos pagados en lugar de destino convenido'},
|
||||||
|
{id: 'DPU', value: '[DPU] Entregada y descargada en lugar acordado'},
|
||||||
|
{id: 'EXW', value: '[EXW] En fábrica (lugar convenido)'},
|
||||||
|
{id: 'FCA', value: '[FCA] Franco transportista (lugar designado)'},
|
||||||
|
{id: 'FAS', value: '[FAS] Franco al costado del buque (puerto de carga convenido)'},
|
||||||
|
{id: 'FOB', value: '[FOB] Franco a bordo (puerto de carga convenido)'},
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
var body_ce_datos_generales = {rows:[
|
||||||
|
{cols: [{maxWidth: 15},
|
||||||
|
{view: 'richselect', id: 'lst_ce_exportacion', label: 'Exportación: ',
|
||||||
|
value: '02', labelWidth: 130, minWidth: 400, options: opt_ce_exportacion},
|
||||||
|
{view: 'richselect', id: 'lst_ce_motivo_traslado', label: 'Motivo Traslado: ',
|
||||||
|
labelWidth: 130, minWidth: 500, options: opt_ce_motivo_traslado},
|
||||||
|
{},
|
||||||
|
{maxWidth: 15}]},
|
||||||
|
{cols: [{maxWidth: 15},
|
||||||
|
{view: 'richselect', id: 'lst_ce_clave_pedimento', label: 'Clave de Pedimento: ',
|
||||||
|
value: 'A1', labelWidth: 130, minWidth: 400, maxWidth: 400, options: opt_ce_clave_pedimento},
|
||||||
|
{view: 'richselect', id: 'lst_ce_certificado_origen', label: 'Certificado Origen: ',
|
||||||
|
value: '0', labelWidth: 130, maxWidth: 300, options: opt_ce_certificado_origen},
|
||||||
|
{view: 'text', id: 'txt_ce_numero_certificado', label: 'Nº Certificado:', labelWidth: 100},
|
||||||
|
{maxWidth: 15}]},
|
||||||
|
{cols: [{maxWidth: 15},
|
||||||
|
{view: 'text', id: 'txt_ce_numero_exportador', label: 'Nº Exportador: ',
|
||||||
|
labelWidth: 130, minWidth: 400, maxWidth: 500},
|
||||||
|
{view: 'richselect', id: 'lst_ce_incoterm', label: 'Incoterm: ', value: 'CFR',
|
||||||
|
labelWidth: 130, minWidth: 500, maxWidth: 500, options: opt_ce_incoterm},
|
||||||
|
{view: 'text', id: 'txt_ce_observaciones', label: 'Observaciones:', labelWidth: 100},
|
||||||
|
{maxWidth: 15}]},
|
||||||
|
{cols: [{maxWidth: 15},
|
||||||
|
{view: 'text', id: 'txt_ce_total_usd', label: 'Total USD: ',
|
||||||
|
labelWidth: 130, minWidth: 400, inputAlign: 'right'},
|
||||||
|
{view: 'text', id: 'txt_ce_tipo_cambio_usd', label: 'Tipo Cambio USD:', labelWidth: 130,
|
||||||
|
inputAlign: 'right'},
|
||||||
|
{},
|
||||||
|
{view: 'button', id: 'cmd_ce_tipo_cambio', label: 'TC Banxico',
|
||||||
|
type: 'iconButton', autowidth: true, icon: ''},
|
||||||
|
{maxWidth: 15}]},
|
||||||
|
]}
|
||||||
|
|
||||||
|
|
||||||
|
var grid_cols_ce_emisor = [
|
||||||
|
{id: 'id', header: 'ID', hidden: true},
|
||||||
|
{id: 'Curp', header: 'Curp', editor: 'text', fillspace: 1},
|
||||||
|
{id: 'Calle', header: 'Calle *', editor: 'text', fillspace: 1},
|
||||||
|
{id: 'NumeroExterior', header: 'Numero Exterior', editor: 'text', fillspace: 1},
|
||||||
|
{id: 'NumeroInterior', header: 'Número Interior', editor: 'text', fillspace: 1},
|
||||||
|
{id: 'Colonia', header: 'Colonia', editor: 'text', fillspace: 1},
|
||||||
|
{id: 'Municipio', header: 'Municipio', editor: 'text', fillspace: 1},
|
||||||
|
{id: 'Estado', header: 'Estado *', editor: 'text', fillspace: 1},
|
||||||
|
{id: 'Pais', header: 'País *', editor: 'text', fillspace: 1},
|
||||||
|
{id: 'CodigoPostal', header: 'C.P. *', editor: 'text', fillspace: 1},
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
var grid_ce_emisor = {
|
||||||
|
view: 'datatable',
|
||||||
|
id: 'grid_ce_emisor',
|
||||||
|
multiselect: false,
|
||||||
|
adjust: true,
|
||||||
|
autoheight: true,
|
||||||
|
headermenu: true,
|
||||||
|
editable: true,
|
||||||
|
columns: grid_cols_ce_emisor,
|
||||||
|
data: [{id: 0}],
|
||||||
|
}
|
||||||
|
|
||||||
|
var body_ce_emisor = {rows:[
|
||||||
|
grid_ce_emisor
|
||||||
|
]}
|
||||||
|
|
||||||
|
|
||||||
|
var grid_cols_ce_propietarios = [
|
||||||
|
{id: 'id', header: 'ID', hidden: true},
|
||||||
|
{id: 'delete', header: '', width: 30, css: 'delete'},
|
||||||
|
{id: 'NumRegIdTrib', header: 'Registro Fiscal', editor: 'text', fillspace: 1},
|
||||||
|
{id: 'ResidenciaFiscal', header: 'Residencia Fiscal', editor: 'text', fillspace: 1},
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
var grid_ce_propietarios = {
|
||||||
|
view: 'datatable',
|
||||||
|
id: 'grid_ce_propietarios',
|
||||||
|
multiselect: false,
|
||||||
|
adjust: true,
|
||||||
|
autoheight: true,
|
||||||
|
headermenu: true,
|
||||||
|
editable: true,
|
||||||
|
footer: false,
|
||||||
|
columns: grid_cols_ce_propietarios,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var body_ce_propietarios = {rows:[
|
||||||
|
{cols: [
|
||||||
|
{view: 'button', id: 'cmd_ce_add_propietario', label: 'Agregar Propietario',
|
||||||
|
icon: 'plus', type: 'iconButton', autowidth: true, align: 'center'},
|
||||||
|
{},
|
||||||
|
]},
|
||||||
|
{maxHeight: 10},
|
||||||
|
grid_ce_propietarios
|
||||||
|
]}
|
||||||
|
|
||||||
|
|
||||||
|
var grid_cols_ce_receptor = [
|
||||||
|
{id: 'id', header: 'ID', hidden: true},
|
||||||
|
{id: 'NumRegIdTrib', header: 'Registro Fiscal', editor: 'text', fillspace: 1},
|
||||||
|
{id: 'Calle', header: 'Calle *', editor: 'text', fillspace: 1},
|
||||||
|
{id: 'NumeroExterior', header: 'Numero Exterior', editor: 'text', fillspace: 1},
|
||||||
|
{id: 'NumeroInterior', header: 'Número Interior', editor: 'text', fillspace: 1},
|
||||||
|
{id: 'Colonia', header: 'Colonia', editor: 'text', fillspace: 1},
|
||||||
|
{id: 'Municipio', header: 'Municipio', editor: 'text', fillspace: 1},
|
||||||
|
{id: 'Estado', header: 'Estado *', editor: 'text', fillspace: 1},
|
||||||
|
{id: 'Pais', header: 'País *', editor: 'text', fillspace: 1},
|
||||||
|
{id: 'CodigoPostal', header: 'C.P. *', editor: 'text', fillspace: 1},
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
var grid_ce_receptor = {
|
||||||
|
view: 'datatable',
|
||||||
|
id: 'grid_ce_receptor',
|
||||||
|
multiselect: false,
|
||||||
|
adjust: true,
|
||||||
|
autoheight: true,
|
||||||
|
headermenu: true,
|
||||||
|
editable: true,
|
||||||
|
columns: grid_cols_ce_receptor,
|
||||||
|
data: [{id: 0}],
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var body_ce_receptor = {rows:[
|
||||||
|
grid_ce_receptor
|
||||||
|
]}
|
||||||
|
|
||||||
|
|
||||||
|
var grid_cols_ce_destinatario = [
|
||||||
|
{id: 'id', header: 'ID', hidden: true},
|
||||||
|
{id: 'NumRegIdTrib', header: 'Registro Fiscal', editor: 'text', fillspace: 1},
|
||||||
|
{id: 'Nombre', header: 'Nombre', editor: 'text', fillspace: 1},
|
||||||
|
{id: 'Calle', header: 'Calle *', editor: 'text', fillspace: 1},
|
||||||
|
{id: 'NumeroExterior', header: 'No Exterior', editor: 'text', fillspace: 1},
|
||||||
|
{id: 'NumeroInterior', header: 'No Interior', editor: 'text', fillspace: 1},
|
||||||
|
{id: 'Colonia', header: 'Colonia', editor: 'text', fillspace: 1},
|
||||||
|
{id: 'Municipio', header: 'Municipio', editor: 'text', fillspace: 1},
|
||||||
|
{id: 'Estado', header: 'Estado *', editor: 'text', fillspace: 1},
|
||||||
|
{id: 'Pais', header: 'País *', editor: 'text', fillspace: 1},
|
||||||
|
{id: 'CodigoPostal', header: 'C.P. *', editor: 'text', fillspace: 1},
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
var grid_ce_destinatario = {
|
||||||
|
view: 'datatable',
|
||||||
|
id: 'grid_ce_destinatario',
|
||||||
|
multiselect: false,
|
||||||
|
adjust: true,
|
||||||
|
autoheight: true,
|
||||||
|
headermenu: true,
|
||||||
|
editable: true,
|
||||||
|
columns: grid_cols_ce_destinatario,
|
||||||
|
data: [{id: 0}],
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var body_ce_destinatario = {rows:[
|
||||||
|
grid_ce_destinatario
|
||||||
|
]}
|
||||||
|
|
||||||
|
|
||||||
|
var grid_cols_ce_mercancias = [
|
||||||
|
{id: 'id', header: 'ID', hidden: true},
|
||||||
|
{id: 'delete', header: '', width: 30, css: 'delete'},
|
||||||
|
{id: 'NoIdentificacion', header: 'Clave', editor: 'text', fillspace: 1},
|
||||||
|
{id: 'FraccionArancelaria', header: 'Fraccion Arancelaria', editor: 'text', fillspace: 1},
|
||||||
|
{id: 'CantidadAduana', header: 'Cantidad Aduana', editor: 'text', fillspace: 1},
|
||||||
|
{id: 'UnidadAduana', header: 'Unidad Aduana', editor: 'text', fillspace: 1},
|
||||||
|
{id: 'ValorUnitarioAduana', header: 'PU Aduana', editor: 'text', fillspace: 1},
|
||||||
|
{id: 'ValorDolares', header: 'Valor USD', editor: 'text', fillspace: 1},
|
||||||
|
{id: 'Marca', header: 'Marca', editor: 'text', hidden: true, fillspace: 1},
|
||||||
|
{id: 'Modelo', header: 'Modelo', editor: 'text', hidden: true, fillspace: 1},
|
||||||
|
{id: 'SubModelo', header: 'SubModelo', editor: 'text', hidden: true, fillspace: 1},
|
||||||
|
{id: 'NumeroSerie', header: 'Serie', editor: 'text', hidden: true, fillspace: 1},
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
var grid_ce_mercancias = {
|
||||||
|
view: 'datatable',
|
||||||
|
id: 'grid_ce_mercancias',
|
||||||
|
multiselect: false,
|
||||||
|
adjust: true,
|
||||||
|
autoheight: true,
|
||||||
|
headermenu: true,
|
||||||
|
editable: true,
|
||||||
|
footer: true,
|
||||||
|
columns: grid_cols_ce_mercancias,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var body_ce_mercancias = {rows:[
|
||||||
|
{cols: [
|
||||||
|
{view: 'button', id: 'cmd_ce_add_mercancia', label: 'Agregar Mercancía',
|
||||||
|
icon: 'plus', type: 'iconButton', autowidth: true, align: 'center'},
|
||||||
|
{},
|
||||||
|
]},
|
||||||
|
{maxHeight: 10},
|
||||||
|
grid_ce_mercancias
|
||||||
|
]}
|
||||||
|
|
||||||
|
|
||||||
var controls_comercio_exterior = [
|
var controls_comercio_exterior = [
|
||||||
{cols: [{maxWidth: 15},
|
{cols: [{maxWidth: 15},
|
||||||
{view: 'checkbox', id: 'chk_cfdi_usar_comercioe', labelWidth: 0,
|
{view: 'checkbox', id: 'chk_cfdi_usar_comercioe', labelWidth: 0,
|
||||||
labelRight: 'Usar el complemento Comercio Exterior'}, {},
|
labelRight: 'Usar el complemento Comercio Exterior'},
|
||||||
|
{},
|
||||||
{view: 'button', id: 'cmd_import_json_comercioe', label: 'Importar JSON',
|
{view: 'button', id: 'cmd_import_json_comercioe', label: 'Importar JSON',
|
||||||
icon: 'upload', type: 'iconButton', autowidth: true, align: 'center'},
|
icon: 'upload', type: 'iconButton', autowidth: true, align: 'center'},
|
||||||
{maxWidth: 15}]}
|
{maxWidth: 15}]},
|
||||||
|
{view: 'fieldset', label: 'Datos generales', body: body_ce_datos_generales},
|
||||||
|
{view: 'fieldset', label: 'Emisor', body: body_ce_emisor},
|
||||||
|
{view: 'fieldset', label: 'Propietario', body: body_ce_propietarios},
|
||||||
|
{view: 'fieldset', label: 'Receptor', body: body_ce_receptor},
|
||||||
|
{view: 'fieldset', label: 'Destinatario', body: body_ce_destinatario},
|
||||||
|
{view: 'fieldset', label: 'Mercancías', body: body_ce_mercancias},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
<xsl:include href="iedu.xslt"/>
|
<xsl:include href="iedu.xslt"/>
|
||||||
<xsl:include href="leyendasFisc.xslt"/>
|
<xsl:include href="leyendasFisc.xslt"/>
|
||||||
<xsl:include href="cartaporte20.xslt"/>
|
<xsl:include href="cartaporte20.xslt"/>
|
||||||
<xsl:include href="comercioexterior11.xslt"/>
|
<xsl:include href="comercioexterior20.xslt"/>
|
||||||
<xsl:include href="donat11.xslt"/>
|
<xsl:include href="donat11.xslt"/>
|
||||||
<xsl:include href="pagos20.xslt"/>
|
<xsl:include href="pagos20.xslt"/>
|
||||||
<xsl:include href="implocal.xslt"/>
|
<xsl:include href="implocal.xslt"/>
|
||||||
|
|
|
@ -0,0 +1,171 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:cce20="http://www.sat.gob.mx/ComercioExterior20">
|
||||||
|
|
||||||
|
<xsl:template match="cce20:ComercioExterior">
|
||||||
|
<!--Manejador de nodos tipo ComercioExterior-->
|
||||||
|
<xsl:call-template name="Requerido">
|
||||||
|
<xsl:with-param name="valor" select="./@Version" />
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="Opcional">
|
||||||
|
<xsl:with-param name="valor" select="./@MotivoTraslado" />
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="Requerido">
|
||||||
|
<xsl:with-param name="valor" select="./@ClaveDePedimento" />
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="Requerido">
|
||||||
|
<xsl:with-param name="valor" select="./@CertificadoOrigen" />
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="Opcional">
|
||||||
|
<xsl:with-param name="valor" select="./@NumCertificadoOrigen" />
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="Opcional">
|
||||||
|
<xsl:with-param name="valor" select="./@NumeroExportadorConfiable" />
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="Opcional">
|
||||||
|
<xsl:with-param name="valor" select="./@Incoterm" />
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="Opcional">
|
||||||
|
<xsl:with-param name="valor" select="./@Observaciones" />
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="Requerido">
|
||||||
|
<xsl:with-param name="valor" select="./@TipoCambioUSD" />
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="Requerido">
|
||||||
|
<xsl:with-param name="valor" select="./@TotalUSD" />
|
||||||
|
</xsl:call-template>
|
||||||
|
|
||||||
|
<!-- Iniciamos el manejo de los elementos hijo en la secuencia -->
|
||||||
|
<xsl:apply-templates select="./cce20:Emisor" />
|
||||||
|
<xsl:apply-templates select="./cce20:Receptor" />
|
||||||
|
<xsl:for-each select="./cce20:Destinatario">
|
||||||
|
<xsl:apply-templates select="."/>
|
||||||
|
</xsl:for-each>
|
||||||
|
<xsl:apply-templates select="./cce20:Mercancias" />
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="cce20:Emisor">
|
||||||
|
<!-- Iniciamos el tratamiento de los atributos de cce20:Emisor-->
|
||||||
|
<xsl:call-template name="Opcional">
|
||||||
|
<xsl:with-param name="valor" select="./@Curp" />
|
||||||
|
</xsl:call-template>
|
||||||
|
|
||||||
|
<xsl:apply-templates select="./cce20:Domicilio" />
|
||||||
|
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="cce20:Propietario">
|
||||||
|
<!-- Iniciamos el tratamiento de los atributos de cce20:Propietario-->
|
||||||
|
<xsl:call-template name="Requerido">
|
||||||
|
<xsl:with-param name="valor" select="./@NumRegIdTrib" />
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="Requerido">
|
||||||
|
<xsl:with-param name="valor" select="./@ResidenciaFiscal" />
|
||||||
|
</xsl:call-template>
|
||||||
|
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="cce20:Receptor">
|
||||||
|
<!-- Tratamiento de los atributos de cce20:Receptor-->
|
||||||
|
|
||||||
|
<xsl:call-template name="Opcional">
|
||||||
|
<xsl:with-param name="valor" select="./@NumRegIdTrib" />
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:apply-templates select="./cce20:Domicilio" />
|
||||||
|
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="cce20:Destinatario">
|
||||||
|
<!-- Tratamiento de los atributos de cce20:Destinatario-->
|
||||||
|
<xsl:call-template name="Opcional">
|
||||||
|
<xsl:with-param name="valor" select="./@NumRegIdTrib" />
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="Opcional">
|
||||||
|
<xsl:with-param name="valor" select="./@Nombre" />
|
||||||
|
</xsl:call-template>
|
||||||
|
<!-- Manejo de los nodos dependientes -->
|
||||||
|
<xsl:for-each select="./cce20:Domicilio">
|
||||||
|
<xsl:apply-templates select="."/>
|
||||||
|
</xsl:for-each>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="cce20:Mercancias">
|
||||||
|
<!-- Iniciamos el manejo de los nodos dependientes -->
|
||||||
|
<xsl:for-each select="./cce20:Mercancia">
|
||||||
|
<xsl:apply-templates select="."/>
|
||||||
|
</xsl:for-each>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="cce20:Domicilio">
|
||||||
|
<!-- Iniciamos el tratamiento de los atributos de cce20:Domicilio-->
|
||||||
|
<xsl:call-template name="Requerido">
|
||||||
|
<xsl:with-param name="valor" select="./@Calle" />
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="Opcional">
|
||||||
|
<xsl:with-param name="valor" select="./@NumeroExterior" />
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="Opcional">
|
||||||
|
<xsl:with-param name="valor" select="./@NumeroInterior" />
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="Opcional">
|
||||||
|
<xsl:with-param name="valor" select="./@Colonia" />
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="Opcional">
|
||||||
|
<xsl:with-param name="valor" select="./@Localidad" />
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="Opcional">
|
||||||
|
<xsl:with-param name="valor" select="./@Referencia" />
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="Opcional">
|
||||||
|
<xsl:with-param name="valor" select="./@Municipio" />
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="Requerido">
|
||||||
|
<xsl:with-param name="valor" select="./@Estado" />
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="Requerido">
|
||||||
|
<xsl:with-param name="valor" select="./@Pais" />
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="Requerido">
|
||||||
|
<xsl:with-param name="valor" select="./@CodigoPostal" />
|
||||||
|
</xsl:call-template>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="cce20:Mercancia">
|
||||||
|
<xsl:call-template name="Requerido">
|
||||||
|
<xsl:with-param name="valor" select="./@NoIdentificacion" />
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="Opcional">
|
||||||
|
<xsl:with-param name="valor" select="./@FraccionArancelaria" />
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="Opcional">
|
||||||
|
<xsl:with-param name="valor" select="./@CantidadAduana" />
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="Opcional">
|
||||||
|
<xsl:with-param name="valor" select="./@UnidadAduana" />
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="Opcional">
|
||||||
|
<xsl:with-param name="valor" select="./@ValorUnitarioAduana" />
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="Requerido">
|
||||||
|
<xsl:with-param name="valor" select="./@ValorDolares" />
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:for-each select="./cce20:DescripcionesEspecificas">
|
||||||
|
<xsl:apply-templates select="."/>
|
||||||
|
</xsl:for-each>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="cce20:DescripcionesEspecificas">
|
||||||
|
<xsl:call-template name="Requerido">
|
||||||
|
<xsl:with-param name="valor" select="./@Marca" />
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="Opcional">
|
||||||
|
<xsl:with-param name="valor" select="./@Modelo" />
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="Opcional">
|
||||||
|
<xsl:with-param name="valor" select="./@SubModelo" />
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="Opcional">
|
||||||
|
<xsl:with-param name="valor" select="./@NumeroSerie" />
|
||||||
|
</xsl:call-template>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
</xsl:stylesheet>
|
Loading…
Reference in New Issue