/** * @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(); }
$evenement->loadRefsActesCdARR(); $evenement->loadRefsActesCsARR(); // Duplication de l'événement $evenement->_id = ""; $evenement->realise = 0; $evenement->annule = 0; $evenement->debut = $day ? "{$day} " . CMbDT::time($evenement->debut) : CMbDT::dateTime($period, $evenement->debut); // Cas des séances collectives if ($evenement->seance_collective_id) { CAppUI::displayMsg("Impossible de dupliquer des événements qui sont dans des seances collectives", "CEvenementSSR-msg-create"); continue; } // Autres rééducateurs global $can; $user = CAppUI::$user; $therapeute = $evenement->loadRefTherapeute(); if ($therapeute->function_id != $user->function_id && !$can->admin) { CAppUI::displayMsg("Impossible de dupliquer les événements d'un rééducateur d'une autre spécialié", "CEvenementSSR-msg-create"); continue; } // Chargements préparatoire au transferts automatiques de rééducateurs $sejour = new CSejour(); $sejour->load($evenement->sejour_id); $bilan = $sejour->loadRefBilanSSR(); $referant = $bilan->loadRefKineReferent(); $_day = CMbDT::date($evenement->debut); $therapeute_id = $evenement->therapeute_id; // Transfert kiné référent => kiné remplaçant si disponible if ($therapeute_id == $referant->_id) { $conge = new CPlageConge(); $conge->loadFor($therapeute_id, $_day);