diff --git a/backend/api/v1/modules/a76/app_settings/schemas.py b/backend/api/v1/modules/a76/app_settings/schemas.py index a15d8e22..4bd2118b 100644 --- a/backend/api/v1/modules/a76/app_settings/schemas.py +++ b/backend/api/v1/modules/a76/app_settings/schemas.py @@ -120,22 +120,29 @@ class SSisGenSettings(BaseModel): muestra_copias_codbarras: Optional[int] = None activar_revision_fracciones: Optional[int] = None usarcoveenarchsaaim3: Optional[int] = None - DownloadFTP: Optional[str] = None - MinsDownLFTP: Optional[int] = None - DownloadFTPPath: Optional[str] = None - DescargarFTPoLocal: Optional[str] = None - ServerFTP: Optional[str] = None - UserFTP: Optional[str] = None - PasswordFTP: Optional[str] = None - DirectorioFTP: Optional[str] = None - PathLocalParaDescDe: Optional[str] = None - AgregarRemplazarAutomatico: Optional[str] = None - ActivarProcesoVEquipment: Optional[int] = None - ActivarProcesoDesperdicioJDEdwards: Optional[int] = None - UsarFechaEmisionFactura: Optional[int] = None - Campo18Valsaaim3: Optional[int] = None + downloadftp: Optional[str] = None + minsdownlftp: Optional[int] = None + downloadftppath: Optional[str] = None + descargarftpolocal: Optional[str] = None + serverftp: Optional[str] = None + userftp: Optional[str] = None + passwordftp: Optional[str] = None + directorioftp: Optional[str] = None + pathlocalparadescde: Optional[str] = None + agregarremplazarautomatico: Optional[str] = None + activarprocesovequipment: Optional[int] = None + activarprocesodesperdiciojdedwards: Optional[int] = None + usarfechaemisionfactura: Optional[int] = None + campo18valsaaim3: Optional[int] = None actvaloragre: Optional[int] = None valoragregadogen: Optional[Decimal] = None + validarseries: Optional[int] = None + emailas: Optional[int] = None + afostrofe: Optional[int] = None + codigobarrasesp: Optional[int] = None + asignainfoparte: Optional[int] = None + pathnaftaccs: Optional[str] = None + class SSisGen2Settings(BaseModel): @@ -681,6 +688,13 @@ class QSisGenSettings(BaseModel): calcularcostounitarioenbaseavalortotalscaf: Optional[int] = None impresionfacturaalterna: Optional[int] = None transmitirfacalterna: Optional[int] = None + validarseries: Optional[int] = None + emailas: Optional[int] = None + afostrofe: Optional[int] = None + codigobarrasesp: Optional[int] = None + muestra_copias_codbarras: Optional[int] = None + asignainfoparte: Optional[int] = None + pathnaftaccs: Optional[str] = None class QSisExpoRepSettings(BaseModel): diff --git a/frontend/src/lib/components/dashboard/invoices/edit/continuation-tab-form.svelte b/frontend/src/lib/components/dashboard/invoices/edit/continuation-tab-form.svelte index 4e8fb53c..2aa6b9e5 100644 --- a/frontend/src/lib/components/dashboard/invoices/edit/continuation-tab-form.svelte +++ b/frontend/src/lib/components/dashboard/invoices/edit/continuation-tab-form.svelte @@ -98,6 +98,14 @@ if (formData.es_ferrocarril === undefined) formData.es_ferrocarril = 'no'; if (formData.is_mixed === undefined) formData.is_mixed = false; if (formData.reason_export === undefined) formData.reason_export = '1'; + if (formData.fue_revisado_equipo === undefined) formData.fue_revisado_equipo = false; + if (formData.sub_division === undefined) formData.sub_division = false; + if (formData.funge_como_cd === undefined) formData.funge_como_cd = false; + if (formData.llego_pedimento === undefined) formData.llego_pedimento = false; + if (formData.semaforo_verde_aduana_mexicana === undefined) formData.semaforo_verde_aduana_mexicana = false; + if (formData.semaforo_verde_aduana_americana === undefined) formData.semaforo_verde_aduana_americana = false; + if (formData.semaforo_rojo_aduana_mexicana === undefined) formData.semaforo_rojo_aduana_mexicana = false; + if (formData.semaforo_rojo_aduana_americana === undefined) formData.semaforo_rojo_aduana_americana = false; } }); diff --git a/frontend/src/lib/components/dashboard/invoices/edit/invoice-top-fields.svelte b/frontend/src/lib/components/dashboard/invoices/edit/invoice-top-fields.svelte index 324b171f..50fb3b84 100644 --- a/frontend/src/lib/components/dashboard/invoices/edit/invoice-top-fields.svelte +++ b/frontend/src/lib/components/dashboard/invoices/edit/invoice-top-fields.svelte @@ -150,53 +150,55 @@
-
- - { - formData.operation_type = v; - }} - > - - - {formData.operation_type ? (formData.operation_type === 'exp' ? 'Exp' : 'Imp') : '...'} - - - - Exportación - Importación - - -
-
- - { - formData.invoice_type = v ?? ''; - }} - > - - - {formData.invoice_type ? `${formData.invoice_type}` : '...'} - - - - {#each filteredInvoiceTypes as type} - - {type.key} - {type.description} - + {#if !isSettings} +
+ + { + formData.operation_type = v; + }} + > + + + {formData.operation_type ? (formData.operation_type === 'exp' ? 'Exp' : 'Imp') : '...'} + + + + Exportación + Importación + + +
+
+ + { + formData.invoice_type = v ?? ''; + }} + > + + + {formData.invoice_type ? `${formData.invoice_type}` : '...'} + + + + {#each filteredInvoiceTypes as type} + + {type.key} - {type.description} + {/each} - - -
+
+
+
+ {/if} {#if invoiceType !== 'MEX'}
diff --git a/frontend/src/lib/components/dashboard/invoices/edit/observations-tab-form.svelte b/frontend/src/lib/components/dashboard/invoices/edit/observations-tab-form.svelte index 63e1e2fb..8fac8831 100644 --- a/frontend/src/lib/components/dashboard/invoices/edit/observations-tab-form.svelte +++ b/frontend/src/lib/components/dashboard/invoices/edit/observations-tab-form.svelte @@ -112,6 +112,16 @@ }; exists = false; } + + $effect.pre(() => { + if (formData) { + if (formData.sub_division === undefined) formData.sub_division = 'no'; + if (formData.acts_as_cd === undefined) formData.acts_as_cd = false; + if (formData.is_mixed === undefined) formData.is_mixed = false; + if (formData.incoterm === undefined) formData.incoterm = ''; + if (formData.valuation_method === undefined) formData.valuation_method = ''; + } + });
diff --git a/frontend/src/lib/components/dashboard/invoices/edit/others-tab-form.svelte b/frontend/src/lib/components/dashboard/invoices/edit/others-tab-form.svelte index e68ec0f2..819e2ee5 100644 --- a/frontend/src/lib/components/dashboard/invoices/edit/others-tab-form.svelte +++ b/frontend/src/lib/components/dashboard/invoices/edit/others-tab-form.svelte @@ -102,6 +102,11 @@ if (formData) { if (formData.transport_mode === undefined) formData.transport_mode = 'TRUCK'; if (formData.is_mixed === undefined) formData.is_mixed = false; + if (formData.print_stamp === undefined) formData.print_stamp = false; + if (formData.rule_3121_parties_ii === undefined) formData.rule_3121_parties_ii = false; + if (formData.contingency_mode === undefined) formData.contingency_mode = false; + if (formData.delivered_status === undefined) formData.delivered_status = false; + if (formData.option_iv18 === undefined) formData.option_iv18 = ''; } }); diff --git a/frontend/src/lib/components/dashboard/invoices/settings/sscr-settings-form.svelte b/frontend/src/lib/components/dashboard/invoices/settings/sscr-settings-form.svelte index 06205d22..a2272735 100644 --- a/frontend/src/lib/components/dashboard/invoices/settings/sscr-settings-form.svelte +++ b/frontend/src/lib/components/dashboard/invoices/settings/sscr-settings-form.svelte @@ -7,8 +7,12 @@ import { RadioGroup, RadioGroupItem } from '$lib/components/ui/radio-group'; let { - formData = $bindable() - }: { formData: any } = $props(); + formData = $bindable(), + activeSystem = 'ssisgen' + }: { + formData: any; + activeSystem?: 'ssisgen' | 'qsisgen'; + } = $props(); const defaultFormData = { // General — Reporte de descarga @@ -81,6 +85,7 @@ // Americana TomarValorMexEnFacAme: false, MuestraFree: false, + NumParteAme: false, CodigoSCAC: false, ValorPacking1Dlls: false, PrefijoFraccMult: false, @@ -112,7 +117,14 @@ LocLeyendaPacking: '', PackingOrdenVenta: false, IncluirLineaDelPO: false, - PackingPedClave: false + PackingPedClave: false, + + // SCAF specific + AsignaValoresTC: 'exportacion', + pagoimpuesto: 'no', + formapago: '', + SolicitarPswdDesactualizar: false, + ActualizarPartePartida: false }; if (!formData) formData = { ...defaultFormData }; @@ -128,79 +140,261 @@ }); let activeSubTab = $state('general'); + + $effect(() => { + // Reset active tab if switching systems to prevent blank content + if (activeSystem === 'qsisgen' && ['general2', 'desperdicio'].includes(activeSubTab)) { + activeSubTab = 'general'; + } + });
-
- +
+ General - General 2 + {#if activeSystem !== 'qsisgen'} + General 2 + {/if} Fact. Mexicana Fact. Americana - Desperdicio + {#if activeSystem !== 'qsisgen'} + Desperdicio + {/if} Packing
+ {#if activeSystem === 'qsisgen'} + +
+ +
+ +
+

+ Número de Decimales en los Campos +

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
- -
-

Reporte de descarga según el tipo de factura

-

Incluye en la columna descripción:

-
-
- - + +
+ +
+ + (formData.AsignaValoresTC = v)} + class="flex gap-6 justify-center mt-2" + > +
+ + +
+
+ + +
+
+
+ + +
+ +
+
+ + (formData.pagoimpuesto = v)} + class="flex gap-4" + > +
+ + +
+
+ + +
+
+
+
+ + +
+
+
+
-
- - + + +
+ +
+

+ Mínimos límites para actualizar facturas +

+
+
+ + +
+
+ + +
+
+ + +
+
+
+ + +
+

+ Máximos límites para actualizar facturas +

+
+
+ + +
+
+ + +
+
+ + +
+
+
-
- - -
-
- - + + +
+
+ + +
+
+ + +
+ + +
+
+ + +
+
+ + +
+
+ +
+ + +
-
+ {:else} + +
+ +
+

+ Reporte de descarga según el tipo de factura +

+

Incluye en la columna descripción:

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
- -
-

Número de Decimales en los Campos

-
-
- - + +
+

+ Número de Decimales en los Campos +

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
-
- - -
-
- - -
-
- - -
-
-
-
-

Formas del Cálculo de Valores y V.A.

-
+
+

+ Formas del Cálculo de Valores y V.A. +

+
- - formData.BaseCostoMPoTotal = v} class="flex gap-4"> + + (formData.BaseCostoMPoTotal = v)} + class="flex gap-4" + >
@@ -214,44 +408,61 @@
- + formData.CalVATotAgreMP = v} + onValueChange={(v) => (formData.CalVATotAgreMP = v)} class="flex flex-col gap-2" >
- +
- +
-
+
- +
- +
- +
-
- - formData.LocCombinacionParametro = v} class="flex flex-wrap gap-3"> - {#each ['F1','F2','F3','F4','F5','F6'] as opt} +
+ + (formData.LocCombinacionParametro = v)} + class="flex flex-wrap gap-3" + > + {#each ['F1', 'F2', 'F3', 'F4', 'F5', 'F6'] as opt}
@@ -262,41 +473,56 @@
-
-

Opciones de Descarga al Actualizar Factura

-
+
+

+ Opciones de Descarga al Actualizar Factura +

+
- +
- +
- +
- +
- +
+
+ {/if} - -
+
-
-

Mínimos límites para actualizar facturas

+
+

+ Mínimos límites para actualizar facturas +

@@ -314,8 +540,10 @@
-
-

Máximos límites para actualizar facturas

+
+

+ Máximos límites para actualizar facturas +

@@ -334,209 +562,435 @@
-
- - +
+ +
-
-

Otras Opciones

-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
+
+

+ Otras Opciones +

+
+ {#if activeSystem === 'qsisgen'} + +
+ + +
+
+ + +
+ {:else} + +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ {/if}
- - -
-

Imprimir por

- formData.PorParteClaseMex = v} class="flex gap-4"> -
- - -
-
- - -
-
-
- - -
- -
-

Código de Barras

-
- - -
-
- - -
-
- - -
- - -

Mostrar en la Factura

-
- - -
-
- - -
-
- - -
-
- - -
-

Incluir en la Columna de Descripción

-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
- - -
-

Parte Complementaria de:

-
- - + {#if activeSystem === 'qsisgen'} + +
+
+ +
+

Código de Barras

+
+
+ + +
+
+ + +
+
-
- - + + +
+

Incluir en Descripcion

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ + +
+
+ + +
+
+
-
- - -
-
- - -
-
- - +
+
+ +