update
This commit is contained in:
@@ -437,6 +437,34 @@ final class PlanningModel extends BaseModel
|
||||
*
|
||||
* @return array<int, array{c1: int, c2: int, date_jour: string}>
|
||||
*/
|
||||
/**
|
||||
* Créneaux du planning tombant hors des dates de contrat de leur agent.
|
||||
*
|
||||
* Contrôle de VALIDATION, complémentaire des gardes posées à l'écriture
|
||||
* (V7.15) : celles-ci empêchent d'en créer de nouveaux, celui-ci révèle ceux
|
||||
* qui existaient déjà — saisis avant la règle, ou rendus illégitimes par un
|
||||
* contrat raccourci depuis. La comparaison est faite en SQL, sur la fiche
|
||||
* agent jointe : c'est elle qui fait foi au moment du contrôle.
|
||||
*
|
||||
* @return array<int, array{id_creneau: int, date_jour: string}>
|
||||
*/
|
||||
public function entriesOutsideContract(int $planningId): array
|
||||
{
|
||||
$stmt = $this->pdo->prepare(
|
||||
'SELECT c.id_creneau, c.date_jour
|
||||
FROM creneau_horaire c
|
||||
JOIN planning p ON p.id_planning = c.id_planning
|
||||
JOIN agent a ON a.id_agent = p.id_agent
|
||||
WHERE c.id_planning = :id_planning
|
||||
AND ((a.date_debut_contrat IS NOT NULL AND c.date_jour < a.date_debut_contrat)
|
||||
OR (a.date_fin_contrat IS NOT NULL AND c.date_jour > a.date_fin_contrat))
|
||||
ORDER BY c.date_jour'
|
||||
);
|
||||
$stmt->execute(['id_planning' => $planningId]);
|
||||
|
||||
return $stmt->fetchAll();
|
||||
}
|
||||
|
||||
public function internalOverlaps(int $planningId): array
|
||||
{
|
||||
$stmt = $this->pdo->prepare(
|
||||
|
||||
Reference in New Issue
Block a user