* @link http://www.mediboard.org */ CCanDo::checkAdmin(); /** @var int $step */ $step = CView::get("step", "num default|100000"); /** @var int $offset */ $offset = CView::get("offset", "num default|1"); /** @var bool $execute */ $execute = CView::get("execute", "bool default|0", true); /** @var bool $auto */ $auto = CView::get("auto", "bool", true); CView::checkin(); $copies = array(array("CConstantesMedicales", "user_id", "user_id"), array("CConstantesMedicales", "date", "creation_date"), array("CAlert", "date", "creation_date"), array("CCompteRendu", "date", "creation_date"), array("CAntecedent", "user_id", "owner_id"), array("CAntecedent", "date", "creation_date"), array("CTraitement", "user_id", "owner_id"), array("CTraitement", "date", "creation_date"), array("CProductDelivery", "user_id", "preparateur_id"), array("CProductDeliveryTrace", "user_id", "preparateur_id"), array("CRefusDispensation", "user_id", "preparateur_id")); // Ajout des classes de formulaires if (CModule::getActive("forms")) { $ex_class = new CExClass(); $ex_class_ids = $ex_class->loadIds(); foreach ($ex_class_ids as $_id) { $copies[] = array("CExObject_{$_id}", "user_id", "owner_id"); $copies[] = array("CExObject_{$_id}", "date", "datetime_create"); $copies[] = array("CExObject_{$_id}", "date", function (CSQLDataSource $ds, $log) use($_id) { $query = "UPDATE `ex_link`\n SET `datetime_create` = ?1,\n `owner_id` = ?2\n WHERE\n `ex_object_id` = ?3 AND\n `ex_class_id` = ?4 AND\n `datetime_create` IS NULL;"; return $ds->prepare($query, $log["date"], $log["user_id"], $log["object_id"], $_id); }); } } /** * Create user authentication entry * * @param CSQLDataSource $ds Data source * @param array $data Data
<?php /** * $Id$ * * @package Mediboard * @subpackage forms * @author SARL OpenXtrem <*****@*****.**> * @license GNU General Public License, see http://www.gnu.org/licenses/gpl.html * @version $Revision$ */ CCanDo::checkEdit(); $ex_class_id = CValue::get("ex_class_id"); $ex_class = new CExClass(); $ex_class->load($ex_class_id); $ex_class->loadRefsEvents(); // Création du template $smarty = new CSmartyDP(); $smarty->assign("ex_class", $ex_class); $smarty->display("inc_ex_class_events_preview.tpl");
function checkValue($value) { return CExClass::compareValues($value, $this->operator, $this->value); }
if ($reference_id) { $reference->load($reference_id); } } else { $reference = null; } CExClassField::$_load_lite = true; CExObject::$_multiple_load = true; CExObject::$_load_lite = $detail < 2; $group_id = $group_id ? $group_id : CGroups::loadCurrent()->_id; $where = array("group_id = '{$group_id}' OR group_id IS NULL"); if ($ex_class_id) { $where['ex_class_id'] = "= '{$ex_class_id}'"; } if (empty(CExClass::$_list_cache)) { $ex_class = new CExClass(); /** @var CExClass[] $ex_classes */ $ex_classes = $ex_class->loadList($where, "name"); $categories = CStoredObject::massLoadFwdRef($ex_classes, "category_id"); $categories = CStoredObject::naturalSort($categories, array("title")); $categories = array(new CExClassCategory()) + $categories; foreach ($ex_classes as $_ex_class) { $_category_id = $_ex_class->category_id ?: 0; $categories[$_category_id]->_ref_ex_classes[$_ex_class->_id] = $_ex_class; } if (!CExObject::$_locales_cache_enabled && $detail > 1) { foreach ($ex_classes as $_ex_class) { foreach ($_ex_class->loadRefsGroups() as $_group) { $_group->loadRefsFields(); foreach ($_group->_ref_fields as $_field) { $_field->updateTranslation();
* @version $Revision: 28665 $ * @link http://www.mediboard.org */ CCanDo::checkEdit(); CStoredObject::$useObjectCache = false; CApp::setMemoryLimit(1024); CApp::setTimeLimit(600); $ex_class_id = CValue::get("ex_class_id"); $concept_search = CValue::get("concept_search"); $date_min = CValue::get("date_min"); $date_max = CValue::get("date_max"); $group_id = CValue::get("group_id"); $limit = 10000; $group_id = $group_id ? $group_id : CGroups::loadCurrent()->_id; $where = array("group_id = '{$group_id}' OR group_id IS NULL"); $ex_class = new CExClass(); $ex_class->load($ex_class_id); foreach ($ex_class->loadRefsGroups() as $_group) { $_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); }
$_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; $ljoin = $ljoin_orig; } if ($_count > 0) { $ex_objects_counts[$_ex_class_id] = $_count; } } $ex_class = new CExClass(); $where = array("ex_class_id" => $ex_class->getDS()->prepareIn(array_keys($ex_objects_counts))); $ex_classes = $ex_class->loadList($where); // Création du template $smarty = new CSmartyDP("modules/forms"); $smarty->assign("ex_objects_counts", $ex_objects_counts); $smarty->assign("ex_classes", $ex_classes); $smarty->display("inc_list_ex_object_counts.tpl");
<?php /** * $Id$ * * @package Mediboard * @subpackage forms * @author SARL OpenXtrem <*****@*****.**> * @license GNU General Public License, see http://www.gnu.org/licenses/gpl.html * @version $Revision$ */ CCanDo::checkEdit(); $ex_class_id = CValue::get("ex_class_id"); $keywords = CValue::get("_ex_field_view"); $exclude_ex_field_id = CValue::get("exclude_ex_field_id"); $ex_class = new CExClass(); $ex_class->load($ex_class_id); $where = array("ex_class_field_group.ex_class_id" => "= '{$ex_class_id}'"); $ljoin = array("ex_class_field_group" => "ex_class_field_group.ex_class_field_group_id = ex_class_field.ex_group_id"); if ($exclude_ex_field_id) { $where["ex_class_field.ex_class_field_id"] = "!= '{$exclude_ex_field_id}'"; } $ex_field = new CExClassField(); if ($keywords == "") { $keywords = "%"; } $matches = $ex_field->getAutocompleteList($keywords, $where, 200, $ljoin); $template = $ex_field->getTypedTemplate("autocomplete"); $smarty = new CSmartyDP("modules/system"); $smarty->assign('matches', $matches); $smarty->assign('field', "ex_class_id");
/** * Check constraint * * @param CMbObject $object Object * * @return bool */ function checkConstraint(CMbObject $object) { $this->completeField("field", "value"); $this->loadObjectRefs($object); $object_field = $this->resolveObjectField($object); if (!$object_field) { return false; } /** @var CMbObject $object_fwd */ $object_fwd = $object_field["object"]; $field = $object_field["field"]; // cas ou l'objet retrouvé n'a pas le champ (meta objet avec classe differente) if (!isset($object_fwd->_specs[$field]) && $field != "CONNECTED_USER") { return false; } $this->loadObjectRefs($object_fwd); if ($field == "CONNECTED_USER") { $value = $object_fwd->_guid; } else { $value = $object_fwd->{$field}; if ($object_fwd->_specs[$field] instanceof CRefSpec) { $_obj = $object_fwd->loadFwdRef($field, true); $value = $_obj->_guid; } } $value_comp = $this->value; if ($this->operator == "in") { $value_comp = $this->getInValues(); } return CExClass::compareValues($value, $this->operator, $value_comp); }
function importObject(DOMElement $element) { $id = $element->getAttribute("id"); if (isset($this->imported[$id])) { return; } $this->name_suffix = " (import du " . CMbDT::dateTime() . ")"; $map_to = isset($this->map[$id]) ? $this->map[$id] : null; switch ($element->getAttribute("class")) { // -------------------- case "CExClass": $values = self::getValuesFromElement($element); $ex_class = new CExClass(); $ex_class->name = $this->options["ex_class_name"]; $ex_class->group_id = CGroups::loadCurrent()->_id; $ex_class->pixel_positionning = $values["pixel_positionning"]; $ex_class->native_views = $values["native_views"]; $ex_class->_dont_create_default_group = true; if ($msg = $ex_class->store()) { throw new Exception($msg); } CAppUI::stepAjax("Formulaire '%s' créé", UI_MSG_OK, $ex_class->name); $map_to = $ex_class->_guid; break; // -------------------- // -------------------- case "CExList": if ($map_to == "__create__") { /** @var CExList $_ex_list */ $_ex_list = $this->getObjectFromElement($element); if ($msg = $_ex_list->store()) { $_ex_list->name .= $this->name_suffix; } if ($msg = $_ex_list->store()) { CAppUI::stepAjax($msg, UI_MSG_WARNING); break; } CAppUI::stepAjax("Liste '%s' créée", UI_MSG_OK, $_ex_list); $_elements = $this->getElementsByFwdRef("CExListItem", "list_id", $id); foreach ($_elements as $_element) { $_list_item = new CExListItem(); bindHashToObject(self::getValuesFromElement($_element), $_list_item); $_list_item->list_id = $_ex_list->_id; if ($msg = $_list_item->store()) { CAppUI::stepAjax($msg, UI_MSG_WARNING); break; } CAppUI::stepAjax("Elément de liste '%s' créé", UI_MSG_OK, $_list_item); $_item_id = $_element->getAttribute("id"); $this->map[$_item_id] = $_list_item->_guid; $this->imported[$_item_id] = true; } $map_to = $_ex_list->_guid; } else { /** @var CExList $ex_list */ $ex_list = CStoredObject::loadFromGuid($map_to); $list_items = $ex_list->loadRefItems(); foreach ($list_items as $_item) { $this->map[$_item->_guid] = $_item->_guid; } } break; // -------------------- // -------------------- case "CExConcept": if ($map_to == "__create__") { /** @var CExConcept $_ex_concept */ $_ex_concept = $this->getObjectFromElement($element); if ($_ex_concept->ex_list_id) { $_ex_concept->updatePropFromList(); } $_ex_concept->prop = $_ex_concept->updateFieldProp($_ex_concept->prop); if ($msg = $_ex_concept->store()) { $_ex_concept->name .= $this->name_suffix; } if ($msg = $_ex_concept->store()) { CAppUI::stepAjax($msg, UI_MSG_WARNING); break; } CAppUI::stepAjax("Concept '%s' créé", UI_MSG_OK, $_ex_concept); $map_to = $_ex_concept->_guid; } break; case "CExClassField": /** @var CExClassField $_ex_field */ $_ex_field = $this->getObjectFromElement($element); if ($this->options["ignore_disabled_fields"] && $_ex_field->disabled) { break; } $_ex_field->_make_unique_name = false; // Met à jour default|XXX des champs enum pour garder la bonne référence // @FIXME Ne fonctionne pas à cause du fait qu'il y a un concept_id .... $_spec_obj = $_ex_field->getSpecObject(); if ($_spec_obj instanceof CEnumSpec && $_spec_obj->default) { $_new_default = $this->getIdFromGuid($this->map["CExListItem-{$_spec_obj->default}"]); $_ex_field->prop = preg_replace('/ default\\|\\d+/', " default|{$_new_default}", $_ex_field->prop); } if ($msg = $_ex_field->store()) { CAppUI::stepAjax($msg, UI_MSG_WARNING); break; } CAppUI::stepAjax("Champ '%s' créé", UI_MSG_OK, $_ex_field); $map_to = $_ex_field->_guid; break; // -------------------- // -------------------- case "CExClassFieldGroup": case "CExClassFieldSubgroup": case "CExClassFieldTranslation": case "CExClassMessage": case "CExClassHostField": $_object = $this->getObjectFromElement($element); if ($msg = $_object->store()) { CAppUI::stepAjax($msg, UI_MSG_WARNING); break; } CAppUI::stepAjax(CAppUI::tr($_object->_class) . " '%s' créé", UI_MSG_OK, $_object); $map_to = $_object->_guid; break; case "CExClassFieldPredicate": /** @var CExClassFieldPredicate $_object */ $_object = $this->getObjectFromElement($element); if ($_object->value) { $_field = $_object->loadRefExClassField(); if ($_field->getSpecObject() instanceof CEnumSpec) { $this->predicates_to_fix[] = $_object; } } if ($msg = $_object->store()) { CAppUI::stepAjax($msg, UI_MSG_WARNING); break; } CAppUI::stepAjax(CAppUI::tr($_object->_class) . " '%s' créé", UI_MSG_OK, $_object); $map_to = $_object->_guid; break; default: // Ignore object break; } $this->map[$id] = $map_to; $this->imported[$id] = true; }
CAppUI::stepAjax("Objet supprimé", UI_MSG_ERROR); } if ($object->_id) { $object->loadComplete(); } // searching for a CExClassEvent $ex_class_event = new CExClassEvent(); $ex_class_event->host_class = $object->_class; if ($event_name) { $ex_class_event->event_name = $event_name; } $ex_class_event->ex_class_id = $ex_class_id; $ex_class_event->loadMatchingObject(); /** @var CExObject $ex_object */ if (!$ex_object_id) { $ex_class = new CExClass(); $ex_class->load($ex_class_id); $ex_objects = $ex_class_event->getExObjectForHostObject($object); $ex_object = reset($ex_objects); if (!$ex_object) { $ex_object = $ex_class->getExObjectInstance(); } } else { $ex_object = new CExObject($ex_class_id); } if ($preview) { $ex_object->_preview = true; } $creation_date = $ex_object->getCreateDate(); if ($object->_id && $object instanceof CSejour) { $object->loadRefCurrAffectation($creation_date);
/** * @param CMbObject $object * * @return CExObject[][] */ static function getExObjectsOf(CMbObject $object) { CExClassField::$_load_lite = true; CExObject::$_multiple_load = true; $group_id = CGroups::loadCurrent()->_id; $where = array("group_id = '{$group_id}' OR group_id IS NULL"); if (empty(CExClass::$_list_cache)) { $ex_class = new CExClass(); CExClass::$_list_cache = $ex_class->loadList($where, "name"); if (!CExObject::$_locales_cache_enabled) { foreach (CExClass::$_list_cache as $_ex_class) { foreach ($_ex_class->loadRefsGroups() as $_group) { $_group->loadRefsFields(); foreach ($_group->_ref_fields as $_field) { $_field->updateTranslation(); } } } } } $ex_objects = array(); $limit = 1; $ref_objects_cache = array(); foreach (CExClass::$_list_cache as $_ex_class_id => $_ex_class) { $_ex_object = new CExObject($_ex_class_id); $where = array("(reference_class = '{$object->_class}' AND reference_id = '{$object->_id}') OR\n (reference2_class = '{$object->_class}' AND reference2_id = '{$object->_id}') OR\n (object_class = '{$object->_class}' AND object_id = '{$object->_id}')"); $ljoin = array(); /** @var CExObject[] $_ex_objects */ $_ex_objects = $_ex_object->loadList($where, "{$_ex_object->_spec->key} DESC", $limit, null, $ljoin); foreach ($_ex_objects as $_ex) { $_ex->_ex_class_id = $_ex_class_id; $_ex->load(); $guid = "{$_ex->object_class}-{$_ex->object_id}"; if (!isset($ref_objects_cache[$guid])) { $_ex->loadTargetObject()->loadComplete(); // to get the view $ref_objects_cache[$guid] = $_ex->_ref_object; } else { $_ex->_ref_object = $ref_objects_cache[$guid]; } if ($_ex->additional_id) { $_ex->loadRefAdditionalObject(); } $ex_objects[$_ex_class_id][$_ex->_id] = $_ex; } if (isset($ex_objects[$_ex_class_id])) { krsort($ex_objects[$_ex_class_id]); } } ksort($ex_objects); return $ex_objects; }
while ($current_line = fgetcsv($fp, null, $separator, $enclosure)) { $line_number++; $current_line = array_map("trim", $current_line); $current_line = array_map("reduce_whitespace", $current_line); $current_line = array_combine($keys, $current_line); foreach ($current_line as $_key => $_value) { if (in_array($_key, $multiline) && $_value == "") { $current_line[$_key] = $line[$_key]; } } $line = $current_line; // EX CLASS if (empty($line["group_1"]) && empty($line["group_2"]) && $line["field_name"] === CMbString::upper($line["field_name"])) { // we assume exclasses are uppercase $current_group = null; $current_class = new CExClass(); $class = $line["field_name"]; $ds = $current_class->_spec->ds; $where = array("name" => $ds->prepare("=%", $class)); $current_class->loadObject($where); if (!$current_class->_id) { CAppUI::setMsg("Ligne {$line_number} : formulaire non trouvé ({$class})", UI_MSG_WARNING); } continue; } // EX CLASS FIELD GROUP if (!empty($line["group_1"]) && !empty($current_class->_id)) { $current_group = new CExClassFieldGroup(); $group_name = $line["group_1"]; $ds = $current_group->_spec->ds; $where = array("ex_class_id" => $ds->prepare("=%", $current_class->_id), "name" => $ds->prepare("=%", $group_name));
$spec = $ex_object->_specs[$field]; } } else { // A second timpe to get the enum locales $spec = @CMbFieldSpecFact::getSpecWithClassName($class, $field, $prop); } }*/ $triggerables_cond = array(); $triggerables_others = array(); if ($context instanceof CExClassField) { $context->loadTriggeredData(); $ex_class = $context->loadRefExClass(); if (!$ex_class->conditional) { $triggerable = new CExClass(); $group_id = CGroups::loadCurrent()->_id; $where = array("group_id" => "= '{$group_id}'"); $where = array("group_id" => "= '{$group_id}'", "conditional" => "= '1'", $triggerable->_spec->key => "!= '{$ex_class->_id}'"); // TODO charger les ex_class qui ont un event avec la meme classe que ... quel evenement ??? $triggerables_cond = $triggerable->loadList($where, "conditional DESC, name"); $where["conditional"] = "= '0'"; $triggerables_others = $triggerable->loadList($where, "conditional DESC, name"); } if (!empty($context->concept_id)) { if (!empty($context->_ref_concept->_ref_ex_list)) { $items_all = array_keys($context->_ref_concept->_ref_ex_list->_ref_items); } else { $items_all = array_keys($context->_ref_concept->_ref_items); } }
$current_group = null; $line_number = 0; while ($current_line = fgetcsv($fp, null, $separator, $enclosure)) { $line_number++; $current_line = array_map("trim", $current_line); $current_line = array_map("reduce_whitespace", $current_line); $current_line = array_combine($keys, $current_line); foreach ($current_line as $_key => $_value) { if (in_array($_key, $multiline) && $_value == "") { $current_line[$_key] = $line[$_key]; } } $line = $current_line; // EX CLASS if (empty($line["field_name"]) && empty($line["concept_name"])) { $current_class = new CExClass(); $class = reset($line); $ds = $current_class->_spec->ds; $where = array("name" => $ds->prepare("=%", $class)); $current_class->loadObject($where); if (!$current_class->_id) { $current_class->name = $class; $current_class->host_class = "CMbObject"; $current_class->event = "void"; $current_class->disabled = 1; //$current_class->required = 0; $current_class->conditional = stripos($class, "SSQ") !== false ? 1 : 0; if ($msg = $current_class->store()) { CAppUI::setMsg("Ligne {$line_number} : {$msg}", UI_MSG_WARNING); continue; } else {
$context->loadRefPlageConsult(); $context->_ref_chir->loadRefFunction(); break; case "CSejour": $context->loadRefPraticien()->loadRefFunction(); break; case "COperation": $context->loadRefPlageOp(); $context->loadRefChir()->loadRefFunction(); break; default: } // Chargement des formulaires $group_id = CGroups::loadCurrent()->_id; $where = array("group_id = '{$group_id}' OR group_id IS NULL"); $ex_class = new CExClass(); CExClass::$_list_cache = $ex_class->loadList($where, "name"); // Loading the events $ex_classes_creation = array(); $ex_class_events = array(); $_ex_class_creation = array(); foreach (CExClass::$_list_cache as $_ex_class_id => $_ex_class) { if (!$_ex_class->conditional) { $_ex_class_creation[] = $_ex_class_id; } } $where = array("ex_class_event.ex_class_id" => CSQLDataSource::get("std")->prepareIn($_ex_class_creation), "ex_class_event.disabled" => "= '0'"); /** @var CExClassEvent[] $ex_class_events_by_ref */ $ex_class_event = new CExClassEvent(); $ex_class_events_by_ref = $ex_class_event->loadList($where); CStoredObject::massLoadBackRefs($ex_class_events_by_ref, "constraints");