first commit

This commit is contained in:
2026-01-22 15:30:17 +07:00
commit a971b97d88
181 changed files with 22279 additions and 0 deletions
+168
View File
@@ -0,0 +1,168 @@
<?php
/*******************************************************************
App. Name : Inventory Advanced Systems
Module : /apps/php/func/ias.php
Desc. : PHP - Fungsi - Fungsi IAS
Created By : Siau Pheng ([email protected]).
Created Date : May 1st, 2012.
Last Modified : January 6th, 2025.
(c) 2012 - 2025, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../../vendor/autoload.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\DB\SQL;
$fdb = (is_resource($fdb)) ? $fdb : new MySQL();
/************************* MASTER OUTLET *************************/
function Outlet_Baru() {
global $fdb;
$tno = "P-"; $ino = 0;
$fdb->Query("SELECT MAX(RIGHT(Kode_Outlet,5)) Nomor FROM para_outlet");
if ($fdb->Next()) $ino = intval($fdb->Row("Nomor", 0));
$tno .= isi_nol($ino+1, 5);
return $tno;
}
/************************* TRANSAKSI *************************/
function Nomor_Baru($tipe = "B", $tgl = "", $bsave = false) {
global $fdb;
//SCS = U G K M O
//IAS = B J C R D T F N P
$atipe = ['B'=>["No_Beli","inv_beli"],'J'=>["No_Jual","inv_jual"],'C'=>["No_Beli","inv_beli"],'R'=>["No_Jual","inv_jual"],'D'=>["No_DO","inv_jual_do"],'T'=>["No_Tagih","inv_jual_tagih"],'F'=>["No_Biaya","biaya_pajak"],'N'=>["No_MDO","manual_do"],'P'=>["No_Pajak","inv_jual_pajak"]];
if ($tgl == "") {
$tno = $tipe . date("y") . abjad(date("n"));
} else {
$tmp = explode("-", $tgl);
$tno = $tipe . substr($tmp[2],2,2) . abjad(intval($tmp[1]));
}
$tno .= user_id(2);
$ino = 0;
$fdb->Query("SELECT MAX(RIGHT(".$atipe[$tipe][0].",4)) Nomor FROM ".$atipe[$tipe][1]." WHERE LEFT(".$atipe[$tipe][0].",".strlen($tno).")='".$tno."' AND RIGHT(".$atipe[$tipe][0].",4)".(($_SESSION['__WEB_APP']['NOMOR_INC'] ?? 0)==0?"<5000":">".$_SESSION['__WEB_APP']['NOMOR_INC']));
if ($fdb->Next()) $ino = intval($fdb->Row("Nomor", 0));
if ($ino==0 && ($_SESSION['__WEB_APP']['NOMOR_INC'] ?? 0)>0) $ino += $_SESSION['__WEB_APP']['NOMOR_INC'];
$tno .= isi_nol($ino+1, 4);
if ($bsave==true) $fdb->Query("INSERT INTO ".$atipe[$tipe][1]." SET ".$atipe[$tipe][0]."='".$tno."'");
return $tno;
}
function Detail_Copy($no_ref = "") {
global $fdb;
if ($no_ref == "") return;
Detail_Cancel($no_ref);
$fdb->Query("INSERT INTO tmp_inv_detail (No_Ref,ID,Tgl_Ref,NotaID,GudangID,InvID,RasaID,SatuanID,Qty,Stok,Harga_Pokok,Harga_Jual,Total_Diskon,Promo,Pro_SQ,Pro_SD,Pro_ID,UserID) SELECT No_Ref,ID,Tgl_Ref,NotaID,GudangID,InvID,RasaID,SatuanID,Qty,Stok,Harga_Pokok,Harga_Jual,Total_Diskon,Promo,Pro_SQ,Pro_SD,Pro_ID,UserID FROM inv_detail WHERE No_Ref='".$no_ref."'");
}
function Detail_Save($no_ref = "", $stgl = "", $igudang = 0, $is_baru = false, $no_lama = "") {
global $fdb;
if ($no_ref == "") return;
if (!$is_baru) $fdb->Query("DELETE FROM inv_detail WHERE No_Ref='".$no_ref."'");
if ($is_baru) {
Detail_Cancel($no_ref);
$fdb->Query("UPDATE tmp_inv_detail SET No_Ref='".$no_ref."' WHERE No_Ref='".$no_lama."' AND Unix='".user_unix()."'");
}
$qtgl = ($stgl == "") ? "0000-00-00" : tgl_sql2str($stgl);
$fdb->Query("INSERT INTO inv_detail (No_Ref,ID,Tgl_Ref,NotaID,GudangID,InvID,RasaID,SatuanID,Qty,Stok,Harga_Pokok,Harga_Jual,Total_Diskon,Promo,Pro_SQ,Pro_SD,Pro_ID,UserID) SELECT No_Ref,ID,'".$qtgl."',NotaID,'".$igudang."',InvID,RasaID,SatuanID,Qty,Stok,Harga_Pokok,Harga_Jual,Total_Diskon,Promo,Pro_SQ,Pro_SD,Pro_ID,UserID FROM tmp_inv_detail WHERE No_Ref='".$no_ref."'");
Detail_Cancel($no_ref);
}
function Detail_Cancel($no_ref = "") {
global $fdb;
if ($no_ref == "") return;
$fdb->Query("DELETE FROM tmp_inv_detail WHERE No_Ref='".$no_ref."'");
}
function Param_Picker($tpicker = "0") {
if ($tpicker == "0") return "0";
$apicker = array_filter(explode(",", $tpicker));
return (count($apicker)==0 ? "0" : implode(",", $apicker));
}
/*************************** FUNGSI DATABASE SCS *****************************/
function scs_update_jual($nomor, $baru = false) {
global $fdb;
if ($baru == false) scs_delete_jual($nomor);
$fdb->Query("INSERT INTO scs_pms.inv_jual SELECT J.No_Jual,J.Tgl_Jual,J.GudangID,J.OutletID,J.No_Faktur,J.Data_Jual,J.UserID FROM inv_jual J WHERE J.No_Jual='".$nomor."'");
$fdb->Query("INSERT INTO scs_pms.inv_detail SELECT D.No_Ref,NULL,D.Tgl_Ref,D.NotaID,D.GudangID,D.InvID,D.SatuanID,SUM(D.Qty),SUM(D.Stok),D.UserID FROM inv_detail D WHERE D.No_Ref='".$nomor."' GROUP BY D.InvID,D.SatuanID");
}
function scs_delete_jual($nomor) {
global $fdb;
$fdb->Query("DELETE FROM scs_pms.inv_detail WHERE No_Ref='".$nomor."'");
$fdb->Query("DELETE FROM scs_pms.inv_jual WHERE No_Jual='".$nomor."'");
}
/*************************** FUNGSI FAKTUR PAJAK *****************************/
function FP_Baru() {
global $fdb;
$tno = $_SESSION['__APP_IAS']['NSFP_LAST']."."; $n_seri = 0;
$fdb->Query("SELECT MAX(RIGHT(No_Pajak,8)) Nomor FROM biaya_pajak WHERE LEFT(No_Pajak,".strlen($tno).")='".$tno."'");
if ($fdb->Next()) $n_seri = $fdb->RowFloat("Nomor", 0);
$fdb->Query("SELECT MAX(RIGHT(No_Pajak,8)) Nomor FROM inv_jual_pajak WHERE LEFT(No_Pajak,".strlen($tno).")='".$tno."'");
if ($fdb->Next()) $n_seri = max($n_seri , $fdb->RowFloat("Nomor", 0));
$tno .= isi_nol(++$n_seri, 8);
return $tno;
}
function FP_Update($nomor = "") {
global $fdb;
if (trim($nomor)=="") return;
$nsfp_last = format_nofp($nomor);
$nsfp_last = explode(".", $nsfp_last);
if ($nsfp_last[0] !== $_SESSION['__APP_IAS']['NSFP_LAST']) {
$_SESSION['__APP_IAS']['NSFP_LAST'] = $nsfp_last[0];
$fdb->Query("UPDATE ias_config SET NSFP_LAST='".$nsfp_last[0]."' WHERE REG_ID='".$_SESSION['__WEB_APP']['PARENT_CODE']."' LIMIT 1");
}
}
function rapi_fp($nilai) {
$hasil = str_replace([".","-"], "", $nilai);
if (strlen($hasil)>13) $hasil = substr($hasil, strlen($hasil)-13);
return $hasil;
}
function format_nofp($nilai) {
$nilai = rapi_fp($nilai);
return substr($nilai,0,3)."-".substr($nilai,3,2).".".substr($nilai,5);
}
function rapi_alamat($nilai) {
if (trim($nilai)=="") return "PONTIANAK";
$hasil = str_replace(["\n","\r"], "", $nilai);
return $hasil;
}
function data_rasafp($nilai) {
$hasil = trim($nilai);
if ($hasil<>"") $hasil = " (".$hasil.")";
return $hasil;
}
function Format_Stok($total=0, $kali=1, $sat_norm="", $sat_stok="") {
if ($kali > 0) {
$norm = floor($total / $kali);
$sisa = $total - ($norm * $kali);
} else {
$norm = 0;
$sisa = $total;
}
$stok = uang($norm,0)." ".$sat_norm;
if ($sat_norm<>$sat_stok) $stok .= ", ".uang($sisa,0)." ".$sat_stok;
return $stok;
}
function Form_Info($pesan="") {
return '<button class="btn btn-outline-secondary shadow-none text-info" title="'.$pesan.'"><i class="bi-lightbulb"></i></button>';
}
?>