Commit Graph

58 Commits

Author SHA1 Message Date
72f12946c3 Punto 11: editor de diseno de tickets en Configuracion > Tickets
- Nuevo modelo skeen.ticket.config (AbstractModel) con layout, datos de clinica
  y logo en ir.config_parameter; _mezclar() hace que layouts viejos hereden las
  secciones nuevas; _validar() rechaza valores imposibles y textos largos.
- Endpoints GET/PUT /ticket_config, PUT /ticket_config/clinica,
  POST /ticket_config/reset (reset solo admin) con auditoria en skeen_config_audit.
- Los datos de la clinica pasan de localStorage (cada caja imprimia distinto)
  a configuracion compartida en el servidor.
- TicketDoc.tsx renderiza segun el diseno: ancho 58/80mm, fuente, tamano de letra,
  separador, mayusculas, orden de bloques y 29 secciones activables.
- TicketDesigner.tsx: editor completo con vista previa en vivo, reorden de bloques,
  textos personalizables y carga de logo.
- TicketPrint.tsx ahora es un wrapper de TicketDoc; ReciboPrint, EstadoCuentaPrint,
  RecetaPrint, CortePrint y ConteoPrint usan useClinicaPrint().
- _sale_to_dict expone telefono del paciente, medico que atendio y datos de paquete;
  pos_checkout devuelve recibido/cambio en MXN y USD para imprimirlos.
2026-09-24 18:19:51 +00:00
e89bcdca3a Punto 7: gerencia puede corregir tickets sin cancelarlos (lineas, precios, descuento y notas) con ajuste automatico de monedero e inventario 2026-09-24 17:53:22 +00:00
dcf2c367f1 Puntos 16 y 10: modulo de paquetes de sesiones (catalogo, saldo por paciente, descuento en agenda, venta en POS) + fix de auditoria silenciosa 2026-09-24 17:17:29 +00:00
Kimi
09b4f25bb8 Punto 13: alta/baja de médicos desde el módulo Médicos
- Columna 'Estado' con switch Activo/Baja (confirmación previa) y checkbox
  'Mostrar dados de baja' para poder reactivar.
- GET /doctors solo devuelve activos; include_inactive=1 para la pantalla de
  Médicos. Cada médico expone su campo 'active'.
- Reglas en modelo: un empleado dado de baja no admite citas nuevas
  (skeen.cita), ni asignación de pacientes (res.partner.primary_doctor_id),
  ni líneas de venta (skeen.venta.line.prescribed_by_id). El historial
  existente no se toca: los constraints solo corren cuando cambia la
  asignación.
- ValidationError se responde 400 con mensaje legible en pacientes y ventas.
- fix: badges de estado de cita en agenda y dashboard usan la etiqueta de la
  clínica en lugar del valor técnico.
2026-09-24 16:03:02 +00:00
Kimi
d0eac00a40 Agenda: cierre rápido de agendas por médico, lista de espera, duraciones 30/45/60, checklist de estados con bitácora y auto-refresh 30s
- BloqueosModal: alta multi-médico, rango repetible por día de la semana,
  motivos predefinidos, edición/borrado y cierre rápido desde la cabecera
  de cada columna (todo el día / resto del día / rango).
- skeen.lista.espera + panel y modal en la agenda: prioridad, franja, rango
  de fechas, agendar precargado, avisar por WhatsApp y aviso cuando se
  libera un hueco compatible.
- duration en skeen.cita (0 = la del servicio): la cita ocupa sus bloques de
  15 min reales en las 4 vistas, con celdas de continuación.
- Checklist de estados (Agendada → Confirmada → En cabina → En consulta →
  Completada) con avance/retroceso, cancelación y no-show con confirmación,
  y bitácora de quién/cuándo en skeen.cita.state.log.
- Etiquetas del sistema legacy alineadas (Canceló / Lista de espera / En
  cabina) en badges de agenda y dashboard.
- Auto refresco silencioso cada 30 s (pausable, se pospone con modales,
  escritura o drag) en citas + bloqueos + lista de espera en un solo request.
