183 lines
6.7 KiB
PHP
183 lines
6.7 KiB
PHP
<?php
|
|
|
|
/*******************************************************************
|
|
|
|
App. Name : Inventory Advanced Systems
|
|
Module : /apps/php/repo/rekap_outlet_oli.php
|
|
Desc. : PHP - Rekap Penj. Outlet Produk Sosro & Oli
|
|
Created By : Siau Pheng ([email protected]).
|
|
Created Date : November 20th, 2014.
|
|
Last Modified : January 20th, 2024.
|
|
|
|
(c) 2014 - 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\Web\Param;
|
|
use siaupheng\fonia3\Web\Form;
|
|
use siaupheng\fonia3\Printer\PrintHTML;
|
|
use siaupheng\fonia3\Data\SimpleXLS;
|
|
|
|
$db = (is_resource($db)) ? $db : new MySQL();
|
|
$ajson = [];
|
|
$data = Param::Get("data");
|
|
|
|
if ( $data == "print" || $data == "export" ) {
|
|
$tipe = Param::Get("Tipe", 1); // 1, 2
|
|
$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);
|
|
|
|
$sjudul = "OLI"; $tsql1 = ""; $tsql2 = "/B.Qty"; $tsql3 = "5";
|
|
if ($tipe==1) {
|
|
$sjudul = "SOSRO"; $tsql1 = " NOT"; $tsql2 = ""; $tsql3 = "3";
|
|
}
|
|
|
|
$tsql = (Param::Get("Semua",2)==1) ? " WHERE D.OutletID2 IS NOT NULL" : "";
|
|
$ahasil = []; $aprod = [];
|
|
$db->Query("SELECT O.OutletID,O.Nama_Outlet,O.Alamat_Outlet,D.* FROM (SELECT * FROM para_outlet WHERE Grup_OutletID".$tsql1." IN (14,18,19,20,21,22,23,25,26,27,28,29,30,31,32,33,34,35,36)) O LEFT JOIN (SELECT A.No_Ref,A.InvID,SUM(-A.Stok)".$tsql2." Qty,J.OutletID OutletID2,S.Nama_Pegawai Nama_Sales FROM inv_detail A LEFT JOIN inv_jual J ON (A.No_Ref=J.No_Jual) LEFT JOIN para_pegawai S ON (J.SalesID=S.PegID) LEFT JOIN inv_produk_kemasan B ON (A.InvID=B.InvID AND B.SatuanID=2) WHERE (A.Tgl_Ref BETWEEN '".$tglfrom."' AND '".$tglto."') AND A.InvID IN (SELECT InvID FROM inv_produk WHERE Grup_InvID=".$tsql3." ORDER BY Kode_Produk) AND A.NotaID=5 AND J.Rekap=1 GROUP BY A.No_Ref,A.InvID) D ON (O.OutletID=D.OutletID2)".$tsql." ORDER BY O.Nama_Outlet");
|
|
while ($db->Next()) {
|
|
if (!$ahasil[$db->Row("OutletID")]) {
|
|
$ahasil[$db->Row("OutletID")]['Nama'] = $db->Row("Nama_Outlet");
|
|
$ahasil[$db->Row("OutletID")]['Alamat'] = $db->Row("Alamat_Outlet");
|
|
$ahasil[$db->Row("OutletID")]['Sales'] = $db->Row("Nama_Sales");
|
|
}
|
|
$ahasil[$db->Row("OutletID")][$db->Row("InvID")] += $db->RowFloat("Qty", 0);
|
|
$aprod[$db->Row("InvID")] += $db->RowFloat("Qty", 0);
|
|
}
|
|
|
|
$aproduk = array();
|
|
$db->Query("SELECT InvID,Kode_Produk FROM inv_produk WHERE Grup_InvID='".$tsql3."'");
|
|
while ($db->Next()) {
|
|
$aproduk[$db->Row("InvID")] = $db->Row("Kode_Produk");
|
|
}
|
|
}
|
|
|
|
if ( $data == "print" ) {
|
|
Report_Header("LAPORAN PENJUALAN ".$sjudul, $tglheader);
|
|
$pre = new PrintHTML();
|
|
$pre->set_css("garis");
|
|
$pre->add_field("NO.",5,"C");
|
|
$pre->add_field("NAMA OUTLET",80);
|
|
$pre->add_field("ALAMAT OUTLET",100);
|
|
$pre->add_field("SALES",20);
|
|
foreach ($aprod as $_key => $_val) {
|
|
if ($_key == "") continue;
|
|
$pre->add_field($aproduk[$_key],50,"R","rupiah2");
|
|
}
|
|
$pre->add_field("TOTAL",50,"R","rupiah2");
|
|
$pre->show_fields();
|
|
|
|
$tot = 0; $no = 1;
|
|
foreach ($ahasil as $_key => $_val) {
|
|
$_tot = 0;
|
|
$_atmp = array($no, $_val['Nama'], $_val['Alamat'], $_val['Sales']);
|
|
foreach ($aprod as $_key2 => $_val2) {
|
|
if ($_key2 == "") continue;
|
|
$_atmp[] = $_val[$_key2];
|
|
$_tot += $_val[$_key2];
|
|
}
|
|
$_atmp[] = $_tot;
|
|
$pre->add_value($_atmp);
|
|
$no++;
|
|
}
|
|
$_tot = 0;
|
|
$_atmp = array("", "TOTAL", "", "");
|
|
foreach ($aprod as $_key2 => $_val2) {
|
|
if ($_key2 == "") continue;
|
|
$_atmp[] = $_val2;
|
|
$_tot += $_val2;
|
|
}
|
|
$_atmp[] = $_tot;
|
|
$pre->add_value($_atmp);
|
|
|
|
$pre->add_stamp(0, true);
|
|
$pre->show();
|
|
|
|
} else if ( $data == "export" ) {
|
|
$xls = new SimpleXLS([
|
|
'title'=>"Laporan Penjualan ".ucfirst($sjudul)."",
|
|
'subject'=>"PT.PMS",
|
|
'desc'=>"Export Data dari IAS"
|
|
]);
|
|
$xls->add_header("<b>".strtoupper($_SESSION['__WEB_APP']['REG_NAME'])."</b>");
|
|
$xls->add_header("<b>LAPORAN PENJUALAN ".$sjudul."</b>");
|
|
$xls->add_header($tglheader);
|
|
|
|
$xls->add_field("NO.", 6, "C");
|
|
$xls->add_field("NAMA OUTLET", 30, "L");
|
|
$xls->add_field("ALAMAT OUTLET", 80, "L");
|
|
$xls->add_field("SALES", 20, "L");
|
|
foreach ($aprod as $_key => $_val) {
|
|
if ($_key == "") continue;
|
|
$xls->add_field($aproduk[$_key],12,"R,N");
|
|
}
|
|
$xls->add_field("TOTAL",12,"R,N");
|
|
$xls->add_sheet("REKAP PENJUALAN ".$sjudul, false);
|
|
$xls->show_headers();
|
|
|
|
$tot = 0; $no = 1;
|
|
foreach ($ahasil as $_key => $_val) {
|
|
$_tot = 0;
|
|
$_atmp = array($no, $_val['Nama'], $_val['Alamat'], $_val['Sales']);
|
|
foreach ($aprod as $_key2 => $_val2) {
|
|
if ($_key2 == "") continue;
|
|
$_atmp[] = $_val[$_key2];
|
|
$_tot += $_val[$_key2];
|
|
}
|
|
$_atmp[] = $_tot;
|
|
$xls->add_value($_atmp);
|
|
$no++;
|
|
}
|
|
$_tot = 0;
|
|
$_atmp = array("", "TOTAL", "", "");
|
|
foreach ($aprod as $_key2 => $_val2) {
|
|
if ($_key2 == "") continue;
|
|
$_atmp[] = $_val2;
|
|
$_tot += $_val2;
|
|
}
|
|
$_atmp[] = $_tot;
|
|
$xls->add_value($_atmp);
|
|
|
|
$xls->add_stamp(1, true);
|
|
$xls->send("Laporan Penjualan ".ucfirst($sjudul).".xlsx");
|
|
unset($xls);
|
|
|
|
} else if ( $data == "default") {
|
|
$form = new Form($db);
|
|
$ttipe = $form->radio("_", "Tipe", 1, true, false, [1=>"Sosro",2=>"Oli"], null);
|
|
$tsemua = $form->radio("_", "Semua", 2, true, false, [1=>"Ya",2=>"Tidak"]);
|
|
$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="Tipe">Tipe Laporan</label>
|
|
<div class="col">'.$ttipe.'</div>
|
|
</div>
|
|
<div class="row mb-1">
|
|
<label class="col-sm-5 col-lg-3 col-form-label" for="Semua">Semua Outlet</label>
|
|
<div class="col">'.$tsemua.'</div>
|
|
</div>
|
|
<div class="row mb-1"><div class="col"><hr class="my-1"></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>';
|
|
}
|
|
|
|
?>
|