/** * @see parent::store() */ function store() { // Transférer les événéments de l'ancien référent vers le nouveau if ($this->technicien_id && $this->fieldAltered("technicien_id")) { $technicien = $this->loadRefTechnicien(); $old_technicien = new CTechnicien(); $old_technicien->load($this->_old->_id); $evenement = new CEvenementSSR(); $evenement->therapeute_id = $old_technicien->kine_id; $evenement->sejour_id = $this->sejour_id; foreach ($evenement->loadMatchingList() as $_evenement) { /** @var CEvenementSSR $_evenement */ if (!$_evenement->_traite) { $_evenement->therapeute_id = $technicien->kine_id; $_evenement->store(); CAppUI::setMsg("{$_evenement->_class}-msg-modify", UI_MSG_OK); } } } return parent::store(); }
/** * Recalcul le RHS à partir des événements validés * * @return void */ function recalculate() { // Suppression des lignes d'activités du RHS /** @var CLigneActivitesRHS $_line */ foreach ($this->loadBackRefs("lines") as $_line) { if ($_line->auto) { $_line->delete(); } } $this->loadBackRefs("lines"); // Chargement du séjour $sejour = $this->loadRefSejour(); // Ajout des lignes d'activités $evenementSSR = new CEvenementSSR(); $evenementSSR->sejour_id = $sejour->_id; $evenementSSR->realise = 1; /** @var CEvenementSSR[] $evenements */ $evenements = $evenementSSR->loadMatchingList(); foreach ($evenements as $_evenement) { $evenementRhs = $_evenement->getRHS(); if ($evenementRhs->_id != $this->_id) { continue; } $therapeute = $_evenement->loadRefTherapeute(); $intervenant = $therapeute->loadRefIntervenantCdARR(); $code_intervenant_cdarr = $intervenant->code; // Actes CdARRs $actes_cdarr = $_evenement->loadRefsActesCdARR(); foreach ($actes_cdarr as $_acte_cdarr) { $ligne = new CLigneActivitesRHS(); $ligne->rhs_id = $this->_id; $ligne->executant_id = $therapeute->_id; $ligne->code_activite_cdarr = $_acte_cdarr->code; $ligne->code_intervenant_cdarr = $code_intervenant_cdarr; $ligne->loadMatchingObject(); $ligne->crementDay($_evenement->debut, "inc"); $ligne->auto = "1"; $ligne->store(); } // Actes CsARRs $actes_csarr = $_evenement->loadRefsActesCsARR(); foreach ($actes_csarr as $_acte_csarr) { $ligne = new CLigneActivitesRHS(); $ligne->rhs_id = $this->_id; $ligne->executant_id = $therapeute->_id; $ligne->code_activite_csarr = $_acte_csarr->code; $ligne->code_intervenant_cdarr = $code_intervenant_cdarr; $ligne->loadMatchingObject(); $ligne->crementDay($_evenement->debut, "inc"); $ligne->auto = "1"; $ligne->store(); } } // Gestion des administrations /** @var CActeCdARR $_acte_cdarr_adm */ foreach ($sejour->loadBackRefs("actes_cdarr") as $_acte_cdarr_adm) { $administration = $_acte_cdarr_adm->loadRefAdministration(); $therapeute = $administration->loadRefAdministrateur(); $intervenant = $therapeute->loadRefIntervenantCdARR(); $code_intervenant_cdarr = $intervenant->code; $ligne = new CLigneActivitesRHS(); $ligne->rhs_id = $this->_id; $ligne->executant_id = $therapeute->_id; $ligne->code_activite_cdarr = $_acte_cdarr_adm->code; $ligne->code_intervenant_cdarr = $code_intervenant_cdarr; $ligne->loadMatchingObject(); $ligne->crementDay($administration->dateTime, "inc"); $ligne->auto = "1"; $ligne->store(); } }