예제 #1
0
     $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
예제 #2
0
 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;
 }
예제 #3
0
 /**
  * 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;
 }
예제 #4
0
    $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");