first commit
This commit is contained in:
@@ -0,0 +1,320 @@
|
||||
<?php
|
||||
|
||||
/*******************************************************************
|
||||
|
||||
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
|
||||
Module : /apps/php/push/rkpd_awal.php
|
||||
Desc. : PHP - Push API RKPD Awal ke SIPD Kemendagri
|
||||
Created By : Siau Pheng ([email protected]).
|
||||
Created Date : October 28th, 2011.
|
||||
Last Modified : August 20th, 2020.
|
||||
|
||||
(c) 2011 - 2020, 3FONIA Software; WWW.3FONIA.COM.
|
||||
|
||||
*******************************************************************/
|
||||
|
||||
require_once(dirname(__FILE__)."/../../../../../modules3/web.auth.php");
|
||||
require_once(dirname(__FILE__)."/../../../../../modules3/web.table.php");
|
||||
require_once(dirname(__FILE__)."/../../../../../modules3/web.form.php");
|
||||
require_once(dirname(__FILE__)."/../../../../../modules3/data.json.php");
|
||||
require_once(dirname(__FILE__)."/../func.sippd.php");
|
||||
|
||||
function Bangda_Request($apost = array(), $tahun=0) {
|
||||
$api_key = "9885846625b49e88baa18d46e2df6ff6";
|
||||
$str_json = json_encode($apost);
|
||||
$curl_array = array(
|
||||
CURLOPT_URL => "https://sipd.go.id/run/serv/push_ranwal?kodepemda=6102&tahun=".$tahun,
|
||||
CURLOPT_RETURNTRANSFER => true,
|
||||
CURLOPT_ENCODING => "",
|
||||
CURLOPT_MAXREDIRS => 10,
|
||||
CURLOPT_TIMEOUT => 0,
|
||||
CURLOPT_FOLLOWLOCATION => true,
|
||||
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
|
||||
CURLOPT_POST => true,
|
||||
CURLOPT_POSTFIELDS => $str_json,
|
||||
CURLOPT_HTTPHEADER => array(
|
||||
"Accept: application/json",
|
||||
"Authorization: Bearer ".$api_key,
|
||||
"Content-Type: application/json",
|
||||
"Content-Length: " . strlen($str_json)
|
||||
),
|
||||
CURLOPT_SSL_VERIFYHOST => false,
|
||||
CURLOPT_SSL_VERIFYPEER => false
|
||||
);
|
||||
|
||||
$aresult = array('code' => 0, 'msg' => "");
|
||||
|
||||
$curl = curl_init();
|
||||
curl_setopt_array($curl, $curl_array);
|
||||
$response = curl_exec($curl);
|
||||
$err = curl_error($curl);
|
||||
curl_close($curl);
|
||||
|
||||
$aresult = json_decode($response, true);
|
||||
return $aresult;
|
||||
}
|
||||
|
||||
function Bangda_Data($id_rpjmd=0, $tahun=0, $id_opd=0, $aprog=array()) {
|
||||
global $db, $db2, $db3, $db4;
|
||||
$apost = array();
|
||||
$askpd = array();
|
||||
|
||||
$tsql = (count($aprog)>0) ? " AND ProgID IN (". join(",", $aprog) .")" : "";
|
||||
|
||||
$askpd['kodepemda'] = "6102";
|
||||
$askpd['tahun'] = "".$tahun;
|
||||
$askpd['pilihanbidang'] = array();
|
||||
|
||||
// data opd
|
||||
$abidu = array();
|
||||
$db->Query("SELECT O.*,B.N_Bidu,U.N_Urusan FROM para90_opd O LEFT JOIN para90_bidu B ON (B.K_Bidu=O.K_Bidu1) LEFT JOIN para90_urusan U ON (B.K_Urusan=U.K_Urusan) WHERE O.OPDID='".$id_opd."'");
|
||||
if ($db->Next()) {
|
||||
$askpd['kodebidang'] = $db->Row("K_Bidu1");
|
||||
$askpd['uraibidang'] = $db->Row("N_Bidu");
|
||||
$askpd['kodeskpd'] = $db->Row("K_OPD");
|
||||
$askpd['uraiskpd'] = $db->Row("N_OPD");
|
||||
$askpd['uraiurusan'] = $db->Row("N_Urusan");
|
||||
$askpd['pejabat'] = array(
|
||||
'kepalanip'=>$db->Row("P_NIP"),
|
||||
'kepalanama'=>$db->Row("P_Nama"),
|
||||
'kepalajabatan'=>$db->Row("P_Jabatan"),
|
||||
'kepalapangkat'=>$db->Row("P_Pangkat")
|
||||
);
|
||||
$abidu[] = $db->Row("K_Bidu1");
|
||||
if ($db->Row("K_Bidu2")<>"0.00") $abidu[] = $db->Row("K_Bidu2");
|
||||
if ($db->Row("K_Bidu3")<>"0.00") $abidu[] = $db->Row("K_Bidu3");
|
||||
}
|
||||
$db->Query("SELECT * FROM para90_bidu WHERE K_Bidu IN ('".implode("','", $abidu)."')");
|
||||
while ($db->Next()) {
|
||||
$askpd['pilihanbidang'][] = $db->Row("K_Bidu");
|
||||
}
|
||||
|
||||
// data program
|
||||
$askpd['program'] = array();
|
||||
$db->Query("SELECT P.*,PO.N_Prog,B.K_Bidu,B.N_Bidu,IFNULL(S.N_Satuan,'') N_Satuan FROM (SELECT * FROM renja90_prog WHERE Tahun='".$tahun."' AND OPDID='".$id_opd."'".$tsql.") P LEFT JOIN para90_prog PO ON (P.ProgID=PO.ProgID) LEFT JOIN para90_bidu B ON (PO.K_Bidu=B.K_Bidu) LEFT JOIN para_satuan S ON (P.Target_SatuanID=S.SatuanID) ORDER BY P.K_Prog");
|
||||
while ($db->Next()) {
|
||||
$aprog = array();
|
||||
$aprog['kodebidang'] = ($db->Row("K_Bidu")=="X.XX") ? $askpd['kodebidang'] : $db->Row("K_Bidu");
|
||||
$aprog['uraibidang'] = ($db->Row("K_Bidu")=="X.XX") ? $askpd['uraibidang'] : $db->Row("N_Bidu");
|
||||
$aprog['kodeprogram'] = $db->Row("K_Prog");
|
||||
$aprog['uraiprogram'] = $db->Row("N_Prog");
|
||||
$aprog['prioritas'] = array();
|
||||
|
||||
// data indikator program
|
||||
$aprog['capaian'] = array();
|
||||
//$db2->Query("SELECT * FROM rpjmd_prog_indi WHERE RPJMDID='".$id_rpjmd."' AND RD_PROGINDIID IN (SELECT RD_PROGINDIID FROM renstra_detail_indi WHERE RPJMDID='".$id_rpjmd."' AND RA_PROGRAMID='".$db->Row("RA_PROGRAMID")."')");
|
||||
//while ($db2->Next()) {
|
||||
$aindi = array();
|
||||
$aindi['kodeindikator'] = "1";
|
||||
$aindi['tolokukur'] = $db->Row("Indi_Txt");
|
||||
$aindi['satuan'] = $db->Row("N_Satuan");
|
||||
$aindi['real_p3'] = "0";
|
||||
$aindi['pagu_p3'] = "0";
|
||||
$aindi['real_p2'] = "0";
|
||||
$aindi['pagu_p2'] = "0";
|
||||
$aindi['real_p1'] = "0";
|
||||
$aindi['pagu_p1'] = "0";
|
||||
$aindi['target'] = "0";//$db2->Row("Indi_T3");
|
||||
$aindi['pagu'] = "0";//
|
||||
$aindi['pagu_p'] = "0";
|
||||
$aindi['target_n1'] = "0";//$db2->Row("Indi_T4");//todo: set auto sesuai tahun
|
||||
$aindi['pagu_n1'] = "0";// ?
|
||||
$aprog['capaian'][] = $aindi;
|
||||
//}
|
||||
|
||||
// data kegiatan
|
||||
$aprog['kegiatan'] = array();
|
||||
$db2->Query("SELECT D.*,K.N_Keg,IFNULL(S.N_Satuan,'') N_Satuan FROM (SELECT * FROM renja90_keg WHERE Tahun='".$tahun."' AND OPDID='".$id_opd."' AND ProgID='".$db->Row("ProgID")."') D LEFT JOIN para90_keg K ON (D.KegID=K.KegID) LEFT JOIN para_satuan S ON (D.Target_SatuanID=S.SatuanID) ORDER BY D.K_Keg");
|
||||
while ($db2->Next()) {
|
||||
$akeg = array();
|
||||
$akeg['kodekegiatan'] = $db2->Row("K_Keg");
|
||||
$akeg['uraikegiatan'] = $db2->Row("N_Keg");
|
||||
$akeg['pagu'] = $db2->RowFloat("Pagu_Ini");
|
||||
$akeg['pagu_p'] = 0;
|
||||
$akeg['sumberdana'] = array();
|
||||
$db3->Query("SELECT R.*,D.K_Dana FROM (SELECT DanaID,SUM(Pagu_Ini) Pagu_Ini FROM renja90_rinci WHERE Tahun='".$tahun."' AND OPDID='".$id_opd."' AND K_RKA IN (SELECT K_RKA FROM renja90_sub WHERE Tahun='".$tahun."' AND OPDID='".$id_opd."' AND ProgID='".$db->Row("ProgID")."' AND KegID='".$db2->Row("KegID")."') GROUP BY DanaID) R LEFT JOIN para_dana D ON (R.DanaID=D.DanaID)");
|
||||
while ($db3->Next()) {
|
||||
$akeg['sumberdana'][] = array('pagu'=>$db3->RowFloat("Pagu_Ini"),'sumberdana'=>$db3->Row("K_Dana"),'kodesumberdana'=>$db3->Row("DanaID"));
|
||||
}
|
||||
$akeg['prioritas'] = array();
|
||||
/*$db3->Query("SELECT Txt_Misi FROM rpjmd_misi WHERE RPJMDID='".$id_rpjmd."' AND RD_MISIID IN (SELECT P.RD_MISIID FROM rpjmd_prog P LEFT JOIN rpjmd_prog_indi I ON (I.RPJMDID=P.RPJMDID AND I.RD_PROGID=P.RD_PROGID) WHERE I.RD_PROGINDIID IN (SELECT RD_PROGINDIID FROM renstra_detail_indi WHERE RPJMDID='".$id_rpjmd."' AND RA_PROGRAMID='".$db->Row("RA_PROGRAMID")."'))");
|
||||
while ($db3->Next()) {
|
||||
if ($db3->Row("Txt_Misi","")<>"") $akeg['prioritas'][] = array('prioritasdaerah'=>$db3->Row("Txt_Misi"));
|
||||
}*/
|
||||
$akeg['lokasi'] = array();//array(array('lokasi'=>$db2->Row("Lokasi"),'kodelokasi'=>"",'detaillokasi'=>""));
|
||||
$akeg['indikator'] = array();
|
||||
$akeg['indikator'][] = array( 'kodeindikator' => "1",
|
||||
'jenis' => "KELUARAN",
|
||||
'tolokukur' => $db2->Row("Indi_Txt"),
|
||||
'satuan' => $db2->Row("N_Satuan"),
|
||||
'real_p3' => "0",
|
||||
'pagu_p3' => "0",
|
||||
'real_p2' => "0",
|
||||
'pagu_p2' => "0",
|
||||
'real_p1' => "0",
|
||||
'pagu_p1' => $db2->RowFloat("Pagu_Lalu"),
|
||||
'target' => $db2->Row("Target_Ini"),
|
||||
'pagu' => $db2->RowFloat("Pagu_Ini"),
|
||||
'pagu_p' => "0",
|
||||
'target_n1' => 0,//$db2->Row("Target_Dpn")
|
||||
'pagu_n1' => $db2->RowFloat("Pagu_Dpn")
|
||||
);
|
||||
|
||||
// data sub kegiatan
|
||||
$akeg['subkegiatan'] = array();
|
||||
$db3->Query("SELECT D.*,K.N_Sub,IFNULL(S.N_Satuan,'') N_Satuan FROM (SELECT * FROM renja90_sub WHERE Tahun='".$tahun."' AND OPDID='".$id_opd."' AND ProgID='".$db->Row("ProgID")."' AND KegID='".$db2->Row("KegID")."') D LEFT JOIN para90_sub K ON (D.SubID=K.SubID) LEFT JOIN para_satuan S ON (D.Target_SatuanID=S.SatuanID) ORDER BY D.K_Sub");
|
||||
while ($db3->Next()) {
|
||||
$asubkeg = array();
|
||||
$asubkeg['kodesubkegiatan'] = $db3->Row("K_Sub");
|
||||
$asubkeg['uraisubkegiatan'] = $db3->Row("N_Sub");
|
||||
$asubkeg['pagu'] = $db3->RowFloat("Pagu_Ini");
|
||||
$asubkeg['pagu_p'] = "0";
|
||||
$asubkeg['sumberdana'] = array();
|
||||
$db4->Query("SELECT R.*,D.K_Dana FROM (SELECT DanaID,SUM(Pagu_Ini) Pagu_Ini FROM renja90_rinci WHERE Tahun='".$tahun."' AND OPDID='".$id_opd."' AND K_RKA='".$db3->Row("K_RKA")."' GROUP BY DanaID) R LEFT JOIN para_dana D ON (R.DanaID=D.DanaID)");
|
||||
while ($db4->Next()) {
|
||||
$asubkeg['sumberdana'][] = array('pagu'=>$db4->RowFloat("Pagu_Ini"),'sumberdana'=>$db4->Row("K_Dana"),'kodesumberdana'=>$db4->Row("DanaID"));
|
||||
}
|
||||
$asubkeg['prioritas'] = array();
|
||||
$asubkeg['lokasi'] = array();
|
||||
if ($db3->Row("Lokasi")<>"") $asubkeg['lokasi'][] = array('lokasi'=>$db3->Row("Lokasi"),'kodelokasi'=>"",'detaillokasi'=>"");//todo: kodelokasi
|
||||
$asubkeg['indikator'] = array();
|
||||
$asubkeg['indikator'][] = array( 'kodeindikator' => "1",
|
||||
'jenis' => "KELUARAN",
|
||||
'tolokukur' => $db3->Row("Indi_Txt"),
|
||||
'satuan' => $db3->Row("N_Satuan"),
|
||||
'real_p3' => "0",
|
||||
'pagu_p3' => "0",
|
||||
'real_p2' => "0",
|
||||
'pagu_p2' => "0",
|
||||
'real_p1' => "0",
|
||||
'pagu_p1' => "0",
|
||||
'target' => $db3->Row("Target_Ini"),
|
||||
'pagu' => $db3->RowFloat("Pagu_Ini"),
|
||||
'pagu_p' => "0",
|
||||
'target_n1' => "0",
|
||||
'pagu_n1' => $db3->RowFloat("Pagu_Dpn")
|
||||
);
|
||||
$akeg['subkegiatan'][] = $asubkeg;
|
||||
}
|
||||
|
||||
$aprog['kegiatan'][] = $akeg;
|
||||
}
|
||||
|
||||
$askpd['program'][] = $aprog;
|
||||
}
|
||||
$apost[] = $askpd;
|
||||
return $apost;
|
||||
}
|
||||
|
||||
/************************** RESPON HERE ***************************/
|
||||
|
||||
$db = DB();
|
||||
$db2 = DB();
|
||||
$db3 = DB();
|
||||
$db4 = DB();
|
||||
$ajson = array();
|
||||
$data = Param::Get("data");
|
||||
|
||||
$id_rpjmd = $_SESSION['__WEB_APP']['RENC_RPJMDID'];
|
||||
$tahun = $_SESSION['__WEB_APP']['RENC_THN'];
|
||||
$id_opd = Param::Get("OPDID", 0);
|
||||
$aprog = array();
|
||||
|
||||
if ( $data == "kirim" || $data == "" ) {
|
||||
$alist = Param::GetArrayCBOX();
|
||||
foreach ($alist as $_key => $_val) {
|
||||
if ($_val=="Y") $aprog[] = $_key;
|
||||
}
|
||||
}
|
||||
|
||||
if ( $data == "detail-opd" || $data == "detail-prog" || $data == "kirim" ) {
|
||||
$qsql = "RPJMDID='".$id_rpjmd."' AND Tahun='".$tahun."'";
|
||||
$msql = "M.Aktif=1";
|
||||
|
||||
if ( $data == "detail-prog" ) {
|
||||
$qsql .= " AND OPDID='".$id_opd."'";
|
||||
}
|
||||
$qbd = $qsql;
|
||||
}
|
||||
|
||||
if ( $data == "detail-opd" ) {
|
||||
$obj = new Table($db);
|
||||
$obj->set_query("SELECT K.*,M.OPDID OPDID2,M.K_OPD,M.N_OPD,M.Nama_OPD,CONCAT(IFNULL(B.UDAH_PROG,0),' / ',K.ITEM_PROG) Status FROM vi_para90_opd M LEFT JOIN (SELECT OPDID,COUNT(DISTINCT ProgID) ITEM_PROG,COUNT(DISTINCT KegID) ITEM_KEG,COUNT(*) ITEM_SUB,SUM(Pagu_Ini) TOT_PAGU FROM renja90_sub WHERE ".$qsql." GROUP BY OPDID) K ON (K.OPDID=M.OPDID) LEFT JOIN (SELECT OPDID,COUNT(DISTINCT ProgID) UDAH_PROG FROM bangda_rkpd_awal WHERE ".$qsql." GROUP BY OPDID) B ON (B.OPDID=M.OPDID) WHERE ".$msql);
|
||||
$obj->add_field("OPDID2", "OPD", "hid");
|
||||
$obj->add_field("K_OPD", "KODE", "c");
|
||||
$obj->add_field("N_OPD", "NAMA OPD", "awr");
|
||||
$obj->add_field("TOT_PAGU", "PAGU", "r", "rupiah2");
|
||||
$obj->add_field("ITEM_PROG", "PROG", "r", "rupiah");
|
||||
$obj->add_field("ITEM_KEG", "KEG", "r", "rupiah");
|
||||
$obj->add_field("ITEM_SUB", "SUB", "r", "rupiah");
|
||||
$obj->add_field("Status", "Status", "c");
|
||||
$obj->add_field("Nama_OPD", "Nama OPD", "hid");
|
||||
$obj->set_field_order("K_OPD", "A");
|
||||
$obj->add_row_btn("select", "Program", "PRKPDAwalJS.opd_select");
|
||||
$obj->add_row_btn("send", "Kirim / OPD", "PRKPDAwalJS.opd_kirim");
|
||||
$obj->set_func_navi("PRKPDAwalJS.data_query('detail-opd')");
|
||||
$obj->set_textbtn(true);
|
||||
$ajson[] = $obj->json_table("divOPD", 60);
|
||||
|
||||
} else if ( $data == "detail-prog" ) {
|
||||
$obj = new Table($db);
|
||||
$obj->set_query("SELECT K.*,IFNULL(PR.ProgID,0) ProgID,PR.K_Prog,M.N_Prog,IF(IFNULL(PO.ProgID,0)=0,'Belum','Sudah') Status,'N' Pilih FROM (SELECT ProgID,K_Prog FROM renja90_prog WHERE ".$qsql.") PR LEFT JOIN para90_prog M ON (PR.ProgID=M.ProgID) LEFT JOIN (SELECT ProgID,COUNT(DISTINCT KegID) ITEM_KEG,COUNT(*) ITEM_SUB,SUM(Pagu_Ini) TOT_PAGU FROM renja90_sub WHERE ".$qsql." GROUP BY ProgID) K ON (PR.ProgID=K.ProgID) LEFT JOIN (SELECT * FROM bangda_rkpd_awal WHERE ".$qsql.") PO ON (PR.ProgID=PO.ProgID) WHERE ".$msql);
|
||||
$obj->add_field("ProgID", "ID", "hid");
|
||||
$obj->add_field("K_Prog", "KODE", "c");
|
||||
$obj->add_field("N_Prog", "NAMA PROGRAM", "awr");
|
||||
$obj->add_field("TOT_PAGU", "PAGU", "r", "rupiah2");
|
||||
$obj->add_field("ITEM_KEG", "KEG", "r", "rupiah");
|
||||
$obj->add_field("ITEM_SUB", "SUB", "r", "rupiah");
|
||||
$obj->add_field("Status", "Status", "l");
|
||||
$obj->set_field_order("K_Prog", "A");
|
||||
$obj->set_row_color("Status", "Sudah", "rblue");
|
||||
$obj->add_row_checkbox("ProgID", "Pilih", array("Y","N"));
|
||||
$obj->set_func_navi("PRKPDAwalJS.data_query('detail-prog')");
|
||||
$obj->set_textbtn(true);
|
||||
$ajson[] = $obj->json_table("divPROG", 60);
|
||||
|
||||
} else if ( $data == "kirim" ) {
|
||||
$apost = Bangda_Data($id_rpjmd, $tahun, $id_opd, $aprog);
|
||||
$api = Bangda_Request($apost, $tahun);
|
||||
$tmsg = "Ada masalah dalam proses !";
|
||||
if (isset($api['code'])) {
|
||||
$tmsg = $api['msg'];
|
||||
if ($api['code']==200) {
|
||||
if (count($aprog)>0) {
|
||||
foreach ($aprog as $_val) {
|
||||
$db->Query("INSERT IGNORE INTO bangda_rkpd_awal SET RPJMDID='".$id_rpjmd."',Tahun='".$tahun."',OPDID='".$id_opd."',ProgID='".$_val."',DateStamp=NOW(),UserID='".user_id()."'");
|
||||
}
|
||||
} else {
|
||||
$db->Query("INSERT IGNORE INTO bangda_rkpd_awal SELECT '".$id_rpjmd."','".$tahun."',OPDID,ProgID,NOW(),'".user_id()."' FROM renja90_prog WHERE ".$qsql." AND OPDID='".$id_opd."'");
|
||||
}
|
||||
}
|
||||
}
|
||||
$ajson['msg'] = $tmsg;
|
||||
$ajson['pre'] = ($api['pre']=="") ? implode("<br>", $api['log']) : $api['pre'];
|
||||
|
||||
} else if ( $data == "default") {
|
||||
echo '
|
||||
<div class="fade-in">
|
||||
<div class="card"><div class="card-header custom-style">Push RKPD Awal ke SIPD Kemendagri</div><div class="card-body">
|
||||
<div class="row mb-1">
|
||||
<div class="col">
|
||||
<div class="input-group">
|
||||
<input class="form-control" id="Nama_OPD" placeholder="Nama OPD" type="text" readonly>
|
||||
<input id="OPDID" type="hidden" value="0">
|
||||
<span class="input-group-append">
|
||||
<button class="btn btn-info btn-ganti" type="button" id="butOPD"><span><i class="c-icon cui-swap-horizontal"></span></i>OPD</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="divOPD"> </div>
|
||||
<div id="divPROG"> </div>
|
||||
</div></div>
|
||||
</div>';
|
||||
|
||||
} else if ( $data == "" ){
|
||||
$ajson = Bangda_Data($id_rpjmd, $tahun, $id_opd, $aprog);
|
||||
}
|
||||
|
||||
send_json($ajson);
|
||||
?>
|
||||
Reference in New Issue
Block a user