Example #1
0
 /**
  * @see parent::check()
  */
 function check()
 {
     if ($this->_forwardRefMerging) {
         return null;
     }
     // Vérouillage d'un événement traité
     $this->completeField("realise", "annule", "nb_patient_seance", "nb_intervenant_seance");
     $this->_traite = $this->realise || $this->annule;
     if ($this->_traite && !$this->_traitement) {
         return "Evénément déjà traité (réalisé ou annulé)";
     }
     // Evénement dans les bornes du séjour
     $this->completeField("sejour_id", "debut");
     $sejour = $this->loadRefSejour();
     // Vérifier seulement les jours car les sorties peuvent être imprécises pour les hospit de jours
     if ($sejour->_id && $this->debut) {
         $date_debut = CMbDT::date($this->debut);
         $date_entree = CMbDT::date(CMbDT::date($sejour->entree));
         $date_sortie = CMbDT::date(CMbDT::date($sejour->sortie));
         if (!CMbRange::in($date_debut, $date_entree, $date_sortie)) {
             return "Evenement SSR en dehors des dates du séjour";
         }
     }
     // Cas de la réalisation des événements SSR
     $this->loadRefTherapeute();
     // Si le therapeute n'est pas defini, c'est
     if ($this->therapeute_id) {
         $therapeute = $this->_ref_therapeute;
     } else {
         // Chargement du therapeute de la seance
         $evt_seance = new CEvenementSSR();
         $evt_seance->load($this->seance_collective_id);
         $evt_seance->loadRefTherapeute();
         $therapeute = $evt_seance->_ref_therapeute;
     }
     if ($this->fieldModified("realise")) {
         // Si le thérapeute n'a pas d'identifiant CdARR
         if (!$therapeute->code_intervenant_cdarr) {
             return CAppUI::tr("CMediusers-code_intervenant_cdarr-none");
         }
         $therapeute->loadRefIntervenantCdARR();
         $code_intervenant_cdarr = $therapeute->_ref_intervenant_cdarr->code;
         // Création du RHS au besoins
         $rhs = $this->getRHS();
         if (!$rhs->_id) {
             $rhs->store();
         }
         if ($rhs->facture == 1) {
             CAppUI::stepAjax(CAppUI::tr("CRHS.charged"), UI_MSG_WARNING);
         }
         $this->loadView();
         // Complétion de la ligne RHS
         foreach ($this->loadRefsActesCdARR() as $_acte_cdarr) {
             $ligne = new CLigneActivitesRHS();
             $ligne->rhs_id = $rhs->_id;
             $ligne->executant_id = $therapeute->_id;
             $ligne->code_activite_cdarr = $_acte_cdarr->code;
             $ligne->code_intervenant_cdarr = $code_intervenant_cdarr;
             $ligne->loadMatchingObject();
             $ligne->crementDay($this->debut, $this->realise ? "inc" : "dec");
             $ligne->auto = "1";
             $ligne->store();
         }
         foreach ($this->loadRefsActesCsARR() as $_acte_csarr) {
             $ligne = new CLigneActivitesRHS();
             $ligne->rhs_id = $rhs->_id;
             $ligne->executant_id = $therapeute->_id;
             $ligne->code_activite_csarr = $_acte_csarr->code;
             $ligne->code_intervenant_cdarr = $code_intervenant_cdarr;
             $ligne->modulateurs = $_acte_csarr->modulateurs;
             $ligne->phases = $_acte_csarr->phases;
             $ligne->nb_patient_seance = $this->nb_patient_seance;
             $ligne->nb_intervenant_seance = $this->nb_intervenant_seance;
             $ligne->loadMatchingObject();
             $ligne->crementDay($this->debut, $this->realise ? "inc" : "dec");
             $ligne->auto = "1";
             $ligne->store();
         }
     }
     return parent::check();
 }
 * @subpackage SSR
 * @author     SARL OpenXtrem <*****@*****.**>
 * @license    GNU General Public License, see http://www.gnu.org/licenses/gpl.html
 * @version    $Revision:$
 */
CCanDo::checkRead();
$token_evts = CValue::getOrSession("token_evts");
$_evenements = array();
if ($token_evts) {
    $_evenements = explode("|", $token_evts);
}
$count_actes = $actes = array("cdarr" => array(), "csarr" => array());
$evenements = array();
foreach ($_evenements as $_evenement_id) {
    $evenement = new CEvenementSSR();
    $evenement->load($_evenement_id);
    if ($evenement->seance_collective_id) {
        // Recuperation des informations de la seance collective
        $evenement->loadRefSeanceCollective();
        $evenement->debut = $evenement->_ref_seance_collective->debut;
        $evenement->duree = $evenement->_ref_seance_collective->duree;
    }
    $evenement->loadRefSejour()->loadRefPatient();
    // Chargement et comptage des codes de tous les actes
    foreach ($evenement->loadRefsActes() as $_type => $_actes) {
        foreach ($_actes as $_acte) {
            $actes[$_type][$_acte->code] = $_acte->code;
            if (!isset($count_actes[$_type][$_acte->code])) {
                $count_actes[$_type][$_acte->code] = 0;
            }
            $count_actes[$_type][$_acte->code]++;
 if ($evenement->seance_collective_id) {
     $therapeute_id = $evenement->loadRefSeanceCollective()->therapeute_id;
 }
 if ($therapeute_id && $therapeute_id != CAppUI::$instance->user_id && !$can->admin) {
     CAppUI::displayMsg("Impossible de modifier les événements d'un autre rééducateur", "CEvenementSSR-msg-modify");
     continue;
 }
 // Suppression des evenements SSR
 if ($del) {
     $seance_collective_id = $evenement->seance_collective_id;
     // Suppression de l'evenement
     $msg = $evenement->delete();
     CAppUI::displayMsg($msg, "CEvenementSSR-msg-delete");
     if ($seance_collective_id) {
         $seance = new CEvenementSSR();
         $seance->load($seance_collective_id);
         // Suppression de la seance si plus aucune backref
         if ($seance->countBackRefs("evenements_ssr") == 0) {
             $msg = $seance->delete();
             CAppUI::displayMsg($msg, "CEvenementSSR-msg-delete");
         }
     }
 } else {
     if ($_traitement || $_nb_decalage_min_debut || $_nb_decalage_heure_debut || $_nb_decalage_jour_debut || $_nb_decalage_duree || $equipement_id || $kine_id) {
         if ($evenement->_traitement = $_traitement) {
             $evenement->realise = CValue::post("realise");
             $evenement->annule = CValue::post("annule");
         }
         if ($evenement->seance_collective_id) {
             $evenement->loadRefSeanceCollective();
             $evenement =& $evenement->_ref_seance_collective;