Files
edata/apps/php/sim/renstra_program.php
T
2026-06-07 14:39:54 +07:00

198 lines
15 KiB
PHP

<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/sim/renstra_program.php
Desc. : PHP - Simulasi Program Renstra ke SIPD Kemendagri
Created By : Siau Pheng ([email protected]).
Created Date : October 28th, 2011.
Last Modified : March 30th, 2022.
(c) 2011 - 2022, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../../vendor/autoload.php");
require_once(__DIR__."/../func.sippd.php");
use siaupheng\fonia4\DB\MySQL;
use siaupheng\fonia4\DB\SQL;
use siaupheng\fonia4\Web\Param;
use siaupheng\fonia4\Web\Table;
use siaupheng\fonia4\Web\Form;
function Ren_Tambah_Program($id_rpjmd=0, $id_opd=0) {
global $db;
$ahasil = array();
$tsql = ($id_opd == 0) ? "" : " AND OPDID='".$id_opd."'";
$db->Query("SELECT AP.*,RS1.SIPD_UNIK SIPD_RPJMD_SASARAN,RS.SIPD_UNIK SIPD_RENSTRA_SASARAN,RT.SIPD_UNIK SIPD_RENSTRA_TUJUAN,O.SIPD_Unit,S.ProgID ID_PROGRAM,S.BUID FROM (SELECT * FROM renstra_prog WHERE RPJMDID='".$id_rpjmd."'".$tsql." AND SIPD_RENSTRA='') AP LEFT JOIN rpjmd_sasaran RS1 ON (RS1.RD_SASARID=AP.RD_SASARID) LEFT JOIN renstra_sasaran RS ON (RS.RA_SASARID=AP.RA_SASARID) LEFT JOIN renstra_tujuan RT ON (RT.RA_TUJID=AP.RA_TUJID) LEFT JOIN para90_opd O ON (O.OPDID=AP.OPDID) LEFT JOIN (SELECT ProgID,BUID,Lama_ProgID FROM para90_sipd GROUP BY Lama_ProgID) S ON (S.Lama_ProgID=AP.ProgID)");
while ($db->Next()) {
$test = "kamus=program&aksi=tambah_kamus&id_opd_renstra=".$db->Row("SIPD_Unit")."&id_bidur_renstra=".$db->Row("BUID")."&kode_sasaran_rpjm=".$db->Row("SIPD_RPJMD_SASARAN")."&kode_tujuan=".$db->Row("SIPD_RENSTRA_TUJUAN")."&tujuan_teks=&tujuan_no=&kode_sasaran=".$db->Row("SIPD_RENSTRA_SASARAN")."&kode_unik_program=&id_program_renstra=&program_renstra=".$db->Row("ID_PROGRAM")."";
$test_post = base64_encode($test);
$test_post = str_replace("=", "@", $test_post);
$ahasil[] = "\$.ajax({url:lru13,type:'post',data:'_token=".$_SESSION['__WEB_USER']['SIPD_TOKEN']."&v1bnA1m=".$_SESSION['__WEB_USER']['SIPD_ACAK']."&xSj0S=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Safari/537.36&DsK121m=".$test_post."',success: function(data){if(data['result']=='error'){console.error(data['message']);}},error: function(jqXHR, textStatus, error){console.error('ERROR PARAH');}});<br>";
}
$ahasil[] = "\$('#tab-bar-program').trigger('click');";
return $ahasil;
}
function Ren_Ubah_Program($id_rpjmd=0, $id_opd=0) {
global $db;
$ahasil = array();
return $ahasil;
}
function Ren_Tambah_Indi($id_rpjmd=0, $id_opd=0) {
global $db;
$ahasil = array();
$tsql = ($id_opd == 0) ? "" : " AND OPDID='".$id_opd."'";
$db->Query("SELECT I.*,AP.SIPD_RENSTRA SIPD_RENSTRA_PROG,RS1.SIPD_UNIK SIPD_RPJMD_SASARAN,RS.SIPD_UNIK SIPD_RENSTRA_SASARAN,RT.SIPD_UNIK SIPD_RENSTRA_TUJUAN,O.SIPD_Unit,S.ProgID ID_PROGRAM,S.BUID,T.K_Satuan FROM (SELECT * FROM renstra_prog_indi WHERE RPJMDID='".$id_rpjmd."'".$tsql." AND SIPD_RENSTRA='') I LEFT JOIN renstra_prog AP ON (AP.RA_PROGID=I.RA_PROGID) LEFT JOIN rpjmd_sasaran RS1 ON (RS1.RD_SASARID=AP.RD_SASARID) LEFT JOIN renstra_sasaran RS ON (RS.RA_SASARID=AP.RA_SASARID) LEFT JOIN renstra_tujuan RT ON (RT.RA_TUJID=AP.RA_TUJID) LEFT JOIN para90_opd O ON (O.OPDID=AP.OPDID) LEFT JOIN para_satuan T ON (T.SatuanID=I.SatuanID) LEFT JOIN (SELECT ProgID,BUID,Lama_ProgID FROM para90_sipd GROUP BY Lama_ProgID) S ON (S.Lama_ProgID=AP.ProgID) WHERE AP.SIPD_RENSTRA<>''");
while ($db->Next()) {
$k_satuan = $db->Row("K_Satuan");
$test = "kamus=indikator_program&aksi=tambah_kamus&id_opd_renstra=".$db->Row("SIPD_Unit")."&id_bidur_renstra=".$db->Row("BUID")."&kode_sasaran_rpjm=".$db->Row("SIPD_RPJMD_SASARAN")."&kode_tujuan=".$db->Row("SIPD_RENSTRA_TUJUAN")."&tujuan_teks=&tujuan_no=&kode_sasaran=".$db->Row("SIPD_RENSTRA_SASARAN")."&kode_unik_program=".$db->Row("SIPD_RENSTRA_PROG")."&id_program_renstra=&id_indikator_outcome=&outcome_teks=".str_replace(" ","+",$db->Row("Txt_Indi"))."&target_awal_outcome=".$db->Row("Indi_Awal")."&satuan_awal_outcome=".$k_satuan."&target_outcome%5B%5D=".$db->Row("Indi_T1")."&satuan_outcome%5B%5D=".$k_satuan."&anggaran_outcome%5B%5D=".$db->Row("Pagu_T1")."&target_outcome%5B%5D=".$db->Row("Indi_T2")."&satuan_outcome%5B%5D=".$k_satuan."&anggaran_outcome%5B%5D=".$db->Row("Pagu_T2")."&target_outcome%5B%5D=".$db->Row("Indi_T3")."&satuan_outcome%5B%5D=".$k_satuan."&anggaran_outcome%5B%5D=".$db->Row("Pagu_T3")."&target_outcome%5B%5D=".$db->Row("Indi_T4")."&satuan_outcome%5B%5D=".$k_satuan."&anggaran_outcome%5B%5D=".$db->Row("Pagu_T4")."&target_outcome%5B%5D=".$db->Row("Indi_T5")."&satuan_outcome%5B%5D=".$k_satuan."&anggaran_outcome%5B%5D=".$db->Row("Pagu_T5")."&target_akhir_outcome=".$db->Row("Indi_Akhir")."&satuan_akhir_outcome=".$k_satuan."";
$test_post = base64_encode($test);
$test_post = str_replace("=", "@", $test_post);
$ahasil[] = "\$.ajax({url:lru13,type:'post',data:'_token=".$_SESSION['__WEB_USER']['SIPD_TOKEN']."&v1bnA1m=".$_SESSION['__WEB_USER']['SIPD_ACAK']."&xSj0S=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Safari/537.36&DsK121m=".$test_post."',success: function(data){if(data['result']=='error'){console.error(data['message']);}},error: function(jqXHR, textStatus, error){console.error('ERROR PARAH');}});<br>";
}
$ahasil[] = "\$('#tab-bar-program').trigger('click');";
return $ahasil;
}
function Ren_Ubah_Indi($id_rpjmd=0, $id_opd=0) {
global $db;
$ahasil = array();
$tsql = ($id_opd == 0) ? "" : " AND OPDID='".$id_opd."'";
$db->Query("SELECT I.*,AP.SIPD_RENSTRA SIPD_RENSTRA_PROG,RS1.SIPD_UNIK SIPD_RPJMD_SASARAN,RS.SIPD_UNIK SIPD_RENSTRA_SASARAN,RT.SIPD_UNIK SIPD_RENSTRA_TUJUAN,O.SIPD_Unit,S.ProgID ID_PROGRAM,S.BUID,T.K_Satuan FROM (SELECT * FROM renstra_prog_indi WHERE RPJMDID='".$id_rpjmd."'".$tsql." AND SIPD_RENSTRA<>'') I LEFT JOIN renstra_prog AP ON (AP.RA_PROGID=I.RA_PROGID) LEFT JOIN rpjmd_sasaran RS1 ON (RS1.RD_SASARID=AP.RD_SASARID) LEFT JOIN renstra_sasaran RS ON (RS.RA_SASARID=AP.RA_SASARID) LEFT JOIN renstra_tujuan RT ON (RT.RA_TUJID=AP.RA_TUJID) LEFT JOIN para90_opd O ON (O.OPDID=AP.OPDID) LEFT JOIN para_satuan T ON (T.SatuanID=I.SatuanID) LEFT JOIN (SELECT ProgID,BUID,Lama_ProgID FROM para90_sipd GROUP BY Lama_ProgID) S ON (S.Lama_ProgID=AP.ProgID) WHERE AP.SIPD_RENSTRA<>''");
while ($db->Next()) {
$k_satuan = $db->Row("K_Satuan");
$test = "kamus=indikator_program&aksi=ubah_kamus&id_opd_renstra=".$db->Row("SIPD_Unit")."&id_bidur_renstra=".$db->Row("BUID")."&kode_sasaran_rpjm=".$db->Row("SIPD_RPJMD_SASARAN")."&kode_tujuan=".$db->Row("SIPD_RENSTRA_TUJUAN")."&tujuan_teks=&tujuan_no=&kode_sasaran=".$db->Row("SIPD_RENSTRA_SASARAN")."&sasaran_renstra=".$db->Row("SIPD_RENSTRA_SASARAN")."&kode_unik_program=".$db->Row("SIPD_RENSTRA_PROG")."&id_program_renstra=&program_renstra=".$db->Row("ID_PROGRAM")."&id_indikator_outcome=".$db->Row("SIPD_RENSTRA")."&outcome_teks=".str_replace(" ","+",$db->Row("Txt_Indi"))."&target_awal_outcome=".$db->Row("Indi_Awal")."&satuan_awal_outcome=".$k_satuan."&target_outcome%5B%5D=".$db->Row("Indi_T1")."&satuan_outcome%5B%5D=".$k_satuan."&anggaran_outcome%5B%5D=".$db->Row("Pagu_T1")."&target_outcome%5B%5D=".$db->Row("Indi_T2")."&satuan_outcome%5B%5D=".$k_satuan."&anggaran_outcome%5B%5D=".$db->Row("Pagu_T2")."&target_outcome%5B%5D=".$db->Row("Indi_T3")."&satuan_outcome%5B%5D=".$k_satuan."&anggaran_outcome%5B%5D=".$db->Row("Pagu_T3")."&target_outcome%5B%5D=".$db->Row("Indi_T4")."&satuan_outcome%5B%5D=".$k_satuan."&anggaran_outcome%5B%5D=".$db->Row("Pagu_T4")."&target_outcome%5B%5D=".$db->Row("Indi_T5")."&satuan_outcome%5B%5D=".$k_satuan."&anggaran_outcome%5B%5D=".$db->Row("Pagu_T5")."&target_akhir_outcome=".$db->Row("Indi_Akhir")."&satuan_akhir_outcome=".$k_satuan."";
$test_post = base64_encode($test);
$test_post = str_replace("=", "@", $test_post);
$ahasil[] = "\$.ajax({url:lru13,type:'post',data:'_token=".$_SESSION['__WEB_USER']['SIPD_TOKEN']."&v1bnA1m=".$_SESSION['__WEB_USER']['SIPD_ACAK']."&xSj0S=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Safari/537.36&DsK121m=".$test_post."',success: function(data){if(data['result']=='error'){console.error(data['message']);}},error: function(jqXHR, textStatus, error){console.error('ERROR PARAH');}});<br>";
}
$ahasil[] = "\$('#tab-bar-program').trigger('click');";
return $ahasil;
}
/************************** RESPON HERE ***************************/
$db = $db ?? new MySQL();
$ajson = array();
$data = Param::Get("data");
$mode = Param::Get("mode");
$id_rpjmd = $_SESSION['__WEB_APP']['RENC_RPJMDID'];
$id_opd = Param::Get("OPDID", 0);
if ( $data == "detail-opd" ) {
$tcari = trim(Param::Get("Cari_OPD"));
$qsql = "RPJMDID='".$id_rpjmd."'";
$msql = "M.Aktif=1";
$msql .= ($tcari=="") ? "" : " AND CONCAT(M.K_OPD,M.N_OPD) LIKE '%".$tcari."%'";
$obj = new Table($db);
$obj->set_query("SELECT K.*,M.OPDID OPDID2,M.K_OPD,M.N_OPD,CONCAT(IFNULL(K.ITEM_UDAH,0),' / ',IFNULL(K.ITEM_SEMUA,0)) Stat_Master,CONCAT(IFNULL(I.INDI_UDAH,0),' / ',IFNULL(I.INDI_SEMUA,0)) Stat_Indi,IF(IFNULL(K.ITEM_UDAH,0)=IFNULL(K.ITEM_SEMUA,0) AND IFNULL(I.INDI_UDAH,0)=IFNULL(I.INDI_SEMUA,0),1,0) IDO FROM vi_para90_opd M LEFT JOIN (SELECT OPDID,COUNT(*) ITEM_SEMUA,SUM(IF(SIPD_RENSTRA='',0,1)) ITEM_UDAH FROM renstra_prog WHERE ".$qsql." GROUP BY OPDID) K ON (K.OPDID=M.OPDID) LEFT JOIN (SELECT OPDID,COUNT(*) INDI_SEMUA,SUM(IF(SIPD_RENSTRA='',0,1)) INDI_UDAH FROM renstra_prog_indi WHERE ".$qsql." GROUP BY OPDID) I ON (I.OPDID=M.OPDID) WHERE ".$msql);
$obj->add_field("OPDID2", "OPD", "hid");
$obj->add_field("K_OPD", "Kode", "c");
$obj->add_field("N_OPD", "Nama Perangkat Daerah", "awr");
$obj->add_field("Stat_Master", "Program", "c");
$obj->add_field("Stat_Indi", "Indikator", "c");
$obj->set_row_color("IDO", "1", "rsuccess");
$obj->set_field_order("K_OPD", "A");
$obj->add_row_btn("send", "+ Program", "RenstraProgramJS.kode_tambah_prog");
$obj->add_row_btn("send0", "= Program", "RenstraProgramJS.kode_ubah_prog");
$obj->add_row_btn("document", "+ Indikator", "RenstraProgramJS.kode_tambah_indi");
$obj->add_row_btn("document0", "= Indikator", "RenstraProgramJS.kode_ubah_indi");
$obj->set_func_navi("RenstraProgramJS.data_query('detail-opd')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divOPD");
} else if ( $data == "kode-tambah-prog" ) {
$ajson = Ren_Tambah_Program($id_rpjmd, $id_opd);
} else if ( $data == "kode-ubah-prog" ) {
$ajson = Ren_Ubah_Program($id_rpjmd, $id_opd);
} else if ( $data == "kode-tambah-indi" ) {
$ajson = Ren_Tambah_Indi($id_rpjmd, $id_opd);
} else if ( $data == "kode-ubah-indi" ) {
$ajson = Ren_Ubah_Indi($id_rpjmd, $id_opd);
} else if ( $data == "upload-json" || $data == "simpan-json" ) {
$ajson['result'] = 0;
if ($data == "upload-json") {
$adata = json_decode(file_get_contents($_FILES['file']['tmp_name']), true);
} else {
$adata = json_decode(stripslashes(Param::Get("Kode_JSON", "{}")), true);
}
$db->Query("DELETE FROM sipd_renstra_prog");
foreach ($adata['data'] as $arec) {
$db->Query("INSERT INTO sipd_renstra_prog (ID_PROG,ID_UNIT,UNIK_PROG,UNIK_INDI,Txt_Indi) VALUES ('".$arec['id_program']."','".$arec['id_unit']."','".$arec['id_unik']."','".$arec['id_unik_indikator']."','".$arec['indikator']."')");
}
$db->Query("UPDATE sipd_renstra_prog A,para90_prog B SET A.ProgID=B.ProgID WHERE A.ID_PROG=B.ProgID");
$db->Query("UPDATE sipd_renstra_prog A,para90_sipd B SET A.ProgID=B.Lama_ProgID WHERE A.ID_PROG=B.ProgID AND A.ProgID=0");
$db->Query("UPDATE sipd_renstra_prog A,para90_opd B SET A.OPDID=B.OPDID WHERE A.ID_UNIT=B.SIPD_UNIT AND A.ID_UNIT>0");
//$db->Query("UPDATE renstra_prog SET SIPD_RENSTRA='' WHERE RPJMDID='".$id_rpjmd."'");
//$db->Query("UPDATE renstra_prog_indi SET SIPD_RENSTRA='' WHERE RPJMDID='".$id_rpjmd."'");
$db->Query("UPDATE renstra_prog A,sipd_renstra_prog B SET A.SIPD_RENSTRA=B.UNIK_PROG WHERE A.RPJMDID='".$id_rpjmd."' AND A.ProgID=B.ProgID AND A.OPDID=B.OPDID");
$db->Query("UPDATE renstra_prog_indi A,sipd_renstra_prog B SET A.SIPD_RENSTRA=B.UNIK_INDI WHERE A.RPJMDID='".$id_rpjmd."' AND A.ProgID=B.ProgID AND A.OPDID=B.OPDID AND TRIM(REPLACE(REPLACE(A.Txt_Indi,'\r',''),'\n',''))=TRIM(B.Txt_Indi)");
$ajson['result'] = 1;
} else if ( $data == "detail-sipd" ) {
$form = new Form($db);
$kode_token = $form->textbox("_", "Kode_Token", $_SESSION['__WEB_USER']['SIPD_TOKEN'], true, true, "text");
$kode_acak = $form->textbox("_", "Kode_Acak", $_SESSION['__WEB_USER']['SIPD_ACAK'], true, true, "text");
echo '
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Kode_Token">Token</label>
<div class="col">'.$kode_token.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Kode_Acak">Acak</label>
<div class="col">'.$kode_acak.'</div>
</div>';
exit;
} else if ( $data == "simpan-sipd" ) {
$_SESSION['__WEB_USER']['SIPD_TOKEN'] = Param::Get("Kode_Token", "KODE_TOKEN");
$_SESSION['__WEB_USER']['SIPD_ACAK'] = Param::Get("Kode_Acak", "KODE_ACAK");
} else if ( $data == "default") {
echo '
<div class="fade-in">
<div class="card"><div class="card-header custom-style">Push Program Renstra ke SIPD Kemendagri</div><div class="card-body">
<div class="row mb-1">
<div class="col-md-9 col-sm-12"><div class="input-group"><input class="form-control" id="Cari_OPD" placeholder="Kunci Pencarian" type="text"><button class="btn btn-info shadow-none" type="button" id="butSearch">Cari</button><button class="btn btn-secondary shadow-none" type="button" id="butAll">Semua</button></div></div>
<div class="col-md-3 col-sm-12 mt-2 mt-sm-0 d-flex justify-content-between">
<div class="dropdown">
<button class="btn btn-secondary shadow-none dropdown-toggle" type="button" id="dropdownMenuButton" data-coreui-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Opsi Semua Data</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item" href="#" id="opsiUpload">Upload JSON</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#" id="opsiTambahProg">Tambah Program</a>
<a class="dropdown-item" href="#" id="opsiUbahProg">Ubah Program</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#" id="opsiTambahIndi">Tambah Indikator</a>
<a class="dropdown-item" href="#" id="opsiUbahIndi">Ubah Indikator</a>
</div>
</div>
<button class="btn btn-secondary shadow-none" type="button" id="butSIPD">Setup SIPD</button>
</div>
</div>
<input id="OPDID" type="hidden">
<div id="divOPD">&nbsp;</div>
</div></div>
</div>';
exit;
}
send_json($ajson, true);
?>