feat(papeleria): aprobación independiente por cliente
- Agrega migración 050 con columnas de aprobación de cliente (requiere_aprobacion_cliente, estado_cliente, aprobado_por_cliente, etc.) - Backend: endpoints /aprobar-cliente y /rechazar-cliente con validación de permisos - Backend: list/download permiten acceso a clientes filtrando por entidades visibles - Backend: notificación por email a clientes cuando se les solicita aprobación - Frontend: checkbox independiente para solicitar aprobación del cliente - Frontend: badge de estado combinado (owner + cliente) - Frontend: botones de aprobar/rechazar para clientes en su propio flujo
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
-- Papelería de trabajo: aprobación independiente por cliente
|
||||
|
||||
ALTER TABLE papeleria_trabajo
|
||||
ADD COLUMN IF NOT EXISTS requiere_aprobacion_cliente boolean NOT NULL DEFAULT false,
|
||||
ADD COLUMN IF NOT EXISTS estado_cliente varchar(20)
|
||||
CHECK (estado_cliente IS NULL OR estado_cliente IN ('pendiente','aprobado','rechazado')),
|
||||
ADD COLUMN IF NOT EXISTS aprobado_por_cliente uuid,
|
||||
ADD COLUMN IF NOT EXISTS aprobado_at_cliente timestamptz,
|
||||
ADD COLUMN IF NOT EXISTS comentario_rechazo_cliente text;
|
||||
|
||||
CREATE INDEX IF NOT EXISTS ix_papeleria_estado_cliente
|
||||
ON papeleria_trabajo(estado_cliente)
|
||||
WHERE estado_cliente IS NOT NULL;
|
||||
|
||||
CREATE INDEX IF NOT EXISTS ix_papeleria_requiere_cliente
|
||||
ON papeleria_trabajo(contribuyente_id, requiere_aprobacion_cliente)
|
||||
WHERE requiere_aprobacion_cliente = true;
|
||||
|
||||
INSERT INTO tenant_migrations (scope, version, name)
|
||||
VALUES ('vertical-contable', 50, '050_papeleria_aprobacion_cliente')
|
||||
ON CONFLICT (scope, version) DO NOTHING;
|
||||
Reference in New Issue
Block a user