8dd668d5c5
test(udt-011): DateOnlyJsonConverter serialization tests (Red)
2026-04-18 09:47:13 -03:00
54d2340bb9
feat(udt-011): register TimeProvider.System in AddApplication DI
2026-04-18 09:44:21 -03:00
4e70b0f847
feat(udt-011): TimeProviderArgentinaExtensions.GetArgentinaToday cross-platform
2026-04-18 09:43:35 -03:00
03d51d4310
chore(udt-011): add Microsoft.Extensions.TimeProvider.Testing NuGet
2026-04-18 09:43:31 -03:00
7e4a096f24
test(udt-011): TimeProvider Argentina extension tests with FakeTimeProvider (Red)
2026-04-18 09:43:28 -03:00
cc4efe9ef2
chore(udt-011): SqlTestFixture.EnsureV015SchemaAsync for timezone views
2026-04-18 09:39:04 -03:00
7913dd8bb9
chore(udt-011): V015_ROLLBACK script for timezone views
2026-04-18 09:39:00 -03:00
a51a7bc07e
feat(udt-011): V015 create v_AuditEvent_Local + v_SecurityEvent_Local views
2026-04-18 09:39:00 -03:00
be6f76d107
test(udt-011): V015 migration tests for timezone views (Red)
2026-04-18 09:38:55 -03:00
d4b2183628
Merge pull request 'fix(web): migrar PuntoDeVentaForm a sintaxis Zod v4 ( closes #21 )' ( #23 ) from fix/ADM-008-zod-v4 into main
2026-04-18 11:47:39 +00:00
0863ed8682
fix(web/adm-008): migrar PuntoDeVentaForm a sintaxis Zod v4 ( closes #21 )
2026-04-18 08:47:20 -03:00
a804ef3c7b
Merge pull request 'ADM-009: Tablas Fiscales (IVA + IIBB) — append-only versioned ref data' ( #22 ) from feature/ADM-009 into main
2026-04-18 11:45:13 +00:00
30b55e60ea
fix(web/adm-009): migrar componentes fiscales a sintaxis Zod v4
2026-04-18 08:37:10 -03:00
8c08a706f0
test(adm-009): V014MigrationTests con filtros especificos por seed (no count total)
2026-04-17 19:11:55 -03:00
600ff52dd2
refactor(infra): eliminar LegacySeedMap/NormalizeUpperSnakeToPascal de IngresosBrutosRepository
2026-04-17 19:11:51 -03:00
882f947765
chore(db): V014 seed Provincia en PascalCase (cleanup tech debt)
2026-04-17 19:11:47 -03:00
4739e5cd46
chore(web): routes /admin/fiscal/iva y /admin/fiscal/iibb con permiso
...
Ambas rutas protegidas con requiredPermissions=['administracion:fiscal:gestionar'].
Integradas en ProtectedPage con MustChangePasswordGate y ProtectedLayout.
2026-04-17 18:56:02 -03:00
a3a15a4118
test+feat(web/adm-009): iibb subfeature mirror de iva
...
Types (ProvinciaArgentina 24 valores + PROVINCIA_DISPLAY), iibbApi.ts,
useIngresosBrutos hooks, tabla con columna Provincia, FormModal sin Alicuota
en edit [REQ-UI-007], NuevaVigenciaIibbModal con preview, TiposDeIibbPage con
banner. 8 tests RTL pasan (iibb). Total fiscal: 47/47 tests.
2026-04-17 18:55:57 -03:00
fcd34081d2
test+feat(web/adm-009): TiposDeIvaPage con banner + tabla + modales
...
Banner advertencia visible al mount con tokens warning-bg/warning-border [REQ-UI-005].
Filtros por codigo y activo. Paginacion server-side. Modales create/edit/nueva-version
controlados por estado local. 12 tests RTL pasan.
2026-04-17 18:55:49 -03:00
88274a9f10
test+feat(web/adm-009): NuevaVigenciaModal con preview de fechas
...
Preview en tiempo real: nuevo porcentaje, fecha cierre = vigenciaDesde-1d.
Banner warning con tokens DS. Boton disabled si form invalido [REQ-UI-004].
7 tests RTL pasan incluyendo verificacion de fecha cierre correcta.
2026-04-17 18:55:44 -03:00
038a2ade70
test+feat(web/adm-009): TipoDeIvaFormModal sin campo Porcentaje
...
Modal de edicion solo cosmeticos (Codigo, Descripcion, AplicaIVA, Activo).
Campo Porcentaje ausente en modo edit — verificado con queryByLabelText null [REQ-UI-003].
Modo create incluye Porcentaje inicial + VigenciaDesde. 10 tests RTL pasan.
2026-04-17 18:55:38 -03:00
8ffee0dbe4
test+feat(web/adm-009): TipoDeIvaTable con acciones y paginacion
...
Columnas: Codigo, Descripcion, Porcentaje%, Vigencia (abierta si null),
Estado (badge), Version con HistorialCadenaTooltip lazy. Acciones: editar,
nueva vigencia, deactivate/reactivate toggle. 10 tests RTL pasan.
2026-04-17 18:55:33 -03:00
95432e843f
feat(web/adm-009): hooks TanStack Query para fiscal IVA
...
useTiposDeIvaList, useTipoDeIva, useHistorialTipoDeIva (lazy enable),
mutations con invalidateQueries. staleTime: 15_000 en todas las queries.
Query keys estables: ['fiscal', 'iva', ...].
2026-04-17 18:55:25 -03:00
ea16d57646
feat(web/adm-009): types y api client para fiscal IVA
...
TipoDeIva types (UpdateRequest sin Porcentaje), ivaApi.ts con 8 endpoints,
ApiError contract { error, message } alineado con backend ADM-009.
2026-04-17 18:55:21 -03:00
9c05167788
chore(web): agregar tokens warning-bg y warning-border al Design System
...
Tokens usados en banner de advertencia fiscal (ADM-009). Incluye variante
light (amber claro) y dark (amber oscuro), mapeados en @theme inline de Tailwind.
2026-04-17 18:55:16 -03:00
3eda59f5aa
feat(adm-009): ExceptionFilter mapping for fiscal exceptions ({error, message} unified)
2026-04-17 18:40:05 -03:00
b1a461b6cb
feat(adm-009): FiscalController with raw-body Porcentaje/Alicuota defense
2026-04-17 18:40:02 -03:00
25407583eb
feat(adm-009): Fiscal API DTOs (requests + responses + mapper)
2026-04-17 18:39:58 -03:00
4544a000ae
test(adm-009): FiscalController integration tests with JWT auth (Red→Green)
2026-04-17 18:39:55 -03:00
83dd680fa3
feat(adm-009): TipoDeIvaRepository + IngresosBrutosRepository Dapper implementations + DI registration
2026-04-17 18:23:10 -03:00
8e2d6bfb14
test(adm-009): TipoDeIvaRepository + IngresosBrutosRepository integration tests (Red)
2026-04-17 18:18:17 -03:00
bd0c4deea7
feat(adm-009): TipoDeIva + IngresosBrutos handlers, DTOs, DI registration
2026-04-17 18:09:52 -03:00
2cd25e1036
test(adm-009): IngresosBrutos handler tests mirror (Red)
2026-04-17 18:09:44 -03:00
8db2b333c0
test(adm-009): TipoDeIva + IngresosBrutos handler tests (Red)
2026-04-17 18:09:40 -03:00
eead0a35cd
feat(adm-009): ITipoDeIvaRepository + IIngresosBrutosRepository abstractions
2026-04-17 18:09:36 -03:00
1d051c93d6
feat(adm-009): Permiso.AdministracionFiscalGestionar constant
2026-04-17 17:53:17 -03:00
f267e4f427
feat(adm-009): domain exceptions for fiscal entities
2026-04-17 17:52:57 -03:00
4cb3eed21f
test(adm-009): domain exceptions tests (Red)
2026-04-17 17:52:12 -03:00
088f2303c1
feat(adm-009): IngresosBrutos sealed entity mirror of TipoDeIva
2026-04-17 17:51:52 -03:00
87364ff8e6
test(adm-009): IngresosBrutos entity tests (Red)
2026-04-17 17:49:46 -03:00
f307306f91
feat(adm-009): TipoDeIva sealed entity with factories
2026-04-17 17:49:07 -03:00
b16dd313ed
test(adm-009): TipoDeIva entity validation tests (Red)
2026-04-17 17:48:12 -03:00
98a4fea7c4
feat(adm-009): ProvinciaArgentina enum with display mapping
2026-04-17 17:47:22 -03:00
3ee0bf0724
test(adm-009): ProvinciaArgentina enum tests (Red)
2026-04-17 17:45:41 -03:00
c6c4eda269
chore(adm-009): actualizar Respawner TablesToIgnore + conteos de permisos en tests existentes
2026-04-17 17:41:30 -03:00
f4bd84c3f1
feat(adm-009): V014 seed 4 TipoDeIva + 24 IngresosBrutos + permiso fiscal:gestionar
2026-04-17 17:41:25 -03:00
58ff15a0c0
feat(adm-009): V014 create TipoDeIva + IngresosBrutos tables with SYSTEM_VERSIONING
2026-04-17 17:33:19 -03:00
93664612d5
test(adm-009): V014 migration integration tests (Red)
2026-04-17 17:32:02 -03:00
a82d51ff7a
Merge pull request 'ADM-008: Puntos de Venta (CRUD fundacional)' ( #19 ) from feature/ADM-008 into main
2026-04-17 17:31:21 +00:00
fc77576427
chore(adm-008): limpiar import huerfano + comentario stale post-ciruigia
...
- PuntoDeVentaTests.cs: quitar using SIGCM2.Domain.Enums (quedo huerfano tras
eliminar TipoComprobante).
- SqlTestFixture.cs: actualizar comentario de EnsureV013SchemaAsync para
reflejar scope recortado (solo PdV + permiso, drops idempotentes de
SecuenciaComprobante + SP).
2026-04-17 14:24:58 -03:00