dwh/audit_trail_ajax.php

227 lines
8.4 KiB
PHP
Raw Normal View History

2023-10-02 10:26:17 +00:00
<?php
$PARENT_SCRIPTNAME='audit_trail.php';
include_once 'script_auth.php';
include_once 'class/PregReplaceCallbackClass.php';
include_once 'init/initialisation_parameter.php';
include_once 'incl_rep.php';
$ora_obj = new ORAConnectionClass('init/ORA_INIT.php');
$ora_res = $ora_obj->ORA_PConnect();
if (!$ora_res){
echo "<BR>Error : " . htmlspecialchars($ora_obj->last_error_msg) . "<br>";
exit();
}
initParamTemplate();
$result = print_report($ora_obj);
echo $result;
unset($_SESSION['TEMPLATE_ARRAY_ADDR']);
if ($ora_obj->conn) {
$ora_obj->ORA_Close();
#echo "connection closed.<br>";
}
function initParamTemplate() {
$paramTemplate['CONTAINER'] = <<< params
<table width="100%" cellpadding="2" cellspacing="1" border="0" style="layout:auto">
<tr align=center>
<td class="font16B">AUDIT TRAIL</td>
</tr>
<tr align=center>
<td class="font12">PERIODE: <<TGL_AWAL>> s/d <<TGL_AKHIR>></td>
</tr>
<tr align=center>
<td>
<table width="100%" cellpadding="2" cellspacing="1" border="1" style="layout:auto">
<thead class="print">
<tr class="paramtable">
<th align=center class="font9BW">No.</th>
<th align=center class="font9BW" nowrap>Tanggal<BR>Audit</th>
<th align=center class="font9BW" nowrap>Kode User<BR>IP Address</th>
<th align=center class="font9BW" nowrap>PageName</th>
<th align=center class="font9BW" width="25%">Aktifitas</th>
<th align=center class="font9BW" width="25%">Nilai Lama</th>
<th align=center class="font9BW" width="25%">Nilai Baru</th>
</tr>
</thead>
<<LIST_REPORT>>
</table>
</td>
</tr>
<tr align=right>
<td>
<table width="60%" cellpadding="2" cellspacing="1" border="0" style="layout:auto">
<tr><td class="font9" valign=top>
<button id="btnFirst" name="first" onclick="javascript:return goFirst();" class="print" <<DISABLE_FIRST>>>
<span class="font9">&nbsp;<<&nbsp;</span>
</button>
&nbsp;
<button id="btnPrev" name="prev" onclick="javascript:return goPrev();" class="print" <<DISABLE_PREV>>>
<span class="font9">&nbsp;<&nbsp;&nbsp;</span>
</button>
&nbsp;&nbsp;
<<HALAMAN>> dari <<JUM_PAGE>>
&nbsp;&nbsp;
<button id="btnNext" name="next" onclick="javascript:return goNext();" class="print" <<DISABLE_NEXT>>>
<span class="font9">&nbsp;>&nbsp;</span>
</button>
&nbsp;
<button id="btnLast" name="last" onclick="javascript:return goLast();" class="print" <<DISABLE_LAST>>>
<span class="font9">&nbsp;&nbsp;>>&nbsp;</span>
</button>
</td></tr>
</table>
</td>
<td><input type="hidden" name="JUM_PAGE" value="<<JUM_PAGE>>" class=font9B></td>
</tr>
<tr align=center class="font9B" style="display:<<SHOW_END>>">
<td>-- End of Report --</td>
</tr>
</table>
params;
$paramTemplate['REPORT_CONTENT'] = <<< params
<tr align=left style='display:<<TR_DISP>>'>
<td class="font11" colspan=7> >>> GROUP DATA: <<GROUP_NAME>></td>
</tr>
<tr>
<td align=right class="font9" valign=top><<GROUP_NUM>></td>
<td align=center class="font9" nowrap valign=top><<TGLAUDIT>><BR><<JAMAUDIT>></td>
<td align=center class="font9" nowrap valign=top><<KD_USER>><BR><<IPNUM>></td>
<td align=center class="font9" nowrap valign=top><<PAGENAME>></td>
<td align=left class="font9" valign=top width="25%"><<ACTIVITY>></td>
<td align=left class="font9" valign=top width="25%"><<OLDVALUE_FRM>></td>
<td align=left class="font9" valign=top width="25%"><<NEWVALUE_FRM>></td>
</tr>
params;
$paramTemplate['NO_REPORT_CONTENT'] = <<< params
<tr class = "font12BRed" align=center>
<td colspan=7>
NO DATA FOUND
</td>
</tr>
params;
$_SESSION['TEMPLATE_ARRAY_ADDR'] = &$paramTemplate;
}
function print_report(&$ora_obj) {
$templObj = new PregReplaceCallbackClass('');
$templObj->SetTemplateArray('TEMPLATE_ARRAY_ADDR');
$field = explode('^', $_REQUEST["param"]);
$num_field = count($field);
for ($i=0;$i<$num_field-1;$i++) {
$val_sep = '*';
list($field_name, $field_value) = split("[$val_sep]", $field[$i]);
$param["$field_name"] = $field_value;
}
$tgl_awal = $param["TGL_AWAL"];
$tgl_akhir = $param["TGL_AKHIR"];
if ($param['GROUP'] == 'ALL') {
$group_where = " group_data LIKE '%'";
} else {
$group_where = " group_data = '".$param['GROUP']."'";
}
if (strlen($param['ACTIVITY']) > 0) {
$akt_where = "AND activity like '%".$param['ACTIVITY']."%'";
}
$date_period = " TRUNC(tglaudit) BETWEEN to_date('$tgl_awal', 'DD-MM-YYYY') AND to_date('$tgl_akhir', 'DD-MM-YYYY') ";
$max_rows = $param['NUM_ROWS'] * $_REQUEST["page"];
$min_rows = ($max_rows+1) - $param['NUM_ROWS'];
$audit_sql = <<< sql
SELECT * FROM (
SELECT a.*, ROWNUM row_num FROM (
SELECT to_char(a.tglaudit, 'DD-MM-YYYY') tglaudit, to_char(a.tglaudit, 'HH24:MI:SS') jamaudit, a.kd_user,
a.pagename, a.ipnum, a.activity, a.oldvalue, a.newvalue, p.keterangan group_name, a.group_data,
ROW_NUMBER() OVER (PARTITION BY a.group_data ORDER BY a.group_data, a.nourut desc) AS group_num,
COUNT(1) OVER() AS row_count
FROM audittrail a, Auditparam p
WHERE $group_where
AND $date_period
$akt_where
AND a.group_data = p.param_id
) a
)
WHERE row_num BETWEEN $min_rows AND $max_rows
sql;
$result_array = $ora_obj->ORA_SelectData($audit_sql,null,null,OCI_FETCHSTATEMENT_BY_ROW);
if ($ora_obj->nrows > 0) {
$group_data = 'GYUJJM';
foreach ($result_array as $pkey => $pval) {
foreach ($pval as $rkey => $rval) {
$variable_array[$rkey] = $rval;
}
$search = array("*", "^");
$replace = array("=", "<BR>");
$oldvalue = '&nbsp';
if (strlen($variable_array['OLDVALUE']) > 0) {
$oldvalue = str_replace($search, $replace, $variable_array['OLDVALUE']);
}
$newvalue = '&nbsp';
if (strlen($variable_array['NEWVALUE']) > 0) {
$newvalue = str_replace($search, $replace, $variable_array['NEWVALUE']);
}
$variable_array['OLDVALUE_FRM'] = $oldvalue;
$variable_array['NEWVALUE_FRM'] = $newvalue;
$jum_page = ceil($variable_array['ROW_COUNT']/$param['NUM_ROWS']);
$variable_array['DISABLE_FIRST'] = '';
$variable_array['DISABLE_PREV'] = '';
$variable_array['DISABLE_NEXT'] = '';
$variable_array['DISABLE_LAST'] = '';
$variable_array['SHOW_END'] = 'none';
$variable_array['TR_DISP'] = 'none';
if ($variable_array['GROUP_DATA'] !== $group_data) {
$variable_array['TR_DISP'] = 'block';
}
if ($_REQUEST["page"] == $jum_page) {
$variable_array['DISABLE_NEXT'] = 'disabled';
$variable_array['DISABLE_LAST'] = 'disabled';
$variable_array['SHOW_END'] = 'block';
}
if ($_REQUEST["page"] == '1') {
$variable_array['DISABLE_FIRST'] = 'disabled';
$variable_array['DISABLE_PREV'] = 'disabled';
}
$group_data = $variable_array['GROUP_DATA'];
$variable_array['HALAMAN'] = $_REQUEST["page"];
$variable_array['JUM_PAGE'] = $jum_page;
$_SESSION['ARRAY_ADDR_VAR'] = &$variable_array;
$templObj->SetFormatName('REPORT_CONTENT');
$list .= $templObj->PregReplaceCallback();
}
} else {
$_SESSION['ARRAY_ADDR_VAR'] = &$variable_array;
$templObj->SetFormatName('NO_REPORT_CONTENT');
$list = $templObj->PregReplaceCallback();
}
$_SESSION['ARRAY_ADDR_VAR'] = &$variable_array;
$variable_array['LIST_REPORT'] = $list;
$variable_array['TGL_AWAL'] = $tgl_awal;
$variable_array['TGL_AKHIR'] = $tgl_akhir;
$variable_array['JUM_PAGE'] = $jum_page;
$templObj->SetFormatName('CONTAINER');
$content = $templObj->PregReplaceCallback();
return $content;
}
?>