upgrade dan bugfix kinerja, faktor pendukung, dll

This commit is contained in:
2026-09-07 14:26:05 +07:00
parent 881c1f99fb
commit 04a562b4c3
8 changed files with 297 additions and 73 deletions
+56 -33
View File
@@ -7,7 +7,7 @@
Desc. : PHP - Kelola Realisasi Kinerja OPD
Created By : Siau Pheng ([email protected]).
Created Date : December 7th, 2011.
Last Modified : August 26th, 2026.
Last Modified : September 7th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
@@ -40,6 +40,7 @@ $id_keg = Param::Get("KegID", 0);
$id_sub = Param::Get("SubID", 0);
$id_akun = Param::Get("AkunID", 0);
$id_dpa_prog = Param::Get("DPAProgID", 0);
$id_dpa_sub = Param::Get("DPASubID", 0);
if ( in_array($data, ["tabel-opd","tabel-prog","tabel-keg","tabel-sub","tabel-akun","detail-prog","detail-keg","detail-sub"]) ) {
$qsql = " Tahun='".$thn_data."'";
@@ -245,20 +246,10 @@ if ( $data == "tabel-opd" ) {
$sql->add_param_stamp("Real_Stamp");
$sql->add_param_userid("Real_UserID");
$sql->add_where("Tahun", $thn_data);
$sql->add_where("DPASubID", Param::Get("DPASubID",0));
$sql->add_where("DPASubID", $id_dpa_sub);
$sql->UpdateDB();
$db->Query("UPDATE dpa_sub_output SET Real_TW".$tw_data."='".Param::Get("Real_TW")."' WHERE Tahun='".$thn_data."' AND DPASubOutputID='".Param::Get("DPASubOutputID")."' LIMIT 1");
/*$aparam = Param::Get_Array();
foreach($aparam as $key => $val) {
if (strpos($key, "Output_TW_") !== false) {
$aid = explode("_", str_replace("Output_TW_","",$key));
$db->Query("UPDATE dpa_sub_output SET Real_TW".$aid[0]."='".$val."' WHERE Tahun='".$thn_data."' AND DPASubOutputID='".$aid[1]."' LIMIT 1");
// update kinerja ke dpa_sub
//$db->Query("UPDATE dpa_sub A, (SELECT IF(Real_TW1=0,0,IF(Target_Output=0,100,Real_TW1/Target_Output*100)) Kin_TW1,IF(Real_TW2=0,0,IF(Target_Output=0,100,Real_TW2/Target_Output*100)) Kin_TW2,IF(Real_TW3=0,0,IF(Target_Output=0,100,Real_TW3/Target_Output*100)) Kin_TW3,IF(Real_TW4=0,0,IF(Target_Output=0,100,Real_TW4/Target_Output*100)) Kin_TW4 FROM dpa_sub_output WHERE Tahun='".$thn_data."' AND DPASubOutputID='".$aid[1]."' LIMIT 1) B SET A.Kin_TW1=B.Kin_TW1,A.Kin_TW2=B.Kin_TW2,A.Kin_TW3=B.Kin_TW3,A.Kin_TW4=B.Kin_TW4 WHERE A.Tahun='".$thn_data."' AND DPASubID='".Param::Get("DPASubID",0)."' LIMIT 1");
}
}*/
}
$obj = new Table($db);
@@ -356,7 +347,7 @@ if ( $data == "tabel-opd" ) {
$arec = $db->AllRow();
$_p_input = (($arec['TipeDataID'] ?? 0) > 0) ? json_decode($arec['P_Input'] ?? '{}', true) : [];
$_val_cap = $arec['Real_TW'.$tw_data];
$tcss = 'border '.($_val_cap==""?'border-danger':'border-success').' rounded';
$tcss = 'border '.(empty($_val_cap)?'border-danger':'border-success').' rounded';
$form = new Form($db);
$tindi = $form->textarea('_', 'Text_Indi', $arec['Text_Indi']." (".$arec['Satuan_Indi'].')', false, false, 2);
@@ -402,27 +393,32 @@ if ( $data == "tabel-opd" ) {
echo '<input type="hidden" id="DPAProgID" value="'.$id_dpa_prog.'">';
} else if ( $data == "detail-sub" ) {
$id_dpa_sub = Param::Get("DPASubID", 0);
$adetail = [];
$db->Query("SELECT *,(RealK_TW1+RealK_TW2+RealK_TW3+RealK_TW4) Tot_Real FROM dpa_sub WHERE Tahun='".$thn_data."' AND DPASubID='".$id_dpa_sub."' LIMIT 1");
if ($db->Next()) $adetail = $db->AllRow();
$db->Query("SELECT N_Sub FROM para90_submap WHERE Tahun='".$_SESSION['__WEB_APP']['SUBMAP_TAHUN']."' AND SubID='".$id_sub."' LIMIT 1");
if ($db->Next()) $adetail = array_merge($adetail, $db->AllRow());
$db->Query("SELECT SUM(IF(TW='".$tw_data."',1,0)) Eviden_TW,IF(TW='".$tw_data."',Eviden_Name,'') Eviden_Name FROM dpa_sub_eviden WHERE Tahun='".$adetail['Tahun']."' AND DPASubID='".$adetail['DPASubID']."' AND Aktif=1");
if ($db->Next()) $adetail = array_merge($adetail, $db->AllRow());
$db->Query("SELECT Username Update_User FROM app_operator WHERE UserID='".$adetail['Update_UserID']."' LIMIT 1");
if ($db->Next()) $adetail = array_merge($adetail, $db->AllRow());
$db->Query("SELECT Username Real_User FROM app_operator WHERE UserID='".$adetail['Real_UserID']."' LIMIT 1");
if ($db->Next()) $adetail = array_merge($adetail, $db->AllRow());
foreach($adetail as $_key => $_val) {
foreach ($adetail as $_key => $_val) {
if (strpos($_key, "Pagu_")!==false || strpos($_key, "RealK_")!==false || strpos($_key, "RealF_")!==false) $adetail[$_key] = doubleval($_val);
}
if ((int) $adetail['Eviden_TW'] === 0) {
$adetail['Eviden_TW'] = 0;
$adetail['Eviden_Name'] = 'belum ada file eviden';
}
$form = new Form($db);
$tkode = $form->textbox("_", "K_Sub", $adetail['K_Sub'], false, false);
$tsub = $form->textarea("_", "N_Sub", $adetail['N_Sub'], false, false, 2);
$tcatatan = $form->textarea("_", "Real_Catatan", $adetail['Real_Catatan'], $bln_en, false, 2);
$tcatatan = $form->textarea("_", "Real_Catatan", $adetail['Real_Catatan'], $bln_en, true, 1);
$tno_kontr = $form->textbox("_", "Real_No_Kontrak", $adetail['Real_No_Kontrak'], $bln_en, false, "text", "nomor kontrak");
$tpelak = $form->textarea("_", "Real_Pelaksana", $adetail['Real_Pelaksana'], $bln_en, false, 2, "nama pelaksana");
$tinfo = $form->textbox("_", "Informasi", "Diperbaharui oleh : ".$adetail['Update_User'].", pada : ".tgl_sql2str($adetail['Update_Stamp'], true), false, false);
$tinfo = $form->textbox("_", "Informasi", "Diperbaharui oleh : ".($adetail['Real_User'] ?? $adetail['Update_User']).", pada : ".tgl_sql2str(($adetail['Real_Stamp'] ?? $adetail['Update_Stamp']), true), false, false);
echo '
<div class="row mb-1">
@@ -447,8 +443,8 @@ if ( $data == "tabel-opd" ) {
$tindi = $form->textarea("_", "Text_Indi", $aoutput['Text_Output'], false, false, 1);
$tsasar = $form->textbox("_", "Sasaran_Output", $aoutput['Sasaran_Output'], false, false, "text");
$tstatus = $form->textbox("_", "Status_Indi", ucfirst($aoutput['Status_Output']), false, false, "text");
$ttarget = $form->textbox("_", "Target_Indi", (int)$aoutput['Target_Output']." ".$aoutput['Satuan_Output'], false, false, "text");
$treal = $form->textbox("_", "Real_TW", (int)$aoutput["Real_TW".$tw_data], $bln_en, true, "integer");
$ttarget = $form->textbox("_", "Target_Indi", (int) $aoutput['Target_Output']." ".$aoutput['Satuan_Output'], false, false, "text");
$treal = $form->textbox("_", "Real_TW", (int) $aoutput["Real_TW".$tw_data], $bln_en, true, "integer");
echo '
<div class="card"><div class="card-body">
<div class="row mb-2">
@@ -463,28 +459,31 @@ if ( $data == "tabel-opd" ) {
<label class="col-sm-4 col-lg-2 col-form-label">Status Output</label>
<div class="col-sm-6 col-lg-4">'.$tstatus.'</div>
</div>
<div class="row">
<div class="row mb-1">
<label class="col-sm-4 col-lg-2 col-form-label">Target & Realisasi</label>
<div class="col-sm-6 col-lg-4">'.$ttarget.'</div>
<div class="col-sm-8 col-lg-4"><div class="input-group">'.$treal.'<span class="input-group-text">'.$aoutput['Satuan_Output'].'</span></div></div>
</div>
<div class="row mb-1"><div class="col"><hr class="my-1"></div></div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-2 col-form-label">Dokumen Eviden</label>
<div class="col">
<div class="input-group">
<label class="btn '.((int) $adetail['Eviden_TW']===0?'btn-outline-danger':'btn-outline-success').'" id="LabelEviden1" for="FileEviden1"><i class="bi-cloud-upload me-1"></i>Eviden<input type="file" name="FileEviden1" id="FileEviden1" class="d-none" accept=".pdf, .doc, .docx, .xls, .xlsx, .png, .jpg, .mpg, .mp4"></label>
<label class="form-control" id="Eviden_Name" for="FileEviden1">'.$adetail['Eviden_Name'].'</label>
</div>
<small class="text-muted">Ukuran file max <strong>10MB</strong> ( pdf / doc / docx / xls / xlsx / png / jpg / mpg / mp4 )</small>
</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-2 col-form-label" for="Real_Catatan">Catatan / Kendala</label>
<div class="col">'.$tcatatan.'</div>
</div>
</div></div>';
echo '
</div></div></div>
<div class="accordion-item">
<h2 class="accordion-header" id="flush-two"><button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#flush-coll-two" aria-controls="flush-coll-two" aria-expanded="false">Catatan / Kendala / Permasalahan dari Sub Kegiatan</button></h2>
<div id="flush-coll-two" class="accordion-collapse collapse" aria-labelledby="flush-head-two" data-bs-parent="#accorDPAReal">
<div class="accordion-body">
<div class="card"><div class="card-body">
<div class="row mb-1">
<label class="col-sm-4 col-lg-2 col-form-label" for="Real_Catatan">Catatan /<br>Kendala / DLL</label>
<div class="col">'.$tcatatan.'</div>
</div>
</div></div>
</div></div></div>
<div class="accordion-item">
<h2 class="accordion-header" id="flush-tri"><button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#flush-coll-tri" aria-controls="flush-coll-tri" aria-expanded="false">Nomor Kontrak & Nama Pelaksana&nbsp;<i>(jika informasi tersedia)</i></button></h2>
<div id="flush-coll-tri" class="accordion-collapse collapse" aria-labelledby="flush-head-tri" data-bs-parent="#accorDPAReal">
@@ -502,6 +501,7 @@ if ( $data == "tabel-opd" ) {
</div></div></div>
</div>
<div class="row mt-2"><div class="col">'.$tinfo.'</div></div>
<input type="hidden" id="Eviden_TW" value="'.$adetail['Eviden_TW'].'">
<input type="hidden" id="DPASubID" value="'.$adetail['DPASubID'].'">
<input type="hidden" id="DPASubOutputID" value="'.$aoutput['DPASubOutputID'].'">';
@@ -590,7 +590,30 @@ if ( $data == "tabel-opd" ) {
<input type="hidden" id="REALRP" value="'.$realK_las.'">
<input type="hidden" id="PAGURP" value="'.$adetail['Renc_Keu'].'">';
} else if ( $data == "default") {
} else if ( $data === "eviden-upload") {
$file1_ok = false;
$file1_name = $_FILES['Eviden1']['name'];
$file1_size = $_FILES['Eviden1']['size'];
$file1_ext = pathinfo($file1_name, PATHINFO_EXTENSION);
$ajson['result'] = 0;
if ($file1_size < 10240000) {
$file1_ok = true;
} else {
$ajson['message'] = "Ukuran file diatas 10MB !";
}
if ($file1_ok === true) {
$saveas = md5("EMONEVMPW" . $thn_data . $id_dpa_sub ."1". time()) .".". $file1_ext;
if (!is_dir($_SESSION['__WEB_APP']['REAL_PATH'].'dokumen')) mkdir($_SESSION['__WEB_APP']['REAL_PATH'].'dokumen', 0775, true);
if (move_uploaded_file($_FILES['Eviden1']['tmp_name'], $_SESSION['__WEB_APP']['REAL_PATH'].'dokumen/'.$saveas)) {
$db->Query("INSERT INTO dpa_sub_eviden SET Tahun='".$thn_data."',DPASubID='".$id_dpa_sub."',ORGID='".$id_org."',OPDID='".$id_opd."',TW='".$tw_data."',Eviden_Name='".$file1_name."',Eviden_File='".$saveas."',Eviden_Size='".format_bytes($file1_size)."',UserID='".user_id()."'");
$ajson['result'] = 1;
$ajson['Eviden_Name'] = $file1_name;
$ajson['Eviden_TW'] = 1;
}
}
} else if ( $data === "default") {
echo '
<div class="fade-in">
<div class="card"><div class="card-header custom-style">Kelola Data Realisasi Kinerja Renja OPD // Bulan '.bulan_array()[$bln_data].' '.$thn_data.'</div><div class="card-body">