Files
simak/app/lap_anggaran/excel.php
2025-10-10 09:25:05 +07:00

298 lines
13 KiB
PHP

<?php
require_once '../../assets/excel/PHPExcel.php';
include('../koneksi.php');
$thn=$_GET['thn'];
$kegiatan=$_GET['kegiatan'];
$kpa=$_GET['kpa'];
$pptk=$_GET['pptk'];
$pgn=$_GET['pgn'];
$kom=$_GET['kom'];
$pejabat_pengadaan_id=$_GET['pejabat_pengadaan_id'];
$sub_kegiatan=$_GET['sub_kegiatan'];
$tm1=$_GET['tm1'];
$tm1=str_replace('/','-',$tm1);
$tt1=date('Y',strtotime($tm1));
$bb1=date('m',strtotime($tm1));
$hh1=date('d',strtotime($tm1));
$ts1=$_GET['ts1'];
$ts1=str_replace('/','-',$ts1);
$tt2=date('Y',strtotime($ts1));
$bb2=date('m',strtotime($ts1));
$hh2=date('d',strtotime($ts1));
$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(18);
$objPHPExcel->getSheet(0)->getColumnDimension('L')->setWidth(18);
$objPHPExcel->getSheet(0)->getColumnDimension('M')->setWidth(18);
$objPHPExcel->getSheet(0)->getColumnDimension('N')->setWidth(18);
$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_ANGGARAN');
$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', 'Hutang Termin')
->setCellValue('J1', 'Hutang')
->setCellValue('K1', 'Proses')
->setCellValue('L1', 'Terbayar')
->setCellValue('M1', 'Sisa Proses')
->setCellValue('N1', 'Sisa Pagu');
$ca=pg_query("SELECT anggaran FROM sub_kegiatan WHERE id=1436");
while($rca=pg_fetch_array($ca)) {$angg=$rca[0];}
$cb=pg_query("SELECT COALESCE(SUM(j.nilai_sp),0) FROM pekerjaan j WHERE j.status_setor IS NULL AND j.status<>'Extra'
AND j.user_nama='HUTANG' AND j.sub_kegiatan_id IN (1436,1437,1438)
".($tm1 == null ? "" : "AND j.tgl_input::DATE BETWEEN '$tt1-$bb1-$hh1' AND '$tt2-$bb2-$hh2'")." ");
while($rcb=pg_fetch_array($cb)) {$h1=$rcb[0];}
$cc=pg_query("SELECT COALESCE(SUM(j.nilai_sp),0) FROM pekerjaan j WHERE j.status_setor IS NULL
AND j.status<>'Extra' AND j.sub_kegiatan_id IN (1436,1437,1438)
".($tm1 == null ? "" : "AND j.tgl_input::DATE BETWEEN '$tt1-$bb1-$hh1' AND '$tt2-$bb2-$hh2'")." ");
while($rcc=pg_fetch_array($cc)) {$p1=$rcc[0];}
$cd=pg_query("SELECT COALESCE(SUM(a.nilai_pelunasan),0) FROM vr_pelunasan a
LEFT OUTER JOIN vr_realisasi r ON (r.id=a.vr_realisasi_id)
LEFT OUTER JOIN pekerjaan p ON (p.id=r.pekerjaan_id)
WHERE p.sub_kegiatan_id IN (1436,1437,1438)
AND EXTRACT(YEAR FROM DATE(a.tanggal_lunas))='$thn'
AND a.tanggal_lunas IS NOT NULL
".($tm1 == null ? "" : "AND p.tgl_input::DATE BETWEEN '$tt1-$bb1-$hh1' AND '$tt2-$bb2-$hh2'")."");
while($rcd=pg_fetch_array($cd)) {$b1=$rcd[0];}
/* ==================== */
/*
$query = "SELECT a.inisial,t.inisial,o.inisial,p.inisial,g.nama,
k.ra,k.rb,k.rc,k.rd,k.re,k.rf,k.rg,k.rh,k.sub_kegiatan,k.anggaran,
k.id,
k.kegiatan,k.kpa,k.pptk,
(SELECT COALESCE(SUM(j.nilai_sp),0) FROM pekerjaan j WHERE j.status_setor IS NULL AND j.status<>'Extra'
AND j.user_nama='HUTANG' AND j.sub_kegiatan_id=k.id
".($tm1 == null ? "" : "AND j.tgl_input::DATE BETWEEN '$tt1-$bb1-$hh1' AND '$tt2-$bb2-$hh2'")."
) as hutang,
(SELECT COALESCE(SUM(j.nilai_sp),0) FROM pekerjaan j WHERE j.status_setor IS NULL
AND j.status<>'Extra' AND j.sub_kegiatan_id=k.id
".($tm1 == null ? "" : "AND j.tgl_input::DATE BETWEEN '$tt1-$bb1-$hh1' AND '$tt2-$bb2-$hh2'")."
) AS proses,
(SELECT COALESCE(SUM(a.nilai_pelunasan),0) FROM vr_pelunasan a
LEFT OUTER JOIN vr_realisasi r ON (r.id=a.vr_realisasi_id)
LEFT OUTER JOIN pekerjaan p ON (p.id=r.pekerjaan_id)
WHERE p.sub_kegiatan_id=k.id
AND EXTRACT(YEAR FROM DATE(a.tanggal_lunas))='$thn'
AND a.tanggal_lunas IS NOT NULL
".($tm1 == null ? "" : "AND p.tgl_input::DATE BETWEEN '$tt1-$bb1-$hh1' AND '$tt2-$bb2-$hh2'")."
) as terbayar
FROM sub_kegiatan k
LEFT OUTER JOIN kpa a ON (a.id=k.kpa_id)
LEFT OUTER JOIN pptk t ON (t.id=k.pptk_id)
LEFT OUTER JOIN pejabat_pengadaan p ON (p.id=k.pejabat_pengadaan_id)
LEFT OUTER JOIN ppkom o ON (o.id=k.ppkom_id)
LEFT OUTER JOIN subkategori_kegiatan g ON (g.id=k.kategori_id)
WHERE k.thn='$thn'
".($sub_kegiatan == '' ? "" : "AND k.sub_kegiatan='$sub_kegiatan'")."
".($pejabat_pengadaan_id == '' ? "" : "AND k.pejabat_pengadaan_id='$pejabat_pengadaan_id'")."
".($kegiatan == '' ? "" : "AND k.kegiatan='$kegiatan'")."
".($kpa == '' ? "" : "AND k.kpa_id='$kpa'")."
".($pptk == '' ? "" : "AND k.pptk_id='$pptk'")."
".($pgn == '' ? "" : "AND k.pejabat_pengadaan_id='$pgn'")."
".($kom == '' ? "" : "
".($kom == "ALL" ? "AND (k.ppkom_id IS NOT NULL AND o.inisial <> 'PPK')" : "
".($kom == "NON" ? "AND (k.ppkom_id IS NULL OR o.inisial = 'PPK')" : "AND k.ppkom_id='$kom'")."
")."
")."
ORDER BY k.id DESC
";
*/
$query = "SELECT a.inisial,t.inisial,o.inisial,p.inisial,g.nama,
k.ra,k.rb,k.rc,k.rd,k.re,k.rf,k.rg,k.rh,k.sub_kegiatan,k.anggaran,
k.id,
k.kegiatan,k.kpa,k.pptk,
(SELECT COALESCE(SUM(j.nilai_sp),0) FROM pekerjaan j WHERE j.status_setor IS NULL AND j.status<>'Extra'
AND j.user_nama='HUTANG' AND j.sub_kegiatan_id=k.id
".($tm1 == null ? "" : "AND j.tgl_input::DATE BETWEEN '$tt1-$bb1-$hh1' AND '$tt2-$bb2-$hh2'")."
) as hutang,
(SELECT COALESCE(SUM(a.total),0) FROM
(
SELECT j.nilai_sp as total
FROM pekerjaan j
LEFT OUTER JOIN vr_realisasi r2 ON (r2.pekerjaan_id=j.id)
LEFT OUTER JOIN vr_pelunasan l ON (l.vr_realisasi_id=r2.id)
WHERE j.status_setor IS NULL AND j.status<>'Extra' AND j.cad3 IS NULL
AND l.st_hutang IS NULL
AND j.sub_kegiatan_id=k.id
".($tm1 == null ? "" : "AND j.tgl_input::DATE BETWEEN '$tt1-$bb1-$hh1' AND '$tt2-$bb2-$hh2'")."
GROUP BY j.no_sp,j.nilai_sp
) a
) AS proses,
(SELECT COALESCE(SUM(a.nilai_pelunasan),0) FROM vr_pelunasan a
LEFT OUTER JOIN vr_realisasi r ON (r.id=a.vr_realisasi_id)
LEFT OUTER JOIN pekerjaan p ON (p.id=r.pekerjaan_id)
WHERE p.sub_kegiatan_id=k.id AND p.status_setor IS NULL
AND EXTRACT(YEAR FROM DATE(a.tanggal_lunas))='$thn'
AND EXTRACT(MONTH FROM DATE(a.tanggal_lunas)) BETWEEN '1' AND '12' AND a.tanggal_lunas IS NOT NULL
".($tm1 == null ? "" : "AND p.tgl_input::DATE BETWEEN '$tt1-$bb1-$hh1' AND '$tt2-$bb2-$hh2'")."
) as terbayar,
(SELECT COALESCE(SUM(a.nilai_sp)-SUM(a.nilai_pelunasan),0) FROM (
SELECT p.nilai_sp as nilai_sp,
(SELECT SUM(l2.nilai_pelunasan) FROM vr_pelunasan l2 INNER JOIN vr_realisasi r3 ON (r3.id=l2.vr_realisasi_id) INNER JOIN pekerjaan p2 ON (p2.id=r3.pekerjaan_id) WHERE l2.st_hutang IS NULL AND p2.no_sp=p.no_sp) as nilai_pelunasan
FROM pekerjaan p
LEFT OUTER JOIN vr_realisasi r2 ON (r2.pekerjaan_id=p.id)
LEFT OUTER JOIN vr_pelunasan l ON (l.vr_realisasi_id=r2.id)
WHERE p.status_setor IS NULL AND p.status<>'Extra' AND p.cad3 IS NULL
AND COALESCE(p.user_nama,'')='HUTANG TERMIN'
AND p.sub_kegiatan_id=k.id
".($tm1 == null ? "" : "AND p.tgl_input::DATE BETWEEN '$tt1-$bb1-$hh1' AND '$tt2-$bb2-$hh2'")."
GROUP BY p.no_sp,p.tgl_mulai_sp,p.tgl_selesai_sp,p.kegiatan_pengadaan,p.nilai_sp,p.id
) a
) as hutang_termin,
(SELECT COALESCE(SUM(a.total),0) FROM
(
SELECT j.nilai_sp as total
FROM pekerjaan j
LEFT OUTER JOIN vr_realisasi r2 ON (r2.pekerjaan_id=j.id)
LEFT OUTER JOIN vr_pelunasan l ON (l.vr_realisasi_id=r2.id)
WHERE j.status_setor IS NULL AND j.status<>'Extra' AND j.cad3 IS NULL
AND l.st_hutang='H' AND COALESCE(j.user_nama,'')<>'HUTANG TERMIN'
AND j.sub_kegiatan_id=k.id
".($tm1 == null ? "" : "AND j.tgl_input::DATE BETWEEN '$tt1-$bb1-$hh1' AND '$tt2-$bb2-$hh2'")."
GROUP BY j.no_sp,j.nilai_sp
) a
) as hutang_new
FROM sub_kegiatan k
LEFT OUTER JOIN kpa a ON (a.id=k.kpa_id)
LEFT OUTER JOIN pptk t ON (t.id=k.pptk_id)
LEFT OUTER JOIN pejabat_pengadaan p ON (p.id=k.pejabat_pengadaan_id)
LEFT OUTER JOIN ppkom o ON (o.id=k.ppkom_id)
LEFT OUTER JOIN subkategori_kegiatan g ON (g.id=k.kategori_id)
WHERE k.thn='$thn'
".($sub_kegiatan == null ? "" : "AND k.sub_kegiatan='$sub_kegiatan'")."
".($pejabat_pengadaan_id == null ? "" : "AND k.pejabat_pengadaan_id='$pejabat_pengadaan_id'")."
".($kegiatan == null ? "" : "AND k.kegiatan='$kegiatan' AND k.rh='$rh'")."
".($kpa == null ? "" : "AND k.kpa_id='$kpa'")."
".($pptk == null ? "" : "AND k.pptk_id='$pptk'")."
".($pgn == null ? "" : "AND k.pejabat_pengadaan_id='$pgn'")."
".($kom == null ? "" : "
".($kom == "ALL" ? "AND (k.ppkom_id IS NOT NULL AND o.inisial <> 'PPK')" : "
".($kom == "NON" ? "AND (k.ppkom_id IS NULL OR o.inisial = 'PPK')" : "AND k.ppkom_id='$kom'")."
")."
")."
ORDER BY k.id DESC
";
$hasil = pg_query($query);
$baris = 2;
$a=1;
while ($r = pg_fetch_array($hasil))
{
if(($r[5]=='') || ($r[5]==NULL)) {
$rek='';
} else {
$rek=$r['kpa'].' '.$r['pptk'].' '.$r[5].' '.$r[6].' '.$r[7].' '.$r[8].' '.$r[9].' '.$r[10].' '.$r[11].' '.$r[12];
}
if(($r[13]=='') || ($r[13]==NULL)) {$sub='';} else {$sub=$r[13];}
if(($r[16]=='') || ($r[16]==NULL)) {$bl='';} else {$bl=$r[16];}
/*
$hutang=$r[19];
$proses=$r[20];
$terbayar=$r[21];
$sisa_proses=($hutang+$proses)-$terbayar;
$sisa_anggaran=($r[14]-($hutang+$proses))+$sisa_proses;
*/
/*
$hutang=$r[19];
$proses=$r[20]-$r[19];
$terbayar=$r[21];
$sisa_proses=($hutang+$proses)-$terbayar;
if (($r['id']=='1436') || ($r['id']=='1437') || ($r['id']=='1438')) {
$sisa_p1=($h1+$p1)-$b1;
$sisa_anggaran=($angg-($h1+$p1))+$sisa_p1;
} else {
$sisa_anggaran=($r[14]-($hutang+$proses))+$sisa_proses;
}
*/
$hutang=$r[19];
$proses=$r[20]-$r[19];
$terbayar=$r[21];
$hutang_termin=$r[22];
$hutang_new=$r[23];
$sisa_proses=($hutang_new+$hutang_termin+$proses)-$terbayar;
if (($r['id']=='1436') || ($r['id']=='1437') || ($r['id']=='1438')) {
$sisa_p1=($h1+$p1)-$b1;
$sisa_anggaran=($angg-($h1+$p1))+$sisa_p1;
} else {
$sisa_anggaran=($r[14]-($hutang_new+$hutang_termin+$proses))+$sisa_proses;
}
$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, $sub."\n".$bl)
->setCellValueExplicit('H'.$baris, $r[14], PHPExcel_Cell_DataType::TYPE_NUMERIC) /*anggaran*/
->setCellValueExplicit('I'.$baris, $hutang_termin, PHPExcel_Cell_DataType::TYPE_NUMERIC) /*hutang*/
->setCellValueExplicit('J'.$baris, $hutang_new, PHPExcel_Cell_DataType::TYPE_NUMERIC) /*hutang*/
->setCellValueExplicit('K'.$baris, $proses, PHPExcel_Cell_DataType::TYPE_NUMERIC) /*proses*/
->setCellValueExplicit('L'.$baris, $terbayar, PHPExcel_Cell_DataType::TYPE_NUMERIC) /*terbayar*/
->setCellValueExplicit('M'.$baris, $sisa_proses, PHPExcel_Cell_DataType::TYPE_NUMERIC) /*sisa proses*/
->setCellValueExplicit('N'.$baris, $sisa_anggaran, PHPExcel_Cell_DataType::TYPE_NUMERIC); /*sisa*/
$objPHPExcel->getSheet(0)->getStyle('H1:N'.$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);
$a++;
$baris++;
}
$objPHPExcel->setActiveSheetIndex(0);
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="lap_anggaran.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;
?>