first commit
This commit is contained in:
@@ -0,0 +1,283 @@
|
||||
<?php
|
||||
|
||||
/*******************************************************************
|
||||
|
||||
Module : /apps/php/api/rpjmd.php
|
||||
Desc. : PHP - Fungsi RPJMD
|
||||
Created By : Siau Pheng ([email protected]).
|
||||
Created Date : December 18th, 2025.
|
||||
|
||||
(c) 2025, 3FONIA Software; WWW.3FONIA.COM.
|
||||
|
||||
*******************************************************************/
|
||||
|
||||
require_once(__DIR__."/../../../../../vendor/autoload.php");
|
||||
require_once(__DIR__."/../func.sippd.php");
|
||||
|
||||
use siaupheng\fonia3\DB\MySQL;
|
||||
use siaupheng\fonia3\DB\SQL;
|
||||
use siaupheng\fonia3\Web\Param;
|
||||
|
||||
$id_rpjmd = $_SESSION['__WEB_APP']['RENC_RPJMDID'];
|
||||
$thn_submap = map_tahun_submap($id_rpjmd);
|
||||
|
||||
function simpan_renstra_tujuan($db = null, $adata = []) {//oke
|
||||
global $id_rpjmd, $thn_submap;
|
||||
$aret = ['status' => "success", 'message' => 'Berhasil simpan data Tujuan RENSTRA !'];
|
||||
|
||||
foreach ($adata as $_key1 => $atujuan) {
|
||||
$apull = [ 'RPJMDID' => $id_rpjmd,
|
||||
'OPDID' => 0,
|
||||
'A_RDSASAR' => "0",
|
||||
'A_BU' => "'X.XX'",
|
||||
'No_Tujuan' => $atujuan['No_Tujuan'],
|
||||
'Txt_Tujuan' => $atujuan['Txt_Tujuan'],
|
||||
'SIPD_UNIK' => $atujuan['SIPD_UNIK']
|
||||
];
|
||||
// bidang urusan
|
||||
$_tbu = [];
|
||||
foreach ($atujuan['A_BU'] as $_key_bu => $arec_bu) {
|
||||
$_tbu[] = $arec_bu;
|
||||
}
|
||||
$apull['A_BU'] = "'". implode("','", $_tbu) ."'";
|
||||
// sasaran rpjmd
|
||||
if (count($atujuan['A_RDSASAR']) > 0) {
|
||||
$_tsa = [];
|
||||
foreach ($atujuan['A_RDSASAR'] as $_key_sa => $arec_sa) {
|
||||
$db->Query("SELECT RD_SASARID FROM rpjmd_sasaran WHERE SIPD_SASAR='".$arec_sa."' LIMIT 1");
|
||||
if ($db->Next()) $_tsa[] = $db->Row("RD_SASARID", 0);
|
||||
}
|
||||
$apull['A_RDSASAR'] = implode(",", $_tsa);
|
||||
}
|
||||
// opd
|
||||
$db->Query("SELECT OPDID FROM para90_opd WHERE K_OPD='".$atujuan['K_OPD']."' LIMIT 1");
|
||||
if ($db->Next()) $apull['OPDID'] = $db->Row("OPDID", 0);
|
||||
|
||||
$id_opd = $apull['OPDID'];
|
||||
$ra_tujid = fastInsert("renstra_tujuan", $apull);
|
||||
|
||||
// indikator
|
||||
foreach ($atujuan['indikator'] as $_key2 => $arec) {
|
||||
$apull = [ 'OPDID' => $id_opd,
|
||||
'RA_TUJID' => $ra_tujid,
|
||||
'RPJMDID' => $id_rpjmd,
|
||||
'No_Indi' => $arec['No_Indi'],
|
||||
'Txt_Indi' => $arec['Txt_Indi'],
|
||||
'Indi_Satuan' => $arec['Indi_Satuan'],
|
||||
'Indi_Status' => $arec['Indi_Status'],
|
||||
'Indi_Awal' => $arec['Indi_Awal'],
|
||||
'Indi_T1' => $arec['Indi_T1'],
|
||||
'Indi_T2' => $arec['Indi_T2'],
|
||||
'Indi_T3' => $arec['Indi_T3'],
|
||||
'Indi_T4' => $arec['Indi_T4'],
|
||||
'Indi_T5' => $arec['Indi_T5'],
|
||||
'Indi_Akhir' => $arec['Indi_Akhir'],
|
||||
'Tipe_Data' => $arec['Tipe_Data'],
|
||||
'SIPD_UNIK' => $arec['SIPD_UNIK']
|
||||
];
|
||||
fastInsert("renstra_tujuan_indi", $apull);
|
||||
}
|
||||
}
|
||||
return $aret;
|
||||
}
|
||||
|
||||
function simpan_renstra_sasaran($db = null, $adata = []) {//oke
|
||||
global $id_rpjmd, $thn_submap;
|
||||
$aret = ['status' => "success", 'message' => 'Berhasil simpan data Sasaran RENSTRA !'];
|
||||
|
||||
foreach ($adata as $_key1 => $asasar) {
|
||||
$apull = [ 'RPJMDID' => $id_rpjmd,
|
||||
'RA_TUJID' => 0,
|
||||
'OPDID' => 0,
|
||||
'No_Sasaran' => $asasar['No_Sasaran'],
|
||||
'Txt_Sasaran' => $asasar['Txt_Sasaran'],
|
||||
'SIPD_UNIK' => $asasar['SIPD_UNIK']
|
||||
];
|
||||
// tujuan renstra
|
||||
$db->Query("SELECT RA_TUJID FROM renstra_tujuan WHERE SIPD_UNIK='".$asasar['SIPD_TUJ']."' LIMIT 1");
|
||||
if ($db->Next()) $apull['RA_TUJID'] = $db->Row("RA_TUJID", 0);
|
||||
// opd
|
||||
$db->Query("SELECT OPDID FROM para90_opd WHERE K_OPD='".$asasar['K_OPD']."' LIMIT 1");
|
||||
if ($db->Next()) $apull['OPDID'] = $db->Row("OPDID", 0);
|
||||
|
||||
$id_opd = $apull['OPDID'];
|
||||
$ra_sasarid = fastInsert("renstra_sasaran", $apull);
|
||||
|
||||
// indikator
|
||||
foreach ($asasar['indikator'] as $_key2 => $arec) {
|
||||
$apull = [ 'OPDID' => $id_opd,
|
||||
'RA_SASARID' => $ra_sasarid,
|
||||
'RPJMDID' => $id_rpjmd,
|
||||
'No_Indi' => $arec['No_Indi'],
|
||||
'Txt_Indi' => $arec['Txt_Indi'],
|
||||
'Indi_Satuan' => $arec['Indi_Satuan'],
|
||||
'Indi_Status' => $arec['Indi_Status'],
|
||||
'Indi_Awal' => $arec['Indi_Awal'],
|
||||
'Indi_T1' => $arec['Indi_T1'],
|
||||
'Indi_T2' => $arec['Indi_T2'],
|
||||
'Indi_T3' => $arec['Indi_T3'],
|
||||
'Indi_T4' => $arec['Indi_T4'],
|
||||
'Indi_T5' => $arec['Indi_T5'],
|
||||
'Indi_Akhir' => $arec['Indi_Akhir'],
|
||||
'Tipe_Data' => $arec['Tipe_Data'],
|
||||
'SIPD_UNIK' => $arec['SIPD_UNIK']
|
||||
];
|
||||
fastInsert("renstra_sasaran_indi", $apull);
|
||||
}
|
||||
}
|
||||
return $aret;
|
||||
}
|
||||
|
||||
function simpan_renstra_program($db = null, $adata = []) {
|
||||
global $id_rpjmd, $thn_submap;
|
||||
$aret = ['status' => "success", 'message' => 'Berhasil simpan data Program / Kegiatan / Sub Kegiatan RENSTRA !'];
|
||||
|
||||
foreach ($adata as $_key1 => $aoutcome) {
|
||||
$acome = [ 'RD_OUTCOMEID' => 0,
|
||||
'RD_PROGID' => 0,
|
||||
'OPDID' => 0,
|
||||
'ProgID' => 0,
|
||||
'A_RASASAR' => 0
|
||||
];
|
||||
// outcome rpjmd
|
||||
$db->Query("SELECT RD_OUTCOMEID,RD_PROGID,A_RASASAR FROM rpjmd_outcome WHERE RPJMDID='".$id_rpjmd."' AND SIPD_UNIK='".$aoutcome['SIPD_UNIK']."' LIMIT 1");
|
||||
if ($db->Next()) $acome = array_merge($acome, $db->AllRow());
|
||||
// program rpjmd
|
||||
$db->Query("SELECT BUID,ProgID,K_Bidu,K_Prog FROM rpjmd_prog WHERE RPJMDID='".$id_rpjmd."' AND RD_PROGID='".$acome['RD_PROGID']."' LIMIT 1");
|
||||
if ($db->Next()) $acome = array_merge($acome, $db->AllRow());
|
||||
// opd
|
||||
$db->Query("SELECT OPDID FROM para90_opd WHERE K_OPD='".$aoutcome['K_OPD']."' LIMIT 1");
|
||||
if ($db->Next()) $acome = array_merge($acome, $db->AllRow());
|
||||
|
||||
// sasaran renstra
|
||||
if (count($aoutcome['A_RASASAR']) > 0) {
|
||||
$_tsa = explode(",", $acome['A_RASASAR']);
|
||||
foreach ($aoutcome['A_RASASAR'] as $_key_sa => $arec_sa) {
|
||||
$db->Query("SELECT RA_SASARID FROM renstra_sasaran WHERE SIPD_UNIK='".$arec_sa."' LIMIT 1");
|
||||
if ($db->Next()) {
|
||||
if (!in_array($db->Row("RA_SASARID", 0), $_tsa)) $_tsa[] = $db->Row("RA_SASARID", 0);
|
||||
}
|
||||
}
|
||||
$_tsa = array_diff($_tsa, [0]);
|
||||
$acome['A_RASASAR'] = (count($_tsa)==0) ? "0" : implode(",", $_tsa);
|
||||
}
|
||||
fastUpdate("rpjmd_outcome", ['A_RASASAR'=>$acome['A_RASASAR']], ['RD_OUTCOMEID'=>$acome['RD_OUTCOMEID']]);
|
||||
$apull = [ 'RPJMDID' => $id_rpjmd,
|
||||
'OPDID' => $acome['OPDID'],
|
||||
'RD_PROGID' => $acome['RD_PROGID'],
|
||||
'RD_OUTCOMEID' => $acome['RD_OUTCOMEID'],
|
||||
'A_RASASAR' => $acome['A_RASASAR'],
|
||||
'ProgID' => $acome['ProgID'],
|
||||
'K_Prog' => $acome['K_Prog']
|
||||
];
|
||||
$ra_progid = fastInsert("renstra_prog", $apull);
|
||||
|
||||
// indikator outcome (ke tabel renstra_prog_indi)
|
||||
foreach ($aoutcome['indikator'] as $_key2 => $aindi) {
|
||||
$apull = [ 'OPDID' => $acome['OPDID'],
|
||||
'RA_PROGID' => $ra_progid,
|
||||
'RD_OUTCOMEID' => $acome['RD_OUTCOMEID'],
|
||||
'RPJMDID' => $id_rpjmd,
|
||||
'ProgID' => $acome['ProgID'],
|
||||
'No_Indi' => $aindi['No_Indi'],
|
||||
'Txt_Indi' => $aindi['Txt_Indi'],
|
||||
'Indi_Satuan' => $aindi['Indi_Satuan'],
|
||||
'Indi_Status' => $aindi['Indi_Status'],
|
||||
'Indi_Awal' => $aindi['Indi_Awal'],
|
||||
'Indi_T1' => $aindi['Indi_T1'],
|
||||
'Indi_T2' => $aindi['Indi_T2'],
|
||||
'Indi_T3' => $aindi['Indi_T3'],
|
||||
'Indi_T4' => $aindi['Indi_T4'],
|
||||
'Indi_T5' => $aindi['Indi_T5'],
|
||||
'Indi_Akhir' => $aindi['Indi_Akhir'],
|
||||
'Tipe_Data' => $aindi['Tipe_Data'],
|
||||
'SIPD_UNIK' => $aindi['SIPD_UNIK']
|
||||
];
|
||||
fastInsert("renstra_prog_indi", $apull);
|
||||
}
|
||||
|
||||
// kegiatan
|
||||
foreach ($aoutcome['kegiatan'] as $_key3 => $akeg) {
|
||||
// master kegiatan
|
||||
$id_keg = 0;
|
||||
$db->Query("SELECT KegID FROM para90_submap WHERE Tahun='".$thn_submap."' AND ProgID='".$acome['ProgID']."' AND K_Keg LIKE '%".substr($akeg['K_Keg'],4)."' GROUP BY KegID LIMIT 1");
|
||||
if ($db->Next()) $id_keg = $db->Row("KegID", 0);
|
||||
|
||||
$apull = [ 'OPDID' => $acome['OPDID'],
|
||||
'RA_PROGID' => $ra_progid,
|
||||
'RD_OUTCOMEID' => $acome['RD_OUTCOMEID'],
|
||||
'RPJMDID' => $id_rpjmd,
|
||||
'ProgID' => $acome['ProgID'],
|
||||
'KegID' => $id_keg,
|
||||
'K_Keg' => $akeg['K_Keg']
|
||||
];
|
||||
$ra_kegid = fastInsert("renstra_keg", $apull);
|
||||
|
||||
// output kegiatan
|
||||
foreach ($akeg['output'] as $_key4 => $aoutput) {
|
||||
$apull = [ 'OPDID' => $acome['OPDID'],
|
||||
'RA_KEGID' => $ra_kegid,
|
||||
'RPJMDID' => $id_rpjmd,
|
||||
'ProgID' => $acome['ProgID'],
|
||||
'KegID' => $id_keg,
|
||||
'No_Output' => $aoutput['No_Output'],
|
||||
'Txt_Output' => $aoutput['Txt_Output'],
|
||||
'SIPD_UNIK' => $aoutput['SIPD_UNIK']
|
||||
];
|
||||
$ra_outid = fastInsert("renstra_output", $apull);
|
||||
|
||||
if (count($aoutput['subkeg']) == 0) $aret['message'] .= $akeg['K_Keg']." - ";
|
||||
// sub kegiatan
|
||||
foreach ($aoutput['subkeg'] as $_key5 => $asub) {
|
||||
// master sub kegiatan
|
||||
$id_sub = 0;
|
||||
$db->Query("SELECT SubID FROM para90_submap WHERE Tahun='".$thn_submap."' AND KegID='".$id_keg."' AND K_Sub LIKE '%".substr($asub['K_Sub'],4)."' LIMIT 1");
|
||||
if ($db->Next()) $id_sub = $db->Row("SubID", 0);
|
||||
|
||||
$apull = [ 'OPDID' => $acome['OPDID'],
|
||||
'RA_OUTPUTID' => $ra_outid,
|
||||
'RA_KEGID' => $ra_kegid,
|
||||
'RPJMDID' => $id_rpjmd,
|
||||
'ProgID' => $acome['ProgID'],
|
||||
'KegID' => $id_keg,
|
||||
'SubID' => $id_sub,
|
||||
'K_Sub' => $asub['K_Sub'],
|
||||
'Pagu_T1' => $asub['Pagu_T1'],
|
||||
'Pagu_T2' => $asub['Pagu_T2'],
|
||||
'Pagu_T3' => $asub['Pagu_T3'],
|
||||
'Pagu_T4' => $asub['Pagu_T4'],
|
||||
'Pagu_T5' => $asub['Pagu_T5'],
|
||||
'No_Indi' => $asub['No_Indi'],
|
||||
'Txt_Indi' => $asub['Txt_Indi'],
|
||||
'Indi_Satuan' => $asub['Indi_Satuan'],
|
||||
'Indi_Status' => $asub['Indi_Status'],
|
||||
'Indi_Awal' => $asub['Indi_Awal'],
|
||||
'Indi_T1' => $asub['Indi_T1'],
|
||||
'Indi_T2' => $asub['Indi_T2'],
|
||||
'Indi_T3' => $asub['Indi_T3'],
|
||||
'Indi_T4' => $asub['Indi_T4'],
|
||||
'Indi_T5' => $asub['Indi_T5'],
|
||||
'Indi_Akhir' => $asub['Indi_Akhir'],
|
||||
'Kinerja' => $asub['Kinerja'],
|
||||
'MIndiID' => $asub['ID_Indi'],
|
||||
//'Tipe_Data' => $asub['Tipe_Data'],
|
||||
//'SIPD_UNIK' => $asub['SIPD_UNIK']
|
||||
];
|
||||
fastInsert("renstra_sub", $apull);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// update sub -> output
|
||||
$db->Query("UPDATE renstra_output A, (SELECT OPDID,RA_OUTPUTID,SUM(Pagu_T1) T1,SUM(Pagu_T2) T2,SUM(Pagu_T3) T3,SUM(Pagu_T4) T4,SUM(Pagu_T5) T5 FROM renstra_sub WHERE RPJMDID='".$id_rpjmd."' GROUP BY OPDID,RA_OUTPUTID) B SET A.Pagu_T1=B.T1,A.Pagu_T2=B.T2,A.Pagu_T3=B.T3,A.Pagu_T4=B.T4,A.Pagu_T5=B.T5 WHERE A.RA_OUTPUTID=B.RA_OUTPUTID AND A.OPDID=B.OPDID AND A.RPJMDID='".$id_rpjmd."'");
|
||||
// update sub -> keg
|
||||
$db->Query("UPDATE renstra_keg A, (SELECT OPDID,RA_KEGID,SUM(Pagu_T1) T1,SUM(Pagu_T2) T2,SUM(Pagu_T3) T3,SUM(Pagu_T4) T4,SUM(Pagu_T5) T5 FROM renstra_sub WHERE RPJMDID='".$id_rpjmd."' GROUP BY OPDID,RA_KEGID) B SET A.Pagu_T1=B.T1,A.Pagu_T2=B.T2,A.Pagu_T3=B.T3,A.Pagu_T4=B.T4,A.Pagu_T5=B.T5 WHERE A.RA_KEGID=B.RA_KEGID AND A.OPDID=B.OPDID AND A.RPJMDID='".$id_rpjmd."'");
|
||||
// update keg -> prog
|
||||
$db->Query("UPDATE renstra_prog A, (SELECT OPDID,RA_PROGID,SUM(Pagu_T1) T1,SUM(Pagu_T2) T2,SUM(Pagu_T3) T3,SUM(Pagu_T4) T4,SUM(Pagu_T5) T5 FROM renstra_keg WHERE RPJMDID='".$id_rpjmd."' GROUP BY OPDID,RA_PROGID) B SET A.Pagu_T1=B.T1,A.Pagu_T2=B.T2,A.Pagu_T3=B.T3,A.Pagu_T4=B.T4,A.Pagu_T5=B.T5 WHERE A.RA_PROGID=B.RA_PROGID AND A.OPDID=B.OPDID AND A.RPJMDID='".$id_rpjmd."'");
|
||||
// update prog -> outcome rpjmd
|
||||
$db->Query("UPDATE rpjmd_outcome A, (SELECT RD_OUTCOMEID,SUM(Pagu_T1) T1,SUM(Pagu_T2) T2,SUM(Pagu_T3) T3,SUM(Pagu_T4) T4,SUM(Pagu_T5) T5 FROM renstra_prog WHERE RPJMDID='".$id_rpjmd."' GROUP BY RD_OUTCOMEID) B SET A.Pagu_T1=B.T1,A.Pagu_T2=B.T2,A.Pagu_T3=B.T3,A.Pagu_T4=B.T4,A.Pagu_T5=B.T5 WHERE A.RD_OUTCOMEID=B.RD_OUTCOMEID AND A.RPJMDID='".$id_rpjmd."'");
|
||||
|
||||
return $aret;
|
||||
}
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user