* * @param CSQLDataSource $ds Data source * @param array $data Data * * @return string The SQL query */ $create_user_auth = function (CSQLDataSource $ds, $data) { $query = "INSERT INTO user_authentication\n (user_id, auth_method, datetime_login, id_address)\n VALUES (?1, ?2, ?3, ?4);"; return $ds->prepare($query, $data["user_id"], 'basic', $data["date"], $data["ip_address"] ? inet_ntop($data["ip_address"]) : ''); }; $inserts = array(array("CUser", "store", "user_last_login", $create_user_auth), array("CUser", "store", "user_password user_last_login", $create_user_auth), array("CUser", "store", "user_password user_salt user_last_login", $create_user_auth)); // Triplets defining user log entries to be removed $removers = array(array("CSourceFTP", "store", "counter"), array("CPrisePosologie", "store", "last_generation"), array("CPrescriptionLineElement", "store", "last_generation"), array("CTriggerMark", "create", ""), array("CTriggerMark", "store", "mark"), array("CTriggerMark", "store", "mark done"), array("CMovement", "create", ""), array("CMovement", "store", "last_update"), array("CMovement", "store", "affectation_id"), array("CMovement", "store", "affectation_id last_update"), array("CMovement", "store", "movement_type last_update"), array("CMovement", "store", "start_of_movement last_update"), array("CMovement", "delete", ""), array("CAlert", "create", ""), array("CAlert", "store", "comments"), array("CAlert", "store", "handled handled_date handled_user_id"), array("CAlert", "delete", ""), array("", "", "")); $counts = array("delete" => 0, "copy" => 0, "insert" => 0); $log = new CUserLog(); $ds = $log->getDS(); // Primary key clauses $min = $offset; $max = $offset + $step - 1; //<editor-fold desc=" ----- Remove ----- "> $request = new CRequest(); $request->addWhereClause("user_log_id", "BETWEEN {$min} AND {$max}"); $request->addForceIndex("PRIMARY"); // Removers clauses $triplets = array(); foreach ($removers as $_remover) { list($object_class, $type, $fields) = $_remover; $triplets[] = "{$object_class}-{$type}" . ($fields ? "-{$fields}" : ""); } $where = "CONCAT_WS('-', `object_class`, `type`, `fields`) " . CSQLDataSource::prepareIn($triplets); $request->addWhere($where);
*/ if (!CAppUI::pref("allowed_modify_identity_status")) { CAppUI::redirect("m=system&a=access_denied"); } $date = CValue::get('date'); $ids = CValue::get('ids'); if (!$ids || !$date) { CAppUI::stepAjax('common-error-Missing parameter', UI_MSG_ERROR); } $patient_ids = explode('-', $ids); $date = preg_replace('/(\\d\\d)\\/(\\d\\d)\\/(\\d\\d\\d\\d)/', '\\3-\\2-\\1', $date); if (!$patient_ids || !$date) { CAppUI::stepAjax('common-error-Invalid parameter', UI_MSG_ERROR); } $user_log = new CUserLog(); $ds = $user_log->getDS(); $where = array('object_class' => "= 'CPatient'", 'object_id' => $ds->prepareIn($patient_ids), 'type' => "= 'merge'", 'date' => $ds->prepare("BETWEEN ?1 AND ?2", "{$date} 00:00:00", "{$date} 23:59:59")); $logs = $user_log->loadList($where); foreach ($logs as $_log) { $_log->loadView(); /** @var CPatient $patient */ $patient = $_log->_ref_object; $identifiants = $patient->loadBackRefs('identifiants'); /** @var CIdSante400 $_id */ foreach ($identifiants as $_id) { $_id->getSpecialType(); } } $smarty = new CSmartyDP(); $smarty->assign('date', $date); $smarty->assign('logs', $logs);