示例#1
0
$where = array();
$where["date_debut"] = "<= '{$sunday}'";
$where["date_fin"] = ">= '{$monday}'";
$order = "date_debut DESC, date_fin DESC";
/** @var CPlageConge[] $plages_conge */
$plages_conge = $plage_conge->loadList($where, $order);
// Début et fin d'activite
foreach (CEvenementSSR::getActiveTherapeutes($monday, $sunday) as $_therapeute) {
    // Pseudo plage de début
    if (($deb = $_therapeute->deb_activite) && $deb >= $monday) {
        $plage = CPlageConge::makePseudoPlage($_therapeute->_id, "deb", $monday);
        $plages_conge[$plage->_id] = $plage;
    }
    // Pseudo plage de fin
    if (($fin = $_therapeute->fin_activite) && $fin <= $sunday) {
        $plage = CPlageConge::makePseudoPlage($_therapeute->_id, "fin", $sunday);
        $plages_conge[$plage->_id] = $plage;
    }
}
/** @var CSejour[] $sejours */
$sejours = array();
$_sejours = array();
$count_evts = array();
$sejours_count = 0;
// Pour chaque plage de conge, recherche
foreach ($plages_conge as $_plage_conge) {
    $kine = $_plage_conge->loadRefUser();
    $_sejours = array();
    $date_min = max($monday, $_plage_conge->date_debut);
    $date_max = CMbDT::date("+1 DAY", min($sunday, $_plage_conge->date_fin));
    // Cas des remplacements kinés
 */
$sejour_id = CValue::post("sejour_id");
$conge_id = CValue::post("conge_id");
$replacer_id = CValue::post("replacer_id");
// Standard plage
$conge = new CPlageConge();
$conge->load($conge_id);
// Week dates
$date = CValue::getOrSession("date", CMbDT::date());
$monday = CMbDT::date("last monday", CMbDT::date("+1 DAY", $date));
$sunday = CMbDT::date("next sunday", CMbDT::date("-1 DAY", $date));
// Pseudo plage for user activity
if (preg_match("/[deb|fin][\\W][\\d]+/", $conge_id)) {
    list($activite, $user_id) = explode("-", $conge_id);
    $limit = $activite == "deb" ? $monday : $sunday;
    $conge = CPlageConge::makePseudoPlage($user_id, $activite, $limit);
}
// Events to be transfered
$evenement = new CEvenementSSR();
$where = array();
$date_min = max($monday, $conge->date_debut);
$date_max = CMbDT::date("+1 DAY", min($sunday, $conge->date_fin));
$where["therapeute_id"] = " = '{$conge->user_id}'";
$where["sejour_id"] = " = '{$sejour_id}'";
$where["debut"] = " BETWEEN '{$date_min}' AND '{$date_max}'";
/** @var CEvenementSSR[] $evenements */
$evenements = $evenement->loadList($where);
foreach ($evenements as $_evenement) {
    $_evenement->therapeute_id = $replacer_id;
    $msg = $_evenement->store();
    CAppUI::displayMsg($msg, "CEvenementSSR-msg-modify");