Files

112 lines
7.2 KiB
PHP

<?php
/*******************************************************************
App. Name : Inventory Advanced Systems
Module : /apps/php/xls/jual.php
Desc. : PHP - Export XLS Penjualan
Created By : Siau Pheng ([email protected]).
Created Date : April 2rd, 2011.
Last Modified : April 25th, 2026.
(c) 2011 - 2026, 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\Web\Param;
use siaupheng\fonia3\Web\Form;
use siaupheng\fonia3\Data\SimpleXLS;
$db = (is_resource($db)) ? $db : new MySQL();
$ajson = [];
$data = Param::Get("data");
$a_grup = Param::Get("Grup_InvID", "0");
$tgl_from = Param::Get("Tgl_From");
$tgl_to = Param::Get("Tgl_To");
if ( $data == "download" ) {
// generate report header
$tglheader = $tgl_from;
if ($tgl_from!==$tgl_to) $tglheader .= " S/D ".$tgl_to;
$tgl_from = tgl_sql2str($tgl_from);
$tgl_to = tgl_sql2str($tgl_to);
$qsql = "";
if ($a_grup == "0") {
$qsql .= " AND InvID IN (SELECT InvID FROM inv_produk WHERE Grup_InvID NOT IN ('".$_SESSION['__APP_IAS']['GRUP_PRODUK_KEMASAN']."','".$_SESSION['__APP_IAS']['GRUP_PRODUK_HADIAH']."'))";
} else {
$qsql .= " AND InvID IN (SELECT InvID FROM inv_produk WHERE Grup_InvID IN (".$a_grup."))";
}
$db->Query("SELECT D.*,J.*,CONCAT(P.Nama_Produk,_latin1' ',S.Nama_Satuan) Nama_Produk,IFNULL(R.Nama_Rasa,'') Rasa,OG.Nama_Grup Grup_Outlet,PG.Nama_Grup Grup_Produk,O.Nama_Outlet,CONCAT(O.Alamat_Outlet,_latin1', ',O.Kota_Outlet) Alamat_Outlet,PS.Nama_Pegawai Nama_Sales,PO.Nama_Pegawai Nama_Supir,Nama_Picker(J.A_Picker) Nama_Picker FROM (SELECT No_Ref,InvID,RasaID,SatuanID,-Qty Qty,Harga_Jual,Total_Diskon,(-Qty*Harga_Jual)-Total_Diskon Jumlah FROM inv_detail WHERE NotaID=5 AND (Tgl_Ref BETWEEN '".$tgl_from."' AND '".$tgl_to."')".$qsql.") D LEFT JOIN (SELECT No_Jual,No_Faktur,No_DO,Tgl_Jual,Tgl_Lunas,OutletID,SalesID,HelperID,SupirID,A_Picker,CK,IF(Rekap=1,'Antar','Belum Antar') Status_Order,Catatan FROM inv_jual WHERE Tgl_Jual BETWEEN '".$tgl_from."' AND '".$tgl_to."') J ON (J.No_Jual=D.No_Ref) LEFT JOIN para_outlet O ON (O.OutletID=J.OutletID) LEFT JOIN para_outlet_grup OG ON (OG.Grup_OutletID=O.Grup_OutletID) LEFT JOIN inv_produk P ON (P.InvID=D.InvID) LEFT JOIN inv_produk_grup PG ON (PG.Grup_InvID=P.Grup_InvID) LEFT JOIN para_satuan S ON (S.SatuanID=D.SatuanID) LEFT JOIN para_rasa R ON (R.RasaID=D.RasaID) LEFT JOIN para_pegawai PS ON (J.SalesID=PS.PegID) LEFT JOIN para_pegawai PO ON (J.SupirID=PO.PegID) ORDER BY J.Tgl_Jual,J.No_Jual,P.Nama_Produk");
/* QUERY MANUAL
SELECT DATE_FORMAT(J.Tgl_Jual,'%d-%m-%Y'), DATE_FORMAT(J.Tgl_Lunas,'%d-%m-%Y'), J.No_Jual, J.No_Faktur, J.No_DO, PS.Nama_Pegawai, OG.Nama_Grup, O.Nama_Outlet, CONCAT(O.Alamat_Outlet,_latin1', ',O.Kota_Outlet), CONCAT(P.Nama_Produk,_latin1' ',S.Nama_Satuan), IFNULL(R.Nama_Rasa,''), round(Qty,2), round(Harga_Jual,2), round(Total_Diskon,2), round(Jumlah,2), PG.Nama_Grup, Status_Order, CK, PO.Nama_Pegawai, Nama_Picker(J.A_Picker), Catatan FROM (SELECT No_Ref,InvID,RasaID,SatuanID,-Qty Qty,Harga_Jual,Total_Diskon,(-Qty*Harga_Jual)-Total_Diskon Jumlah FROM inv_detail WHERE NotaID=5 AND (Tgl_Ref BETWEEN '2024-01-01' AND '2024-12-31') AND InvID IN (SELECT InvID FROM inv_produk WHERE Grup_InvID=3)) D LEFT JOIN (SELECT No_Jual,No_Faktur,No_DO,Tgl_Jual,Tgl_Lunas,OutletID,SalesID,HelperID,SupirID,A_Picker,CK,IF(Rekap=1,'Antar','Belum Antar') Status_Order,Catatan FROM inv_jual WHERE Tgl_Jual BETWEEN '2024-01-01' AND '2024-12-31') J ON (J.No_Jual=D.No_Ref) LEFT JOIN para_outlet O ON (O.OutletID=J.OutletID) LEFT JOIN para_outlet_grup OG ON (OG.Grup_OutletID=O.Grup_OutletID) LEFT JOIN inv_produk P ON (P.InvID=D.InvID) LEFT JOIN inv_produk_grup PG ON (PG.Grup_InvID=P.Grup_InvID) LEFT JOIN para_satuan S ON (S.SatuanID=D.SatuanID) LEFT JOIN para_rasa R ON (R.RasaID=D.RasaID) LEFT JOIN para_pegawai PS ON (J.SalesID=PS.PegID) LEFT JOIN para_pegawai PO ON (J.SupirID=PO.PegID) ORDER BY J.Tgl_Jual,J.No_Jual,P.Nama_Produk
*/
$xls = new SimpleXLS([
'title'=>"Data Penjualan",
'subject'=>"PT.PMS",
'desc'=>"Export Data Penjualan dari IAS"
]);
$xls->add_span(["<b>".strtoupper($_SESSION['__WEB_APP']['REG_NAME'])."</b>",1]);
$xls->add_span(["<b>DATA DETAIL PENJUALAN PRODUK</b>",1]);
$xls->add_span(["Periode : ".$tglheader,1]);
$xls->add_field("TANGGAL NOTA", 12, "C", "tgl_sql2str");
$xls->add_field("TANGGAL LUNAS", 12, "C", "tgl_sql2str");
$xls->add_field("NO. NOTA", 12, "C");
$xls->add_field("NO. FAKTUR", 12, "L");
$xls->add_field("NO. DO", 12, "C");
$xls->add_field("NAMA SALES", 12, "L");
$xls->add_field("GRUP OUTLET", 12, "L");
$xls->add_field("NAMA OUTLET", 15, "L");
$xls->add_field("ALAMAT OUTLET", 25, "L");
$xls->add_field("NAMA PRODUK", 45, "L");
$xls->add_field("VARIAN / RASA", 15, "L");
$xls->add_field("QTY", 15, "R,N");
$xls->add_field("HARGA SATUAN", 15, "R,N");
$xls->add_field("DISKON", 15, "R,N");
$xls->add_field("TOTAL", 15, "R,N");
$xls->add_field("GRUP PRODUK", 15, "L");
$xls->add_field("STATUS ORDER", 10, "L");
$xls->add_field("C / K", 5, "L");
$xls->add_field("NAMA SUPIR", 12, "L");
$xls->add_field("NAMA PICKER", 12, "L");
$xls->add_field("CATATAN", 12, "L");
$xls->add_sheet("".str_replace("S/D","-",$tglheader), true);
while ($db->Next()) {
$xls->add_value($db->Row("Tgl_Jual"), $db->Row("Tgl_Lunas"), $db->Row("No_Jual"), $db->Row("No_Faktur"), $db->Row("No_DO"), $db->Row("Nama_Sales"), $db->Row("Grup_Outlet"), $db->Row("Nama_Outlet"), $db->Row("Alamat_Outlet"), $db->Row("Nama_Produk"), $db->Row("Rasa"), $db->RowFloat("Qty"), $db->RowFloat("Harga_Jual"), $db->RowFloat("Total_Diskon"), $db->RowFloat("Jumlah"), $db->Row("Grup_Produk"), $db->Row("Status_Order"), $db->Row("CK"), $db->Row("Nama_Supir"), $db->Row("Nama_Picker"), $db->Row("Catatan"));
}
$xls->add_stamp(1, true);
$xls->send("Data Penjualan Produk ".str_replace("S/D","-",$tglheader).".xlsx");
unset($xls);
} else if ( $data == "default") {
$form = new Form($db);
$tgrup = $form->option_db("_", "Grup_InvID", "0", true, false, "inv_produk_grup", ["Grup_InvID","Nama_Grup"], "Grup_InvID NOT IN ('".$_SESSION['__APP_IAS']['GRUP_PRODUK_KEMASAN']."','".$_SESSION['__APP_IAS']['GRUP_PRODUK_HADIAH']."') ORDER BY Nama_Grup", [0,"SEMUA GRUP PRODUK"], null, null, true);
$ttglfrom = $form->datebox("_", "Tgl_From", tgl_ymd(), true, false);
$ttglto = $form->datebox("_", "Tgl_To", tgl_ymd(), true, false);
echo '
<div class="row mb-1">
<label class="col-sm-5 col-lg-3 col-form-label" for="Grup_InvID">Grup Produk</label>
<div class="col">'.$tgrup.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-5 col-lg-3 col-form-label" for="Tgl_From">Dari Tanggal</label>
<div class="col">'.$ttglfrom.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-5 col-lg-3 col-form-label" for="Tgl_To">Sampai Tanggal</label>
<div class="col">'.$ttglto.'</div>
</div>';
}
send_json($ajson);
?>