/** * Récupération de la salle * * @param DOMNode $node Node * @param CSejour $sejour Séjour * * @return string */ function getSalle(DOMNode $node, CSejour $sejour) { $xpath = new CHPrimXPath($node->ownerDocument); $name = $xpath->queryTextNode("hprim:uniteFonctionnelle/hprim:code", $node); // Recherche de la salle $salle = new CSalle(); $where = array("sallesbloc.nom" => $salle->_spec->ds->prepare("=%", $name), "bloc_operatoire.group_id" => "= '{$sejour->group_id}'"); $ljoin = array("bloc_operatoire" => "bloc_operatoire.bloc_operatoire_id = sallesbloc.bloc_id"); $salle->loadObject($where, null, null, $ljoin); return $salle; }
} elseif ($count > 1) { $mediusers = $mediuser->loadList($where, null, null, null, $ljoin); $list_view = implode(", ", CMbArray::pluck($mediusers, "_view")); CAppUI::stepAjax("Plusieurs utilisateurs correspondent à cette recherche (ADELI = {$ADELI}): %s", UI_MSG_WARNING, $list_view); $results["count_erreur"]++; continue; } $mediuser->loadObject($where, null, null, $ljoin); // Traitement de la date/heure début, et durée de l'opération $date_op = CMbDT::date($date_debut); $time_op = CMbDT::time($date_debut); $temps_op = CMbDT::subTime(CMbDT::time($date_debut), CMbDT::time($date_fin)); // Recherche de la salle $salle = new CSalle(); $where = array("nom" => "= '{$nom_salle}'", "bloc_id" => CSQLDataSource::prepareIn(array_keys($blocs))); if (!$salle->loadObject($where)) { CAppUI::stepAjax("La salle '{$nom_salle}' n'a pas été retrouvée dans Mediboard", UI_MSG_WARNING); $results["count_erreur"]++; continue; } // Recherche d'une éventuelle PlageOp $plageOp = new CPlageOp(); $plageOp->chir_id = $mediuser->_id; $plageOp->salle_id = $salle->_id; $plageOp->date = $date_op; foreach ($plageOp->loadMatchingList() as $_plage) { // Si notre intervention est dans la plage Mediboard if ($_plage->debut <= $time_op && $temps_op <= $_plage->fin) { $plageOp = $_plage; break; }