From 00004affe9db6dcf664e36681d17a86cd67c3446 Mon Sep 17 00:00:00 2001 From: Kevin_Ramirez Date: Wed, 4 Mar 2026 08:09:11 -0600 Subject: [PATCH 1/3] Validaciones para tipos de cambio --- .../exchange_rate/create-edit-dialog.svelte | 9 ++++++- .../invoices/create-edit-dialog.svelte | 14 +++++++++++ .../pedimentos/edit/[id]/+page.svelte | 25 +++++++++++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) diff --git a/frontend/src/lib/components/dashboard/exchange_rate/create-edit-dialog.svelte b/frontend/src/lib/components/dashboard/exchange_rate/create-edit-dialog.svelte index f19312c0..de77a2d1 100644 --- a/frontend/src/lib/components/dashboard/exchange_rate/create-edit-dialog.svelte +++ b/frontend/src/lib/components/dashboard/exchange_rate/create-edit-dialog.svelte @@ -119,7 +119,14 @@ const companyId = companyStore.activeCompany?.id; if (!companyId) throw new Error('No hay una compañía seleccionada'); if (!formData.date) throw new Error('La fecha es requerida'); - if (formData.value === null) throw new Error('El valor es requerido'); + if ( + formData.value === null || + formData.value === undefined || + String(formData.value).trim() === '' + ) + throw new Error('El tipo de cambio es requerido'); + if (Number(formData.value) <= 0) + throw new Error('El tipo de cambio debe ser un valor mayor a 0'); showConfirmation = true; } catch (e) { diff --git a/frontend/src/lib/components/dashboard/invoices/create-edit-dialog.svelte b/frontend/src/lib/components/dashboard/invoices/create-edit-dialog.svelte index c6a4e708..4237c5e9 100644 --- a/frontend/src/lib/components/dashboard/invoices/create-edit-dialog.svelte +++ b/frontend/src/lib/components/dashboard/invoices/create-edit-dialog.svelte @@ -181,6 +181,20 @@ return; } + // Validar tipo de cambio + if ( + formData.exchange_rate === null || + formData.exchange_rate === undefined || + String(formData.exchange_rate).trim() === '' + ) { + error = 'El tipo de cambio es requerido (pestaña Financieros)'; + return; + } + if (Number(formData.exchange_rate) <= 0) { + error = 'El tipo de cambio debe ser mayor a 0 (pestaña Financieros)'; + return; + } + loading = true; error = null; diff --git a/frontend/src/routes/dashboard/pedimentos/edit/[id]/+page.svelte b/frontend/src/routes/dashboard/pedimentos/edit/[id]/+page.svelte index ccd4acc7..6fa87ac2 100644 --- a/frontend/src/routes/dashboard/pedimentos/edit/[id]/+page.svelte +++ b/frontend/src/routes/dashboard/pedimentos/edit/[id]/+page.svelte @@ -433,6 +433,31 @@ } } + // Validar tipo de cambio en create y update + if (generalFormData) { + const rate = generalFormData.exchange_rate; + if ( + rate === null || + rate === undefined || + String(rate).trim() === '' || + Number(rate) <= 0 + ) { + saving = false; + activeTab = 'general'; + const date = generalFormData.entry_date || ''; + toast.error( + Number(rate) <= 0 && rate !== null && rate !== undefined + ? 'El tipo de cambio debe ser mayor a 0. Registra el tipo de cambio para la fecha de entrada.' + : 'No hay tipo de cambio registrado para la fecha de entrada. Por favor, regístralo antes de guardar.' + ); + if (date) { + missingExchangeRateDate = date; + showExchangeRateDialog = true; + } + return; + } + } + // Construir el payload unificado const payload: any = { // Datos generales From aac7614621eadf70d9e0681f616280b1662b8ac2 Mon Sep 17 00:00:00 2001 From: Kevin_Ramirez Date: Wed, 4 Mar 2026 08:16:53 -0600 Subject: [PATCH 2/3] Borrado de archivos y se agergo index.html --- frontend/index.html | 12723 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 12723 insertions(+) create mode 100644 frontend/index.html diff --git a/frontend/index.html b/frontend/index.html new file mode 100644 index 00000000..d02723d3 --- /dev/null +++ b/frontend/index.html @@ -0,0 +1,12723 @@ + + + + + + Anexo76 - Gestión de Comercio Exterior + + + + + + +

Anexo76

Gestión de Comercio Exterior

Bienvenido a Anexo76

Plataforma SaaS para gestión de comercio exterior conforme a Anexos 24, 30 y 22 del SAT. + Ideal para maquilas, empresas IMMEX y agentes aduanales.

Registrarse

Características principales

Multi-tenant

Arquitectura híbrida con BD compartida o dedicada según necesidades

Seguridad

Autenticación con Keycloak y control de acceso basado en roles

Licencias

Planes flexibles desde Free hasta Enterprise con features personalizadas

© 2025 Anexo76. Desarrollado para la industria de comercio exterior mexicana.

+ + +
+ + From eee3728948d8d72645f8f5e2d3b8559afe4d51b9 Mon Sep 17 00:00:00 2001 From: Kevin_Ramirez Date: Wed, 4 Mar 2026 08:19:20 -0600 Subject: [PATCH 3/3] chore: eliminar celerybeat-schedule del repositorio --- backend/celerybeat-schedule | Bin 16384 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 backend/celerybeat-schedule diff --git a/backend/celerybeat-schedule b/backend/celerybeat-schedule deleted file mode 100644 index 8cda996d90f19534ef5b500c264fc536e50391cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 zcmeI(O=}ZD7zgl)i6*fP6eB1KB3^8etZ&$Zcu;}|S*&0M!9$nLW@?6Rc4c=~Odybx zT9|{-DTp7yv-kx(d-4N#^5CUVKY^gnbhb8!;!Dt?_8*vip54vNPJWqvNCJ8H;%=SI zFt*t!m{`r@OB1h}4P&2ez!m}!fB*y_009U<00Izz00bZafqzlpWIky`3jqf>7y+yU ztOKkA+y|%wr~{}2r~{}2r~{}2s00659VptnnoZ}CowLd1f{ly$e!XV*H!f^F@z-OC zx_qI>PCaqls=xsbO7Lk^YgZUnZi7M2ZZNjo^M{=IVuN?oyqIf zJ{sl}wZF~Nyyt?aqtZ}2=JRioia7GTQE6@SUjQ^?wf~ZH(V5eZ9MI7tmV>GKwH{AI z;Gez8ABiCLT0-`hDQEUDm47@g~$dgqty7R))*T&8C7*{Aum=|YvQoJQ;(P*pR>4iBYI`z~{@xa