Se agrega nodo para remolques

This commit is contained in:
El Mau 2022-01-17 21:49:35 -06:00
parent c79e8492d3
commit 581e8bbdc5
5 changed files with 109 additions and 10 deletions

View File

@ -1,3 +1,7 @@
v 1.44.1 [18-Ene-2022]
- Correciones en generación de Carta Porte v2.0
v 1.44.0 [10-Ene-2022]
----------------------
- Soporte para Carta Porte v2 con CFDI 3.3

View File

@ -497,6 +497,7 @@ class CFDI(object):
autotransporte = attr.pop('autotransporte')
identificacion = autotransporte.pop('identificacion')
seguros = autotransporte.pop('seguros')
remolque = autotransporte.pop('remolque')
node = ET.SubElement(node_carta, f'{prefix}:Mercancias', attr)
for mercancia in mercancias:
@ -505,6 +506,9 @@ class CFDI(object):
sub_node = ET.SubElement(node, f'{prefix}:Autotransporte', autotransporte)
ET.SubElement(sub_node, f'{prefix}:IdentificacionVehicular', identificacion)
ET.SubElement(sub_node, f'{prefix}:Seguros', seguros)
if remolque['SubTipoRem'] and remolque['Placa']:
tmp = ET.SubElement(sub_node, f'{prefix}:Remolques')
ET.SubElement(tmp, f'{prefix}:Remolque', remolque)
if tiposfigura:
sub_node = ET.SubElement(node_carta, f'{prefix}:FiguraTransporte')

View File

