diff --git a/frontend/src/lib/components/dashboard/settings/SettingFormField.svelte b/frontend/src/lib/components/dashboard/settings/SettingFormField.svelte
index 6dedbe5d..61985bd4 100644
--- a/frontend/src/lib/components/dashboard/settings/SettingFormField.svelte
+++ b/frontend/src/lib/components/dashboard/settings/SettingFormField.svelte
@@ -26,7 +26,7 @@
'act', 'valid', 'mostr', 'usar', 'utiliz', 'restring', 'bloqueo',
'omiti', 'oculta', 'resaltar', 'cal', 'mues', 'mens', 'cont', 'firm',
'esc', 'adv', 'val', 'tom', 'nom', 'rev', 'imp', 'temp', 'costo',
- 'des', 'asig', 'calc', 'param', 'fracc', 'valor', 'cove', 'loc', 'inter', 'inclu', 'actvalor', 'trans'
+ 'des', 'asig', 'calc', 'param', 'fracc', 'valor', 'cove', 'loc', 'inter', 'inclu', 'actvalor', 'trans', 'cambiar', 'reasigna'
];
// Be more lenient: if it has the prefix and is 0, 1, or null, it's likely a toggle
return (v === 0 || v === 1 || v === null || v === undefined) &&
@@ -54,6 +54,15 @@
console.log("Browse failed:", err);
}
}
+ let selectValue = $state(String(value));
+ $effect(() => {
+ selectValue = String(value);
+ });
+
+ function handleSelectChange(v: string) {
+ selectValue = v;
+ onChange(v);
+ }
@@ -65,12 +74,14 @@
{#if mode === 'select' && options}
-
-
+
+
+ {options.find(opt => String(opt.value) === selectValue)?.label || "Seleccionar..."}
+
{#each options as opt}
diff --git a/frontend/src/lib/components/dashboard/settings/SsisGenTabsForm.svelte b/frontend/src/lib/components/dashboard/settings/SsisGenTabsForm.svelte
index 90a4a7f7..851fbc94 100644
--- a/frontend/src/lib/components/dashboard/settings/SsisGenTabsForm.svelte
+++ b/frontend/src/lib/components/dashboard/settings/SsisGenTabsForm.svelte
@@ -2,6 +2,14 @@
import { fade } from 'svelte/transition';
import * as Tabs from '$lib/components/ui/tabs';
import SettingFormField from './SettingFormField.svelte';
+ import { Button } from '$lib/components/ui/button';
+ import {
+ AlertTriangle,
+ CreditCard,
+ FileEdit,
+ RefreshCw,
+ Layers
+ } from 'lucide-svelte';
interface Props {
currentData: any;
@@ -10,17 +18,22 @@
let { currentData = {}, onUpdate }: Props = $props();
- let formData: any = $state({ ...currentData });
+ // Initialize local/loc fields with defaults and keep in sync with currentData prop
+ let formData: any = $state({
+ DownloadFTP: 'No',
+ DescargarFTPoLocal: 'FTP',
+ MinsDownLFTP: 0,
+ UsarFechaEmisionFactura: 'false',
+ Campo18Valsaaim3: 0,
+ ...currentData
+ });
- // Initialize local/loc fields if they don't exist
$effect(() => {
- const defaults = {
- DownloadFTP: formData.DownloadFTP || 'No',
- DescargarFTPoLocal: formData.DescargarFTPoLocal || 'FTP',
- MinsDownLFTP: formData.MinsDownLFTP || 0,
- };
- // Object.assign(formData, { ...defaults, ...currentData });
- formData = { ...defaults, ...currentData };
+ // Update state when currentData prop changes from outside
+ const newData = { ...currentData };
+ for (const key in newData) {
+ formData[key] = newData[key];
+ }
});
function handleFieldChange(key: string, value: any) {
@@ -114,7 +127,44 @@
PathLocalParaDescDe: "Ruta Local",
AgregarRemplazarAutomatico: "Agregar/Remplazar Aut",
ActivarProcesoVEquipment: "Activar/Desactivar proceso para JD Edwards",
- ActivarProcesoDesperdicioJDEdwards: "Activar proceso de desperdicio para JD Edwards"
+ ActivarProcesoDesperdicioJDEdwards: "Activar proceso de desperdicio para JD Edwards",
+ utilizarnombregenericomainx30: "Utilizar Nombre Genérico Mainx 30",
+ utilizartcrespectoatipoped: "Utilizar TC Respecto Al Tipo de Pedimento",
+ tomardecimalescompletos: "Tomar Decimales Completos en las Impresiones de Facturas de Importación y Exportación",
+ incluirremesaeninterfazaawinsaai: "Incluir Remesa en Interfaz AA (WINSAAI)",
+ cambiarpesosporcostounitario: "Cambiar Pesos Por Costo Unitario en Exportaciones Mexicanas y Bilingües",
+ utilizarsolopartesnaftaenco: "Utilizar Solo Partes Nafta En CO",
+ bloqueodeediciondefacturas: "Bloqueo De Edición De Facturas",
+ reasignafraccionclase: "Reasigna Fracción en Reporte de Descargos",
+ calcularcostounitarioenbaseavalortotal: "Calcula Costo Unitario en Base a Valor Total Capturado",
+ parametroauxiliar: "Seleccionar versión de B.O.M a Descargar",
+ usarcontroldefechasdeversion: "Control de Versiones de Bom por Fechas",
+ desactivaciondemodulos: "Activar/Desactivar Módulos",
+ restringepaisimpo: "Restringir país de Korea para operaciones de Importación.",
+ restringpaisexpo: "Restringir país de Korea para operaciones de Exportación.",
+ bloqueoaldesactivarnumerodeparte: "Bloqueo para Desactivación y Activación de Número De Parte",
+ geninformeanexo31: "Inventario Inicial en Base al Sistema",
+ UsarFechaEmisionFactura: "Usar Fecha de Emision Factura en Manifestacion al Valor",
+ utilizarfechapagopeddeundiaanterior: "Utilizar Tipo de Cambio de la Fecha de Pago de Pedimento De Un Dia Anterior",
+ utilizartitulosalternativosimpresionfactura: "Utilizar Títulos Alternativos en la Impresión de las Facturas",
+ utilizarequivalenciasdeumpornumerodeparte: "Utilizar factor de conversión en número de parte para Importación y exportación.",
+ usarfactorconversionpornumerodeparte: "Usar Factor de Conversión Por Número De Parte",
+ usartcdelafechapagopedimpoendescarga: "Usar Tipo de Cambio de la Fecha de Pago Pedimento de Importación en Descarga",
+ usarvude128o256: "Utilizar Ventanilla Unica con Encriptacion de 256",
+ agregarnumeroembarque: "Agregar Número Embarque",
+ utilizarumdeexistenciaentransmisionvu: "Utilizar UM de Existencia En Transmision VU",
+ utilizarcodigodebrokerdeclienteenmainx30: "Utilizar Codigo De Broker De Cliente En Main X 30",
+ hojacalculosepararincrementablesanexo3: "En la Hoja de Calculo Separar Incrementables en el Anexo 3",
+ hojacalculodesglosefacturaanexo3: "En la Hoja de Calculo Desglosar Facturas en el Anexo 3",
+ usarvaloragregadoenfacturaamericana: "Usar Valor Agregado En Factura Americana",
+ ocultarinformacionfraccion: "Ocultar Información Fracción",
+ resaltarsaldostempconcolor: "Resaltar Saldos Temporales con Color",
+ validarsectorprosecr8: "Validar Sector Prosec R8",
+ agregarsubtotalinterfazaa: "Agregar Sub Total al archivo TXT para la Interfaz del Agente Aduanal",
+ imprimirfacturaalterna: "Imprimir factura alterna en manifestación al valor y hoja de calculo",
+ informacionamericanasubtotal: "Mostrar Información Extra En Factura Americana SubTotal",
+ activarexpedienteelectronico: "Activar Expediente Electrónico",
+ Campo18Valsaaim3: "Mostrar Campo 18 en 551 Valsaaim3"
};
// Grouped sections for the "General" tab
@@ -276,6 +326,74 @@
}
];
+ // Sections for redefined "Cont 5" tab
+ const CONT5_SECTIONS = [
+ {
+ id: 'restricciones',
+ title: 'Restricciones y Bloqueos Iniciales',
+ fields: ['restringepaisimpo', 'restringpaisexpo', 'bloqueoaldesactivarnumerodeparte']
+ },
+ {
+ id: 'inv_inicial',
+ title: 'Inventario Inicial (Agrupación)',
+ fields: ['geninformeanexo31']
+ },
+ {
+ id: 'config_adicionales',
+ title: 'Configuraciones Adicionales',
+ fields: [
+ 'UsarFechaEmisionFactura',
+ 'utilizarfechapagopeddeundiaanterior',
+ 'utilizartitulosalternativosimpresionfactura',
+ 'utilizarequivalenciasdeumpornumerodeparte',
+ 'usarfactorconversionpornumerodeparte',
+ 'usartcdelafechapagopedimpoendescarga',
+ 'usarvude128o256',
+ 'agregarnumeroembarque',
+ 'utilizarumdeexistenciaentransmisionvu',
+ 'utilizarcodigodebrokerdeclienteenmainx30',
+ 'hojacalculosepararincrementablesanexo3',
+ 'hojacalculodesglosefacturaanexo3'
+ ]
+ }
+ ];
+
+ // Sections for redefined "Cont 6" tab
+ const CONT6_SECTIONS = [
+ {
+ id: 'configuracion',
+ title: 'Opciones de Configuración',
+ fields: [
+ 'usarvaloragregadoenfacturaamericana',
+ 'ocultarinformacionfraccion',
+ 'resaltarsaldostempconcolor',
+ 'validarsectorprosecr8',
+ 'agregarsubtotalinterfazaa',
+ 'utilizarnombregenericomainx30',
+ 'utilizartcrespectoatipoped',
+ 'tomardecimalescompletos',
+ 'cambiarpesosporcostounitario',
+ 'utilizarsolopartesnaftaenco',
+ 'bloqueodeediciondefacturas',
+ 'reasignafraccionclase',
+ 'calcularcostounitarioenbaseavalortotal',
+ 'parametroauxiliar',
+ 'usarcontroldefechasdeversion',
+ 'imprimirfacturaalterna',
+ 'informacionamericanasubtotal'
+ ]
+ },
+ {
+ id: 'acciones_modulos',
+ title: 'Acciones y Módulos',
+ fields: [
+ 'desactivaciondemodulos',
+ 'activarexpedienteelectronico',
+ 'Campo18Valsaaim3'
+ ]
+ }
+ ];
+
// Grouped sections for "Cont 7" tab
const CONT7_SECTIONS = [
{
@@ -296,9 +414,8 @@
{ id: 'cont2', label: 'Cont 2' },
{ id: 'cont3', label: 'Cont 3' },
{ id: 'cont4', label: 'Cont 4' },
- { id: 'otros_parms', label: 'Otros Parámetros', fields: ["consecutivo", "dta", "dtaexpo", "subempresa", "fechades", "validasifra", "restringepaisimpo", "restringpaisexpo", "bloqueoaldesactivarnumerodeparte", "asignafracameparte", "validadecencant", "usartranspamedocame", "mostraradvertenciaro", "calcdutypacking", "parammultiples", "fraccnivelpais", "pathtransexpo", "pathrespuesta", "covefechaemision", "interfaceaaconsolidada", "interfaceaatcfpff", "incluirobscoveobsimpo", "agregarincreimpo", "componentebom", "limitesubensamble", "actpdfreportes", "patharchpdfimpo", "patharchpdfexpo", "noimprimircons", "mostraradvertenciarovalor", "partesypedimentosporcliente", "mensajesvurfc", "mostrarpackinglistingles", "omitirempaqueencodigobarras", "geninformeanexo31", "utilizarfechapagopeddeundiaanterior", "utilizarequivalenciasdeumpornumerodeparte", "utilizartitulosalternativosimpresionfactura"] },
- { id: 'cont5', label: 'cont 5', fields: ["utilizarnombregenericomainx30", "utilizartcrespectoatipoped", "tomardecimalescompletos", "incluirremesaeninterfazaawinsaai", "cambiarpesosporcostounitario", "utilizarsolopartesnaftaenco", "bloqueodeediciondefacturas"] },
- { id: 'cont6', label: 'cont 6', fields: ["reasignafraccionclase", "calcularcostounitarioenbaseavalortotal", "parametroauxiliar", "usarcontroldefechasdeversion", "desactivaciondemodulos"] },
+ { id: 'cont5', label: 'Cont 5' },
+ { id: 'cont6', label: 'Cont 6' },
{ id: 'cont7', label: 'cont 7' }
];
@@ -325,6 +442,13 @@
{ value: 'FTP', label: 'FTP' },
{ value: 'Ruta Local', label: 'Ruta Local' }
];
+
+ // Options for Inventario Inicial in Cont 5
+ const INICIAL_INV_OPTIONS = [
+ { value: 'AMBOS', label: 'AMBOS' },
+ { value: 'SCAII', label: 'SCAII' },
+ { value: 'SCAF', label: 'SCAF' }
+ ];
@@ -333,7 +457,7 @@
{#each TABS as tab}
{tab.label}
@@ -480,8 +604,7 @@