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.
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user