@ -5329,8 +5329,8 @@ class Facturas(BaseModel):
return
values = utils.loads(valores)
values['TotalDistRec'] = f"{float(values['TotalDistRec']):.2f}"
total_distance = 0.00
total_weight = 0.00
mercancias = values['mercancias']
for mercancia in mercancias['mercancias']:
@ -5340,6 +5340,9 @@ class Facturas(BaseModel):
ubicaciones = values['ubicaciones']
for ubicacion in ubicaciones:
if 'DistanciaRecorrida' in ubicacion:
print(1, type(ubicacion['DistanciaRecorrida']), ubicacion['DistanciaRecorrida'])
total_distance += float(ubicacion['DistanciaRecorrida'])
municipio = ubicacion.pop('Municipio')
estado = ubicacion.pop('Estado')
pais = ubicacion.pop('Pais')
@ -5351,6 +5354,8 @@ class Facturas(BaseModel):
'Pais': pais,
'CodigoPostal': cp,
}
values['TotalDistRec'] = f"{total_distance:.2f}"
# ~ print(2, values)
data = {
'factura': invoice,

View File

@ -89,6 +89,7 @@ var invoices_controllers = {
tv_invoice = $$('tv_invoice').getTabbar()
tv_invoice.attachEvent('onChange', tv_invoice_change)
$$('grid_carta_mercancias').attachEvent('onItemClick', grid_carta_mercancias_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)
@ -702,21 +703,21 @@ function guardar_y_timbrar(values){
var usar_cartaporte = $$('chk_cfdi_usar_cartaporte').getValue()
if(usar_cartaporte){
var total_distance = 0.00
//~ var total_distance = 0.00
//~ var total_weight = 0.00
var cartaporte = {
TranspInternac: $$('lst_carta_TranspInternac').getValue(),
TotalDistRec: total_distance,
//~ TotalDistRec: total_distance,
}
var ubicaciones = $$('grid_carta_ubicaciones').data.getRange()
ubicaciones.forEach(function(row, index){
delete row['id']
delete row['delete']
if(row['DistanciaRecorrida']){
total_distance += parseFloat(row['DistanciaRecorrida'])
}
//~ if(row['DistanciaRecorrida']){
//~ total_distance += parseFloat(row['DistanciaRecorrida'])
//~ }
})
cartaporte['TotalDistRec'] = total_distance
//~ cartaporte['TotalDistRec'] = total_distance
cartaporte['ubicaciones'] = ubicaciones
var row = $$('grid_carta_autotransporte').data.getRange()[0]
@ -731,12 +732,17 @@ function guardar_y_timbrar(values){
seguros: {
AseguraRespCivil: row['AseguraRespCivil'],
PolizaRespCivil: row['PolizaRespCivil'],
},
remolque: {
SubTipoRem: row['SubTipoRem'],
Placa: row['Placa'],
}
}
var mercancias = $$('grid_carta_mercancias').data.getRange()
mercancias.forEach(function(row, index){
delete row['id']
delete row['delete']
row['Cantidad'] = String(row['Cantidad'])
//~ row['ValorMercancia'] = String(row['ValorMercancia'])
//~ if(row['PesoEnKg']){
@ -2645,3 +2651,11 @@ function cmd_carta_copy_from_invoice_click(){
}
})
}
function grid_carta_mercancias_click(id, e, node){
if(id.column != 'delete'){
return
}
this.remove(id.row)
}

View File

@ -928,7 +928,7 @@ var grid_cols_carta_mercancias = [
{id: 'BienesTransp', header: 'Clave SAT', editor: 'text', fillspace: 1},
{id: 'Descripcion', header: 'Descripción', editor: 'text', fillspace: 1},
{id: 'Cantidad', header: 'Cantidad', editor: 'text', format: webix.i18n.numberFormat, css: 'right', fillspace: 1},
{id: 'ClaveUnidad', header: 'Unidad', editor: 'select', options: 'values/unidades', fillspace: 1},
{id: 'ClaveUnidad', header: 'Unidad', editor: 'select', options: 'values/unidades', footer: 'Total peso:', fillspace: 1},
//~ {id: 'ValorMercancia', header: 'Valor Mercancia', format: webix.i18n.priceFormat, css: 'right', footer: 'Total peso:', fillspace: 1},
{id: 'PesoEnKg', header: 'Peso (Kg)', format: webix.i18n.numberFormat, css: 'right', editor: 'text', footer: {content: 'summColumn', css: 'right'}, fillspace: 1},
]
@ -939,6 +939,79 @@ var opt_config_auto = [
{id: 'VL', value: '[VL] Vehículo ligero de carga (2 llantas en el eje delantero y 2 llantas en el eje trasero)'},
{id: 'C2', value: '[C2] Camión Unitario (2 llantas en el eje delantero y 4 llantas en el eje trasero)'},
{id: 'C3', value: '[C3] Camión Unitario (2 llantas en el eje delantero y 6 o 8 llantas en los dos ejes traseros)'},
{id: 'C2R2', value: '[C2R2] Camión-Remolque (6 llantas en el camión y 8 llantas en remolque)'},
{id: 'C3R2', value: '[C3R2] Camión-Remolque (10 llantas en el camión y 8 llantas en remolque)'},
{id: 'C2R3', value: '[C2R3] Camión-Remolque (6 llantas en el camión y 12 llantas en remolque)'},
{id: 'C3R3', value: '[C3R3] Camión-Remolque (10 llantas en el camión y 12 llantas en remolque)'},
{id: 'T2S1', value: '[T2S1] Tractocamión Articulado (6 llantas en el tractocamión, 4 llantas en el semirremolque)'},
{id: 'T2S2', value: '[T2S2] Tractocamión Articulado (6 llantas en el tractocamión, 8 llantas en el semirremolque)'},
{id: 'T2S3', value: '[T2S3] Tractocamión Articulado (6 llantas en el tractocamión, 12 llantas en el semirremolque)'},
{id: 'T3S1', value: '[T3S1] Tractocamión Articulado (10 llantas en el tractocamión, 4 llantas en el semirremolque)'},
{id: 'T3S2', value: '[T3S2] Tractocamión Articulado (10 llantas en el tractocamión, 8 llantas en el semirremolque)'},
{id: 'T3S3', value: '[T3S3] Tractocamión Articulado (10 llantas en el tractocamión, 12 llantas en el semirremolque)'},
{id: 'T2S1R2', value: '[T2S1R2] Tractocamión Semirremolque-Remolque (6 llantas en el tractocamión, 4 llantas en el semirremolque y 8 llantas en el remolque)'},
{id: 'T2S2R2', value: '[T2S2R2] Tractocamión Semirremolque-Remolque (6 llantas en el tractocamión, 8 llantas en el semirremolque y 8 llantas en el remolque)'},
{id: 'T2S1R3', value: '[T2S1R3] Tractocamión Semirremolque-Remolque (6 llantas en el tractocamión, 4 llantas en el semirremolque y 12 llantas en el remolque)'},
{id: 'T3S1R2', value: '[T3S1R2] Tractocamión Semirremolque-Remolque (10 llantas en el tractocamión, 4 llantas en el semirremolque y 8 llantas en el remolque)'},
{id: 'T3S1R3', value: '[T3S1R3] Tractocamión Semirremolque-Remolque (10 llantas en el tractocamión, 4 llantas en el semirremolque y 12 llantas en el remolque)'},
{id: 'T3S2R2', value: '[T3S2R2] Tractocamión Semirremolque-Remolque (10 llantas en el tractocamión, 8 llantas en el semirremolque y 8 llantas en el remolque)'},
{id: 'T3S2R3', value: '[T3S2R3] Tractocamión Semirremolque-Remolque (10 llantas en el tractocamión, 8 llantas en el semirremolque y 12 llantas en el remolque)'},
{id: 'T3S2R4', value: '[T3S2R4] Tractocamión Semirremolque-Remolque (10 llantas en el tractocamión, 8 llantas en el semirremolque y 16 llantas en el remolque)'},
{id: 'T2S2S2', value: '[T2S2S2] Tractocamión Semirremolque-Semirremolque (6 llantas en el tractocamión, 8 llantas en el semirremolque delantero y 8 llantas en el semirremolque trasero)'},
{id: 'T3S2S2', value: '[T3S2S2] Tractocamión Semirremolque-Semirremolque (10 llantas en el tractocamión, 8 llantas en el semirremolque delantero y 8 llantas en el semirremolque trasero)'},
{id: 'T3S3S2', value: '[T3S3S2] Tractocamión Semirremolque-Semirremolque (10 llantas en el tractocamión, 12 llantas en el semirremolque delantero y 8 llantas en el semirremolque trasero)'},
{id: 'OTROEVGP', value: '[OTROEVGP] Especializado de carga Voluminosa y/o Gran Peso'},
{id: 'OTROSG', value: '[OTROSG] Servicio de Grúas'},
{id: 'GPLUTA', value: '[GPLUTA] Grúa de Pluma Tipo A'},
{id: 'GPLUTB', value: '[GPLUTB] Grúa de Pluma Tipo B'},
{id: 'GPLUTC', value: '[GPLUTC] Grúa de Pluma Tipo C'},
{id: 'GPLUTD', value: '[GPLUTD] Grúa de Pluma Tipo D'},
{id: 'GPLATA', value: '[GPLATA] Grúa de Plataforma Tipo A'},
{id: 'GPLATB', value: '[GPLATB] Grúa de Plataforma Tipo B'},
{id: 'GPLATC', value: '[GPLATC] Grúa de Plataforma Tipo C'},
{id: 'GPLATD', value: '[GPLATD] Grúa de Plataforma Tipo D'},
]
var opt_carta_tipo_remolque = [
{id: '', value: ''},
{id: 'CTR001', value: '[CTR001] Caballete'},
{id: 'CTR002', value: '[CTR002] Caja'},
{id: 'CTR003', value: '[CTR003] Caja Abierta'},
{id: 'CTR004', value: '[CTR004] Caja Cerrada'},
{id: 'CTR005', value: '[CTR005] Caja De Recolección Con Cargador Frontal'},
{id: 'CTR006', value: '[CTR006] Caja Refrigerada'},
{id: 'CTR007', value: '[CTR007] Caja Seca'},
{id: 'CTR008', value: '[CTR008] Caja Transferencia'},
{id: 'CTR009', value: '[CTR009] Cama Baja o Cuello Ganso'},
{id: 'CTR010', value: '[CTR010] Chasis Portacontenedor'},
{id: 'CTR011', value: '[CTR011] Convencional De Chasis'},
{id: 'CTR012', value: '[CTR012] Equipo Especial'},
{id: 'CTR013', value: '[CTR013] Estacas'},
{id: 'CTR014', value: '[CTR014] Góndola Madrina'},
{id: 'CTR015', value: '[CTR015] Grúa Industrial'},
{id: 'CTR016', value: '[CTR016] Grúa'},
{id: 'CTR017', value: '[CTR017] Integral'},
{id: 'CTR018', value: '[CTR018] Jaula'},
{id: 'CTR019', value: '[CTR019] Media Redila'},
{id: 'CTR020', value: '[CTR020] Pallet o Celdillas'},
{id: 'CTR021', value: '[CTR021] Plataforma'},
{id: 'CTR022', value: '[CTR022] Plataforma Con Grúa'},
{id: 'CTR023', value: '[CTR023] Plataforma Encortinada'},
{id: 'CTR024', value: '[CTR024] Redilas'},
{id: 'CTR025', value: '[CTR025] Refrigerador'},
{id: 'CTR026', value: '[CTR026] Revolvedora'},
{id: 'CTR027', value: '[CTR027] Semicaja'},
{id: 'CTR028', value: '[CTR028] Tanque'},
{id: 'CTR029', value: '[CTR029] Tolva'},
{id: 'CTR031', value: '[CTR031] Volteo'},
{id: 'CTR032', value: '[CTR032] Volteo Desmontable'},
]
var opt_carta_aseguradoras = [
{id: 'General de Seguros', value: 'General de Seguros'},
{id: 'Qualitas', value: 'Qualitas'},
]
@ -949,7 +1022,7 @@ var grid_cols_carta_autotransporte = [
{id: 'ConfigVehicular', header: 'Clave Autotransporte', editor: 'select', options: opt_config_auto, fillspace: 1},
{id: 'PlacaVM', header: 'Placa', editor: 'text', fillspace: 1},
{id: 'AnioModeloVM', header: 'Modelo (Año)', editor: 'text', fillspace: 1},
{id: 'SubTipoRem', header: 'ST Remolque', editor: 'text', fillspace: 1},
{id: 'SubTipoRem', header: 'ST Remolque', editor: 'select', options: opt_carta_tipo_remolque, fillspace: 1},
{id: 'Placa', header: 'Placa', editor: 'text', fillspace: 1},
{id: 'AseguraRespCivil', header: 'Aseguradora', editor: 'text', fillspace: 1},
{id: 'PolizaRespCivil', header: 'Póliza', editor: 'text', fillspace: 1},
@ -971,7 +1044,6 @@ var grid_cols_carta_tipos_figuras = [
{id: 'RFCFigura', header: 'RFC Figura', editor: 'text', fillspace: 1},
{id: 'NombreFigura', header: 'Nombre Figura', editor: 'text', fillspace: 1},
{id: 'NumLicencia', header: 'Número de Licencia', editor: 'text', fillspace: 1},
]