diff --git a/templates/bazar/circuitscourt.php b/templates/bazar/circuitscourt.php index 1ab53b1..4cb5219 100644 --- a/templates/bazar/circuitscourt.php +++ b/templates/bazar/circuitscourt.php @@ -1,89 +1,93 @@ services->get(EntryManager::class)->search( +function calculateFreePlaces($fiche) +{ + //dump($fiche); + $entries = $GLOBALS['wiki']->services->get(EntryManager::class)->search( + [ + 'queries' => ['trajet' => $fiche['id_fiche']], + 'formsIds' => [6], + 'keywords' => '', + 'user' => '', + 'minDate' => '', + 'correspondance' => '' + ], + true, // filter on read ACL, + true // use Guard + ); + //dump($entries); + $nbres = count($entries); + return (int) $fiche['capacite_de_transport'] - (int) $nbres; +} +function getStatus($fiche, $consultable = false) +{ + $dateFermeture = date(DATE_W3C, strtotime("-1 days", strtotime($fiche['date_du_trajet']))); + $dateContrainte = !empty($fiche['bf_contrainte_date']) ? date(DATE_W3C, strtotime($fiche['bf_contrainte_date'])) : null; + if (!empty($dateContrainte)) { + $dateFermeture = $dateContrainte; + } + $dateDisparition = date(DATE_W3C, strtotime("+1 hour", strtotime($fiche['date_du_trajet']))); + $dateJour = date(DATE_W3C); + if (!empty($dateContrainte) && $dateJour < $dateContrainte) { + $status = 'Ouvert'; + } elseif ($dateJour < $dateFermeture) { + $status = 'Ouvert'; + } elseif ($dateJour < $dateDisparition) { + $status = 'Fermé'; + } else { + if (!$consultable) { + $status = 'Fini'; + } else { + $status = 'Fini consultable'; + } + } + return $status; +} + +function displayReservation($fiche) +{ + $output = ''; + $isProducteur = ($GLOBALS['wiki']->GetUserName() == $GLOBALS['wiki']->GetPageOwner($fiche['listefiche8producteur'])); + $status = getStatus($fiche, $GLOBALS['wiki']->UserIsOwner($fiche['id_fiche']) || $isProducteur); + if ($status == 'Fini consultable' || $status == 'Ouvert' || $status == 'Fermé') { + // récuperer la fiche producteur + $producteur = baz_valeurs_fiche($fiche['listefiche8producteur']); + $placesrestantes = calculateFreePlaces($fiche); + if ($GLOBALS['wiki']->UserIsOwner($fiche['id_fiche']) || $isProducteur || $GLOBALS['wiki']->UserIsAdmin()) { + $entries = $GLOBALS['wiki']->services->get(EntryManager::class)->search( [ - 'queries' => ['trajet'=> $fiche['id_fiche']], - 'formsIds' => [6], - 'keywords' => '', - 'user' => '', - 'minDate' => '', - 'correspondance' => '' + 'queries' => ['trajet' => $fiche['id_fiche']], + 'formsIds' => [6], + 'keywords' => '', + 'user' => '', + 'minDate' => '', + 'correspondance' => '' ], true, // filter on read ACL, true // use Guard - ); - //dump($entries); - $nbres = count($entries); - return (int) $fiche['capacite_de_transport'] - (int) $nbres; -} -function getStatus($fiche, $consultable = false) { - $dateFermeture = date(DATE_W3C, strtotime("-1 days", strtotime($fiche['date_du_trajet']))); - $dateContrainte = !empty($fiche['bf_contrainte_date']) ? date(DATE_W3C, strtotime($fiche['bf_contrainte_date'])) : null; - if (!empty($dateContrainte)) { - $dateFermeture = $dateContrainte; - } - $dateDisparition = date(DATE_W3C, strtotime("+1 hour", strtotime($fiche['date_du_trajet']))); - $dateJour = date(DATE_W3C); - if (!empty($dateContrainte) && $dateJour<$dateContrainte) { - $status = 'Ouvert'; - } elseif ($dateJour<$dateFermeture) { - $status = 'Ouvert'; - } elseif ($dateJour<$dateDisparition) { - $status = 'Fermé'; + ); + if (count($entries) == 0) { + $output .= '
Il n\'y a pas encore de personnes qui participent à ce trajet.'; + } else { + $output .= '
Liste des personnes qui participent à ce trajet'; + $output .= $GLOBALS['wiki']->Format('{{bazarliste id="6" query="trajet=' . $fiche['id_fiche'] . '" template="tableau" columnfieldsids=",bf_prenom,bf_nom,bf_telephone,bf_commentaire"}}'); + } } else { - if (!$consultable) { - $status = 'Fini'; + if ($placesrestantes < 1) { + $output .= 'Trajet complet'; + } else { + $output .= '

Nombres de places restantes : ' . $placesrestantes . '

'; + if ($status == 'Ouvert') { + $output .= ' Je profite de ce trajet'; } else { - $status = 'Fini consultable'; + $output .= 'Fermé'; } + } } - return $status; -} - -function displayReservation($fiche) { - $output = ''; - $isProducteur = ($GLOBALS['wiki']->GetUserName() == $GLOBALS['wiki']->GetPageOwner($fiche['listefiche8producteur'])); - $status = getStatus($fiche, $GLOBALS['wiki']->UserIsOwner($fiche['id_fiche']) || $isProducteur); - if ($status == 'Fini consultable' || $status == 'Ouvert' || $status == 'Fermé' ) { - // récuperer la fiche producteur - $producteur = baz_valeurs_fiche($fiche['listefiche8producteur']); - $placesrestantes = calculateFreePlaces($fiche); - if ($GLOBALS['wiki']->UserIsOwner($fiche['id_fiche']) || $isProducteur) { - $entries = $GLOBALS['wiki']->services->get(EntryManager::class)->search( - [ - 'queries' => ['trajet'=> $fiche['id_fiche']], - 'formsIds' => [6], - 'keywords' => '', - 'user' => '', - 'minDate' => '', - 'correspondance' => '' - ], - true, // filter on read ACL, - true // use Guard - ); - if (count($entries) == 0) { - $output .= '
Il n\'y a pas encore de personnes qui participent à ce trajet.'; - } else { - $output .= '
Liste des personnes qui participent à ce trajet'; - $output .= $GLOBALS['wiki']->Format('{{bazarliste id="6" query="trajet='.$fiche['id_fiche'].'" template="tableau" columnfieldsids=",bf_prenom,bf_nom,bf_telephone,bf_commentaire" {{bazarliste id="6" template="tableau.tpl.html" columnfieldsids=",bf_prenom,bf_nom,bf_telephone,bf_commentaire" search="false" }}'); - } - } else { - if ($placesrestantes < 1) { - $output .= 'Trajet complet'; - } else { - $output .= '

Nombres de places restantes : '.$placesrestantes.'

'; - if ($status== 'Ouvert') { - $output .= ' Je profite de ce trajet'; - } else { - $output .= 'Fermé'; - } - } - } - return $output; - } + return $output; + } }