diff --git a/apps/web/app/(dashboard)/configuracion/page.tsx b/apps/web/app/(dashboard)/configuracion/page.tsx index b654db3..824cd4c 100644 --- a/apps/web/app/(dashboard)/configuracion/page.tsx +++ b/apps/web/app/(dashboard)/configuracion/page.tsx @@ -379,6 +379,7 @@ export default function ConfiguracionPage() { const empresaNombre = viewingTenantName || user?.tenantName; const isGlobalAdmin = isGlobalAdminRfc(user?.tenantRfc, user?.role, user?.platformRoles); const isDespacho = isDespachoTenant(user?.tenantRfc); + const showFullConfig = ['owner', 'cfo', 'supervisor'].includes(user?.role || ''); return ( <> @@ -456,88 +457,112 @@ export default function ConfiguracionPage() { ) )} - {/* SAT Configuration */} - - - - - - Sincronizacion SAT - - - Configura tu FIEL y la sincronizacion automatica de CFDIs con el SAT - - - -

- Descarga automaticamente tus facturas emitidas y recibidas directamente del portal del SAT. -

-
-
- + {showFullConfig && ( + <> + {/* SAT Configuration */} + + + + + + Sincronizacion SAT + + + Configura tu FIEL y la sincronizacion automatica de CFDIs con el SAT + + + +

+ Descarga automaticamente tus facturas emitidas y recibidas directamente del portal del SAT. +

+
+
+ - {/* Obligaciones Fiscales */} - {(user?.role === 'owner' || user?.role === 'cfo' || user?.role === 'supervisor') && ( - - - - - - Obligaciones Fiscales - - - Gestiona las obligaciones fiscales de tus contribuyentes - - - -

- Recibe recomendaciones basadas en el régimen fiscal, agrega o elimina obligaciones según las necesidades de cada RFC. -

-
-
- + {/* Obligaciones Fiscales */} + {(user?.role === 'owner' || user?.role === 'cfo' || user?.role === 'supervisor') && ( + + + + + + Obligaciones Fiscales + + + Gestiona las obligaciones fiscales de tus contribuyentes + + + +

+ Recibe recomendaciones basadas en el régimen fiscal, agrega o elimina obligaciones según las necesidades de cada RFC. +

+
+
+ + )} + + {/* Notificaciones */} + + + + + + Notificaciones + + + Activa o desactiva los correos informativos por contribuyente + + + +

+ Controla qué correos quieres recibir por cada cliente: documentos subidos, reporte semanal, recordatorios fiscales, vencimiento de suscripción. +

+
+
+ + + {/* Preferencias de Facturación */} + + + + + + Preferencias de Facturación + + + Define cómo facturamos los pagos de tu suscripción a Horux 360 + + + +

+ Elige si tus facturas salen con tus datos fiscales o como Público en General. Configura el uso CFDI (G03 Gastos en general / S01 Sin obligaciones) y el régimen a usar si tienes varios activos. +

+
+
+ + + {/* CSD / Facturapi */} + + + + + + Certificado de Sello Digital (CSD) + + + Configura tu CSD para emitir facturas electrónicas desde Horux360 + + + +

+ Sube tu certificado y llave privada para timbrar CFDIs directamente desde la plataforma. +

+
+
+ + )} - {/* Notificaciones */} - - - - - - Notificaciones - - - Activa o desactiva los correos informativos por contribuyente - - - -

- Controla qué correos quieres recibir por cada cliente: documentos subidos, reporte semanal, recordatorios fiscales, vencimiento de suscripción. -

-
-
- - - {/* Preferencias de Facturación (auto-emisión de pagos de suscripción) */} - - - - - - Preferencias de Facturación - - - Define cómo facturamos los pagos de tu suscripción a Horux 360 - - - -

- Elige si tus facturas salen con tus datos fiscales o como Público en General. Configura el uso CFDI (G03 Gastos en general / S01 Sin obligaciones) y el régimen a usar si tienes varios activos. -

-
-
- - {/* Seguridad */} @@ -558,26 +583,6 @@ export default function ConfiguracionPage() { - {/* CSD / Facturapi */} - - - - - - Certificado de Sello Digital (CSD) - - - Configura tu CSD para emitir facturas electrónicas desde Horux360 - - - -

- Sube tu certificado y llave privada para timbrar CFDIs directamente desde la plataforma. -

-
-
- - {/* Admin global: edición de precios */} {isGlobalAdmin && ( <> diff --git a/apps/web/components/layouts/sidebar-compact.tsx b/apps/web/components/layouts/sidebar-compact.tsx index 1428c46..05e6f02 100644 --- a/apps/web/components/layouts/sidebar-compact.tsx +++ b/apps/web/components/layouts/sidebar-compact.tsx @@ -59,7 +59,7 @@ const navigation: NavItem[] = [ { name: 'Usuarios', href: '/usuarios', icon: Users, roles: ['owner', 'cfo'] }, { name: 'Tareas', href: '/tareas', icon: CheckSquare2, roles: ['owner', 'cfo', 'contador', 'auxiliar', 'supervisor'] }, { name: 'Planes', href: '/configuracion/planes-despacho', icon: CreditCard, roles: ['owner', 'cfo'] }, - { name: 'Configuracion', href: '/configuracion', icon: Settings, roles: ['owner', 'cfo', 'supervisor'] }, + { name: 'Configuracion', href: '/configuracion', icon: Settings, roles: ['owner', 'cfo', 'supervisor', 'auxiliar', 'cliente'] }, ]; const adminNavigation: NavItem[] = [ diff --git a/apps/web/components/layouts/sidebar-floating.tsx b/apps/web/components/layouts/sidebar-floating.tsx index ef31c0e..438d332 100644 --- a/apps/web/components/layouts/sidebar-floating.tsx +++ b/apps/web/components/layouts/sidebar-floating.tsx @@ -58,7 +58,7 @@ const navigation: NavItem[] = [ { name: 'Usuarios', href: '/usuarios', icon: Users, roles: ['owner', 'cfo'] }, { name: 'Tareas', href: '/tareas', icon: CheckSquare2, roles: ['owner', 'cfo', 'contador', 'auxiliar', 'supervisor'] }, { name: 'Planes', href: '/configuracion/planes-despacho', icon: CreditCard, roles: ['owner', 'cfo'] }, - { name: 'Configuracion', href: '/configuracion', icon: Settings, roles: ['owner', 'cfo', 'supervisor'] }, + { name: 'Configuracion', href: '/configuracion', icon: Settings, roles: ['owner', 'cfo', 'supervisor', 'auxiliar', 'cliente'] }, ]; const adminNavigation: NavItem[] = [ diff --git a/apps/web/components/layouts/sidebar.tsx b/apps/web/components/layouts/sidebar.tsx index b9c7fbe..35fb976 100644 --- a/apps/web/components/layouts/sidebar.tsx +++ b/apps/web/components/layouts/sidebar.tsx @@ -62,7 +62,7 @@ const navigation: NavItem[] = [ { name: 'Usuarios', href: '/usuarios', icon: Users, roles: ['owner', 'cfo'] }, { name: 'Tareas', href: '/tareas', icon: CheckSquare2, roles: ['owner', 'cfo', 'contador', 'auxiliar', 'supervisor'] }, { name: 'Planes', href: '/configuracion/planes-despacho', icon: CreditCard, roles: ['owner', 'cfo'] }, - { name: 'Configuracion', href: '/configuracion', icon: Settings, roles: ['owner', 'cfo', 'supervisor'] }, + { name: 'Configuracion', href: '/configuracion', icon: Settings, roles: ['owner', 'cfo', 'supervisor', 'auxiliar', 'cliente'] }, ]; const adminNavigation: NavItem[] = [ diff --git a/apps/web/components/layouts/topnav.tsx b/apps/web/components/layouts/topnav.tsx index 43d8f15..2cd20c7 100644 --- a/apps/web/components/layouts/topnav.tsx +++ b/apps/web/components/layouts/topnav.tsx @@ -59,7 +59,7 @@ const navigation: NavItem[] = [ { name: 'Usuarios', href: '/usuarios', icon: Users, roles: ['owner', 'cfo'] }, { name: 'Tareas', href: '/tareas', icon: CheckSquare2, roles: ['owner', 'cfo', 'contador', 'auxiliar', 'supervisor'] }, { name: 'Planes', href: '/configuracion/planes-despacho', icon: CreditCard, roles: ['owner', 'cfo'] }, - { name: 'Configuracion', href: '/configuracion', icon: Settings, roles: ['owner', 'cfo', 'supervisor'] }, + { name: 'Configuracion', href: '/configuracion', icon: Settings, roles: ['owner', 'cfo', 'supervisor', 'auxiliar', 'cliente'] }, ]; const adminNavigation: NavItem[] = [