Resumen del Plugin
El plugin com.cdsoftware.appointment agrega a iDempiere 12 un módulo reutilizable para gestionar citas, servicios, empleados, horarios, días no disponibles y disponibilidad de agenda.
Idea clave: la disponibilidad no depende solo de la interfaz. La validación queda centralizada en backend para proteger tanto las citas creadas desde ventanas iDempiere como las creadas desde REST/API.
Objetivo
El objetivo es permitir que una organización configure servicios agendables, defina qué empleados pueden atender cada servicio, establezca horarios de atención y bloquee días o rangos no disponibles. Con esa información, el sistema genera slots disponibles y valida cada cita antes de guardarla.
Alcance funcional
| Área | Qué cubre |
|---|---|
| Configuración | Parámetros generales por organización, límites de anticipación, reglas de aprobación e intervalos de slots. |
| Servicios | Servicios agendables con precio, duración, intervalo, capacidad y requerimiento de aprobación. |
| Empleados | Personas o usuarios disponibles para atender citas, vinculados a terceros y opcionalmente a usuarios iDempiere. |
| Disponibilidad | Horarios semanales, días libres de empleado, días libres de organización y validación de conflictos. |
| Citas | Registro principal de la cita con cliente, empleado, servicio, fecha, hora, duración, precio, estado y slot seleccionado. |
Principios de diseño
- El plugin es genérico y no depende del proyecto IEA.
- La creación desde REST/API usa la tabla estándar
CDS_Appointment. - Las reglas críticas se validan en eventos de modelo, no solo en callouts.
- Los modelos generados
I_CDS_*yX_CDS_*son la fuente de constantes de tabla, columnas y valores. - El campo
R_Request_IDpuede existir como referencia manual, pero el código del plugin no depende de solicitudes.