Skip to main content

Tablas y Modelo de Datos

El 2Pack del plugin define las tablas del módulo y genera modelos Java I_CDS_* y X_CDS_*. El código usa esos modelos como fuente de nombres de tabla, columnas y valores de referencia.

Tablas principales

TablaUso
CDS_AppointmentConfigConfiguración organizacional de agenda, reglas de asignación, aprobación, límites e intervalos.
CDS_AppointmentServiceServicios agendables con precio, duración, intervalo de slot, aprobación requerida y capacidad.
CDS_AppointmentEmployeeEmpleado disponible para citas, vinculado a C_BPartner y opcionalmente a AD_User.
CDS_EmployeeServiceRelación empleado-servicio con posibles overrides de precio y duración.
CDS_EmployeeScheduleLineBloques semanales de disponibilidad del empleado por día y rango horario.
CDS_EmployeeDayOffBloqueos de empleado por día completo o rango horario, incluyendo recurrencia anual.
CDS_OrgDayOffBloqueos de organización por día completo o rango horario. Incluye CDS_AppointmentConfig_ID, aunque el motor actual todavía no filtra por configuración.
CDS_AppointmentSlotSlots generados para selección desde la ventana iDempiere.
CDS_AppointmentRegistro principal de cita con cliente, empleado, servicio, fecha, hora, precio, duración, estado y slot.

Relaciones clave actuales

  • CDS_Appointment referencia cliente, empleado, servicio y opcionalmente slot.
  • CDS_AppointmentSlot se genera para un empleado, servicio, fecha y rango horario.
  • CDS_EmployeeService determina si un empleado puede prestar un servicio.
  • CDS_EmployeeScheduleLine define cuándo puede atender el empleado.
  • CDS_EmployeeDayOff y CDS_OrgDayOff bloquean disponibilidad.

Relación configuración-servicio pendiente

El flujo objetivo requiere que cada servicio resuelva una configuración de agenda. Esto permite saber qué reglas de anticipación, horarios macro, días cerrados y aprobación aplican cuando se crea una cita.

NecesidadOpción recomendadaValidación requerida
Servicio pertenece a una configuraciónAgregar CDS_AppointmentConfig_ID en CDS_AppointmentService.El servicio debe tener una configuración activa cuando se use para generar slots o crear citas.
Un servicio no puede tener reglas ambiguasSi se usa tabla intermedia, imponer unicidad por servicio activo.Bloquear más de una configuración activa por servicio.
Días libres por configuraciónUsar el campo existente CDS_AppointmentConfig_ID de CDS_OrgDayOff.El motor debe filtrar bloqueos por organización y por configuración del servicio.

Horario macro de configuración pendiente

Actualmente solo existe horario de empleado. Para cumplir el flujo objetivo se recomienda agregar una tabla de horario macro, por ejemplo CDS_AppointmentConfigScheduleLine, con una estructura similar a CDS_EmployeeScheduleLine.

Campo sugeridoUso
CDS_AppointmentConfig_IDConfiguración de agenda a la que pertenece el horario macro.
WeekDayDía de la semana permitido.
StartTime / EndTimeRango horario general de atención.
ValidFrom / ValidToVigencia opcional del horario.

Importante: si el diccionario cambia, se deben regenerar los modelos antes de ajustar el código Java.