/** * @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;