dwh/rebuild_saldo_selisih_ajax.php
Daeng Deni Mardaeni 5321a5434b first commit
2023-10-02 17:26:17 +07:00

179 lines
5.7 KiB
PHP

<?php
$PARENT_SCRIPTNAME='rebuild_saldo_selisih.php';
include_once 'script_auth.php';
include_once 'class/PregReplaceCallbackClass.php';
include_once 'init/initialisation_parameter.php';
include_once 'headerFile.php';
include_once 'incl.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();
}
initAjaxParamTemplate();
if ($_REQUEST['action'] == "DoPost") {
$result = do_post($ora_obj);
} elseif ($_REQUEST['action'] == "initForm") {
$result = initForm($ora_obj);
} elseif ($_REQUEST['action'] == "DoCheck") {
$result = do_check($ora_obj);
} else {
$result = -1;
}
echo $result;
unset($_SESSION['TEMPLATE_ARRAY_ADDR']);
if ($ora_obj->conn) {
$ora_obj->ORA_Close();
#echo "connection closed.<br>";
}
function initAjaxParamTemplate() {
$ajaxParamTemplate['PARAM'] = <<< params
<table width="100%" cellpadding="2" cellspacing="1" border="0" style="layout:auto">
<tr>
<td align=left class="orangetitle" nowrap>REBUILD HISTORY SALDO</td>
</tr>
<tr>
<td align=left>
<form name="rep_param" onsubmit="javascript:return false;">
<table width="65%" cellpadding="2" cellspacing="1" border="0" style="layout:auto" class="font11">
<tr>
<td colspan=3>
Proses Tambahan re-build History Saldo untuk rekening selisih<BR>
Tanggal Proses History Saldo Terakhir <<LAST_HIST_SALDO>>
</td>
</tr>
<tr><td>&nbsp;</td></tr>
<tr>
<td align=left>Nomor Rekening Selisih</td>
<td>:</td>
<td align=left>
<input type="text" name="ACCOUNT_NO" note="Nomor Rekening" ATTRIB="SM" display="block" dbname="ACCOUNT_NO" class="font11" onblur='javascript:chgAttr(rep_param.CHECK)';>
</td>
<td>
<button id="CHECK_BTN" name="CHECK" dbname="" display="no" onclick="javascript:doCheck();">
<img src="images/button_execute.gif" width="12" height="12">
<span class="font10">&nbsp;Check Data</span>
</button>
</td>
</tr>
<tr>
<td align=left>Tanggal Awal History</td>
<td>:</td>
<td align=left>
<input type="text" name="START_DATE" value=<<DATE>> note="Tanggal Awal History" ATTRIB="DM" display="block" dbname="START_DATE" class="font11" readonly onclick="javascript:displayCalendar(this,'dd-mm-yyyy',this);" onblur='javascript:chgAttr(rep_param.PROCESS)';>
<input type="hidden" name="END_DATE" value=<<LAST_HIST_SALDO>> note="Tanggal Akhir History" ATTRIB="DM" display="block" dbname="END_DATE" class="font11" readonly>
</td>
</tr>
<tr><td>&nbsp;</td></tr>
<tr>
<td>
<button id="PROCESS_BTN" name="PROCESS" dbname="" display="no" onclick="javascript:doPost();">
<img src="images/button_execute.gif" width="12" height="12">
<span class="font10">&nbsp;Process</span>
</button>
</td>
</tr>
</table>
</form>
</td>
</tr>
</table>
params;
$_SESSION['TEMPLATE_ARRAY_ADDR'] = &$ajaxParamTemplate;
}
function initForm(&$ora_obj) {
$templObj = new PregReplaceCallbackClass('');
$templObj->SetTemplateArray('TEMPLATE_ARRAY_ADDR');
$date = show_tanggal("Y");
$_SESSION['ARRAY_ADDR_VAR'] = &$variable_array;
$variable_array['DATE'] = $date;
$variable_array['LAST_HIST_SALDO'] = build_tanggal(LAST_HIST_SALDO);
$templObj->SetFormatName('PARAM');
$result = $templObj->PregReplaceCallback();
return $result;
}
function do_post(&$ora_obj) {
$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;
$_REQUEST["$field_name"] = $field_value;
}
$_REQUEST["USER_ID"] = $_SESSION["KD_USER"];
$_REQUEST["IPNUM"] = gethostbyname($_SERVER['REMOTE_ADDR']);
$_REQUEST["PAGENAME"] = 'rebuild_saldo_selisih.php';
if ($ora_obj->checkProcedure('MAP_DWH', 'REBUILD_SALDO_SELISIH', 'DWH') > 0) {
//$ora_obj->SetServerOutput(true);
$ora_obj->set_auto_commit();
$proc_call = 'DWH.MAP_DWH.REBUILD_SALDO_SELISIH';
$stmt = "begin {$proc_call}(:Var1, :Var2, :Var3); end;";
$stmt_res = oci_parse($ora_obj->conn,$stmt);
oci_bind_by_name($stmt_res, ":Var1",$_REQUEST["ACCOUNT_NO"], 10);
oci_bind_by_name($stmt_res, ":Var2",$_REQUEST["START_DATE"]);
oci_bind_by_name($stmt_res, ":Var3",$_REQUEST["END_DATE"]);
if (!oci_execute($stmt_res, $ora_obj->execution_mode)) {
$e = oci_error($stmt_res);
$retVal = split("\n",$e['message']);
} else {
$retVal = 'DONE';
}
if (!is_null($stmt_res)):oci_free_statement($stmt_res);endif;
//$ora_obj->GetDbmsOutput();
//$ora_obj->SetServerOutput(false);
} else {
$retVal = 'NOT_RUN';
}
return $retVal;
}
function do_check(&$ora_obj) {
$paramSQL = <<< sql
SELECT m.rename1 acc_name,
a.reclbl reclbl,
a.hist_saldo hist_saldo,
abs(a.reclbl - a.hist_saldo) selisih
FROM v_balance a, m5re_staging m
WHERE a.recode = '{$_REQUEST['ACCOUNT_NO']}'
AND a.recode = m.recode
AND abs(a.reclbl - a.hist_saldo) > 0.001
sql;
$paramArray = $ora_obj->ORA_SelectData($paramSQL,null,null,OCI_FETCHSTATEMENT_BY_ROW);
if ($ora_obj->nrows>0) {
$reclbl = $paramArray[0]['RECLBL'];
$hist_saldo = $paramArray[0]['HIST_SALDO'];
$selisih = $paramArray[0]['SELISIH'];
$rename = $paramArray[0]['ACC_NAME'];
$result = 'Data Saldo Nomor Rekening <BR>';
$result .= $_REQUEST['ACCOUNT_NO'].' - '.$rename.'<BR><BR>';
$result .= 'Master Rekening: '.$reclbl.'<BR>';
$result .= 'History Saldo: '.$hist_saldo.'<BR>';
$result .= 'Selisih: '.$selisih;
} else {
$result = '0';
}
return $result;
}
?>