mirror of
https://origin.cursor.com/mrdevmx/panels.git
synced 2026-10-09 17:43:19 +00:00
Implementa el módulo integral de costos según el plan acordado: - Esquema Liquibase: expense_entries, almacén (central + obra), IVA, tenant_cost_settings, permisos IAM y RLS - Funciones RPC core: gastos, almacén, control presupuestal, sync nómina, cierre de almacén al concluir proyecto - API HTTP: expenses_http, warehouse_http, cost_control_http, iam_http - Middleware requirePermission con matriz IAM - UI web-panel: /gastos, /almacen, /control-presupuesto, /usuarios - Componentes BudgetItemPicker, CostSemaphore y semáforos CSS - Smoke tests extendidos para gastos/almacén/control Co-authored-by: alberto.martinez <alberto.martinez@mrdev.mx>
27 lines
1.2 KiB
SQL
27 lines
1.2 KiB
SQL
--liquibase formatted sql
|
|
-- PANELS · iam · permisos gastos, almacén y control de costos
|
|
|
|
--changeset panel:iam-003a-permissions endDelimiter:; splitStatements:true
|
|
INSERT INTO iam.permissions (code, label) VALUES
|
|
('view_expenses', 'Ver gastos y reportes de costos'),
|
|
('manage_expenses', 'Capturar y editar gastos'),
|
|
('view_warehouse', 'Ver almacén global y de obra'),
|
|
('manage_warehouse', 'Entradas, salidas y transferencias de almacén'),
|
|
('close_warehouse', 'Cerrar almacén de obra'),
|
|
('manage_cost_settings', 'Configurar umbrales de alerta presupuestal')
|
|
ON CONFLICT (code) DO NOTHING;
|
|
|
|
--changeset panel:iam-003b-tenant-admin-permissions endDelimiter:; splitStatements:true
|
|
INSERT INTO iam.role_permissions (role_code, permission_code)
|
|
SELECT 'tenant_admin', code FROM iam.permissions
|
|
WHERE code IN (
|
|
'view_expenses', 'manage_expenses', 'view_warehouse', 'manage_warehouse',
|
|
'close_warehouse', 'manage_cost_settings'
|
|
)
|
|
ON CONFLICT DO NOTHING;
|
|
|
|
--changeset panel:iam-003c-user-view-permissions endDelimiter:; splitStatements:true
|
|
INSERT INTO iam.role_permissions (role_code, permission_code) VALUES
|
|
('user', 'view_expenses'),
|
|
('user', 'view_warehouse')
|
|
ON CONFLICT DO NOTHING;
|