Ejemplo n.º 1
0
 function mapDocs($object, $with_cancelled, $tri)
 {
     // Documents et fichiers
     $object->loadRefsDocItems($with_cancelled);
     CStoredObject::massLoadFwdRef($object->_ref_documents, "file_category_id");
     foreach ($object->_ref_documents as $_doc) {
         CDocumentItem::makeIconName($_doc);
         $_doc->loadContent(false);
         $_doc->loadRefCategory();
         $_doc->_ref_object = $object;
         $this->_all_docs[$this->makePrefix($tri, $object, $_doc)][] = $_doc;
     }
     CStoredObject::massLoadFwdRef($object->_ref_files, "file_category_id");
     foreach ($object->_ref_files as $_file) {
         CDocumentItem::makeIconName($_file);
         $_file->loadRefCategory();
         $_file->_ref_object = $object;
         $this->_all_docs[$this->makePrefix($tri, $object, $_file)][] = $_file;
     }
     // Formulaires
     $ex_link = new CExLink();
     $ex_link->setObject($object);
     $ex_link->level = "object";
     $ex_links = $ex_link->loadMatchingList();
     $ex_objects = CExLink::massLoadExObjects($ex_links);
     CStoredObject::massLoadFwdRef($ex_objects, "object_id");
     foreach ($ex_links as $_link) {
         $_ex = $_link->loadRefExObject();
         $_ex->updateCreationFields();
         $object = $_ex->loadTargetObject();
         $_ex->_ex_class_id = $_link->ex_class_id;
         $_ex->loadRefExClass();
         CDocumentItem::makeIconName($_ex->_ref_ex_class);
         $this->_all_docs[$this->makePrefix($tri, $object, $_ex)][] = $_link;
     }
 }
