369 lines
25 KiB
PHP
369 lines
25 KiB
PHP
<?php
|
|
|
|
/*******************************************************************
|
|
|
|
App. Name : SISTEM INFORMASI MONITORING DAN EVALUASI
|
|
Module : /apps/php/mon/ehasil_kinerja.php
|
|
Desc. : PHP - Laporan Evaluasi Kinerja Triwulan Per OPD
|
|
Created By : Siau Pheng ([email protected]).
|
|
Created Date : March 20th, 2012.
|
|
Last Modified : November 12th, 2024.
|
|
|
|
(c) 2012 - 2024, 3FONIA Software; WWW.3FONIA.COM.
|
|
|
|
*******************************************************************/
|
|
|
|
require_once(__DIR__."/../../../../../vendor/autoload.php");
|
|
require_once(__DIR__."/../func.emonev.php");
|
|
//require_once("Spreadsheet/Excel/Writer.php");
|
|
|
|
use siaupheng\fonia3\DB\MySQL;
|
|
use siaupheng\fonia3\DB\SQL;
|
|
use siaupheng\fonia3\Web\Param;
|
|
use siaupheng\fonia3\Web\Form;
|
|
|
|
$db = $db ?? new MySQL();
|
|
$db2 = new MySQL();
|
|
$db3 = new MySQL();
|
|
$ajson = [];
|
|
$data = Param::Get("data");
|
|
$tahun = Param::Get("Tahun", $_SESSION['__WEB_APP']['REAL_THN']);
|
|
$twulan = Param::Get("TW", $_SESSION['__WEB_APP']['REAL_TW']);
|
|
$id_opd = Param::Get("OPDID", 0);
|
|
|
|
if ( $data == "print" || $data == "export") {
|
|
$a_opd = [];
|
|
$db->Query("SELECT * FROM para90_opd WHERE OPDID='".$id_opd."' LIMIT 1");
|
|
if ($db->Next()) $a_opd = $db->AllRow();
|
|
$tsql = " WHERE Tahun='".$tahun."' AND OPDID='".$id_opd."'";
|
|
|
|
if ($twulan == 1) {
|
|
$field_indi = "(Real_TW1,0)";
|
|
$field_keu = "(A.RealK_TW1)";
|
|
$field_kin = "(A.Kin_TW1,0)";
|
|
} else if ($twulan == 2) {
|
|
$field_indi = "(Real_TW1,Real_TW2)";
|
|
$field_keu = "(A.RealK_TW1+A.RealK_TW2)";
|
|
$field_kin = "(A.Kin_TW1,A.Kin_TW2)";
|
|
} else if ($twulan == 3) {
|
|
$field_indi = "(Real_TW1,Real_TW2,Real_TW3)";
|
|
$field_keu = "(A.RealK_TW1+A.RealK_TW2+A.RealK_TW3)";
|
|
$field_kin = "(A.Kin_TW1,A.Kin_TW2,A.Kin_TW3)";
|
|
} else if ($twulan == 4) {
|
|
$field_indi = "(Real_TW1,Real_TW2,Real_TW3,Real_TW4)";
|
|
$field_keu = "(A.RealK_TW1+A.RealK_TW2+A.RealK_TW3+A.RealK_TW4)";
|
|
$field_kin = "(A.Kin_TW1,A.Kin_TW2,A.Kin_TW3,A.Kin_TW4)";
|
|
}
|
|
|
|
$db->Query("SELECT P_A.K_Prog,P_I.*,T.Tot_Pagu,T.Tot_Real,T.Kinerja,P.OPD_Pagu,P.OPD_Real,P.OPD_Kinerja,O.K_OPD,O.N_OPD,X.N_Prog FROM (SELECT OPDID,ProgID,K_Prog FROM dpa90_prog".$tsql.") P_A INNER JOIN (SELECT OPDID,ProgID,Text_Indi IP_Text,CONCAT(Target_Indi,' ',Satuan_Indi) IP_Target,CONCAT(GREATEST".$field_indi.",' ',Satuan_Indi) IP_Real FROM dpa90_prog_indi".$tsql.") P_I ON (P_I.OPDID=P_A.OPDID AND P_I.ProgID=P_A.ProgID) LEFT JOIN (SELECT A.OPDID,A.ProgID,SUM(A.Pagu_Ini) Tot_Pagu,SUM".$field_keu." Tot_Real,SUM(GREATEST".$field_kin."*A.Pagu_Ini/B.TOTAL_PAGU) Kinerja FROM (SELECT * FROM dpa90_sub".$tsql.") A LEFT JOIN (SELECT OPDID,ProgID,SUM(Pagu_Ini) TOTAL_PAGU FROM dpa90_sub".$tsql." GROUP BY OPDID,ProgID) B ON (B.OPDID=A.OPDID AND B.ProgID=A.ProgID) GROUP BY A.OPDID,A.ProgID) T ON (T.OPDID=P_A.OPDID AND T.ProgID=P_A.ProgID) LEFT JOIN (SELECT A.OPDID,SUM(A.Pagu_Ini) OPD_Pagu,SUM".$field_keu." OPD_Real,SUM(GREATEST".$field_kin."*A.Pagu_Ini/B.TOTAL_PAGU) OPD_Kinerja FROM (SELECT * FROM dpa90_sub".$tsql.") A LEFT JOIN (SELECT OPDID,SUM(Pagu_Ini) TOTAL_PAGU FROM dpa90_sub".$tsql." GROUP BY OPDID) B ON (B.OPDID=A.OPDID) GROUP BY A.OPDID) P ON (P.OPDID=P_A.OPDID) LEFT JOIN (SELECT * FROM para90_opd WHERE Aktif=1) O ON (O.OPDID=P_A.OPDID) LEFT JOIN (SELECT ProgID,N_Prog FROM para90_submap WHERE Tahun='".map_tahun_submap($tahun)."' GROUP BY ProgID) X ON (X.ProgID=P_A.ProgID) WHERE O.Aktif IS NOT NULL ORDER BY O.K_OPD,P_A.K_Prog");
|
|
}
|
|
|
|
if ( $data == "print" ) {
|
|
$header = '<div class="text-center fs-5"><b>LAPORAN KINERJA PERANGKAT DAERAH<br>KABUPATEN MEMPAWAH TRIWULAN '.romawi($twulan).' TAHUN ANGGARAN '.$tahun.'</b></div><br><table class="garis"><thead><tr><th width="20">Kode</th><th width="100">Nama Program/Kegiatan/Sub Kegiatan</th><th width="100">Indikator Program/Kegiatan/Sub Kegiatan</th><th width="80">Target Program/Kegiatan/Sub Kegiatan</th><th width="80">Realisasi/Capaian Indikator</th><th width="60">Anggaran (Rp.)</th><th width="60">Realisasi (Rp.)</th><th width="60">Kinerja (%)</th><th width="60">Lokasi</th><th width="60">Kendala</th><th width="60">Tindak Lanjut</th><th width="60">Pihak Yang Dapat Membantu</th></tr></thead><tbody>';
|
|
$_line = '<tr class="%s"><td class="l" nowrap>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td class="r">%s</td><td class="r">%s</td><td class="r">%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>';
|
|
$_oline = '<tr><td class="b l">%s</td><td class="b" colspan="4">%s</td><td class="b r">%s</td><td class="b r">%s</td><td class="b r">%s</td><td class="b" colspan="4"> </td></tr>';
|
|
$body = ""; $id_opd = 0; $id_prog = 0; $id_keg = 0;
|
|
while ($db->Next()) {
|
|
if ($id_opd <> $db->Row("OPDID")) {
|
|
$body .= sprintf($_oline, $db->Row("K_OPD"), $db->Row("N_OPD"), uang2($db->Row("OPD_Pagu")), uang2($db->Row("OPD_Real")), uang2($db->Row("OPD_Kinerja")));
|
|
$id_opd = $db->Row("OPDID");
|
|
}
|
|
if ($id_prog <> $db->Row("ProgID")) {
|
|
$vp_kode = $db->Row("K_Prog");
|
|
$vp_nama = $db->Row("N_Prog");
|
|
$vp_pagu = uang2($db->Row("Tot_Pagu"));
|
|
$vp_real = uang2($db->Row("Tot_Real"));
|
|
$vp_kine = uang2($db->Row("Kinerja"));
|
|
//$id_keg = 0;
|
|
} else {
|
|
$vp_kode = "";
|
|
$vp_nama = "";
|
|
$vp_pagu = "";
|
|
$vp_real = "";
|
|
$vp_kine = "";
|
|
}
|
|
if ($id_prog <> 0 && $id_prog <> $db->Row("ProgID")) {
|
|
$id_keg = 0;
|
|
$xsql = " WHERE Tahun='".$tahun."' AND OPDID='".$id_opd."' AND ProgID='".$id_prog."'";
|
|
$db2->Query("SELECT K_A.K_Keg,K_I.*,T.Tot_Pagu,T.Tot_Real,T.Kinerja,X.N_Keg FROM (SELECT OPDID,KegID,K_Keg FROM dpa90_keg".$xsql.") K_A INNER JOIN ((SELECT OPDID,KegID,1 Indi,CONCAT('Hasil: ',Text_Hasil) Indi_Text,CONCAT(Target_Hasil,' ',Satuan_Hasil) Indi_Target,CONCAT(GREATEST".$field_indi.",' ',Satuan_Hasil) Indi_Real FROM dpa90_keg_hasil".$xsql.") UNION ALL (SELECT OPDID,KegID,2 Indi,CONCAT('Keluaran: ',Text_Keluar) Indi_Text,CONCAT(Target_Keluar,' ',Satuan_Keluar) Indi_Target,CONCAT(GREATEST".$field_indi.",' ',Satuan_Keluar) Indi_Real FROM dpa90_keg_keluar".$xsql.")) K_I ON (K_I.OPDID=K_A.OPDID AND K_I.KegID=K_A.KegID) LEFT JOIN (SELECT A.OPDID,A.KegID,SUM(A.Pagu_Ini) Tot_Pagu,SUM".$field_keu." Tot_Real,SUM(GREATEST".$field_kin."*A.Pagu_Ini/B.TOTAL_PAGU) Kinerja FROM (SELECT * FROM dpa90_sub".$tsql.") A LEFT JOIN (SELECT OPDID,KegID,SUM(Pagu_Ini) TOTAL_PAGU FROM dpa90_sub".$tsql." GROUP BY OPDID,KegID) B ON (B.OPDID=A.OPDID AND B.KegID=A.KegID) GROUP BY A.OPDID,A.KegID) T ON (T.OPDID=K_A.OPDID AND T.KegID=K_A.KegID) LEFT JOIN (SELECT * FROM para90_submap WHERE Tahun='".map_tahun_submap($tahun)."' GROUP BY KegID) X ON (X.KegID=K_A.KegID) ORDER BY K_A.K_Keg,K_I.Indi");
|
|
while ($db2->Next()) {
|
|
if ($id_keg <> $db2->Row("KegID")) {
|
|
$vk_kode = $db2->Row("K_Keg");
|
|
$vk_nama = $db2->Row("N_Keg");
|
|
$vk_pagu = uang2($db2->Row("Tot_Pagu"));
|
|
$vk_real = uang2($db2->Row("Tot_Real"));
|
|
$vk_kine = uang2($db2->Row("Kinerja"));
|
|
} else {
|
|
$vk_kode = "";
|
|
$vk_nama = "";
|
|
$vk_pagu = "";
|
|
$vk_real = "";
|
|
$vk_kine = "";
|
|
}
|
|
if ($id_keg <> 0 && $id_keg <> $db2->Row("KegID")) {
|
|
// start subkeg
|
|
$zsql = " WHERE Tahun='".$tahun."' AND OPDID='".$id_opd."' AND ProgID='".$id_prog."' AND KegID='".$id_keg."'";
|
|
$db3->Query("SELECT S_A.*,S_I.Indi_Text,S_I.Indi_Target,S_I.Indi_Real,X.N_Sub FROM (SELECT A.OPDID,A.SubID,A.K_Sub,A.Pagu_Ini Tot_Pagu,".$field_keu." Tot_Real,A.Lokasi,A.Real_Kendala,A.Real_Tindak,A.Real_Bantu,GREATEST".$field_kin." Kinerja FROM dpa90_sub A".$zsql.") S_A INNER JOIN (SELECT OPDID,SubID,Text_Output Indi_Text,CONCAT(Target_Output,' ',Satuan_Output) Indi_Target,CONCAT(GREATEST".$field_indi.",' ',Satuan_Output) Indi_Real FROM dpa90_sub_output".$xsql.") S_I ON (S_I.OPDID=S_A.OPDID AND S_I.SubID=S_A.SubID) LEFT JOIN (SELECT * FROM para90_submap WHERE Tahun='".map_tahun_submap($tahun)."') X ON (X.SubID=S_A.SubID) ORDER BY S_A.K_Sub");
|
|
while ($db3->Next()) {
|
|
$body .= sprintf($_line, "sub", $db3->Row("K_Sub"), $db3->Row("N_Sub"), $db3->Row("Indi_Text"), $db3->Row("Indi_Target"), $db3->Row("Indi_Real"), uang2($db3->Row("Tot_Pagu")), uang2($db3->Row("Tot_Real")), uang2($db3->Row("Kinerja")), $db3->Row("Lokasi"), $db3->Row("Real_Kendala"), $db3->Row("Real_Tindak"), $db3->Row("Real_Bantu"));
|
|
}
|
|
// end subkeg
|
|
}
|
|
$body .= sprintf($_line, "keg", $vk_kode, $vk_nama, $db2->Row("Indi_Text"), $db2->Row("Indi_Target"), $db2->Row("Indi_Real"), $vk_pagu, $vk_real, $vk_kine, "", "", "", "");
|
|
$id_keg = $db2->Row("KegID");
|
|
}
|
|
if ($id_keg > 0 ) {
|
|
// start subkeg
|
|
$zsql = " WHERE Tahun='".$tahun."' AND OPDID='".$id_opd."' AND ProgID='".$id_prog."' AND KegID='".$id_keg."'";
|
|
$db3->Query("SELECT S_A.*,S_I.Indi_Text,S_I.Indi_Target,S_I.Indi_Real,X.N_Sub FROM (SELECT A.OPDID,A.SubID,A.K_Sub,A.Pagu_Ini Tot_Pagu,".$field_keu." Tot_Real,A.Lokasi,A.Real_Kendala,A.Real_Tindak,A.Real_Bantu,GREATEST".$field_kin." Kinerja FROM dpa90_sub A".$zsql.") S_A INNER JOIN (SELECT OPDID,SubID,Text_Output Indi_Text,CONCAT(Target_Output,' ',Satuan_Output) Indi_Target,CONCAT(GREATEST".$field_indi.",' ',Satuan_Output) Indi_Real FROM dpa90_sub_output".$xsql.") S_I ON (S_I.OPDID=S_A.OPDID AND S_I.SubID=S_A.SubID) LEFT JOIN (SELECT * FROM para90_submap WHERE Tahun='".map_tahun_submap($tahun)."') X ON (X.SubID=S_A.SubID) ORDER BY S_A.K_Sub");
|
|
while ($db3->Next()) {
|
|
$body .= sprintf($_line, "sub", $db3->Row("K_Sub"), $db3->Row("N_Sub"), $db3->Row("Indi_Text"), $db3->Row("Indi_Target"), $db3->Row("Indi_Real"), uang2($db3->Row("Tot_Pagu")), uang2($db3->Row("Tot_Real")), uang2($db3->Row("Kinerja")), $db3->Row("Lokasi"), $db3->Row("Real_Kendala"), $db3->Row("Real_Tindak"), $db3->Row("Real_Bantu"));
|
|
}
|
|
// end subkeg
|
|
}
|
|
}
|
|
$body .= sprintf($_line, "prog", $vp_kode, $vp_nama, $db->Row("IP_Text"), $db->Row("IP_Target"), $db->Row("IP_Real"), $vp_pagu, $vp_real, $vp_kine, "", "", "", "");
|
|
$id_prog = $db->Row("ProgID");
|
|
}
|
|
|
|
if ($id_prog > 0 ) {
|
|
$xsql = " WHERE Tahun='".$tahun."' AND OPDID='".$id_opd."' AND ProgID='".$id_prog."'";
|
|
$db2->Query("SELECT K_A.K_Keg,K_I.*,T.Tot_Pagu,T.Tot_Real,T.Kinerja,X.N_Keg FROM (SELECT OPDID,KegID,K_Keg FROM dpa90_keg".$xsql.") K_A INNER JOIN ((SELECT OPDID,KegID,1 Indi,CONCAT('Hasil: ',Text_Hasil) Indi_Text,CONCAT(Target_Hasil,' ',Satuan_Hasil) Indi_Target,CONCAT(GREATEST".$field_indi.",' ',Satuan_Hasil) Indi_Real FROM dpa90_keg_hasil".$xsql.") UNION ALL (SELECT OPDID,KegID,2 Indi,CONCAT('Keluaran: ',Text_Keluar) Indi_Text,CONCAT(Target_Keluar,' ',Satuan_Keluar) Indi_Target,CONCAT(GREATEST".$field_indi.",' ',Satuan_Keluar) Indi_Real FROM dpa90_keg_keluar".$xsql.")) K_I ON (K_I.OPDID=K_A.OPDID AND K_I.KegID=K_A.KegID) LEFT JOIN (SELECT A.OPDID,A.KegID,SUM(A.Pagu_Ini) Tot_Pagu,SUM".$field_keu." Tot_Real,SUM(GREATEST".$field_kin."*A.Pagu_Ini/B.TOTAL_PAGU) Kinerja FROM (SELECT * FROM dpa90_sub".$tsql.") A LEFT JOIN (SELECT OPDID,KegID,SUM(Pagu_Ini) TOTAL_PAGU FROM dpa90_sub".$tsql." GROUP BY OPDID,KegID) B ON (B.OPDID=A.OPDID AND B.KegID=A.KegID) GROUP BY A.OPDID,A.KegID) T ON (T.OPDID=K_A.OPDID AND T.KegID=K_A.KegID) LEFT JOIN (SELECT * FROM para90_submap WHERE Tahun='".map_tahun_submap($tahun)."' GROUP BY KegID) X ON (X.KegID=K_A.KegID) ORDER BY K_A.K_Keg,K_I.Indi");
|
|
while ($db2->Next()) {
|
|
if ($id_keg <> $db2->Row("KegID")) {
|
|
$vk_kode = $db2->Row("K_Keg");
|
|
$vk_nama = $db2->Row("N_Keg");
|
|
$vk_pagu = uang2($db2->Row("Tot_Pagu"));
|
|
$vk_real = uang2($db2->Row("Tot_Real"));
|
|
$vk_kine = uang2($db2->Row("Kinerja"));
|
|
} else {
|
|
$vk_kode = "";
|
|
$vk_nama = "";
|
|
$vk_pagu = "";
|
|
$vk_real = "";
|
|
$vk_kine = "";
|
|
}
|
|
if ($id_keg <> 0 && $id_keg <> $db2->Row("KegID")) {
|
|
// start subkeg
|
|
$zsql = " WHERE Tahun='".$tahun."' AND OPDID='".$id_opd."' AND ProgID='".$id_prog."' AND KegID='".$id_keg."'";
|
|
$db3->Query("SELECT S_A.*,S_I.Indi_Text,S_I.Indi_Target,S_I.Indi_Real,X.N_Sub FROM (SELECT A.OPDID,A.SubID,A.K_Sub,A.Pagu_Ini Tot_Pagu,".$field_keu." Tot_Real,A.Lokasi,A.Real_Kendala,A.Real_Tindak,A.Real_Bantu,GREATEST".$field_kin." Kinerja FROM dpa90_sub A".$zsql.") S_A INNER JOIN (SELECT OPDID,SubID,Text_Output Indi_Text,CONCAT(Target_Output,' ',Satuan_Output) Indi_Target,CONCAT(GREATEST".$field_indi.",' ',Satuan_Output) Indi_Real FROM dpa90_sub_output".$xsql.") S_I ON (S_I.OPDID=S_A.OPDID AND S_I.SubID=S_A.SubID) LEFT JOIN (SELECT * FROM para90_submap WHERE Tahun='".map_tahun_submap($tahun)."') X ON (X.SubID=S_A.SubID) ORDER BY S_A.K_Sub");
|
|
while ($db3->Next()) {
|
|
$body .= sprintf($_line, "sub", $db3->Row("K_Sub"), $db3->Row("N_Sub"), $db3->Row("Indi_Text"), $db3->Row("Indi_Target"), $db3->Row("Indi_Real"), uang2($db3->Row("Tot_Pagu")), uang2($db3->Row("Tot_Real")), uang2($db3->Row("Kinerja")), $db3->Row("Lokasi"), $db3->Row("Real_Kendala"), $db3->Row("Real_Tindak"), $db3->Row("Real_Bantu"));
|
|
}
|
|
// end subkeg
|
|
}
|
|
$body .= sprintf($_line, "keg", $vk_kode, $vk_nama, $db2->Row("Indi_Text"), $db2->Row("Indi_Target"), $db2->Row("Indi_Real"), $vk_pagu, $vk_real, $vk_kine, "", "", "", "");
|
|
$id_keg = $db2->Row("KegID");
|
|
}
|
|
if ($id_keg > 0) {
|
|
// start subkeg
|
|
$zsql = " WHERE Tahun='".$tahun."' AND OPDID='".$id_opd."' AND ProgID='".$id_prog."' AND KegID='".$id_keg."'";
|
|
$db3->Query("SELECT S_A.*,S_I.Indi_Text,S_I.Indi_Target,S_I.Indi_Real,X.N_Sub FROM (SELECT A.OPDID,A.SubID,A.K_Sub,A.Pagu_Ini Tot_Pagu,".$field_keu." Tot_Real,A.Lokasi,A.Real_Kendala,A.Real_Tindak,A.Real_Bantu,GREATEST".$field_kin." Kinerja FROM dpa90_sub A".$zsql.") S_A INNER JOIN (SELECT OPDID,SubID,Text_Output Indi_Text,CONCAT(Target_Output,' ',Satuan_Output) Indi_Target,CONCAT(GREATEST".$field_indi.",' ',Satuan_Output) Indi_Real FROM dpa90_sub_output".$xsql.") S_I ON (S_I.OPDID=S_A.OPDID AND S_I.SubID=S_A.SubID) LEFT JOIN (SELECT * FROM para90_submap WHERE Tahun='".map_tahun_submap($tahun)."') X ON (X.SubID=S_A.SubID) ORDER BY S_A.K_Sub");
|
|
while ($db3->Next()) {
|
|
$body .= sprintf($_line, "sub", $db3->Row("K_Sub"), $db3->Row("N_Sub"), $db3->Row("Indi_Text"), $db3->Row("Indi_Target"), $db3->Row("Indi_Real"), uang2($db3->Row("Tot_Pagu")), uang2($db3->Row("Tot_Real")), uang2($db3->Row("Kinerja")), $db3->Row("Lokasi"), $db3->Row("Real_Kendala"), $db3->Row("Real_Tindak"), $db3->Row("Real_Bantu"));
|
|
}
|
|
// end subkeg
|
|
}
|
|
}
|
|
echo $header . $body . "</tbody></table>";
|
|
|
|
/*} else if ( $data == "export" ) {
|
|
$wbook = new Spreadsheet_Excel_Writer();
|
|
$fjudul =& $wbook->addFormat();
|
|
$fjudul->setBold();
|
|
$fjudul->setAlign("center");
|
|
$fhead =& $wbook->addFormat();
|
|
$fhead->setBold();
|
|
$fhead->setAlign("center");
|
|
$fhead->setVAlign("vcenter");
|
|
$fhead->setBorder(1);
|
|
$fhead->setTextWrap();
|
|
$ftxt =& $wbook->addFormat();
|
|
$ftxt->setVAlign("top");
|
|
$ftxt->setBottom(1);
|
|
$ftxt->setTextWrap();
|
|
$ftxt->setNumFormat("@");
|
|
$fnum =& $wbook->addFormat();
|
|
$fnum->setNumFormat(4);
|
|
$fnum->setBottom(1);
|
|
$f_sjudul =& $wbook->addFormat(['NumFormat'=>"@"]);
|
|
|
|
$f_opd =& $wbook->addFormat(['FgColor'=>55,'NumFormat'=>"@"]);
|
|
$f_opd_num =& $wbook->addFormat(['FgColor'=>55,'NumFormat'=>4]);
|
|
$f_prog =& $wbook->addFormat(['FgColor'=>10,'NumFormat'=>"@"]);
|
|
$f_prog_num =& $wbook->addFormat(['FgColor'=>10,'NumFormat'=>4]);
|
|
$f_keg =& $wbook->addFormat(['FgColor'=>45,'NumFormat'=>"@"]);
|
|
$f_keg_num =& $wbook->addFormat(['FgColor'=>45,'NumFormat'=>4]);
|
|
$f_sub =& $wbook->addFormat(['FgColor'=>39,'NumFormat'=>"@"]);
|
|
$f_sub_num =& $wbook->addFormat(['FgColor'=>39,'NumFormat'=>4]);
|
|
|
|
$wsheet =& $wbook->addWorksheet("Real-Bulanan");
|
|
$wsheet->setColumn(0,0,18);
|
|
$wsheet->setColumn(1,1,60);
|
|
$wsheet->setColumn(2,7,16);
|
|
$wsheet->setColumn(8,8,12);
|
|
$wsheet->setColumn(9,15,16);
|
|
$wsheet->setColumn(16,16,8);
|
|
$wsheet->write(0,0,"LAPORAN REALISASI FISIK DAN KEUANGAN",$fjudul);
|
|
$wsheet->setMerge(0,0,0,16);
|
|
$wsheet->write(1,0,"TAHUN ANGGARAN ".$tahun,$fjudul);
|
|
$wsheet->setMerge(1,0,1,16);
|
|
|
|
$baris = 3;
|
|
$wsheet->write($baris,0,"Nama Perangkat Daerah",$f_sjudul);
|
|
$wsheet->write($baris,2,$a_opd['N_OPD'],$f_sjudul);
|
|
$wsheet->write(($baris+1),0,"Pengguna Anggaran / Kuasa Pengguna Anggaran",$f_sjudul);
|
|
$wsheet->write(($baris+1),2,$a_opd['P_Nama'],$f_sjudul);
|
|
$wsheet->write(($baris+2),0,"Bendahara Pengeluaran",$f_sjudul);
|
|
$wsheet->write(($baris+2),2,$a_opd['B_Nama'],$f_sjudul);
|
|
$wsheet->write(($baris+3),0,"Tahun Anggaran",$f_sjudul);
|
|
$wsheet->write(($baris+3),2,$tahun,$f_sjudul);
|
|
$wsheet->write(($baris+4),0,"Bulan",$f_sjudul);
|
|
$wsheet->write(($baris+4),2,bulan_array()[$bulan],$f_sjudul);
|
|
|
|
$baris += 5;
|
|
for ($x=$baris; $x<=($baris+3); $x++) {
|
|
for ($y=0; $y<=16; $y++) $wsheet->write($x,$y,"",$fhead);
|
|
}
|
|
$wsheet->write($baris,0,"Kode",$fhead);
|
|
$wsheet->setMerge($baris,0,($baris+2),0);
|
|
$wsheet->write($baris,1,"Uraian",$fhead);
|
|
$wsheet->setMerge($baris,1,($baris+2),1);
|
|
$wsheet->write($baris,2,"Target",$fhead);
|
|
$wsheet->setMerge($baris,2,$baris,5);
|
|
$wsheet->write($baris,6,"Bobot (%)",$fhead);
|
|
$wsheet->setMerge($baris,6,($baris+2),6);
|
|
$wsheet->write($baris,7,"Nilai Kontrak Swakelola (Rp)",$fhead);
|
|
$wsheet->setMerge($baris,7,($baris+2),7);
|
|
$wsheet->write($baris,8,"Pelaksana/Rekanan No & Tanggal Kontrak",$fhead);
|
|
$wsheet->setMerge($baris,8,($baris+2),8);
|
|
$wsheet->write($baris,9,"Realisasi",$fhead);
|
|
$wsheet->setMerge($baris,9,$baris,14);
|
|
$wsheet->write($baris,15,"Sisa Anggaran",$fhead);
|
|
$wsheet->setMerge($baris,15,($baris+2),15);
|
|
$wsheet->write($baris,16,"Keterangan",$fhead);
|
|
$wsheet->setMerge($baris,16,($baris+2),16);
|
|
$wsheet->write(($baris+1),2,"Fisik",$fhead);
|
|
$wsheet->setMerge(($baris+1),2,($baris+1),3);
|
|
$wsheet->write(($baris+1),4,"Harga Satuan (Rp)",$fhead);
|
|
$wsheet->setMerge(($baris+1),4,($baris+2),4);
|
|
$wsheet->write(($baris+1),4,"Keuangan Dana (Rp)",$fhead);
|
|
$wsheet->setMerge(($baris+1),5,($baris+2),5);
|
|
$wsheet->write(($baris+1),9,"Fisik (%)",$fhead);
|
|
$wsheet->setMerge(($baris+1),9,($baris+1),12);
|
|
$wsheet->write(($baris+1),13,"Keuangan",$fhead);
|
|
$wsheet->setMerge(($baris+1),13,($baris+1),14);
|
|
$wsheet->write(($baris+2),2,"Volume",$fhead);
|
|
$wsheet->write(($baris+2),3,"Satuan",$fhead);
|
|
$wsheet->write(($baris+2),9,"Rencana",$fhead);
|
|
$wsheet->write(($baris+2),10,"Realisasi",$fhead);
|
|
$wsheet->write(($baris+2),11,"Deviasi",$fhead);
|
|
$wsheet->write(($baris+2),12,"Tertimbang",$fhead);
|
|
for ($x=1; $x<=17; $x++) $wsheet->write(($baris+3),$x-1,$x,$fhead);
|
|
|
|
$baris += 4;
|
|
$kprog = ""; $kkeg = ""; $ksub = ""; $tot_ini = 0; $tot_renc = 0; $tot_real = 0;
|
|
while ($db->Next()) {
|
|
if ($kprog <> $db->Row("ProgID")) {
|
|
for ($x=0; $x<=16; $x++) $wsheet->write($baris, $x, "", $f_prog);
|
|
$wsheet->write($baris,0,$db->Row("PROG_KODE"), $f_prog);
|
|
$wsheet->write($baris,1,$db->Row("N_Prog"), $f_prog);
|
|
$wsheet->write($baris,5,$db->Row("PROG_INI"), $f_prog_num);
|
|
$wsheet->write($baris,7,$db->Row("PROG_RENC"), $f_prog_num);
|
|
$wsheet->write($baris,13,$db->Row("PROG_REAL"), $f_prog_num);
|
|
$wsheet->write($baris,14,$db->Row("PROG_REAL")/$db->Row("PROG_RENC")*100, $f_prog_num);
|
|
$wsheet->write($baris,15,$db->Row("PROG_RENC")-$db->Row("PROG_REAL"), $f_prog_num);
|
|
$baris++;
|
|
$kprog = $db->Row("ProgID");
|
|
}
|
|
if ($kkeg <> $db->Row("KegID")) {
|
|
for ($x=0; $x<=16; $x++) $wsheet->write($baris, $x, "", $f_keg);
|
|
$wsheet->write($baris,0,$db->Row("KEG_KODE"), $f_keg);
|
|
$wsheet->write($baris,1,$db->Row("N_Keg"), $f_keg);
|
|
$wsheet->write($baris,5,$db->Row("KEG_INI"), $f_keg_num);
|
|
$wsheet->write($baris,7,$db->Row("KEG_RENC"), $f_keg_num);
|
|
$wsheet->write($baris,13,$db->Row("KEG_REAL"), $f_keg_num);
|
|
$wsheet->write($baris,14,$db->Row("KEG_REAL")/$db->Row("KEG_RENC")*100, $f_keg_num);
|
|
$wsheet->write($baris,15,$db->Row("KEG_RENC")-$db->Row("KEG_REAL"), $f_keg_num);
|
|
$baris++;
|
|
$kkeg = $db->Row("KegID");
|
|
}
|
|
if ($ksub <> $db->Row("SubID")) {
|
|
$psn_realk = ($db->RowFloat("SUB_RENC")==0) ? 0 : ($db->RowFloat("SUB_REAL")/$db->RowFloat("SUB_RENC")*100);
|
|
for ($x=0; $x<=16; $x++) $wsheet->write($baris, $x, "", $f_sub);
|
|
$wsheet->write($baris,0,$db->Row("K_Sub"), $f_sub);
|
|
$wsheet->write($baris,1,$db->Row("N_Sub"), $f_sub);
|
|
$wsheet->write($baris,5,$db->Row("SUB_INI"), $f_sub_num);
|
|
$wsheet->write($baris,7,$db->Row("SUB_RENC"), $f_sub_num);
|
|
$wsheet->write($baris,13,$db->Row("SUB_REAL"), $f_sub_num);
|
|
$wsheet->write($baris,14,$psn_realk, $f_sub_num);
|
|
$wsheet->write($baris,15,$db->Row("SUB_RENC")-$db->Row("SUB_REAL"), $f_sub_num);
|
|
$baris++;
|
|
$ksub = $db->Row("SubID");
|
|
}
|
|
$info_kontrak = $db->Row("Real_No_Kontrak"); $info_kontrak .= ($info_kontrak==""?"":"<br>").$db->Row("Real_Pelaksana");
|
|
$psn_realk = ($db->RowFloat("Renc_Keu")==0) ? 0 : ($db->RowFloat("AKUN_REALK")/$db->RowFloat("Renc_Keu")*100);
|
|
|
|
for ($x=0; $x<=16; $x++) $wsheet->write($baris, $x, "", $ftxt);
|
|
$wsheet->write($baris,0,$db->Row("K_Akun"), $ftxt);
|
|
$wsheet->write($baris,1,$db->Row("N_Akun"), $ftxt);
|
|
$wsheet->write($baris,2,$db->Row("Volume"), $fnum);
|
|
$wsheet->write($baris,3,$db->Row("N_Satuan"), $ftxt);
|
|
$wsheet->write($baris,4,$db->Row("Harga_Satuan"), $fnum);
|
|
$wsheet->write($baris,5,$db->Row("Pagu_Ini"), $fnum);
|
|
$wsheet->write($baris,6,$db->Row("Nilai_Bobot"), $fnum);
|
|
$wsheet->write($baris,7,$db->Row("Renc_Keu"), $fnum);
|
|
$wsheet->write($baris,8,$info_kontrak, $ftxt);
|
|
$wsheet->write($baris,9,$db->Row("Renc_Fisik"), $fnum);
|
|
$wsheet->write($baris,10,$db->Row("AKUN_REALF"), $fnum);
|
|
$wsheet->write($baris,11,$db->Row("Renc_Fisik")-$db->Row("AKUN_REALF"), $fnum);
|
|
$wsheet->write($baris,12,$db->Row("AKUN_REALF")*$db->Row("Nilai_Bobot")/100, $fnum);
|
|
$wsheet->write($baris,13,$db->Row("AKUN_REALK"), $fnum);
|
|
$wsheet->write($baris,14,$psn_realk, $fnum);
|
|
$wsheet->write($baris,15,$db->Row("Renc_Keu")-$db->Row("AKUN_REALK"), $fnum);
|
|
$baris++;
|
|
$tot_ini += $db->Row("Pagu_Ini");
|
|
$tot_renc += $db->Row("Renc_Keu");
|
|
$tot_real += $db->Row("AKUN_REALK");
|
|
}
|
|
for ($x=0; $x<=16; $x++) $wsheet->write($baris, $x, "", $f_opd);
|
|
$wsheet->write($baris,0,"Jumlah", $f_opd);
|
|
$wsheet->setMerge($baris,0,$baris,1);
|
|
$wsheet->write($baris,5,$tot_ini, $f_opd_num);
|
|
$wsheet->write($baris,7,$tot_renc, $f_opd_num);
|
|
$wsheet->write($baris,13,$tot_real, $f_opd_num);
|
|
$wsheet->write($baris,14,$tot_real/$tot_renc*100, $f_opd_num);
|
|
$wsheet->write($baris,15,$tot_renc-$tot_real, $f_opd_num);
|
|
$baris++;
|
|
|
|
$wbook->send("Laporan Realisasi F & K ".bulan_array()[$bulan]."-".$tahun." - ".tgl_dmy(true).".xls");
|
|
$wbook->close();*/
|
|
|
|
} else if ( $data == "default") {//oke
|
|
$q_opd = "";
|
|
if (in_array($_SESSION['__WEB_USER']['Level'],[1,3,4])) {
|
|
$id_opd = $_SESSION['__WEB_USER']['A_OPD'][0];
|
|
$q_opd = " AND OPDID IN (".$_SESSION['__WEB_USER']['AK_OPD'].")";
|
|
}
|
|
|
|
$form = new Form($db);
|
|
$tthn = $form->option_que("_", "Tahun", $tahun, true, false, "SELECT Tahun,CONCAT('Tahun ',Tahun) N_Tahun FROM dpa90_prog GROUP BY Tahun ORDER BY Tahun", ["Tahun","N_Tahun"]);
|
|
$topd = $form->option_db("_", "OPDID", $id_opd, true, false, "vi_para90_opd", ["OPDID","Nama_OPD"], "Aktif=1".$q_opd." ORDER BY K_OPD");//, (user_level(3)?array(0,"SEMUA OPD"):null)
|
|
$ttw = $form->radio("_", "TW", $twulan, true, false, [1=>"I",2=>"II",3=>"III",4=>"IV"]);
|
|
echo '
|
|
<div class="row mb-1">
|
|
<label class="col-sm-4 col-lg-3 col-form-label" for="OPDID">Nama Perangkat Daerah</label>
|
|
<div class="col-sm-8 col-lg-9">'.$topd.'</div>
|
|
</div>
|
|
<div class="row mb-1">
|
|
<label class="col-sm-4 col-lg-3 col-form-label" for="Tahun">Tahun Data</label>
|
|
<div class="col-sm-5 col-lg-4">'.$tthn.'</div>
|
|
</div>
|
|
<div class="row mb-1">
|
|
<label class="col-sm-4 col-lg-3 col-form-label" for="TW">Triwulan</label>
|
|
<div class="col-sm-8 col-lg-9">'.$ttw.'</div>
|
|
</div>';
|
|
}
|
|
|
|
?>
|