Merge pull request 'Refactor invoice mapping logic in edit page to improve data handling. Updated the mapping of logistics and compliance fields to use optional chaining and default values, enhancing robustness and clarity in the invoice data structure.' (#264) from fix/invoice-update into development

Reviewed-on: ADUANASOFT/anexo76#264
This commit is contained in:
2026-04-02 14:55:23 +00:00

View File

@@ -347,28 +347,38 @@
function mapInvoiceToContinuation(invoice: any) {
if (!invoice) return continuationSkeleton;
const logistics = invoice.logistics ?? {};
const complianceMx = invoice.compliance_mx ?? {};
return {
numero_tipo_transporte: invoice.logistics?.numero_tipo_transporte || '',
es_ferrocarril: invoice.logistics?.es_ferrocarril || 'no',
numero_bl: invoice.logistics?.numero_bl || '',
cantidad_guias_embarque: invoice.logistics?.cantidad_guias_embarque || null,
destino_origen: invoice.logistics?.destino_origen || '',
puerto_entrada: invoice.logistics?.puerto_entrada || '',
vehicle_data: invoice.logistics?.vehicle_data || '',
fue_revisado_equipo: invoice.logistics?.fue_revisado_equipo || false,
sub_division: invoice.compliance_mx?.subdivision || false,
funge_como_cd: invoice.logistics?.acts_as_cd || false,
llego_pedimento: invoice.compliance_mx?.llego_pedimento || false,
numero_tipo_transporte:
logistics.transport_num ?? logistics.vehicle_num ?? logistics.numero_tipo_transporte ?? '',
es_ferrocarril:
typeof logistics.is_rail === 'boolean'
? logistics.is_rail
? 'si'
: 'no'
: (logistics.es_ferrocarril ?? 'no'),
numero_bl: logistics.bill_number ?? logistics.numero_bl ?? '',
cantidad_guias_embarque: logistics.guide_number ?? logistics.cantidad_guias_embarque ?? null,
destino_origen: logistics.destination_location ?? logistics.destino_origen ?? '',
puerto_entrada: logistics.origin_location ?? logistics.puerto_entrada ?? '',
vehicle_data: logistics.vehicle_data ?? '',
fue_revisado_equipo: logistics.equipment_reviewed ?? logistics.fue_revisado_equipo ?? false,
sub_division: logistics.is_subdivision ?? complianceMx.subdivision ?? false,
funge_como_cd: logistics.acts_as_cd ?? false,
llego_pedimento: logistics.pedimento_arrived ?? complianceMx.llego_pedimento ?? false,
errores_facturacion: invoice.errores_facturacion || [],
semaforo_verde_aduana_mexicana:
invoice.compliance_mx?.semaforo_verde_aduana_mexicana || false,
logistics.green_light_mx ?? complianceMx.semaforo_verde_aduana_mexicana ?? false,
semaforo_verde_aduana_americana:
invoice.compliance_mx?.semaforo_verde_aduana_americana || false,
semaforo_rojo_aduana_mexicana: invoice.compliance_mx?.semaforo_rojo_aduana_mexicana || false,
logistics.green_light_us ?? complianceMx.semaforo_verde_aduana_americana ?? false,
semaforo_rojo_aduana_mexicana:
logistics.red_light_mx ?? complianceMx.semaforo_rojo_aduana_mexicana ?? false,
semaforo_rojo_aduana_americana:
invoice.compliance_mx?.semaforo_rojo_aduana_americana || false,
is_mixed: invoice.compliance_mx?.is_mixed || false,
reason_export: invoice.compliance_mx?.reason_export || '1',
logistics.red_light_us ?? complianceMx.semaforo_rojo_aduana_americana ?? false,
is_mixed: complianceMx.is_mixed ?? false,
reason_export: complianceMx.reason_export ?? '1',
purchase_order: invoice.purchase_order || '',
payment_terms: invoice.payment_terms || '',
handling_fees: invoice.financials?.handling_fees || 0,