diff --git a/apps/api/src/controllers/documentos.controller.ts b/apps/api/src/controllers/documentos.controller.ts index 72996ed..b06f0e6 100644 --- a/apps/api/src/controllers/documentos.controller.ts +++ b/apps/api/src/controllers/documentos.controller.ts @@ -82,7 +82,7 @@ const createDeclaracionSchema = z.object({ mes: z.number().int().min(1).max(12), tipo: z.enum(['normal', 'complementaria']), periodicidad: z.enum(['mensual', 'bimestral', 'trimestral', 'semestral', 'anual']).optional(), - impuestos: z.array(z.enum(['IVA', 'ISR', 'IEPS', 'SUELDOS', 'DIOT', 'OTRO'])).min(1, 'Selecciona al menos un impuesto'), + impuestos: z.array(z.enum(['IVA', 'ISR', 'IEPS', 'ISN', 'DIOT', 'OTRO', 'ISH'])).min(1, 'Selecciona al menos un impuesto'), montoPago: z.number().min(0).optional(), pdfBase64: z.string().min(100), pdfFilename: z.string().min(1).max(255), diff --git a/apps/api/src/migrations/tenant/047_rename_sueldos_to_isn.sql b/apps/api/src/migrations/tenant/047_rename_sueldos_to_isn.sql new file mode 100644 index 0000000..9012c76 --- /dev/null +++ b/apps/api/src/migrations/tenant/047_rename_sueldos_to_isn.sql @@ -0,0 +1,9 @@ +-- Migración 047: Renombrar SUELDOS → ISN en declaraciones existentes +-- Fecha: 2026-05-24 +-- +-- El campo impuestos es TEXT[]. Se usa array_replace para actualizar +-- declaraciones históricas que tenían 'SUELDOS' como impuesto cubierto. + +UPDATE declaraciones_provisionales +SET impuestos = array_replace(impuestos, 'SUELDOS', 'ISN') +WHERE 'SUELDOS' = ANY(impuestos); diff --git a/apps/api/src/services/declaraciones.service.ts b/apps/api/src/services/declaraciones.service.ts index a0b860a..d506e4e 100644 --- a/apps/api/src/services/declaraciones.service.ts +++ b/apps/api/src/services/declaraciones.service.ts @@ -9,7 +9,8 @@ const IMPUESTO_A_OBLIGACION_KEYWORDS: Record = { IVA: ['decl-iva'], ISR: ['decl-isr'], IEPS: ['decl-ieps'], - SUELDOS: ['decl-sueldos'], + ISN: ['decl-isn'], DIOT: ['diot'], OTRO: [], + ISH: [], }; const IMPUESTO_A_PREFIJO_PAGO: Record = { IVA: ['pago-iva'], ISR: ['pago-isr'], IEPS: ['pago-ieps'], - SUELDOS: [], // sueldos solo es declaración informativa, no tiene pago provisional + ISN: [], // ISN solo es declaración informativa, no tiene pago provisional DIOT: [], OTRO: [], + ISH: [], }; /** diff --git a/apps/web/app/(dashboard)/documentos/page.tsx b/apps/web/app/(dashboard)/documentos/page.tsx index 6398f1f..aa60ae3 100644 --- a/apps/web/app/(dashboard)/documentos/page.tsx +++ b/apps/web/app/(dashboard)/documentos/page.tsx @@ -25,7 +25,7 @@ import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query'; import * as docsApi from '@/lib/api/documentos'; const MESES = ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre']; -const IMPUESTOS: Impuesto[] = ['IVA', 'ISR', 'IEPS', 'SUELDOS', 'DIOT', 'OTRO']; +const IMPUESTOS: Impuesto[] = ['IVA', 'ISR', 'IEPS', 'ISN', 'DIOT', 'OTRO', 'ISH']; const PERIODICIDADES: { value: Periodicidad; label: string }[] = [ { value: 'mensual', label: 'Mensual' }, { value: 'bimestral', label: 'Bimestral' }, diff --git a/apps/web/lib/api/declaraciones.ts b/apps/web/lib/api/declaraciones.ts index e39bc8b..83bfeed 100644 --- a/apps/web/lib/api/declaraciones.ts +++ b/apps/web/lib/api/declaraciones.ts @@ -1,6 +1,6 @@ import { apiClient } from './client'; -export type Impuesto = 'IVA' | 'ISR' | 'IEPS' | 'SUELDOS' | 'DIOT' | 'OTRO'; +export type Impuesto = 'IVA' | 'ISR' | 'IEPS' | 'ISN' | 'DIOT' | 'OTRO' | 'ISH'; export type Periodicidad = 'mensual' | 'bimestral' | 'trimestral' | 'semestral' | 'anual'; export interface Declaracion {