Query("SELECT P.*,J.No_Nota,O.Email_Outlet FROM (SELECT * FROM inv_jual_pajak WHERE Tgl_Pajak BETWEEN '".$tglfrom."' AND '".$tglto."') P LEFT JOIN (SELECT No_Pajak,GROUP_CONCAT(RIGHT(No_Jual,5) SEPARATOR ', ') No_Nota FROM inv_jual WHERE No_Pajak IN (SELECT No_Pajak FROM inv_jual_pajak WHERE Tgl_Pajak BETWEEN '".$tglfrom."' AND '".$tglto."') GROUP BY No_Pajak ORDER BY No_Pajak) J ON (J.No_Pajak=P.No_Pajak) LEFT JOIN para_outlet O ON (O.OutletID=P.OutletID) ORDER BY P.No_Pajak");
}
if ( $data == "print" ) {
Report_Header("LAPORAN REKAPITULASI FAKTUR PAJAK", $tglheader);
$header .= '
| No. | NSFP | Tanggal | No. Nota | Nama NPWP | Email Outlet | DPP | PPN |
';
$_line = '| %s | %s | %s | %s | %s | %s | %s | %s |
';
$_sline = '| %s | %s | %s |
';
$body = ''; $nomor = 1; $tot_dpp = 0; $tot_ppn = 0;
while ($db->Next()) {
$tot_dpp += $db->Row("Jumlah_DPP");
$tot_ppn += $db->Row("Jumlah_PPN");
$body .= sprintf($_line, $nomor++, $db->Row("No_Pajak"), tgl_sql2str($db->Row("Tgl_Pajak")), $db->Row("No_Nota"), $db->Row("Nama_NPWP"), $db->Row("Email_Outlet"), rupiah2($db->Row("Jumlah_DPP")), rupiah2($db->Row("Jumlah_PPN")));
}
$body .= sprintf($_sline, "Jumlah", rupiah2($tot_dpp), rupiah2($tot_ppn));
echo $header . $body . "
" . Report_Stamp(1, true);
} else if ( $data == "export" ) {
\PhpOffice\PhpSpreadsheet\Cell\Cell::setValueBinder( new \PhpOffice\PhpSpreadsheet\Cell\AdvancedValueBinder() );
$styleTxt = [
'numberFormat' => ['formatCode' => \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_TEXT]
];
$styleNum = [
'numberFormat' => ['formatCode' => \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED2]
];
$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("Data Rekapitulasi Faktur Pajak")
->setCompany($_SESSION['__WEB_APP']['REG_NAME']);
$sheet = $ssheet->getActiveSheet();
$sheet->setTitle("Data Rekapitulasi Faktur Pajak");
// header
$styleHeader = [
'font' => ['bold' => true],
'alignment' => ['horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER]
];
$sheet->setCellValue("A1", strtoupper($_SESSION['__WEB_APP']['REG_NAME']));
$sheet->mergeCells('A1:H1');
$sheet->setCellValue("A2", "LAPORAN REKAPITULASI FAKTUR PAJAK");
$sheet->mergeCells('A2:H2');
$sheet->setCellValue("A3", $tglheader);
$sheet->mergeCells('A3:H3');
$sheet->getStyle('A1:H3')->applyFromArray($styleHeader);
// table header
$sheet->getColumnDimension('A')->setWidth(8);
$sheet->getColumnDimension('B')->setWidth(18);
$sheet->getColumnDimension('C')->setWidth(12);
$sheet->getColumnDimension('D')->setWidth(25);
$sheet->getColumnDimension('E')->setWidth(25);
$sheet->getColumnDimension('F')->setWidth(20);
$sheet->getColumnDimension('G')->setWidth(18);
$sheet->getColumnDimension('H')->setWidth(18);
$styleTableH = [
'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'=>"D0D0D0"]],
'borders' => ['allBorders' => ['borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN, 'color' => ['rgb'=>"C0C0C0"]]]
];
$baris = 5;
$sheet->setCellValue("A".$baris, "No.");
$sheet->setCellValue("B".$baris, "NSFP");
$sheet->setCellValue("C".$baris, "Tanggal");
$sheet->setCellValue("D".$baris, "No. Nota");
$sheet->setCellValue("E".$baris, "Nama NPWP");
$sheet->setCellValue("F".$baris, "Email Outlet");
$sheet->setCellValue("G".$baris, "DPP");
$sheet->setCellValue("H".$baris, "PPN");
$sheet->getStyle('A'.$baris.':H'.$baris)->applyFromArray($styleTableH);
$baris++; $nomor = 1; $tot_dpp = 0; $tot_ppn = 0;
while ($db->Next()) {
$sheet->setCellValue("A".$baris, $nomor++);
$sheet->setCellValue("B".$baris, $db->Row("No_Pajak"));
$sheet->setCellValue("C".$baris, $db->Row("Tgl_Pajak"));
$sheet->setCellValue("D".$baris, $db->Row("No_Nota"));
$sheet->setCellValue("E".$baris, $db->Row("Nama_NPWP"));
$sheet->setCellValue("F".$baris, $db->Row("Email_Outlet"));
$sheet->setCellValue("G".$baris, $db->RowFloat("Jumlah_DPP"));
$sheet->setCellValue("H".$baris, $db->RowFloat("Jumlah_PPN"));
$sheet->getStyle('G'.$baris.':H'.$baris)->applyFromArray($styleNum);
$baris++;
$tot_dpp += $db->Row("Jumlah_DPP");
$tot_ppn += $db->Row("Jumlah_PPN");
}
$sheet->setCellValue("A".$baris, "Jumlah");
$sheet->mergeCells('A'.$baris.':F'.$baris);
$sheet->setCellValue("G".$baris, $tot_dpp);
$sheet->setCellValue("H".$baris, $tot_ppn);
$sheet->getStyle('A'.$baris.':F'.$baris)->applyFromArray(['alignment' => ['horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER]]);
$sheet->getStyle('G'.$baris.':H'.$baris)->applyFromArray($styleNum);
$styleSub = [
'font' => ['bold' => true],
'fill' => ['fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID, 'startColor' => ['rgb'=>"D0D0D0"]]
];
$sheet->getStyle('A'.$baris.':H'.$baris)->applyFromArray($styleSub);
$sheet->getSheetView()->setZoomScale(75);
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="Data Rekapitulasi Faktur Pajak.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") {
$form = new Form($db);
$form->datebox("Dari Tanggal", "Tgl_From", tgl_ymd(), true, false);
$form->datebox("Sampai Tanggal", "Tgl_To", tgl_ymd(), true, false);
$form->show(' _Tgl_From_ _Tgl_To_ ');
}
?>