188 lines
8.0 KiB
PHP
188 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(dirname(__FILE__)."/../../../../../modules3/web.auth.php");
|
|
require_once(dirname(__FILE__)."/../../../../../modules3/web.form.php");
|
|
require_once(dirname(__FILE__)."/../../../../../modules3/web.print.php");
|
|
require_once(dirname(__FILE__)."/../../../../../vendor/autoload.php");
|
|
|
|
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," "), "", "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> </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();
|
|
}
|
|
|
|
?>
|