* Autocomplete des packs de modèles
 *
 * @category CompteRendu
 * @package  Mediboard
 * @author   SARL OpenXtrem <*****@*****.**>
 * @license  GNU General Public License, see http://www.gnu.org/licenses/gpl.html
 * @version  SVN: $Id:\$
 * @link     http://www.mediboard.org
 */
$user_id = CValue::get("user_id");
$function_id = CValue::get("function_id");
$etab = CGroups::loadCurrent();
$group_id = $etab->_id;
$object_class = CValue::get("object_class");
$keywords = CValue::post("keywords_pack");
$where = array();
$where["object_class"] = "= '{$object_class}'";
$where[] = "(\n  pack.user_id IN ('" . $user_id . "', '" . CAppUI::$user->_id . "') OR\n  pack.function_id = '{$function_id}' OR\n  pack.group_id = '{$group_id}'\n)";
$where[] = "pack.pack_id IN ( SELECT pack_id FROM modele_to_pack)";
$order = "nom";
$pack = new CPack();
$packs = $pack->seek($keywords, $where, null, null, null, $order);
/** @var $_pack CPack */
foreach ($packs as $_pack) {
    $_pack->getModelesIds();
}
$smarty = new CSmartyDP();
$smarty->assign("packs", $packs);
$smarty->assign("nodebug", true);
$smarty->assign("keywords", $keywords);
$smarty->display("inc_pack_autocomplete.tpl");
<?php

/**
 * Liste des modèles d'un pack de modèles
 *
 * @category CompteRendu
 * @package  Mediboard
 * @author   SARL OpenXtrem <*****@*****.**>
 * @license  GNU General Public License, see http://www.gnu.org/licenses/gpl.html
 * @version  SVN: $Id:\$
 * @link     http://www.mediboard.org
 */
