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_* y X_CDS_* son la fuente de constantes de tabla, columnas y valores. El campo R_Request_ID puede existir como referencia manual, pero el código del plugin no depende de solicitudes.