本文整理汇总了PHP中CService::loadRefsAffectations方法的典型用法代码示例。如果您正苦于以下问题:PHP CService::loadRefsAffectations方法的具体用法?PHP CService::loadRefsAffectations怎么用?PHP CService::loadRefsAffectations使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CService
的用法示例。
在下文中一共展示了CService::loadRefsAffectations方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: loadServiceComplet
/**
* Charge complètement un service pour l'affichage des affectations
*
* @param CService $service le service concerné
* @param string $date le filtre de date sur les affectations
* @param string $mode forcer le chargement des affectations effectuées
* @param int $praticien charge les séjours pour un praticien en particulier
* @param string $type charge les séjours pour un type d'hospitalisation
* @param int $prestation_id charge la prestation éventuellement associée à chaque séjour
*
*
* @return void
*/
function loadServiceComplet(&$service, $date, $mode, $praticien_id = "", $type = "", $prestation_id = "", $with_dossier_medical = true)
{
$service->_nb_lits_dispo = 0;
$dossiers = array();
$systeme_presta = CAppUI::conf("dPhospi prestations systeme_prestations", CGroups::loadCurrent());
$lits = $service->loadRefsLits();
foreach ($lits as $_lit) {
$_lit->_ref_affectations = array();
$_lit->checkDispo($date);
}
$affectations = $service->loadRefsAffectations($date, $mode, false, true);
$sejours = CMbObject::massLoadFwdRef($affectations, "sejour_id");
CMbObject::massLoadFwdRef($sejours, "patient_id");
CMbObject::massLoadFwdRef($sejours, "prestation_id");
CMbObject::massLoadFwdRef($sejours, "praticien_id");
if (CModule::getActive("dPImeds")) {
CSejour::massLoadNDA($sejours);
}
foreach ($affectations as $_affectation) {
$sejour = $_affectation->loadRefSejour();
if ($praticien_id) {
if ($sejour->praticien_id != $praticien_id) {
unset($affectations[$_affectation->_id]);
continue;
}
}
if ($type) {
if ($sejour->type != $type) {
unset($affectations[$_affectation->_id]);
continue;
}
}
$lits[$_affectation->lit_id]->_ref_affectations[$_affectation->_id] = $_affectation;
$_affectation->loadRefsAffectations(true);
$_affectation->checkDaysRelative($date);
$aff_prev = $_affectation->_ref_prev;
if ($aff_prev->_id) {
if ($aff_prev->lit_id) {
$aff_prev->loadRefLit();
} else {
$aff_prev->loadRefService();
}
}
$aff_next = $_affectation->_ref_next;
if ($aff_next->_id) {
if ($aff_next->lit_id) {
$aff_prev->loadRefLit();
} else {
$aff_prev->loadRefService();
}
}
$sejour->loadRefPrestation();
$sejour->loadRefsOperations();
$sejour->loadNDA();
$sejour->loadRefPraticien();
$sejour->loadRefPatient();
if ($with_dossier_medical) {
$sejour->_ref_patient->loadRefDossierMedical(false);
$dossiers[] = $sejour->_ref_patient->_ref_dossier_medical;
}
// Chargement des droits CMU
$sejour->getDroitsCMU();
foreach ($sejour->_ref_operations as $_operation) {
$_operation->loadExtCodesCCAM();
}
$_affectation->_ref_lit = $lits[$_affectation->lit_id];
$_affectation->loadRefLit();
$_affectation->_ref_lit->_ref_chambre->_nb_affectations++;
if ($systeme_presta == "expert" && $prestation_id) {
$sejour->loadLiaisonsForDay($prestation_id, $date);
}
}
foreach ($lits as $_lit) {
array_multisort(CMbArray::pluck($_lit->_ref_affectations, "_ref_sejour", "entree"), SORT_ASC, $_lit->_ref_affectations);
}
if ($with_dossier_medical) {
CDossierMedical::massCountAntecedentsByType($dossiers, "deficience");
}
if (!$service->externe) {
foreach ($service->_ref_chambres as $_chambre) {
$_chambre->checkChambre();
$service->_nb_lits_dispo += $_chambre->_nb_lits_dispo;
}
}
}