Пример #1
0
 *
 * @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);