2026-09-24 15:46:38 +00:00
e32a79084a Fix IA (max_tokens del modelo de razonamiento + fallback al gateway), sidebar con toggle arriba, busqueda de un solo campo (paciente/global), editar expediente, marketing en visitas, responsive de agenda; doc de diagnostico WhatsApp 2026-09-24 10:01:55 +00:00
d75411f0d9 POS vista lista, modulo Tickets para gerencia con cancelacion auditada, y saldo a favor (recargas de anticipo desde expediente y agenda, canje en POS) 2026-09-18 04:25:33 +00:00
cebf8d663d Permisos: marketing (export completo, agenda/citas, cumpleanos, visitas, WACRM), gerencia gestiona usuarios y roles, recepcion edita expedientes, cosmetologas ven agenda, fix del sidebar que no dejaba seleccionar Leads 2026-09-18 03:23:44 +00:00
c38783eb31 Oleada UX 7: Chat (presencia, busqueda en historial) y WACRM (metricas para gerencia, notas internas y etiquetas que sobreviven al sync) + fixes de concurrencia 2026-09-17 23:46:40 +00:00
31c92ac419 Oleada UX 6: Reportes agrupados en familias con rango global persistente y favoritos; Configuracion con auditoria de cambios y simulador de comisiones 2026-09-17 22:06:11 +00:00
cd945df6a5 Oleada UX 5: Servicios (duplicar, favoritos y orden para POS, mas vendidos) y Medicos (semana tipo con validacion en agenda, meta mensual con progreso) 2026-09-17 21:28:43 +00:00
9ee3343e22 Oleada UX 4: Pagos/Adeudos (cobro en 1 click con recibo, plan de pagos), Monedero (movimientos narrados, ajustes auditados, MXN+USD), Inventario (alta rapida, conteo fisico con ajuste e historial, alertas accionables) + fix de folios de pago y cantidades de movimientos 2026-09-17 20:31:52 +00:00
ac5896b1fc Oleada UX 3: POS (repetir ultima venta, aviso de paquetes, atajos, caja desde POS), Ventas (cancelacion auditada con reversion de monedero y stock, detalle inline, presets de fecha), Cortes (historial comparativo y export) 2026-09-17 19:26:02 +00:00
b4f91527f1 Oleada UX 2: Agenda (mensajes de conflicto humanos, imprimir agenda del dia, confirmacion en lote, prefs persistentes) y Pacientes (acciones en ficha, timeline unificada, aviso de telefono duplicado) + fixes de precarga e impresion 2026-09-17 18:47:35 +00:00
afc208a7b7 UX Dashboard: fila Hoy en la clinica, KPIs clickeables, deltas; Cumpleanos wa.me E.164; Mis ventas con grafica diaria 2026-09-17 07:25:16 +00:00
8ba3d2582b WACRM: historial completo con paginacion desde el origen, sync refleja eliminaciones y trae todo el historial 2026-09-11 10:58:57 +00:00
4f49188deb Oleada B: fusion Expedientes en Pacientes (+chip sin visita 6m), sidebar colapsable SKEEN, edicion completa de citas, autocompletado de paciente, bloqueos excluidos de slots 2026-09-11 10:38:08 +00:00
0b45abc197 Gerencia rango operativo (crear citas), permisos por prefijo para rutas de detalle, matriz alineada (inventario para recepcion) 2026-09-11 09:48:37 +00:00
212f51cf9e Login: mensaje amigable y ojo de password; agenda: click en celda libre para agendar (estilo Google Calendar) 2026-09-09 10:37:15 +00:00
c7dcd171ee Fix pantalla en blanco al entrar: landing por rol cuando el Dashboard no es visible + matrices de menus coherentes 2026-09-08 22:17:21 +00:00
b101468c7a Login: busqueda de usuario insensible a mayusculas/minisculas 2026-09-08 21:55:02 +00:00
4f9a16103f Corte de caja asistido (esperado vs contado, diferencias, PDF) y fotos antes/despues con comparacion en expediente 2026-09-08 07:27:57 +00:00
e8690dd74e Monitoreo de salud del sistema cada 15 min con alertas por WhatsApp (doc tecnica) 2026-09-08 06:11:01 +00:00
b71b730a73 Guia WACRM: capturas corregidas (modal asignar abierto, anotaciones reposicionadas) 2026-09-08 01:35:16 +00:00
6baa8756f2 Guia WACRM ilustrada para usuarios finales: capturas anotadas, letra grande, lenguaje llano 2026-09-08 01:27:17 +00:00
6434c4f86a Guia WACRM version usuario final (sin detalle tecnico, URLs del tunel) + PDF 2026-09-08 01:02:25 +00:00
b825764ed7 Guia WACRM en PDF 2026-09-07 19:48:27 +00:00
1c438c24c5 Guia completa de uso del WACRM (revisado en vivo: webhook, envios, Sofia/Hermes, integracion SKEEN, limitaciones) 2026-09-06 09:06:01 +00:00
42536e9d2a Roles: administracion renombrado a gerencia 2026-09-03 04:16:59 +00:00
bf659bf652 Roles: entrenador renombrado a administracion (administracion de clinica, sin Configuracion) 2026-09-03 00:32:40 +00:00
3f6f1c5f8f delta_import: desactivar _check_bloqueos y dedup de servicios HIST por codigo (reimport robusto) 2026-09-02 23:45:43 +00:00
cfacb23f45 UX: notificaciones de chat con toast y sonido (WebAudio) + skeletons de carga en Agenda y Chat 2026-09-01 22:51:01 +00:00
f0d7ac4c01 POS: boton Cobrar desde cita (precarga paciente/servicio/doctor) y ticket termico imprimible con reimpresion en Ventas 2026-09-01 22:39:26 +00:00
2710d9d92d UX Pacientes: drawer de ficha clicable global, cumpleanos en dashboard/agenda, badges VIP/alergias/adeudo en ficha y POS 2026-09-01 22:26:09 +00:00
7261da3ab1 Agenda UX: nav de fecha con Hoy, linea de hora actual, colores por categoria, tooltips, vista Semana y Reagendar 2026-09-01 21:59:48 +00:00
bf36fb5586 POS: selector Doctor que atendio para asignar la venta completa a un doctor (comisiones) 2026-08-31 06:00:04 +00:00
fea4918494 Staff: campo tipo Doctor/Cosmetologa, filtro por tipo en agenda y selector editable en modulo Medicos 2026-08-31 05:19:13 +00:00
339ba235b1 Configuracion: seccion Comisiones con % global default y % editable por doctor 2026-08-31 04:45:45 +00:00
57efc3d9d3 Rol medico: pagina Mis ventas con KPIs y comision estimada, menu restringido y bloqueo de endpoints de dinero global 2026-08-31 03:56:48 +00:00
009f84ce4a Agenda: seccion Por atender (sala de espera) con pacientes en check-in, tiempo de espera y timestamp arrived_at 2026-08-31 03:08:41 +00:00
1c31eecb8c Citas: doble confirmacion (1ra telefonica con quien/cuando, 2da = llegada/check-in) + filtro rapido Por confirmar 2026-08-31 00:45:05 +00:00
681c0a9173 Chat interno 1-a-1 entre usuarios de la plataforma (addon skeen_chat + pagina Chat con badge de no leidos) 2026-08-28 08:23:56 +00:00
d47c054ffc Citas: solapamiento permitido entre medicos distintos (chequeo por doctor_id) 2026-08-28 07:42:14 +00:00
29225e848a Agenda: horario 8-19h, bloques de 15 min, cita rapida, vista restringida para rol medico y chips de pacientes por doctor 2026-08-28 07:35:46 +00:00
f9fc66b343 Médicos: rediseño del modal (header con stats, KPI cards, contacto compacto) 2026-08-14 09:33:56 +00:00
9aaa927339 Médicos: modal de detalle con tab Info e Historial (citas, visitas, ventas recetadas) 2026-08-14 09:24:34 +00:00
7309739361 Médicos: quitar píldora de recomendaciones de los badges 30d 2026-08-14 09:11:53 +00:00
f80073f687 Médicos: badges de ventas 30d al estilo legacy
- Píldora verde 'N ventas' + gris 'N recomendaciones' y píldoras
  índigo apiladas (usd / m.n. / tarjeta m.n.) en una sola columna
- recomendaciones_30d: pacientes captados con 'recomendado por'
2026-08-14 09:10:15 +00:00
4c3eb0b11d Médicos: ventas 30d por médico (count, total MXN/USD, pagado tarjeta)
- card_amount en ventas (pagos con terminal física)
- Stats por médico vía líneas recetadas, métrica consistente con comisiones
- 4 columnas nuevas en la página de Médicos
2026-08-14 09:02:22 +00:00
281fb34588 Roles ampliados (10) y matriz de permisos por rol
- Roles: admin, médico, recepción, enfermería, cosmetología, psicóloga,
  farmacia, entrenador, marketing + lectura (compatibilidad)
- Matriz de permisos por rol persistida en Odoo (ir.config_parameter)
  y editable en Configuración → Roles (secciones × roles)
- Prioridad: permisos personales del usuario > matriz por rol > defaults
- Protección: admin siempre conserva /configuracion
2026-08-14 08:47:27 +00:00