Archivo Cargado
-
{file_url}
+
+ {getFileNameFromPath(file_url)}
+
{mime_type} • {file_size ? (file_size / 1024 / 1024).toFixed(2) : '??'} MB
diff --git a/frontend/src/routes/dashboard/invoices/edit/[id]/+page.svelte b/frontend/src/routes/dashboard/invoices/edit/[id]/+page.svelte
index a12dfe38..cebf8012 100644
--- a/frontend/src/routes/dashboard/invoices/edit/[id]/+page.svelte
+++ b/frontend/src/routes/dashboard/invoices/edit/[id]/+page.svelte
@@ -132,7 +132,7 @@
transport_id: '',
driver_name: '',
transport_type: '',
- transport_num: '',
+ trailer_num: '',
aduana: '',
document_type: ''
};
@@ -223,6 +223,11 @@
const filtered = Object.fromEntries(
Object.entries(partial).filter(([_, value]) => value !== undefined)
);
+ // Compat: remolque vivía en transport_num en layouts antiguos
+ if (filtered.trailer_num === undefined && filtered.transport_num !== undefined) {
+ filtered.trailer_num = filtered.transport_num;
+ delete filtered.transport_num;
+ }
return { ...skeleton, ...filtered };
}
@@ -274,7 +279,7 @@
transport_id: invoice.logistics?.transport_id || '',
driver_name: invoice.logistics?.driver_name || '',
transport_type: invoice.logistics?.transport_type || '',
- transport_num: invoice.logistics?.vehicle_num || '',
+ trailer_num: invoice.logistics?.trailer_num || '',
aduana: invoice.compliance_mx?.aduana || '',
document_type: invoice.document_type || ''
};
@@ -342,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,
diff --git a/frontend/src/routes/dashboard/invoices/settings/+page.svelte b/frontend/src/routes/dashboard/invoices/settings/+page.svelte
index e513b760..ed0131d8 100644
--- a/frontend/src/routes/dashboard/invoices/settings/+page.svelte
+++ b/frontend/src/routes/dashboard/invoices/settings/+page.svelte
@@ -185,7 +185,7 @@
transport_id: '',
driver_name: '',
transport_type: '',
- transport_num: '',
+ trailer_num: '',
aduana: '',
document_type: '',
...(systemData.generalFormData || {})
@@ -311,7 +311,7 @@
transport_id: '',
driver_name: '',
transport_type: '',
- transport_num: '',
+ trailer_num: '',
aduana: '',
document_type: ''
};