Files
master/apps/php/rep/jalan.php
T
2026-07-16 14:24:29 +07:00

192 lines
8.0 KiB
PHP

<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/rep/jalan.php
Desc. : PHP - Cetak Tabel Master Jalan
Created By : Siau Pheng ([email protected]).
Created Date : March 20th, 2012.
Last Modified : October 17th, 2018.
(c) 2012 - 2018, 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;
use siaupheng\fonia3\Web\Table;
use siaupheng\fonia3\Web\Form;
function report_show() {
global $ap;
$id_kec = Param::Get("KecID", 0);
$id_kel = Param::Get("KelID", 0);
$ju = Param::Get("JU", 9);
$form = new Form($db);
$tkec = $form->option_db("_", "KecID", $id_kec, true, true, "para_lokasi", ["LokasiID","N_Lokasi"], "Aktif=1 AND Level=1 ORDER BY N_Lokasi", array(0,"&nbsp;"), "", "RepoMJalanJS.oc_KecID()");
$tkel = $form->option_db("_", "KelID", $id_kel, true, true, "para_lokasi", ["LokasiID","N_Lokasi"], "Aktif=1 AND Level=2 AND IndukID='".$id_kec."' ORDER BY N_Lokasi", [0,"SEMUA KELURAHAN / DESA"]);
$tju = $form->radio("_", "JU", $ju, true, true, [9=>"Semua Status",1=>"Jalan Utama",2=>"Jalan Lingkungan"]);
echo '
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="KecID">Nama Kecamatan</label>
<div class="col">'.$tkec.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="KelID">Nama Desa</label>
<div class="col">'.$tkel.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="JU">Status Jalan</label>
<div class="col">'.$tju.'</div>
</div>';
}
/************************** RESPON HERE ***************************/
$db = $db ?? new MySQL();
$data = Param::Get("data");
$id_kec = Param::Get("KecID", 0);
$id_kel = Param::Get("KelID", 0);
$ju = Param::Get("JU", 9);
if ( $data == "pdf" || $data == "cetak-html" || $data == "export") {
$adesa = ['N_Kec'=>"", 'N_Desa'=>"Semua Desa"];
$db->Query("SELECT LokasiID KecID,N_Lokasi N_Kec FROM para_lokasi WHERE LokasiID='".$id_kec."' LIMIT 1");
if ($db->Next()) $adesa = array_merge($adesa, $db->AllRow());
if ($id_kel > 0) {
$db->Query("SELECT LokasiID DesaID,N_Lokasi N_Desa FROM para_lokasi WHERE LokasiID='".$id_kel."' LIMIT 1");
if ($db->Next()) $adesa = array_merge($adesa, $db->AllRow());
}
$tsql = ($ju==9) ? "" : ($ju==1?" AND JU=1":" AND JU=0");
$tsql .= ($id_kec==0) ? "" : " AND KecID='".$id_kec."'";
$tsql .= ($id_kel==0) ? "" : " AND KelID='".$id_kel."'";
$db->Query("SELECT J.*,K.N_Lokasi N_Kec,L.N_Lokasi N_Kel FROM (SELECT * FROM para_jalan WHERE Aktif=1".$tsql.") J LEFT JOIN para_lokasi K ON (K.LokasiID=J.KecID) LEFT JOIN para_lokasi L ON (L.LokasiID=J.KelID) ORDER BY K.K_Lokasi,L.K_Lokasi,J.N_Jalan");
}
if ( $data == "cetak-html" ) {
$html = '<p class="judul">DAFTAR NAMA JALAN<br>'.$adesa['N_Kec'].'</p>';
$t_head = '<br>
<div><table class="garis" autosize="1"><thead><tr><th>No.</th><th>Kecamatan / Kelurahan / Nama Jalan / Gang</th><th>Lokasi</th><th>Ket</th></tr></thead><tbody>';
$t_foot = '</tbody></table></div>';
$_line = '<tr><td class="c">%s</td><td>%s</td><td>%s</td><td>%s</td></tr>';
$_sub = '<tr class="%s"><td>&nbsp;</td><td colspan="3" class="b">%s</td></tr>';
$body = $t_head;
$kkec = 0; $kkel = 0; $nomor = 1;
while ($db->Next()) {
if ($kkec <> $db->Row("KecID")) {
$body .= sprintf($_sub, "opd", $db->Row("N_Kec"));
$kkec = $db->Row("KecID");
}
if ($kkel <> $db->Row("KelID")) {
$body .= sprintf($_sub, "prog", $db->Row("N_Kel"));
$kkel = $db->Row("KelID");
$nomor = 1;
}
$body .= sprintf($_line, $nomor, $db->Row("N_Jalan"), $db->Row("Lokasi"), ($db->Row("JU")==1?"JU":"JL"));
$nomor++;
}
$body .= sprintf($t_foot);
echo $html . $body;
} else if ( $data == "export" ) {
\PhpOffice\PhpSpreadsheet\Cell\Cell::setValueBinder( new \PhpOffice\PhpSpreadsheet\Cell\AdvancedValueBinder() );
$styleTxt = [
'numberFormat' => ['formatCode' => \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_TEXT]
];
$ssheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();
$ssheet->getProperties()
->setCreator($_SESSION['__WEB_APP']['APP_NAME']." v".$_SESSION['__WEB_APP']['APP_VER'])
->setLastModifiedBy($_SESSION['__WEB_APP']['APP_NAME']." v".$_SESSION['__WEB_APP']['APP_VER'])
->setTitle("Daftar Nama Jalan")
->setCategory("Daftar Nama Jalan")
->setSubject("Daftar Nama Jalan")
->setDescription("Daftar Nama Jalan")
->setCompany("BAPPERIDA Kabupaten Mempawah");
$sheet = $ssheet->getActiveSheet();
$sheet->setTitle("JALAN");
// header
$styleHeader = [
'font' => ['bold' => true],
'alignment' => ['horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER]
];
$sheet->setCellValue("A1", "DAFTAR NAMA JALAN");
$sheet->mergeCells('A1:D1');
$sheet->setCellValue("A2", $adesa['N_Kec']);
$sheet->mergeCells('A2:D2');
$sheet->getStyle('A1:D2')->applyFromArray($styleHeader);
// table header
$sheet->getColumnDimension('A')->setWidth(8);
$sheet->getColumnDimension('B')->setWidth(30);
$sheet->getColumnDimension('C')->setWidth(40);
$sheet->getColumnDimension('D')->setWidth(6);
$styleTableH1 = [
'font' => ['bold' => true],
'alignment' => ['horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER, 'vertical' => \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER, 'wrapText' => true],
'fill' => ['fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID, 'startColor' => ['rgb'=>"2187AC"]],
'borders' => ['allBorders' => ['borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN, 'color' => ['rgb'=>"000000"]]]
];
$sheet->setCellValue("A4", "No.");
$sheet->setCellValue("B4", "Kecamatan / Kelurahan / Nama Jalan / Gang");
$sheet->setCellValue("C4", "Lokasi");
$sheet->setCellValue("D4", "Ket");
$sheet->getStyle('A4:D4')->applyFromArray($styleTableH1);
$baris = 5; $kkec = 0; $kkel = 0; $nomor = 1;
while ($db->Next()) {
if ($kkec <> $db->Row("KecID")) {
$sheet->setCellValue("B".$baris, $db->Row("N_Kec"));
$sheet->mergeCells('B'.$baris.':D'.$baris);
$baris++;
$kkec = $db->Row("KecID");
}
if ($kkel <> $db->Row("KelID")) {
$sheet->setCellValue("B".$baris, $db->Row("N_Kel"));
$sheet->mergeCells('B'.$baris.':D'.$baris);
$baris++;
$kkel = $db->Row("KelID");
$nomor = 1;
}
$sheet->setCellValue("A".$baris, $nomor);
$sheet->setCellValue("B".$baris, $db->Row("N_Jalan"));
$sheet->setCellValue("C".$baris, $db->Row("Lokasi"));
$sheet->setCellValue("D".$baris, ($db->Row("JU")==1?"JU":"JL"));
$baris++;
$nomor++;
}
$sheet->getSheetView()->setZoomScale(90);
//$sheet->getHeaderFooter()->setOddFooter('&LeMONEv - Kabupaten Mempawah &CEvaluasi &R&I&D &T // Halaman : &P dari &N');
//$sheet->getHeaderFooter()->setEvenFooter('&LeMONEv - Kabupaten Mempawah &CEvaluasi &R&I&D &T // Halaman : &P dari &N');
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="Daftar Nama Jalan '.$adesa['N_Kec'].'.xlsx"');
header('Cache-Control: max-age=0');
$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($ssheet, 'Xlsx');
$writer->save('php://output');
$ssheet->disconnectWorksheets();
unset($ssheet);
unset($writer);
} else if ( $data == "default") {
report_show();
}
?>