feature/abstraccion-de-funcionalidades-y-manejo-por-tareas-en-comun
This commit is contained in:
@@ -370,6 +370,8 @@ export const api = {
|
||||
validate: (tenantId: number) => api.get(`/v1/licenses/validate/${tenantId}/`)
|
||||
},
|
||||
|
||||
// CSV import for Operaciones de Importación/Exportación (facturas: encabezados y partidas).
|
||||
// Backend: api/v1/modules/a76/layouts_csv/facturas (rutas bajo /v1/a76/imports/).
|
||||
imports: {
|
||||
upload: (
|
||||
file: File,
|
||||
|
||||
@@ -31,6 +31,8 @@ export interface CsvUploadItem {
|
||||
/** Backend template id for CSV download (e.g. customs_brokers, part_numbers). No physical file. */
|
||||
templateId?: string;
|
||||
disabled?: boolean; // New property to mark items as "Coming Soon"
|
||||
/** Backend module path (layouts_csv) for traceability, e.g. "layouts_csv/facturas", "layouts_csv/parts". */
|
||||
layoutModule?: string;
|
||||
}
|
||||
|
||||
export interface CsvUploadField {
|
||||
@@ -125,42 +127,47 @@ export const tabSettings: Record<string, CsvUploadField[]> = {
|
||||
};
|
||||
|
||||
// --- DATA DEFINITIONS (Items only, no config) ---
|
||||
|
||||
// Catálogos: la mayoría usa backend en layouts_csv (customs_brokers, clients_and_providers, etc.).
|
||||
export const catalogosConfig: CsvUploadItem[] = [
|
||||
{
|
||||
id: 'customs_brokers',
|
||||
title: 'Agentes Aduanales',
|
||||
icon: User,
|
||||
modelTarget: 'CustomsBroker',
|
||||
templateId: 'customs_brokers'
|
||||
templateId: 'customs_brokers',
|
||||
layoutModule: 'layouts_csv/customs_brokers'
|
||||
},
|
||||
{
|
||||
id: 'clients_providers',
|
||||
title: 'Clientes y Proveedores',
|
||||
icon: Users,
|
||||
modelTarget: 'ClientProvider',
|
||||
templateId: 'clients_providers'
|
||||
templateId: 'clients_providers',
|
||||
layoutModule: 'layouts_csv/clients_and_providers'
|
||||
},
|
||||
{
|
||||
id: 'exchange_rates',
|
||||
title: 'Tipo de Cambios',
|
||||
icon: DollarSign,
|
||||
modelTarget: 'ExchangeRate',
|
||||
templateId: 'exchange_rates'
|
||||
templateId: 'exchange_rates',
|
||||
layoutModule: 'layouts_csv/exchange_rate'
|
||||
},
|
||||
{
|
||||
id: 'american_fractions',
|
||||
title: 'Fracc. Ame.',
|
||||
icon: Globe,
|
||||
modelTarget: 'AmericanFraction',
|
||||
templateId: 'american_fractions'
|
||||
templateId: 'american_fractions',
|
||||
layoutModule: 'layouts_csv/us_tariff_fractions'
|
||||
},
|
||||
{
|
||||
id: 'material_classes',
|
||||
title: 'Clases de Materiales',
|
||||
icon: Package,
|
||||
modelTarget: 'MaterialClass',
|
||||
templateId: 'material_classes'
|
||||
templateId: 'material_classes',
|
||||
layoutModule: 'layouts_csv/classes'
|
||||
},
|
||||
{
|
||||
id: 'part_numbers',
|
||||
@@ -168,6 +175,7 @@ export const catalogosConfig: CsvUploadItem[] = [
|
||||
icon: Hash,
|
||||
modelTarget: 'Part',
|
||||
templateId: 'part_numbers',
|
||||
layoutModule: 'layouts_csv/parts'
|
||||
},
|
||||
{
|
||||
id: 'boms',
|
||||
@@ -175,6 +183,7 @@ export const catalogosConfig: CsvUploadItem[] = [
|
||||
icon: Briefcase,
|
||||
modelTarget: 'Bom',
|
||||
templateId: 'boms',
|
||||
layoutModule: 'layouts_csv/boms'
|
||||
},
|
||||
{
|
||||
id: 'items',
|
||||
@@ -204,10 +213,12 @@ export const catalogosConfig: CsvUploadItem[] = [
|
||||
title: 'Pedimentos',
|
||||
icon: FileDigit,
|
||||
modelTarget: 'Pedimento',
|
||||
templateId: 'pedimentos'
|
||||
templateId: 'pedimentos',
|
||||
layoutModule: 'layouts_csv/pedmientos'
|
||||
},
|
||||
];
|
||||
|
||||
// Transportes: conductores, trailers y “Transportes” (vehículos) usan layouts_csv; transportistas sin layouts_csv aún.
|
||||
export const transportesConfig: CsvUploadItem[] = [
|
||||
{
|
||||
id: 'transporters',
|
||||
@@ -221,24 +232,29 @@ export const transportesConfig: CsvUploadItem[] = [
|
||||
title: 'Transportes',
|
||||
icon: Truck,
|
||||
modelTarget: 'Transport',
|
||||
templateId: 'transports'
|
||||
templateId: 'transports',
|
||||
layoutModule: 'layouts_csv/vehicles'
|
||||
},
|
||||
{
|
||||
id: 'drivers',
|
||||
title: 'Conductores',
|
||||
icon: User,
|
||||
modelTarget: 'Driver',
|
||||
templateId: 'drivers'
|
||||
templateId: 'drivers',
|
||||
layoutModule: 'layouts_csv/drivers'
|
||||
},
|
||||
{
|
||||
id: 'trailers',
|
||||
title: 'Trailers y Cajas',
|
||||
icon: Container,
|
||||
modelTarget: 'Trailer',
|
||||
templateId: 'trailers'
|
||||
templateId: 'trailers',
|
||||
layoutModule: 'layouts_csv/trailers'
|
||||
},
|
||||
];
|
||||
|
||||
// --- Operaciones de Importación (facturas: encabezados y partidas)
|
||||
// Backend: layouts_csv/facturas — rutas /v1/a76/imports/ (upload, status, commit).
|
||||
export const importacionConfig: CsvUploadItem[] = [
|
||||
// Impo Temp
|
||||
{
|
||||
@@ -247,7 +263,8 @@ export const importacionConfig: CsvUploadItem[] = [
|
||||
icon: FileText,
|
||||
group: 'Impo. Temp.',
|
||||
modelTarget: 'invoice_header',
|
||||
templateId: 'imp_temp_header'
|
||||
templateId: 'imp_temp_header',
|
||||
layoutModule: 'layouts_csv/facturas'
|
||||
},
|
||||
{
|
||||
id: 'imp_temp_details',
|
||||
@@ -255,7 +272,8 @@ export const importacionConfig: CsvUploadItem[] = [
|
||||
icon: Package,
|
||||
group: 'Impo. Temp.',
|
||||
modelTarget: 'invoice_details',
|
||||
templateId: 'imp_temp_details'
|
||||
templateId: 'imp_temp_details',
|
||||
layoutModule: 'layouts_csv/facturas'
|
||||
},
|
||||
{
|
||||
id: 'imp_temp_series',
|
||||
@@ -272,7 +290,8 @@ export const importacionConfig: CsvUploadItem[] = [
|
||||
icon: FileText,
|
||||
group: 'Impo. Def.',
|
||||
modelTarget: 'invoice_header',
|
||||
templateId: 'imp_def_header'
|
||||
templateId: 'imp_def_header',
|
||||
layoutModule: 'layouts_csv/facturas'
|
||||
},
|
||||
{
|
||||
id: 'imp_def_details',
|
||||
@@ -280,7 +299,8 @@ export const importacionConfig: CsvUploadItem[] = [
|
||||
icon: Package,
|
||||
group: 'Impo. Def.',
|
||||
modelTarget: 'invoice_details',
|
||||
templateId: 'imp_def_details'
|
||||
templateId: 'imp_def_details',
|
||||
layoutModule: 'layouts_csv/facturas'
|
||||
},
|
||||
{
|
||||
id: 'imp_def_series',
|
||||
@@ -317,6 +337,8 @@ export const importacionConfig: CsvUploadItem[] = [
|
||||
},
|
||||
];
|
||||
|
||||
// --- Operaciones de Exportación (facturas: encabezados y partidas)
|
||||
// Backend: layouts_csv/facturas — mismas rutas /v1/a76/imports/ con operation_type=exp.
|
||||
export const exportacionConfig: CsvUploadItem[] = [
|
||||
// Expo Def / Cam. Reg.
|
||||
{
|
||||
@@ -325,7 +347,8 @@ export const exportacionConfig: CsvUploadItem[] = [
|
||||
icon: FileText,
|
||||
group: 'Expo. Def./Cam. Reg.',
|
||||
modelTarget: 'invoice_header',
|
||||
templateId: 'exp_def_header'
|
||||
templateId: 'exp_def_header',
|
||||
layoutModule: 'layouts_csv/facturas'
|
||||
},
|
||||
{
|
||||
id: 'exp_def_details',
|
||||
@@ -333,7 +356,8 @@ export const exportacionConfig: CsvUploadItem[] = [
|
||||
icon: Package,
|
||||
group: 'Expo. Def./Cam. Reg.',
|
||||
modelTarget: 'invoice_details',
|
||||
templateId: 'exp_def_details'
|
||||
templateId: 'exp_def_details',
|
||||
layoutModule: 'layouts_csv/facturas'
|
||||
},
|
||||
{
|
||||
id: 'exp_def_series',
|
||||
|
||||
@@ -449,6 +449,7 @@
|
||||
|
||||
<div class="mt-6">
|
||||
<Tabs.Content value="catalogos" class="space-y-4">
|
||||
<!-- Catálogos: backend layouts_csv (customs_brokers, clients_and_providers, parts, boms, etc.) -->
|
||||
<div class="flex items-center justify-between">
|
||||
<h2 class="text-lg font-medium tracking-tight">Catálogos Generales</h2>
|
||||
</div>
|
||||
@@ -456,6 +457,7 @@
|
||||
</Tabs.Content>
|
||||
|
||||
<Tabs.Content value="transportes" class="space-y-4">
|
||||
<!-- Logística: backend layouts_csv (vehicles, drivers, trailers); transportistas sin layouts_csv -->
|
||||
<div class="flex items-center justify-between">
|
||||
<h2 class="text-lg font-medium tracking-tight">Logística y Transporte</h2>
|
||||
</div>
|
||||
@@ -463,6 +465,7 @@
|
||||
</Tabs.Content>
|
||||
|
||||
<Tabs.Content value="importacion" class="space-y-4">
|
||||
<!-- Operaciones de Importación: backend layouts_csv/facturas (api.imports) -->
|
||||
<div class="flex items-center justify-between">
|
||||
<h2 class="text-lg font-medium tracking-tight">Operaciones de Importación</h2>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user