Files
ias/apps/php/repo/stok_akhir.php
T
2026-01-22 15:30:17 +07:00

123 lines
4.5 KiB
PHP

<?php
/*******************************************************************
App. Name : Inventory Advanced Systems
Module : /apps/php/repo/stok_akhir.php
Desc. : PHP - Laporan Stok Akhir Produk
Created By : Siau Pheng ([email protected]).
Created Date : January 24th, 2011.
Last Modified : November 18th, 2023.
(c) 2011 - 2023, 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\Table;
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" ) {
$id_gudang = Param::Get("GudangID", 0);
$tgldata = Param::Get("Tgl_Data");
$agudang = [];
if ($id_gudang>0) {
$db->Query("SELECT * FROM para_gudang WHERE GudangID='".$id_gudang."' LIMIT 1");
if ($db->Next()) $agudang = $db->AllRow();
}
// generate report header
$tglheader = "Periode : ".$tgldata;
$tgldata = tgl_sql2str($tgldata);
$tsql = ($id_gudang==0) ? "" : " AND GudangID='".$id_gudang."'";
$db->Query("SELECT P.Kode_Produk,P.Nama_Produk,P.Satuan_Normal,P.Satuan_Stok,D.Jumlah,S.Qty Kali FROM (SELECT InvID,SUM(Stok) Jumlah FROM inv_detail WHERE NotaID<>5 OR (NotaID=5 AND Promo=0 AND No_Ref IN (SELECT No_Jual FROM inv_jual WHERE Data_Jual=1 AND Rekap=1)) AND Tgl_Ref<>'0000-00-00' AND Tgl_Ref<='".$tgldata."'".$tsql." GROUP BY InvID) D LEFT JOIN vi_inv_produk P ON (P.InvID=D.InvID) LEFT JOIN inv_produk_kemasan S ON (S.InvID=P.InvID AND S.SatuanID=P.NormalID) WHERE P.Nama_Produk IS NOT NULL ORDER BY P.Grup_InvID,P.Nama_Produk");
}
if ( $data == "print" ) {
Report_Header("LAPORAN STOK PRODUK", $tglheader);
$pre = new PrintHTML();
$pre->set_css("garis");
if ($id_gudang>0) echo "Nama Gudang : ".$agudang['Nama_Gudang']."<br>";
$pre->add_field("NO",10,"C");
$pre->add_field("KODE",20);
$pre->add_field("NAMA PRODUK",200);
$pre->add_field("STOK",80,"R");
$pre->show_fields();
$nomor = 1;
while ($db->Next()) {
$total = $db->Row("Jumlah",0);
$kali = $db->Row("Kali",0);
$sat_norm = $db->Row("Satuan_Normal");
$sat_stok = $db->Row("Satuan_Stok");
$pre->add_value($nomor++, $db->Row("Kode_Produk"), $db->Row("Nama_Produk"), Format_Stok($total, $kali, $sat_norm, $sat_stok));
}
$pre->add_stamp(0, true);
$pre->show();
} else if ( $data == "export" ) {
$xls = new SimpleXLS([
'title'=>"Laporan Stok Produk",
'subject'=>"PT.PMS",
'desc'=>"Export Data dari IAS"
]);
$xls->add_header("<b>".strtoupper($_SESSION['__WEB_APP']['REG_NAME'])."</b>");
$xls->add_header("<b>LAPORAN STOK PRODUK</b>");
$xls->add_header($tglheader);
$xls->add_field("NO.", 5, "C");
$xls->add_field("KODE", 12, "L");
$xls->add_field("NAMA PRODUK", 50, "L");
$xls->add_field("STOK", 22, "R");
$xls->add_sheet("STOK AKHIR", false);
if ($id_gudang>0) $xls->add_span(["Nama Gudang : ".$agudang['Nama_Gudang'],4,"L"]);
$xls->show_headers();
$nomor = 1;
while ($db->Next()) {
$total = $db->Row("Jumlah",0);
$kali = $db->Row("Kali",0);
$sat_norm = $db->Row("Satuan_Normal");
$sat_stok = $db->Row("Satuan_Stok");
$xls->add_value($nomor++, $db->Row("Kode_Produk"), $db->Row("Nama_Produk"), Format_Stok($total, $kali, $sat_norm, $sat_stok));
}
$xls->add_stamp(1, true);
$xls->send("Laporan Stok Produk.xlsx");
unset($xls);
} else if ( $data == "default") {
$form = new Form($db);
$tgudang = $form->option_db("_", "GudangID", 0, true, false, "para_gudang", ["GudangID","Nama_Gudang"], "TRUE ORDER BY Nama_Gudang", [0,"SEMUA GUDANG"]);
$ttgldata = $form->datebox("_", "Tgl_Data", tgl_ymd(), true, false);
echo '
<div class="row mb-1">
<label class="col-sm-5 col-lg-3 col-form-label" for="GudangID">Nama Gudang</label>
<div class="col">'.$tgudang.'</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_Data">Tanggal Stok</label>
<div class="col">'.$ttgldata.'</div>
</div>';
}
?>