$evenements = $evenement->loadList($where); foreach ($evenements as $_evenement) { $sejour = $_evenement->loadRefSejour(); $bilan = $sejour->loadRefBilanSSR(); $bilan->loadRefTechnicien(); $_sejours[$sejour->_id] = $sejour; } } foreach ($_sejours as $_sejour) { // On compte le nombre d'evenements SSR à transferer $evenement_ssr = new CEvenementSSR(); $where = array(); $where["sejour_id"] = " = '{$_sejour->_id}'"; $where["therapeute_id"] = " = '{$_plage_conge->user_id}'"; $where["debut"] = " BETWEEN '{$date_min}' AND '{$date_max}'"; $count_evts["{$_plage_conge->_id}-{$_sejour->_id}"] = $evenement_ssr->countList($where); $_sejour->checkDaysRelative($date); $replacement = $_sejour->loadRefReplacement($_plage_conge->_id); if (!$replacement->_id || $type == "reeducateur") { $sejours_count++; } if ($replacement->_id || $type == "kine") { $replacement->loadRefReplacer()->loadRefFunction(); } if (!$replacement->_id && $type == "kine") { $replacement->_ref_guessed_replacers = CEvenementSSR::getAllTherapeutes($_sejour->patient_id, $kine->function_id); unset($replacement->_ref_guessed_replacers[$kine->_id]); } // Bilan SSR $bilan = $_sejour->loadRefBilanSSR(); // Kine principal
function getNbJoursPlanningSSR($date) { $sunday = CMbDT::date("next sunday", CMbDT::date("- 1 DAY", $date)); $saturday = CMbDT::date("-1 DAY", $sunday); $_evt = new CEvenementSSR(); $where = array(); $where["debut"] = "BETWEEN '{$sunday} 00:00:00' AND '{$sunday} 23:59:59'"; $where["sejour_id"] = " = '{$this->_id}'"; $count_event_sunday = $_evt->countList($where); $nb_days = 7; // Si aucun evenement le dimanche if (!$count_event_sunday) { $nb_days = 6; $where["debut"] = "BETWEEN '{$saturday} 00:00:00' AND '{$saturday} 23:59:59'"; $count_event_saturday = $_evt->countList($where); // Aucun evenement le samedi et aucun le dimanche if (!$count_event_saturday) { $nb_days = 5; } } return $nb_days; }
/** * Détermine le nombre de jours du planning pour la semaine * * @param date $date Date de référence * * @return int 5, 6 ou 7 jours */ function getNbJourPlanning($date) { $sunday = CMbDT::date("next sunday", CMbDT::date("- 1 DAY", $date)); $saturday = CMbDT::date("-1 DAY", $sunday); $_evt = new CEvenementSSR(); $ljoin = array(); $ljoin[] = "evenement_ssr AS evt_seance ON (evt_seance.seance_collective_id = evenement_ssr.evenement_ssr_id)"; $where = array(); $where["evenement_ssr.debut"] = "BETWEEN '{$sunday} 00:00:00' AND '{$sunday} 23:59:59'"; $where[] = "(evenement_ssr.sejour_id = '{$this->_id}') OR (evenement_ssr.sejour_id IS NULL AND evt_seance.sejour_id = '{$this->_id}')"; $count_event_sunday = $_evt->countList($where, null, $ljoin); $nb_days = 7; // Si aucun evenement le dimanche if (!$count_event_sunday) { $nb_days = 6; $where["evenement_ssr.debut"] = "BETWEEN '{$saturday} 00:00:00' AND '{$saturday} 23:59:59'"; $count_event_saturday = $_evt->countList($where, null, $ljoin); // Aucun evenement le samedi et aucun le dimanche if (!$count_event_saturday) { $nb_days = 5; } } return $nb_days; }
$replacement->sejour_id = $sejour_id; } $transfer_count = 0; $transfer_counts = array(); // Transfer event count if ($type == 'kine') { $date_min = $conge->date_debut; $date_max = CMbDT::date("+1 DAY", $conge->date_fin); foreach ($sejours as $_sejour) { $bilan = $_sejour->loadRefBilanSSR(); $tech = $bilan->loadRefTechnicien(); $where = array(); $where["sejour_id"] = " = '{$_sejour->_id}'"; $where["therapeute_id"] = " = '{$tech->kine_id}'"; $where["debut"] = "BETWEEN '{$date_min}' AND '{$date_max}'"; $transfer_count += $evenement->countList($where); } } // Transfer event counts if ($type == "reeducateur") { $date_min = max($monday, $conge->date_debut); $date_max = min($sunday, $conge->date_fin); $where = array(); $where["sejour_id"] = " = '{$sejour->_id}'"; $where["therapeute_id"] = " = '{$conge->user_id}'"; foreach (range(0, 6) as $weekday) { $day = CMbDT::date("+{$weekday} DAYS", $monday); if (!CMbRange::in($day, $date_min, $date_max)) { $transfer_counts[$day] = 0; continue; }
<?php /** * $Id$ * * @package Mediboard * @subpackage SSR * @author SARL OpenXtrem <*****@*****.**> * @license GNU General Public License, see http://www.gnu.org/licenses/gpl.html * @version $Revision$ */ CCanDo::checkRead(); $kine_id = CValue::getOrSession("kine_id"); $date = CValue::getOrSession("date"); $monday = CMbDT::date("last monday", CMbDT::date("+1 day -1 week", $date)); $sunday = CMbDT::date("next sunday", CMbDT::date("-1 DAY -1 week", $date)); // Chargement des evenements de la semaine precedente qui n'ont pas encore ete validés $evenement = new CEvenementSSR(); $where = array(); $where["therapeute_id"] = " = '{$kine_id}'"; $where["debut"] = " BETWEEN '{$monday} 00:00:00' AND '{$sunday} 23:59:59'"; $where["realise"] = " = '0'"; $where["annule"] = " = '0'"; $count_evts = $evenement->countList($where); // Création du template $smarty = new CSmartyDP(); $smarty->assign("kine_id", $kine_id); $smarty->assign("count_evts", $count_evts); $smarty->display("inc_vw_planning_kine_board.tpl");