150 lines
7.1 KiB
PHP
150 lines
7.1 KiB
PHP
<?php
|
|
|
|
require_once '../../assets/excel/PHPExcel.php';
|
|
include('../koneksi.php');
|
|
|
|
$thn=$_GET['thn'];
|
|
$kpa=$_GET['kpa'];
|
|
$pptk=$_GET['pptk'];
|
|
$pgn=$_GET['pgn'];
|
|
$kom=$_GET['kom'];
|
|
$pelaksana_kegiatan=$_GET['pelaksana_kegiatan'];
|
|
$pejabat_pengadaan_id=$_GET['pejabat_pengadaan_id'];
|
|
$rh=$_GET['rh'];
|
|
$sub_kegiatan=$_GET['sub_kegiatan'];
|
|
$kegiatan=$_GET['kegiatan'];
|
|
|
|
|
|
$objPHPExcel = new PHPExcel();
|
|
$objPHPExcel->getDefaultStyle()->getFont()->setName('Arial');
|
|
$objPHPExcel->getDefaultStyle()->getFont()->setSize(10);
|
|
$objPHPExcel->getDefaultStyle()->getAlignment()->setWrapText(true);
|
|
//$objPHPExcel->getDefaultStyle()->getNumberFormat()->setFormatCode('@');
|
|
$objPHPExcel->getSheet(0)->getColumnDimension('A')->setWidth(5);
|
|
$objPHPExcel->getSheet(0)->getColumnDimension('B')->setWidth(6);
|
|
$objPHPExcel->getSheet(0)->getColumnDimension('C')->setWidth(6);
|
|
$objPHPExcel->getSheet(0)->getColumnDimension('D')->setWidth(8);
|
|
$objPHPExcel->getSheet(0)->getColumnDimension('E')->setWidth(6);
|
|
$objPHPExcel->getSheet(0)->getColumnDimension('F')->setWidth(35);
|
|
$objPHPExcel->getSheet(0)->getColumnDimension('G')->setWidth(95);
|
|
$objPHPExcel->getSheet(0)->getColumnDimension('H')->setWidth(18);
|
|
$objPHPExcel->getSheet(0)->getColumnDimension('I')->setWidth(18);
|
|
$objPHPExcel->getSheet(0)->getColumnDimension('J')->setWidth(18);
|
|
$objPHPExcel->getSheet(0)->getColumnDimension('K')->setWidth(8);
|
|
$objPHPExcel->getSheet(0)->getColumnDimension('L')->setWidth(8);
|
|
|
|
$styleBold = array('font' => array('bold' => true));
|
|
$objPHPExcel->getSheet(0)->getStyle('A1:S1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
$objPHPExcel->getSheet(0)->getStyle('A1:S1')->applyFromArray($styleBold);
|
|
$objPHPExcel->getSheet(0)->getRowDimension('1')->setRowHeight(25);
|
|
$objPHPExcel->getSheet(0)->setTitle('LAP_PENYERAPAN');
|
|
$objPHPExcel->getSheet(0)
|
|
->setCellValue('A1', 'No')
|
|
->setCellValue('B1', 'KPA')
|
|
->setCellValue('C1', 'PPTK')
|
|
->setCellValue('D1', 'PPKOM')
|
|
->setCellValue('E1', 'PPBJ')
|
|
->setCellValue('F1', 'Rek')
|
|
->setCellValue('G1', 'Sub / Belanja')
|
|
->setCellValue('H1', 'Anggaran')
|
|
->setCellValue('I1', 'Penyerapan')
|
|
->setCellValue('J1', 'Sisa')
|
|
->setCellValue('K1', '%')
|
|
->setCellValue('L1', '% Sisa');
|
|
|
|
$query = "SELECT
|
|
k.inisial,t.inisial,m.inisial,p1.inisial,b1.inisial,
|
|
s.kpa,s.pptk,s.ra,s.rb,s.rc,s.rd,s.re,s.rf,s.rg,s.rh,
|
|
s.kd_panggil,
|
|
s.p1,s.k1,s.sk1,s.sub_kegiatan,s.kegiatan,s.anggaran,s.kd_panggil,
|
|
SUM(p.nilai_sp) as tot_nilai_pekerjaan,s.id,
|
|
SUM(COALESCE(l2.tot,0)) as tot_termin_terbayar
|
|
FROM sub_kegiatan s
|
|
LEFT OUTER JOIN (SELECT * FROM pekerjaan WHERE status_setor IS NULL) p ON (p.sub_kegiatan_id=s.id)
|
|
LEFT OUTER JOIN kpa k ON (k.id=s.kpa_id)
|
|
LEFT OUTER JOIN pptk t ON (t.id=s.pptk_id)
|
|
LEFT OUTER JOIN ppkom m ON (m.id=s.ppkom_id)
|
|
LEFT OUTER JOIN pejabat_pengadaan p1 ON (p1.id=s.pejabat_pengadaan_id)
|
|
LEFT OUTER JOIN subkategori_kegiatan g ON (g.id=s.kategori_id)
|
|
LEFT OUTER JOIN bp b1 ON (b1.id=s.bp_id)
|
|
LEFT OUTER JOIN (
|
|
SELECT p1.no_sp,SUM(l1.nilai_pelunasan) as tot FROM pekerjaan p1
|
|
INNER JOIN sub_kegiatan s1 ON (s1.id=p1.sub_kegiatan_id)
|
|
INNER JOIN vr_realisasi r1 ON (p1.id=r1.pekerjaan_id)
|
|
INNER JOIN vr_pelunasan l1 ON (r1.id=l1.vr_realisasi_id)
|
|
WHERE s1.thn<>'$thn' AND p1.status_setor IS NULL AND l1.id IS NOT NULL AND COALESCE(p1.no_sp,'')<>''
|
|
GROUP BY p1.no_sp
|
|
) l2 ON (l2.no_sp=p.no_sp)
|
|
WHERE s.thn='$thn'
|
|
".($sub_kegiatan == null ? "" : "AND s.sub_kegiatan='$sub_kegiatan'")."
|
|
".($pejabat_pengadaan_id == null ? "" : "AND s.pejabat_pengadaan_id='$pejabat_pengadaan_id'")."
|
|
".($kegiatan == null ? "" : "AND s.kegiatan='$kegiatan' AND s.rh='$rh'")."
|
|
".($kpa == null ? "" : "AND s.kpa_id='$kpa'")."
|
|
".($pptk == null ? "" : "AND s.pptk_id='$pptk'")."
|
|
".($pgn == null ? "" : "AND s.pejabat_pengadaan_id='$pgn'")."
|
|
".($kom == null ? "" : "
|
|
".($kom == "ALL" ? "AND (s.ppkom_id IS NOT NULL AND m.inisial <> 'PPK')" : "
|
|
".($kom == "NON" ? "AND (s.ppkom_id IS NULL OR m.inisial = 'PPK')" : "AND s.ppkom_id='$kom'")."
|
|
")."
|
|
")."
|
|
".($pelaksana_kegiatan == null ? "" : "AND s.pelaksana_kegiatan_id='$pelaksana_kegiatan'")."
|
|
GROUP BY
|
|
k.inisial,t.inisial,m.inisial,p1.inisial,b1.inisial,
|
|
s.kpa,s.pptk,s.ra,s.rb,s.rc,s.rd,s.re,s.rf,s.rg,s.rh,
|
|
s.kd_panggil,
|
|
s.p1,s.k1,s.sk1,s.sub_kegiatan,s.kegiatan,s.anggaran,s.id
|
|
ORDER BY s.id DESC";
|
|
|
|
$hasil = pg_query($query);
|
|
$baris = 2;
|
|
$a=1;
|
|
while ($r = pg_fetch_array($hasil))
|
|
{
|
|
$tot_penyerapan=$r['tot_nilai_pekerjaan']-$r['tot_termin_terbayar'];
|
|
$rek=$r['kpa'].' '.$r['pptk'].' '.$r['ra'].' '.$r['rb'].' '.$r['rc'].' '.$r['rd'].' '.$r['re'].' '.$r['rf'].' '.$r['rg'].' '.$r['rh'];
|
|
$p=@($tot_penyerapan/$r['anggaran']);
|
|
$p1=@(($r['anggaran']-$tot_penyerapan)/$r['anggaran']);
|
|
$objPHPExcel->getSheet(0)
|
|
->setCellValue('A'.$baris, $a)
|
|
->setCellValue('B'.$baris, $r[0])
|
|
->setCellValue('C'.$baris, $r[1])
|
|
->setCellValue('D'.$baris, $r[2])
|
|
->setCellValue('E'.$baris, $r[3])
|
|
->setCellValue('F'.$baris, $rek)
|
|
->setCellValue('G'.$baris, $r['sub_kegiatan']."\n".$r['kegiatan'])
|
|
->setCellValueExplicit('H'.$baris, $r['anggaran'], PHPExcel_Cell_DataType::TYPE_NUMERIC) /*anggaran*/
|
|
->setCellValueExplicit('I'.$baris, $tot_penyerapan, PHPExcel_Cell_DataType::TYPE_NUMERIC) /*hutang termin*/
|
|
->setCellValueExplicit('J'.$baris, $r['anggaran']-$tot_penyerapan, PHPExcel_Cell_DataType::TYPE_NUMERIC) /*hutang*/
|
|
->setCellValue('K'.$baris, number_format($p*100, 0, '.', '')) /* % */
|
|
->setCellValue('L'.$baris, number_format($p1*100, 0, '.', '')); /* % sisa */
|
|
/*
|
|
$objPHPExcel->getSheet(0)->getStyle('H1:M'.$baris)->getNumberFormat()->setFormatCode('#,##0');
|
|
$objPHPExcel->getSheet(0)->getStyle('A1:E'.$baris)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
$objPHPExcel->getSheet(0)->getStyle('P1:S'.$baris)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
$objPHPExcel->getSheet(0)->getStyle('A1:R'.$baris)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
|
|
$objPHPExcel->getSheet(0)->getStyle('N1:O'.$baris)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
*/
|
|
$a++;
|
|
$baris++;
|
|
}
|
|
|
|
$objPHPExcel->getSheet(0)->getStyle('H1:M'.$baris)->getNumberFormat()->setFormatCode('#,##0');
|
|
$objPHPExcel->getSheet(0)->getStyle('A1:E'.$baris)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
$objPHPExcel->getSheet(0)->getStyle('P1:S'.$baris)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
$objPHPExcel->getSheet(0)->getStyle('A1:R'.$baris)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
|
|
$objPHPExcel->getSheet(0)->getStyle('N1:O'.$baris)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
$objPHPExcel->getSheet(0)->getStyle('K1:L'.$baris)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
$objPHPExcel->setActiveSheetIndex(0);
|
|
|
|
header('Content-Type: application/vnd.ms-excel');
|
|
header('Content-Disposition: attachment;filename="lap_penyerapan.xls"');
|
|
header('Cache-Control: max-age=0');
|
|
|
|
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
|
|
$objWriter->save('php://output');
|
|
exit;
|
|
|
|
?>
|
|
|
|
|