fase 2.6: membresias y suscripciones (modulo skeen_membresias: planes recurrentes con sesiones incluidas o ilimitadas, alta/cobro/renovacion/congelamiento/cancelacion, consumo de sesiones desde POS y expediente, cron de vencimientos y avisos, reporte de ingresos recurrentes); apagado por defecto
This commit is contained in:
@@ -44,6 +44,7 @@ TIPOS = [
|
||||
('post_visita', 'Post-visita'),
|
||||
('recuperacion', 'Recuperación'),
|
||||
('formulario', 'Formulario'),
|
||||
('renovacion_membresia', 'Renovación de membresía'),
|
||||
('manual', 'Manual'),
|
||||
]
|
||||
CANALES = [('whatsapp', 'WhatsApp'), ('email', 'Correo')]
|
||||
@@ -67,6 +68,8 @@ PLANTILLA_POR_TIPO = {
|
||||
'recuperacion': 'plantilla_recordatorio',
|
||||
# El aviso de un formulario digital usa su propia plantilla con {enlace}.
|
||||
'formulario': 'plantilla_formulario',
|
||||
# Aviso de renovación/cobro de una membresía (bloque `membresias`).
|
||||
'renovacion_membresia': 'plantilla_renovacion_membresia',
|
||||
'manual': 'plantilla_recordatorio',
|
||||
}
|
||||
|
||||
|
||||
@@ -95,6 +95,13 @@ PERMISSION_GROUPS = [
|
||||
('formularios.editar', 'Administrar plantillas de formularios'),
|
||||
('formularios.enviar', 'Enviar formularios a pacientes'),
|
||||
]),
|
||||
('membresias', 'Membresías y suscripciones', [
|
||||
('membresias.ver', 'Ver membresías, planes y adeudos'),
|
||||
('membresias.crear', 'Dar de alta membresías'),
|
||||
('membresias.cobrar', 'Cobrar y renovar membresías'),
|
||||
('membresias.editar', 'Editar planes y membresías'),
|
||||
('membresias.cancelar', 'Congelar y cancelar membresías'),
|
||||
]),
|
||||
('config', 'Usuarios y configuración', [
|
||||
('config.usuarios', 'Administrar usuarios'),
|
||||
('config.roles', 'Administrar roles y menús'),
|
||||
@@ -123,6 +130,7 @@ READ_PERM_KEYS = (
|
||||
'whatsapp.ver',
|
||||
'notificaciones.ver',
|
||||
'formularios.ver',
|
||||
'membresias.ver',
|
||||
)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -210,6 +218,14 @@ DEFAULT_PERM_ROLES = {
|
||||
'formularios.crear': ('admin', 'medico', 'recepcion', 'enfermeria', 'gerencia'),
|
||||
'formularios.editar': AG,
|
||||
'formularios.enviar': ('admin', 'medico', 'recepcion', 'enfermeria', 'gerencia'),
|
||||
# Membresías y suscripciones. Ver es de todos; dar de alta y cobrar es de
|
||||
# recepción/gerencia/admin; editar planes y cancelar/congelar es de
|
||||
# gerencia/admin (contra el dinero recurrente de la clínica).
|
||||
'membresias.ver': ALL,
|
||||
'membresias.crear': ('admin', 'recepcion', 'gerencia'),
|
||||
'membresias.cobrar': ('admin', 'recepcion', 'gerencia'),
|
||||
'membresias.editar': AG,
|
||||
'membresias.cancelar': AG,
|
||||
# Usuarios y configuración
|
||||
'config.usuarios': AG,
|
||||
'config.roles': AG,
|
||||
|
||||
@@ -160,6 +160,9 @@ DEFAULT_MENU_ROLES = {
|
||||
'/medicos': ['admin', 'recepcion', 'gerencia'],
|
||||
'/servicios': ['admin', 'recepcion', 'medico', 'lectura', 'gerencia'],
|
||||
'/paquetes': ['admin', 'recepcion', 'medico', 'lectura', 'gerencia'],
|
||||
# Membresías: apagado por defecto (membresias.activo=false). La sección solo
|
||||
# se pinta cuando la instancia la enciende; aquí queda su visibilidad por rol.
|
||||
'/membresias': ['admin', 'recepcion', 'medico', 'lectura', 'gerencia'],
|
||||
'/productos': ['admin', 'recepcion', 'lectura', 'gerencia'],
|
||||
'/ventas': ['admin', 'recepcion', 'gerencia'],
|
||||
'/tickets': ['admin', 'gerencia'],
|
||||
@@ -172,6 +175,7 @@ DEFAULT_MENU_ROLES = {
|
||||
'/reportes?tab=comisiones': ['admin', 'recepcion', 'lectura', 'gerencia'],
|
||||
'/reportes?tab=horas-agenda': ['admin', 'recepcion', 'lectura', 'gerencia'],
|
||||
'/reportes?tab=paquetes': ['admin', 'recepcion', 'lectura', 'gerencia'],
|
||||
'/reportes?tab=membresias': ['admin', 'recepcion', 'lectura', 'gerencia'],
|
||||
'/reportes?tab=vendedores': ['admin', 'recepcion', 'lectura', 'gerencia'],
|
||||
'/reportes?tab=concentrado': ['admin', 'recepcion', 'lectura', 'gerencia'],
|
||||
'/reportes?tab=recomendaciones': ['admin', 'recepcion', 'lectura', 'gerencia'],
|
||||
|
||||
Reference in New Issue
Block a user