111 lines
6.8 KiB
PHP
111 lines
6.8 KiB
PHP
<?php
|
|
|
|
/*******************************************************************
|
|
|
|
App. Name : Inventory Advanced Systems
|
|
Module : /apps/php/csv/faktur_pajak.php
|
|
Desc. : PHP - Export Data Faktur Pajak
|
|
Created By : Siau Pheng ([email protected]).
|
|
Created Date : April 2rd, 2011.
|
|
Last Modified : August 13th, 2024.
|
|
|
|
(c) 2011 - 2024, 3FONIA Software; WWW.3FONIA.COM.
|
|
|
|
*******************************************************************/
|
|
|
|
require_once(__DIR__."/../../../../../vendor/autoload.php");
|
|
require_once(__DIR__."/../func/ias.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;
|
|
use siaupheng\fonia3\Data\CSV;
|
|
|
|
$db = (is_resource($db)) ? $db : new MySQL();
|
|
$db2 = $db2 ?? new MySQL();
|
|
$ajson = [];
|
|
$data = Param::Get("data");
|
|
$tgl_from = tgl_sql2str(Param::Get("Tgl_From"));
|
|
$tgl_to = tgl_sql2str(Param::Get("Tgl_To"));
|
|
$jenis_fp = Param::Get("Jenis_FP", 0);
|
|
|
|
if ( $data == "download" ) {
|
|
$aval = [];
|
|
$alist = Param::Get_ArrayCBOX();
|
|
foreach ($alist as $_key => $_val) {
|
|
if ($_val=="Y") array_push($aval, str_replace("_",".",$_key));
|
|
}
|
|
$tsql = (count($aval)==0) ? "FALSE" : "No_Pajak IN ('".implode("','",$aval)."')";
|
|
|
|
$pre = new CSV();
|
|
$pre->add_field("FK");
|
|
$pre->add_field("KD_JENIS_TRANSAKSI");
|
|
$pre->add_field("FG_PENGGANTI");
|
|
$pre->add_field("NOMOR_FAKTUR");
|
|
$pre->add_field("MASA_PAJAK");
|
|
$pre->add_field("TAHUN_PAJAK");
|
|
$pre->add_field("TANGGAL_FAKTUR");
|
|
$pre->add_field("NPWP");
|
|
$pre->add_field("NAMA");
|
|
$pre->add_field("ALAMAT_LENGKAP");
|
|
$pre->add_field("JUMLAH_DPP");
|
|
$pre->add_field("JUMLAH_PPN");
|
|
$pre->add_field("JUMLAH_PPNBM");
|
|
$pre->add_field("ID_KETERANGAN_TAMBAHAN");
|
|
$pre->add_field("FG_UANG_MUKA");
|
|
$pre->add_field("UANG_MUKA_DPP");
|
|
$pre->add_field("UANG_MUKA_PPN");
|
|
$pre->add_field("UANG_MUKA_PPNBM");
|
|
$pre->add_field("REFERENSI");
|
|
$pre->add_field("KODE_DOKUMEN_PENDUKUNG");
|
|
|
|
$pre->add_value("LT","NPWP","NAMA","JALAN","BLOK","NOMOR","RT","RW","KECAMATAN","KELURAHAN","KABUPATEN","PROPINSI","KODE_POS","NOMOR_TELEPON","","","","","","");
|
|
$pre->add_value("OF","KODE_OBJEK","NAMA","HARGA_SATUAN","JUMLAH_BARANG","HARGA_TOTAL","DISKON","DPP","PPN","TARIF_PPNBM","PPNBM","","","","","","","","","");
|
|
|
|
$db->Query("SELECT P.*,DATE_FORMAT(P.Tgl_Pajak,'%Y') Tahun_Pajak,DATE_FORMAT(P.Tgl_Pajak,'%c') Bulan_Pajak,DATE_FORMAT(P.Tgl_Pajak,'%d/%m/%Y') Tgl_Faktur,IF(P.OutletID=0,P.Alamat_NPWP,O.Alamat_NPWP) Alamat_NPWP2 FROM (SELECT * FROM inv_jual_pajak WHERE ".$tsql.") P LEFT JOIN para_outlet O ON (P.OutletID=O.OutletID) ORDER BY P.No_Pajak");
|
|
while ($db->Next()) {
|
|
$pre->add_value("FK", "01", $jenis_fp, rapi_fp($db->Row("No_Pajak")), $db->Row("Bulan_Pajak"), $db->Row("Tahun_Pajak"), $db->Row("Tgl_Faktur"), $db->Row("No_NPWP"), $db->Row("Nama_NPWP"), rapi_alamat($db->Row("Alamat_NPWP2")), $db->Row("Jumlah_DPP"), $db->Row("Jumlah_PPN"), 0, "", 0, 0, 0, 0, "", "");
|
|
$db2->Query("SELECT P.*,R.Nama_Rasa,D.Qty,D.Harga,D.Total_Jual,D.Total_Diskon,ROUND((D.Total_Jual-D.Total_Diskon)*D.PPN,4) Total_PPN FROM (SELECT InvID,RasaID,SUM(-Qty) Qty,ROUND(Harga_Jual/(1+PPN),2) Harga,SUM(-Qty*ROUND(Harga_Jual/(1+PPN),2)) Total_Jual,SUM(IF(Total_Diskon=(-Qty*Harga_Jual),-Qty*ROUND(Harga_Jual/(1+PPN),2),ROUND(Total_Diskon/(1+PPN),2))) Total_Diskon,PPN FROM inv_detail WHERE No_Ref IN (SELECT No_Jual FROM inv_jual WHERE No_Pajak='".$db->Row("No_Pajak")."') AND Qty<>0 GROUP BY InvID, RasaID, SatuanID ORDER BY InvID, RasaID, SatuanID) D LEFT JOIN inv_produk P ON (D.InvID=P.InvID) LEFT JOIN para_rasa R ON (D.RasaID=R.RasaID) WHERE P.Pajak=1 ORDER BY P.Nama_Produk");
|
|
while ($db2->Next()) {
|
|
$pre->add_value("OF", $db2->Row("Kode_Produk"), $db2->Row("Nama_Produk").data_rasafp($db2->Row("Nama_Rasa")), $db2->Row("Harga"), $db2->Row("Qty"), $db2->Row("Total_Jual"), $db2->Row("Total_Diskon"), $db2->Row("Total_Jual")-$db2->Row("Total_Diskon"), $db2->Row("Total_PPN"), "0", "0", "", "", "", "", "", "", "", "", "");
|
|
}
|
|
$db2->Query("UPDATE inv_jual_pajak SET XFP=XFP+1 WHERE No_Pajak='".$db->Row("No_Pajak")."' LIMIT 1");
|
|
}
|
|
$pre->download("FP-".Param::Get("Tgl_From").".csv");
|
|
|
|
} else if ( $data == "detail" ) {
|
|
$tcari = trim(Param::Get("Cari_FP"));
|
|
$tsql = ($tcari=="") ? "" : " AND CONCAT(No_Pajak,No_NPWP,Nama_NPWP,DATE_FORMAT(Tgl_Pajak,'%d-%m-%Y')) LIKE '%".$tcari."%'";
|
|
|
|
$tot_fp = 50;
|
|
$db->Query("SELECT COUNT(*) FP FROM inv_jual_pajak P WHERE P.Tgl_Pajak BETWEEN '".$tgl_from."' AND '".$tgl_to."'".$tsql);
|
|
if ($db->Next()) $tot_fp = $db->RowFloat("FP", 50);
|
|
|
|
$obj = new Table($db);
|
|
$obj->set_query("SELECT *,'N' Nota FROM inv_jual_pajak WHERE Tgl_Pajak BETWEEN '".$tgl_from."' AND '".$tgl_to."'".$tsql);
|
|
$obj->set_query_footer("SELECT SUM(Jumlah_DPP) Jumlah_DPP,SUM(Jumlah_PPN) Jumlah_PPN FROM inv_jual_pajak WHERE Tgl_Pajak BETWEEN '".$tgl_from."' AND '".$tgl_to."'".$tsql);
|
|
$obj->add_field("No_Pajak", "NSFP", "c");
|
|
$obj->add_field("Tgl_Pajak", "Tgl. FP", "c", "sqltgl");
|
|
$obj->add_field("No_NPWP", "NPWP", "l");
|
|
$obj->add_field("Nama_NPWP", "Nama NPWP", "awr");
|
|
$obj->add_field("Jumlah_DPP", "Jumlah DPP", "r", "rupiah", "rupiah");
|
|
$obj->add_field("Jumlah_PPN", "Jumlah PPN", "r", "rupiah", "rupiah");
|
|
$obj->add_field("XFP", "CSV", "c");
|
|
$obj->set_field_order("No_Pajak", "A");
|
|
$obj->add_row_checkbox("No_Pajak", "Nota", ["Y","N"]);
|
|
$obj->set_func_navi("CSVFPJS.data_query('detail')");
|
|
$ajson[] = $obj->json_table("divDetail", $tot_fp);
|
|
|
|
} else if ( $data == "default") {
|
|
$form = new Form($db);
|
|
$tdari = $form->datebox("_", "Tgl_From", tgl_ymd(), true, false);
|
|
$tsamp = $form->datebox("_", "Tgl_To", tgl_ymd(), true, false);
|
|
echo '
|
|
<div class="card"><div class="card-header custom-style">Export Data Faktur Pajak Penjualan</div><div class="card-body"><div class="row mb-1"><div class="col d-flex justify-content-between"><div class="d-flex">'.$tdari.'<div><input type="text" class="form-control-plaintext text-center px-2" value="S / D"></div>'.$tsamp.'</div><div class="ms-2 input-group"><input class="form-control" id="Cari_FP" placeholder="Kunci Pencarian" type="text"><button class="btn btn-info shadow-none" type="button" id="butSearch">Cari</button></div><button class="btn btn-info shadow-none ms-2 dropdown-toggle" id="butCSV" type="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><i class="bi-cloud-download me-2"></i>Export CSV</button><div class="dropdown-menu" aria-labelledby="butCSV"><a class="dropdown-item" href="#" id="csvNormal">Faktur Pajak Normal</a><a class="dropdown-item" href="#" id="csvPengganti">Faktur Pajak Pengganti</a></div></div></div><div id="divDetail"> </div></div></div>';
|
|
}
|
|
|
|
send_json($ajson);
|
|
?>
|