forked from libertempo/web
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcalendrier.php
99 lines (85 loc) · 3.39 KB
/
calendrier.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<?php
define('ROOT_PATH', '');
require_once ROOT_PATH . 'define.php';
include_once ROOT_PATH .'fonctions_conges.php';
include_once INCLUDE_PATH .'fonction.php';
include_once INCLUDE_PATH . 'session.php';
/**
* @return bool
*/
function canSessionVoirEvenementEnTransit(array $donneesUtilisateur)
{
return (isset($donneesUtilisateur['is_resp']) && 'Y' === $donneesUtilisateur['is_resp'])
|| (isset($donneesUtilisateur['is_rh']) && 'Y' === $donneesUtilisateur['is_rh'])
|| (isset($donneesUtilisateur['is_admin']) && 'Y' === $donneesUtilisateur['is_admin']);
}
function getUrlMois(\DateTimeInterface $date, $idGroupe)
{
$urlCalendrier = ROOT_PATH . 'calendrier.php';
$queryBase = [
'groupe' => $idGroupe,
];
return $urlCalendrier . '?' . http_build_query($queryBase + ['mois' => $date->format('Y-m')]);
}
function getClassesJour(\App\Libraries\Calendrier\Evenements $evenements, $nom, $jour, \DateTimeInterface $moisDemande)
{
$moisJour = date('m', strtotime($jour));
if ($moisDemande->format('m') !== $moisJour) {
return 'horsMois';
}
return implode(' ', $evenements->getEvenementsDate($nom, $jour));
}
function getTitleJour(\App\Libraries\Calendrier\Evenements $evenements, $nom, $jour)
{
$title = implode('<br>* ', $evenements->getTitleDate($nom, $jour));
if (!empty($title)) {
return '* ' . $title;
}
return '';
}
$config = new \App\Libraries\Configuration(\includes\SQL::singleton());
$injectableCreator = new \App\Libraries\InjectableCreator(\includes\SQL::singleton());
$calendar = new \CalendR\Calendar();
$jourDemande = null;
$moisDemande = null;
if (!empty($_GET['jour']) && false !== strtotime($_GET['jour'])) {
$jourDemande = new \DateTimeImmutable($_GET['jour']);
} elseif (!empty($_GET['mois']) && false !== strtotime($_GET['mois'] . '-01')) {
$moisDemande = new \DateTimeImmutable($_GET['mois'] . '-01');
} else {
$moisDemande = new \DateTimeImmutable(date('Y-m') . '-01');
}
$evenements = new \App\Libraries\Calendrier\Evenements($injectableCreator);
$groupesAVoir = $groupesVisiblesUtilisateur = \App\ProtoControllers\Utilisateur::getListeGroupesVisibles($_SESSION['userlogin']);
$idGroupe = NIL_INT;
if (!empty($_GET['groupe']) && NIL_INT != $_GET['groupe']) {
$idGroupe = (int) $_GET['groupe'];
$groupesAVoir = array_intersect([$idGroupe], $groupesAVoir);
}
$utilisateursATrouver = \App\ProtoControllers\Groupe\Utilisateur::getListUtilisateurByGroupeIds($groupesAVoir);
$employesATrouver = [];
foreach ($utilisateursATrouver as $nom) {
$employe = \App\ProtoControllers\Utilisateur::getDonneesUtilisateur($nom);
$employesATrouver[$nom] = \App\ProtoControllers\Utilisateur::getNomComplet($employe['u_prenom'], $employe['u_nom'], true);
}
header_menu('', 'Libertempo : '._('calendrier_titre'));
if ($jourDemande instanceof \DateTimeInterface) {
$evenements->fetchEvenements(
$jourDemande,
$jourDemande->modify('+1 day'),
$utilisateursATrouver,
canSessionVoirEvenementEnTransit($_SESSION),
$config->isHeuresAutorise()
);
require_once VIEW_PATH . 'Calendrier/Jour.php';
} else {
$evenements->fetchEvenements(
$moisDemande,
$moisDemande->modify('+1 month'),
$utilisateursATrouver,
canSessionVoirEvenementEnTransit($_SESSION),
$config->isHeuresAutorise()
);
require_once VIEW_PATH . 'Calendrier/Mois.php';
}
bottom();