Ejemplo n.º 2
0
    }
}
$step = $limit;
$total = 0;
if ($limit) {
    $limit = "{$start}, {$limit}";
}
$ref_objects_cache = array();
$search = null;
if ($concept_search) {
    $concept_search = stripslashes($concept_search);
    $search = CExConcept::parseSearch($concept_search);
}
$ex_class_event = new CExClassEvent();
$ex_class_events = null;
$ex_link = new CExLink();
$group_id = $group_id ? $group_id : CGroups::loadCurrent()->_id;
$where = array("ex_link.group_id" => "= '{$group_id}'");
if ($ex_class_id) {
    $where['ex_link.ex_class_id'] = "= '{$ex_class_id}'";
}
$ljoin = array();
$creation_context = null;
if (!$creation_context_class || !$creation_context_id) {
    $creation_context_class = $reference_class;
    $creation_context_id = $reference_id;
}
if ($creation_context_class) {
    /** @var CSejour|CPatient|CConsultation $creation_context */
    $creation_context = new $creation_context_class();
    $creation_context->load($creation_context_id);
$where["ex_link.level"] = "= 'object'";
$ljoin["ex_class"] = "ex_class.ex_class_id = ex_link.ex_class_id";
$fields = array("ex_link.ex_class_id");
$counts = $ex_link->countMultipleList($where, null, "ex_link.ex_class_id", $ljoin, $fields);
if (!empty($search)) {
    $ds = $ex_class->_spec->ds;
    $where["ex_class_field.concept_id"] = $ds->prepareIn(array_keys($search));
    $ljoin["ex_class_field_group"] = "ex_class_field_group.ex_class_id = ex_class.ex_class_id";
    $ljoin["ex_class_field"] = "ex_class_field.ex_group_id = ex_class_field_group.ex_class_field_group_id";
    unset($where["user_log.object_class"]);
}
$ex_objects_counts = array();
foreach ($counts as $_row) {
    $_ex_class_id = $_row["ex_class_id"];
    $_count = $_row["total"];
    $_ex_link = new CExLink();
    if (!empty($search)) {
        $_ex_class = new CExClass();
        $_ex_class->load($_ex_class_id);
        if ($use_user_logs) {
            $ljoin["user_log"] = "user_log.object_id = ex_link.ex_object_id AND user_log.object_class = 'CExObject_{$_ex_class_id}'";
        } else {
            $where["ex_link.ex_class_id"] = "= '{$_ex_class_id}'";
        }
        $ljoin_orig = $ljoin;
        $where_orig = $where;
        $where["ex_class.ex_class_id"] = "= '{$_ex_class_id}'";
        $where = array_merge($where, $_ex_class->getWhereConceptSearch($search));
        $ljoin["ex_object_{$_ex_class_id}"] = "ex_object_{$_ex_class_id}.ex_object_id = ex_link.ex_object_id";
        $_count = $_ex_link->countList($where, "ex_link.ex_class_id", $ljoin);
        $where = $where_orig;
Ejemplo n.º 4
0
    $_group->loadRefsFields();
    foreach ($_group->_ref_fields as $_field) {
        $_field->updateTranslation();
    }
}
/** @var CExObject[] $ex_objects */
$ex_objects = array();
$ref_objects_cache = array();
$search = null;
if ($concept_search) {
    $concept_search = stripslashes($concept_search);
    $search = CExConcept::parseSearch($concept_search);
}
$ex_class_event = new CExClassEvent();
$ex_class_events = null;
$ex_link = new CExLink();
$where = array("ex_link.group_id" => "= '{$group_id}'", "ex_link.ex_class_id" => "= '{$ex_class_id}'", "ex_link.level" => "= 'object'", "ex_link.datetime_create" => "BETWEEN '{$date_min} 00:00:00' AND '{$date_max} 23:59:59'");
$ljoin = array();
if (!empty($search)) {
    $ljoin["ex_object_{$ex_class_id}"] = "ex_object_{$ex_class_id}.ex_object_id = ex_link.ex_object_id";
    //$where = array_merge($where, $ex_class->getWhereConceptSearch($search));
}
$order = "ex_class.name ASC, ex_link.ex_object_id DESC";
$ljoin["ex_class"] = "ex_class.ex_class_id = ex_link.ex_class_id";
/** @var CExLink[] $links */
$links = $ex_link->loadList($where, $order, $limit, "ex_link.ex_object_id", $ljoin);
//CExLink::massLoadExObjects($links);
/** @var CExObject[] $ex_objects */
foreach ($links as $_link) {
    $_ex = $_link->loadRefExObject();
    $_ex->_ex_class_id = $_link->ex_class_id;
Ejemplo n.º 5
0
 /**
  * Custom delete, will delete any link
  *
  * @see parent::delete()
  */
 function delete()
 {
     $ex_object_id = $this->_id;
     $ex_class_id = $this->_ex_class_id;
     if ($msg = parent::delete()) {
         return $msg;
     }
     // Remove CExLinks
     $where = array("ex_class_id" => " = '{$ex_class_id}'", "ex_object_id" => " = '{$ex_object_id}'");
     $ex_link = new CExLink();
     $ex_links = $ex_link->loadList($where);
     foreach ($ex_links as $_ex_link) {
         $_ex_link->delete();
     }
     return null;
 }
Ejemplo n.º 6
0
 /**
  * Gets the latest CExObject for the given CMbObject host object
  *
  * @param CMbObject $object The host object
  *
  * @return CExObject The resolved CExObject
  */
 function getLatestExObject(CMbObject $object)
 {
     if (isset($this->_latest_ex_object_cache[$object->_class][$object->_id])) {
         return $this->_latest_ex_object_cache[$object->_class][$object->_id];
     }
     $ex_link = new CExLink();
     $where = array("object_class" => " = '{$object->_class}'", "object_id" => " = '{$object->_id}'", "ex_class_id" => " = '{$this->_id}'", "level" => $ex_link->getDS()->prepareIn(array("object", "ref1", "ref2")));
     $ex_link->loadObject($where, "ex_object_id DESC");
     $ex_object = $ex_link->loadRefExObject();
     return $this->_latest_ex_object_cache[$object->_class][$object->_id] = $ex_object;
 }