CCanDo::checkEdit();
$pack_id = CValue::get("pack_id");
// Chargement du pack
$pack = new CPack();
$pack->load($pack_id);
$pack->loadBackRefs("modele_links", "modele_to_pack_id");
// Création du template
$smarty = new CSmartyDP();
$smarty->assign("pack", $pack);
$smarty->display("inc_list_modeles_links.tpl");
 $compte_rendu->modele_id = $modele_id;
 $header_id = null;
 $footer_id = null;
 // Utilisation des headers/footers
 if ($compte_rendu->header_id || $compte_rendu->footer_id) {
     $header_id = $compte_rendu->header_id;
     $footer_id = $compte_rendu->footer_id;
 }
 // On fournit la cible
 if ($target_id && $target_class) {
     $compte_rendu->object_id = $target_id;
     $compte_rendu->object_class = $target_class;
 }
 // A partir d'un pack
 if ($pack_id) {
     $pack = new CPack();
     $pack->load($pack_id);
     $pack->loadContent();
     $compte_rendu->nom = $pack->nom;
     $compte_rendu->object_class = $pack->object_class;
     $compte_rendu->fast_edit = $pack->fast_edit;
     $compte_rendu->fast_edit_pdf = $pack->fast_edit_pdf;
     $compte_rendu->_source = $pack->_source;
     $compte_rendu->modele_id = null;
     $pack->loadHeaderFooter();
     $header_id = $pack->_header_found->_id;
     $footer_id = $pack->_footer_found->_id;
     // Marges et format
     /** @var $links CModeleToPack[] */
     $links = $pack->_back['modele_links'];
     $first_modele = reset($links);
 * @package    Mediboard
 * @subpackage Cabinet
 * @author     SARL OpenXtrem <*****@*****.**>
 * @license    GNU General Public License, see http://www.gnu.org/licenses/gpl.html
 * @version    $Revision$
 */
CCanDo::checkRead();
// !! Attention, régression importante si ajout de type de paiement
// Récupération des paramètres
$operation_id = CValue::get("operation_id", null);
$op = new COperation();
$op->load($operation_id);
$op->loadRefsFwd();
$op->_ref_sejour->loadRefsFwd();
$patient =& $op->_ref_sejour->_ref_patient;
$pack_id = CValue::get("pack_id", null);
$pack = new CPack();
$pack->load($pack_id);
// Creation des template manager
$listCr = array();
foreach ($pack->_modeles as $key => $value) {
    $listCr[$key] = new CTemplateManager();
    $listCr[$key]->valueMode = true;
    $op->fillTemplate($listCr[$key]);
    $patient->fillTemplate($listCr[$key]);
    $listCr[$key]->applyTemplate($value);
}
// Création du template
$smarty = new CSmartyDP();
$smarty->assign("listCr", $listCr);
$smarty->display("print_pack.tpl");
Exemple #5
0
CCanDo::checkRead();
$user_id = CValue::getOrSession("user_id");
$function_id = CValue::getOrSession("function_id");
$object_class = CValue::getOrSession("object_class");
$user = CMediusers::get($user_id);
$owner = "prat";
$owner_id = $user->_id;
$owners = $user->getOwners();
if ($function_id) {
    $function = new CFunctions();
    $function->load($function_id);
    $owner = "func";
    $owner_id = $function->_id;
    $owners = array("func" => $function, "etab" => $function->loadRefGroup());
}
$packs = CPack::loadAllPacksFor($owner_id, $owner, $object_class);
if ($function_id) {
    unset($packs["prat"]);
}
foreach ($packs as $_packs_by_owner) {
    foreach ($_packs_by_owner as $_pack) {
        /** @var $_pack CPack */
        $_pack->loadRefOwner();
        $_pack->loadBackRefs("modele_links");
        $_pack->loadHeaderFooter();
    }
}
// Création du template
$smarty = new CSmartyDP();
$smarty->assign("owners", $owners);
$smarty->assign("packs", $packs);
 /**
  * Charge les packs pour un propriétaire donné
  * 
  * @param int    $id           identifiant du propriétaire
  * @param string $owner        [optional]
  * @param string $object_class [optional]
  * 
  * @todo: refactor this to be in a super class
  * 
  * @return array
  */
 static function loadAllPacksFor($id, $owner = 'user', $object_class = null)
 {
     // Accès aux packs de modèles de la fonction et de l'établissement
     $module = CModule::getActive("dPcompteRendu");
     $is_admin = $module && $module->canAdmin();
     $access_function = $is_admin || CAppUI::conf("compteRendu CCompteRendu access_function");
     $access_group = $is_admin || CAppUI::conf("compteRendu CCompteRendu access_group");
     $packs = array();
     $packs["prat"] = array();
     if ($access_function) {
         $packs["func"] = array();
     }
     if ($access_group) {
         $packs["etab"] = array();
     }
     // Clauses de recherche
     $pack = new CPack();
     $where = array();
     if ($object_class) {
         $where["object_class"] = "= '{$object_class}'";
     }
     $order = "object_class, nom";
     switch ($owner) {
         case 'prat':
             // Modèle du praticien
             $user = new CMediusers();
             if (!$user->load($id)) {
                 return $packs;
             }
             $user->loadRefFunction();
             $where["user_id"] = "= '{$user->_id}'";
             $where["function_id"] = "IS NULL";
             $where["group_id"] = "IS NULL";
             $packs["prat"] = $pack->loadlist($where, $order);
         case 'func':
             // Modèle de la fonction
             if (isset($packs["func"])) {
                 if (isset($user)) {
                     $func_id = $user->function_id;
                 } else {
                     $func = new CFunctions();
                     if (!$func->load($id)) {
                         return $packs;
                     }
                     $func_id = $func->_id;
                 }
                 $where["user_id"] = "IS NULL";
                 $where["function_id"] = "= '{$func_id}'";
                 $where["group_id"] = "IS NULL";
                 $packs["func"] = $pack->loadlist($where, $order);
             }
         case 'etab':
             // Modèle de l'établissement
             if (isset($packs["etab"])) {
                 $etab_id = CGroups::loadCurrent()->_id;
                 if ($owner == 'etab') {
                     $etab = new CGroups();
                     if (!$etab->load($id)) {
                         return $packs;
                     }
                     $etab_id = $etab->_id;
                 } else {
                     if (isset($func)) {
                         $etab_id = $func->group_id;
                     } else {
                         if (isset($func_id)) {
                             $func = new CFunctions();
                             $func->load($func_id);
                             $etab_id = $func->group_id;
                         }
                     }
                 }
                 $where["user_id"] = "IS NULL";
                 $where["function_id"] = "IS NULL";
                 $where["group_id"] = " = '{$etab_id}'";
                 $packs["etab"] = $pack->loadlist($where, $order);
             }
             break;
         default:
             trigger_error("Wrong type '{$owner}'", E_WARNING);
     }
     return $packs;
 }
Exemple #7
0
<?php

/**
 * Interface des packs de documents
 *
 * @category DPcompteRendu
 * @package  Mediboard
 * @author   SARL OpenXtrem <*****@*****.**>
 * @license  GNU General Public License, see http://www.gnu.org/licenses/gpl.html
 * @version  SVN: $Id:\$
 * @link     http://www.mediboard.org
 */
CCanDo::checkRead();
$filtre = new CPack();
$filtre->user_id = CValue::getOrSession("user_id");
$filtre->function_id = CValue::getOrSession("function_id");
$filtre->object_class = CValue::getOrSession("filter_class");
$filtre->loadRefOwner();
$classes = CCompteRendu::getTemplatedClasses();
$module = CModule::getActive("dPcompteRendu");
$is_admin = $module && $module->canAdmin();
$access_function = $is_admin || CAppUI::conf("compteRendu CCompteRendu access_function");
// Création du template
$smarty = new CSmartyDP();
$smarty->assign("classes", $classes);
$smarty->assign("filtre", $filtre);
$smarty->assign("access_function", $access_function);
$smarty->display("vw_idx_packs.tpl");