Files
cdc-project-management/MODULO_TARIFARIO_ADMIN_IMPLEMENTACION.md
T

3.2 KiB

Módulo de administración del tarifario — Tablero CDC

Qué incorpora

  • Botón Tarifario inmediatamente antes de + Nuevo.
  • El botón depende exclusivamente de tablero_cdc_allowed_users.can_manage_tariff_catalog.
  • Administración de las secciones generales existentes:
    • Tarifario Gráfico CDC.
    • Estrategia y Creatividad.
  • Creación de nuevas secciones generales.
  • Creación de tarifarios especiales vinculados a cualquier cliente activo del Tablero CDC.
  • Edición, desactivación y reactivación de secciones y tarifas.
  • Las tarifas especiales se muestran únicamente cuando el proyecto tiene seleccionado el cliente asociado.
  • Cada tarifario especial utiliza selección múltiple de piezas con montos fijos y puede permitir un costo manual adicional.
  • Los proyectos históricos no se modifican.

Orden de instalación

  1. Ejecutar completo supabase_tariff_admin_module.sql en Supabase.
  2. Confirmar que las consultas de verificación muestran a Isaac, Gerardo y Alicia con can_manage_tariff_catalog = true.
  3. Ejecutar npm run build o utilizar el dist incluido, que ya contiene el módulo.
  4. Probar localmente con XAMPP.
  5. Publicar el dist validado.

Dar acceso a otra persona

La persona debe existir primero como usuario activo del Tablero CDC. Luego ejecutar:

update public.tablero_cdc_allowed_users
set can_manage_tariff_catalog = true,
    updated_at = now()
where lower(trim(email)) = lower(trim('correo@gomezleemarketing.com'));

Quitar acceso al módulo

update public.tablero_cdc_allowed_users
set can_manage_tariff_catalog = false,
    updated_at = now()
where lower(trim(email)) = lower(trim('correo@gomezleemarketing.com'));

Después del cambio, el usuario debe recargar la aplicación. Si tenía una sesión abierta desde antes, puede cerrar sesión y volver a entrar para que el permiso se lea nuevamente.

Verificar quién tiene acceso

select
  email,
  full_name,
  is_active,
  can_manage_tariff_catalog
from public.tablero_cdc_allowed_users
where can_manage_tariff_catalog = true
order by full_name, email;

Pruebas recomendadas

  1. Isaac, Gerardo y Alicia ven el botón Tarifario.
  2. Un usuario sin el permiso no ve el botón y tampoco puede escribir en las tablas por RLS.
  3. Editar una tarifa de una sección general y verificarla dentro de un proyecto de un cliente normal.
  4. Crear una sección general nueva, agregar una tarifa y verificar que aparezca en el estimador interno.
  5. Crear un tarifario por cliente, asociarlo a un cliente de prueba y agregar dos piezas con montos fijos.
  6. Abrir un proyecto de ese cliente y verificar selección múltiple, subtotal y costo manual.
  7. Abrir un proyecto de otro cliente y confirmar que el tarifario especial no aparezca.
  8. Desactivar una tarifa y comprobar que deja de ofrecerse sin borrar costos históricos.

Compatibilidad con el sincronizador del Sheet

  • Las tarifas administradas desde la app se marcan con managed_by = 'app'.
  • El sincronizador de n8n no puede sobrescribir tarifas que ya hayan sido administradas desde la app.
  • La desactivación masiva del Sheet solo afecta las tarifas gestionadas por el Sheet en las secciones originales.
  • Las nuevas secciones y los tarifarios especiales permanecen protegidos.