first commit
This commit is contained in:
@@ -0,0 +1,159 @@
|
||||
<?php
|
||||
|
||||
/*******************************************************************
|
||||
|
||||
App. Name : INVENTORY AND SALES SYSTEMS
|
||||
Module : /apps/php/repo/barcode.php
|
||||
Desc. : PHP - Cetak Barcode Label
|
||||
Created By : Siau Pheng ([email protected]).
|
||||
Created Date : October 28th, 2013.
|
||||
Last Modified : October 2nd, 2025.
|
||||
|
||||
(c) 2013 - 2025, 3FONIA Software; WWW.3FONIA.COM.
|
||||
|
||||
*******************************************************************/
|
||||
|
||||
require_once(__DIR__."/../../../../../vendor/autoload.php");
|
||||
require_once(__DIR__."/../func.iss.php");
|
||||
|
||||
use siaupheng\fonia3\DB\MySQL;
|
||||
use siaupheng\fonia3\Web\Param;
|
||||
use siaupheng\fonia3\Web\Table;
|
||||
use siaupheng\fonia3\Web\Form;
|
||||
|
||||
function gen_bc_ppla($lbarc="", $lnama="", $lharga="", $lkdsup="") {
|
||||
$lbc1 = substr($lbarc, 0, 4);
|
||||
$lbc2 = substr($lbarc, 4, 4);
|
||||
return [
|
||||
chr(2).'K1503', // gap 3mm
|
||||
chr(2).'e', // gap sensor edge
|
||||
chr(2).'f326', // feed 1" = 320 & auto backfeed
|
||||
chr(2).'L',
|
||||
'D11',
|
||||
'191100200020027'.$lharga,
|
||||
'1d5202800130027'.$lbarc,
|
||||
'121100100460027'.$lnama,
|
||||
'291100200410100'.$lbc2,
|
||||
'291100200410110'.$lbc1,
|
||||
'291100100410127'.$lkdsup,
|
||||
'421100100050022'.$_SESSION['__WEB_APP']['REG_NAME'],
|
||||
'191100200020165'.$lharga,
|
||||
'1d5202800130165'.$lbarc,
|
||||
'121100100460165'.$lnama,
|
||||
'291100200410238'.$lbc2,
|
||||
'291100200410248'.$lbc1,
|
||||
'291100100410265'.$lkdsup,
|
||||
'421100100050160'.$_SESSION['__WEB_APP']['REG_NAME'],
|
||||
'191100200020302'.$lharga,
|
||||
'1d5202800130302'.$lbarc,
|
||||
'121100100460302'.$lnama,
|
||||
'291100200410375'.$lbc2,
|
||||
'291100200410385'.$lbc1,
|
||||
'291100100410402'.$lkdsup,
|
||||
'421100100050297'.$_SESSION['__WEB_APP']['REG_NAME'],
|
||||
'E'];
|
||||
}
|
||||
|
||||
$db = $db ?? new MySQL();
|
||||
$ajson = [];
|
||||
$data = Param::Get("data");
|
||||
$id_inv = Param::Get("InvID");
|
||||
$id_sat = Param::Get("SatuanID");
|
||||
|
||||
if ( $data == "print-barcode" ) {
|
||||
$qty = Param::Get("Qty", 3);
|
||||
$ksup = Param::Get("Kode_Sup", "");
|
||||
$nbaris = ceil($qty / 3);
|
||||
|
||||
$db->Query("SELECT P.*,LEFT(P.Nama_Lengkap,20) Nama2 FROM vi_inv_produk P WHERE P.InvID='".$id_inv."' AND P.SatuanID='".$id_sat."' ORDER BY P.Harga_Jual DESC LIMIT 1");
|
||||
if ($db->Next()) {
|
||||
$ajson = ['type' => "epl", 'config' => ['times' => $nbaris], 'content' => gen_bc_ppla($db->Row("Kode_SKU"), $db->Row("Nama2"), "Rp.".rupiah($db->Row("Harga_Jual")), $ksup)];
|
||||
}
|
||||
|
||||
} else if ($data == "auto-produk") {
|
||||
$tcari = Param::Get("Auto_Query");
|
||||
$ajson['autodata'] = [];
|
||||
$bcode = 0; $arec = [];
|
||||
// Cari by SKU
|
||||
$db->Query("SELECT P.*,CONCAT(K.Kode_SKU,':',K.SatuanID) Data2 FROM (SELECT * FROM inv_produk_kemasan WHERE Harga_Jual>0 AND Kode_SKU='".$tcari."' LIMIT 1) K LEFT JOIN inv_produk P ON (P.InvID=K.InvID) LEFT JOIN para_satuan S ON (S.SatuanID=K.SatuanID) WHERE P.Aktif=1");
|
||||
if ($db->Next()) {
|
||||
$bcode = 1;
|
||||
$arec = $db->AllRow();
|
||||
}
|
||||
// Cari by Barcode
|
||||
if ($bcode == 0) {
|
||||
$db->Query("SELECT P.*,CONCAT(K.Kode_SKU,':',K.SatuanID) Data2 FROM (SELECT * FROM inv_produk_kemasan WHERE Harga_Jual>0 AND Kode_Barcode='".$tcari."' LIMIT 1) K LEFT JOIN inv_produk P ON (P.InvID=K.InvID) LEFT JOIN para_satuan S ON (S.SatuanID=K.SatuanID) WHERE P.Aktif=1");
|
||||
if ($db->Next()) {
|
||||
$bcode = 1;
|
||||
$arec = $db->AllRow();
|
||||
}
|
||||
}
|
||||
if ($bcode == 1) {
|
||||
$ajson['autodata'][] = ['value'=>$arec['InvID'], 'text'=>$arec['Nama_Produk'], 'data'=>$arec['Data2'], 'bc'=>1];
|
||||
} else {
|
||||
$db->Query("SELECT P.*,K.Kode_SKU,K.Harga_Jual,S.Nama_Satuan,CONCAT(K.Kode_SKU,':',K.SatuanID) Data2 FROM (SELECT * FROM inv_produk_kemasan WHERE Harga_Jual>0 AND InvID IN (SELECT InvID FROM inv_produk WHERE Aktif=1 AND Nama_Produk LIKE '%".$tcari."%' ORDER BY InvID) ORDER BY InvID) K LEFT JOIN (SELECT * FROM inv_produk WHERE Aktif=1 AND Nama_Produk LIKE '%".$tcari."%' ORDER BY InvID) P ON (K.InvID=P.InvID) LEFT JOIN para_satuan S ON (S.SatuanID=K.SatuanID) ORDER BY P.Nama_Produk,K.Qty DESC LIMIT 50");
|
||||
while ($db->Next()) {
|
||||
$ajson['autodata'][] = ['value'=>$db->Row("InvID"), 'text'=>$db->Row("Nama_Produk"), 'html'=>'<span class="text-primary">'.$db->Row("Kode_SKU").'</span> '.$db->Row("Nama_Produk")." ".$db->Row("Nama_Satuan").' - Rp. '.rupiah($db->Row("Harga_Jual")), 'data'=>$db->Row("Data2"), 'bc'=>0];
|
||||
}
|
||||
}
|
||||
|
||||
} else if ( $data == "brow-produk" ) {
|
||||
$tcari = trim(Param::Get("Cari_Produk"));
|
||||
$tsql = ($tcari=="") ? "" : " AND P.Barcode_Nama LIKE '%".$tcari."%'";
|
||||
$obj = new Table($db);
|
||||
$obj->set_table("vi_inv_produk P", "P.*", "P.Harga_Jual>0 AND P.Aktif=1".$tsql);
|
||||
$obj->add_field("InvID", "ID", "hid");
|
||||
$obj->add_field("SatuanID", "Satuan", "hid");
|
||||
$obj->add_field("Kode_SKU", "SKU", "c");
|
||||
$obj->add_field("Kode_Barcode", "Kode Barcode", "c");
|
||||
$obj->add_field("Nama_Lengkap", "Nama Barang", "awr");
|
||||
$obj->set_field_order("Kode_SKU", "A");
|
||||
$obj->add_row_btn("save", "Pilih", "RepoBarcodeJS.produk_select");
|
||||
$obj->set_func_navi("RepoBarcodeJS.data_query('brow-produk')");
|
||||
$ajson[] = $obj->db_table("divBrowProduk");
|
||||
|
||||
} else if ( $data == "opt-sup" ) {
|
||||
$avalue = [['value'=>"", 'html'=>"Tanpa Kode"]];
|
||||
$db->Query("SELECT Kode_Sup,Nama_Sup FROM para_supplier WHERE SupID IN (SELECT SupID FROM inv_produk_sup WHERE InvID='".$id_inv."') ORDER BY Aktif DESC,Nama_Sup");
|
||||
while ($db->Next()) {
|
||||
$avalue[] = ['value'=>$db->Row("Kode_Sup"), 'html'=>$db->Row("Nama_Sup")];
|
||||
}
|
||||
$ajson[] = ['type'=>"option", 'id'=>"Kode_Sup", 'avalue'=>$avalue];
|
||||
|
||||
} else if ( $data == "load-printer" ) {
|
||||
$aprint = explode("|", Param::Get("Printer")); $avalue = [['value'=>"", 'html'=>"Pilih Printer"]];
|
||||
$tdefp = Param::Get("DefPrint", "");
|
||||
$db->Query("DELETE FROM app_printer WHERE IP='".$_SERVER['REMOTE_ADDR']."' AND CabID='".$_SESSION['__APP_INV']['CABANGID']."'");
|
||||
foreach ($aprint as $_key => $_val) {
|
||||
if ($_val<>"") {
|
||||
$_def = ($tdefp==$_val) ? 1 : 0;
|
||||
$db->Query("INSERT IGNORE INTO app_printer SET IP='".$_SERVER['REMOTE_ADDR']."',CabID='".$_SESSION['__APP_INV']['CABANGID']."',N_Printer='".$_val."',Defa=".$_def);
|
||||
}
|
||||
}
|
||||
$db->Query("SELECT * FROM app_printer WHERE IP='".$_SERVER['REMOTE_ADDR']."' AND CabID='".$_SESSION['__APP_INV']['CABANGID']."'");
|
||||
while ($db->Next()) {
|
||||
$avalue[] = ['value'=>$db->Row("N_Printer"), 'html'=>$db->Row("N_Printer")];
|
||||
}
|
||||
$ajson[] = ['type'=>"option", 'id'=>"Printer", 'avalue'=>$avalue];
|
||||
|
||||
} else if ( $data == "default") {
|
||||
$form = new Form($db);
|
||||
$tsku = $form->textbox("_", "Kode_SKU", null, false, false);
|
||||
$tbrg = $form->textauto("_", "Nama_Produk", null, true, true, "Nama Barang");
|
||||
$tsup = $form->option("_", "Kode_Sup", "", true, false, [0=>"Tanpa Kode"]);
|
||||
$tprt = $form->option_db("_", "Printer", "", true, false, "app_printer", ["N_Printer","N_Printer"], "IP='".$_SERVER['REMOTE_ADDR']."' AND CabID='".$_SESSION['__APP_INV']['CABANGID']."'", [0,"Pilih Printer"]);
|
||||
$tqty = $form->textbox("_", "Qty", 3, true, false, "number");
|
||||
|
||||
echo '
|
||||
<div class="row mb-1"><label class="col-sm-3 col-lg-3 col-form-label">Kode SKU</label><div class="col-sm-8 col-lg-5">'.$tsku.'</div></div>
|
||||
<div class="row mb-1"><label class="col-sm-3 col-lg-3 col-form-label" for="Nama_Produk">Nama Barang</label><div class="col"><div class="input-group">'.$tbrg.'<button class="btn btn-info shadow-none" type="button" id="butBrow"><i class="bi-search"></i></button></div></div></div>
|
||||
<div class="row mb-1"><label class="col-sm-3 col-lg-3 col-form-label" for="Kode_Sup">Kode Supplier</label><div class="col-sm-8 col-lg-5">'.$tsup.'</div></div>
|
||||
<div class="row mb-1"><div class="col"><hr class="my-2"></div></div>
|
||||
<div class="row mb-1"><label class="col-sm-3 col-lg-3 col-form-label" for="Printer">Nama Printer</label><div class="col"><div class="input-group">'.$tprt.'<button class="btn btn-secondary shadow-none" type="button" id="butPL"><i class="bi-arrow-repeat"></i></button></div></div></div>
|
||||
<div class="row mb-1"><label class="col-sm-3 col-lg-3 col-form-label" for="Qty">Jumlah Stiker</label><div class="col-sm-5 col-lg-3"><div class="input-group">'.$tqty.Form_Info("Untuk menghemat stiker, bisa gunakan jumlah cetak dalam kelipatan 3.").'</div></div></div>
|
||||
<input type="hidden" id="InvID" value="0" /><input type="hidden" id="SatuanID" value="0" />';
|
||||
|
||||
}
|
||||
|
||||
send_json($ajson);
|
||||
?>
|
||||
Reference in New Issue
Block a user