first commit
This commit is contained in:
@@ -0,0 +1,162 @@
|
||||
<?php
|
||||
|
||||
/*******************************************************************
|
||||
|
||||
App. Name : Inventory Advanced Systems
|
||||
Module : /apps/php/repo/rekap_fp_biaya.php
|
||||
Desc. : PHP - Rekap Faktur Pajak Biaya
|
||||
Created By : Siau Pheng ([email protected]).
|
||||
Created Date : December 31st, 2024.
|
||||
|
||||
(c) 2016 - 2024, 3FONIA Software; WWW.3FONIA.COM.
|
||||
|
||||
*******************************************************************/
|
||||
|
||||
require_once(__DIR__."/../../../../../vendor/autoload.php");
|
||||
require_once(__DIR__."/../func/ias.php");
|
||||
require_once(__DIR__."/../func/report.php");
|
||||
|
||||
use siaupheng\fonia3\DB\MySQL;
|
||||
use siaupheng\fonia3\DB\SQL;
|
||||
use siaupheng\fonia3\Web\Param;
|
||||
use siaupheng\fonia3\Web\Form;
|
||||
|
||||
$db = (is_resource($db)) ? $db : new MySQL();
|
||||
$ajson = [];
|
||||
$data = Param::Get("data");
|
||||
|
||||
if ( $data == "print" || $data == "export" ) {
|
||||
$tglfrom = Param::Get("Tgl_From");
|
||||
$tglto = Param::Get("Tgl_To");
|
||||
|
||||
// generate report header
|
||||
$tglheader = "Periode : ".$tglfrom;
|
||||
if ($tglfrom!==$tglto) $tglheader .= " s/d ".$tglto;
|
||||
$tglfrom = tgl_sql2str($tglfrom);
|
||||
$tglto = tgl_sql2str($tglto);
|
||||
|
||||
// query data laporan
|
||||
$db->Query("SELECT P.* FROM (SELECT * FROM biaya_pajak WHERE Tgl_Pajak BETWEEN '".$tglfrom."' AND '".$tglto."') P ORDER BY P.No_Pajak");
|
||||
}
|
||||
|
||||
if ( $data == "print" ) {
|
||||
Report_Header("LAPORAN REKAPITULASI FP INVOICE BIAYA", $tglheader);
|
||||
|
||||
$header .= '<table class="garis"><thead><tr><th>No.</th><th>No. Faktur</th><th>Tgl. Faktur</th><th>NSFP</th><th>NPWP</th><th>Nama NPWP</th><th>DPP</th><th>PPN</th></tr></thead><tbody>';
|
||||
$_line = '<tr><td class="c">%s</td><td>%s</td><td class="c">%s</td><td>%s</td><td>%s</td><td>%s</td><td class="r">%s</td><td class="r">%s</td></tr>';
|
||||
$_sline = '<tr><td class="c b" colspan="6">%s</td><td class="r b">%s</td><td class="r b">%s</td></tr>';
|
||||
|
||||
$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_Biaya"), tgl_sql2str($db->Row("Tgl_Biaya")), $db->Row("No_Pajak"), $db->Row("No_NPWP"), $db->Row("Nama_NPWP"), rupiah2($db->Row("Jumlah_DPP")), rupiah2($db->Row("Jumlah_PPN")));
|
||||
}
|
||||
$body .= sprintf($_sline, "Jumlah", rupiah2($tot_dpp), rupiah2($tot_ppn));
|
||||
|
||||
echo $header . $body . "</tbody></table>" . 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 FP Invoice Biaya")
|
||||
->setCompany($_SESSION['__WEB_APP']['REG_NAME']);
|
||||
$sheet = $ssheet->getActiveSheet();
|
||||
$sheet->setTitle("Data Rekapitulasi FP Invoice Biaya");
|
||||
|
||||
// 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 FP INVOICE BIAYA");
|
||||
$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, "No. Faktur");
|
||||
$sheet->setCellValue("C".$baris, "Tgl. Faktur");
|
||||
$sheet->setCellValue("D".$baris, "NSFP");
|
||||
$sheet->setCellValue("E".$baris, "NPWP");
|
||||
$sheet->setCellValue("F".$baris, "Nama NPWP");
|
||||
$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_Biaya"));
|
||||
$sheet->setCellValue("C".$baris, $db->Row("Tgl_Biaya"));
|
||||
$sheet->setCellValue("D".$baris, $db->Row("No_Pajak"));
|
||||
$sheet->setCellValue("E".$baris, $db->Row("No_NPWP"));
|
||||
$sheet->setCellValue("F".$baris, $db->Row("Nama_NPWP"));
|
||||
$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 FP Invoice Biaya.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_ ');
|
||||
}
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user