From 18e3c0a1bd98be70344569bab09136193cfeaeb6 Mon Sep 17 00:00:00 2001 From: AlexeerCT Date: Thu, 2 Apr 2026 09:54:50 -0500 Subject: [PATCH] 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. --- .../dashboard/invoices/edit/[id]/+page.svelte | 44 ++++++++++++------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/frontend/src/routes/dashboard/invoices/edit/[id]/+page.svelte b/frontend/src/routes/dashboard/invoices/edit/[id]/+page.svelte index d61d846f..cebf8012 100644 --- a/frontend/src/routes/dashboard/invoices/edit/[id]/+page.svelte +++ b/frontend/src/routes/dashboard/invoices/edit/[id]/+page.svelte @@ -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,