update stok reff table
This commit is contained in:
+14
-16
@@ -17,7 +17,7 @@ var CekHargaJS = {
|
|||||||
html5QrcodeScanner: null,
|
html5QrcodeScanner: null,
|
||||||
|
|
||||||
loading: function(){
|
loading: function(){
|
||||||
$('#butBrow').click(function(){this.produk_brow();}.bind(this));
|
$('#butBrow').click(() => this.produk_brow());
|
||||||
if (FoniaJS.WEB_MOBILE){
|
if (FoniaJS.WEB_MOBILE){
|
||||||
html5QrcodeScanner = new Html5Qrcode('qr-reader');
|
html5QrcodeScanner = new Html5Qrcode('qr-reader');
|
||||||
html5QrcodeScanner.start({ facingMode: 'environment' }, { fps: 10, qrbox: 250 }, CekHargaJS.ScanSukses);
|
html5QrcodeScanner.start({ facingMode: 'environment' }, { fps: 10, qrbox: 250 }, CekHargaJS.ScanSukses);
|
||||||
@@ -31,13 +31,14 @@ var CekHargaJS = {
|
|||||||
new Request.JSON({
|
new Request.JSON({
|
||||||
url: CekHargaJS.PHP,
|
url: CekHargaJS.PHP,
|
||||||
sendParam: ['data=scan-produk','Cari_Produk='+decodedText],
|
sendParam: ['data=scan-produk','Cari_Produk='+decodedText],
|
||||||
onSuccess: function(ajson){
|
onSuccess: (ajson) => {
|
||||||
$('#InvID').val(ajson.InvID);
|
$('#InvID').val(ajson.InvID);
|
||||||
$('#Kode_Barang').val(ajson.Kode_Barang);
|
$('#Kode_Barang').val(ajson.Kode_Barang);
|
||||||
$('#Nama_Barang').val(ajson.Nama_Barang);
|
$('#Nama_Barang').val(ajson.Nama_Barang);
|
||||||
$('#Nama_Satuan').val(ajson.Nama_Satuan);
|
$('#Nama_Satuan').val(ajson.Nama_Satuan);
|
||||||
$('#Harga_Jual').val(ajson.Harga_Jual);
|
$('#Harga_Jual').val(ajson.Harga_Jual);
|
||||||
$('#Nama_Supplier').val(ajson.Nama_Supplier);
|
$('#Nama_Supplier').val(ajson.Nama_Supplier);
|
||||||
|
$('#Sisa_Stok').val(ajson.Sisa_Stok);
|
||||||
}
|
}
|
||||||
}).send();
|
}).send();
|
||||||
//this.html5QrcodeScanner.pause();
|
//this.html5QrcodeScanner.pause();
|
||||||
@@ -45,21 +46,19 @@ var CekHargaJS = {
|
|||||||
|
|
||||||
produk_brow: function(){
|
produk_brow: function(){
|
||||||
var _isi = new String('<div class="row mb-1"><div class="col"><div class="input-group"><input class="form-control" id="Cari_Produk" placeholder="Kunci Pencarian" type="text"><button class="btn btn-info shadow-none" type="button" id="butSearch">Cari</button><button class="btn btn-secondary shadow-none" type="button" id="butAll">Semua</button></div></div></div><div id="divBrowProduk"> </div>');
|
var _isi = new String('<div class="row mb-1"><div class="col"><div class="input-group"><input class="form-control" id="Cari_Produk" placeholder="Kunci Pencarian" type="text"><button class="btn btn-info shadow-none" type="button" id="butSearch">Cari</button><button class="btn btn-secondary shadow-none" type="button" id="butAll">Semua</button></div></div></div><div id="divBrowProduk"> </div>');
|
||||||
this.winBProduk = FoniaJS.showWindow('BProduk', 'Daftar Barang', _isi, 900, '', function(){
|
this.winBProduk = FoniaJS.showWindow('BProduk', 'Daftar Barang', _isi, 900, '', () => {
|
||||||
$('#winBProduk')
|
$('#winBProduk')
|
||||||
.find('#Cari_Produk').keydown(function(e){
|
.find('#Cari_Produk').keydown((e) => {
|
||||||
var key = e.keyCode || e.which || 0;
|
var key = e.keyCode || e.which || 0;
|
||||||
if (key==13 && e.target.value!='') this.data_query('brow-produk');
|
if (key==13 && e.target.value!='') this.data_query('brow-produk');
|
||||||
}.bind(this)).end()
|
}).end()
|
||||||
.find('#butSearch').click(function(e){
|
.find('#butSearch').click(() => this.data_query('brow-produk')).end()
|
||||||
this.data_query('brow-produk');
|
.find('#butAll').click(() => {
|
||||||
}.bind(this)).end()
|
|
||||||
.find('#butAll').click(function(){
|
|
||||||
$('#winBProduk').find('#Cari_Produk').val('');
|
$('#winBProduk').find('#Cari_Produk').val('');
|
||||||
this.data_query('brow-produk');
|
this.data_query('brow-produk');
|
||||||
}.bind(this));
|
});
|
||||||
this.data_query('brow-produk');
|
this.data_query('brow-produk');
|
||||||
}.bind(this));
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
produk_select: function(acell){
|
produk_select: function(acell){
|
||||||
@@ -69,6 +68,7 @@ var CekHargaJS = {
|
|||||||
$('#Nama_Barang').val(acell[5]);
|
$('#Nama_Barang').val(acell[5]);
|
||||||
$('#Nama_Satuan').val(acell[6]);
|
$('#Nama_Satuan').val(acell[6]);
|
||||||
$('#Harga_Jual').val(acell[4]);
|
$('#Harga_Jual').val(acell[4]);
|
||||||
|
$('#Sisa_Stok').val(acell[7]);
|
||||||
this.update_Sup();
|
this.update_Sup();
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -77,9 +77,7 @@ var CekHargaJS = {
|
|||||||
new Request.JSONF({
|
new Request.JSONF({
|
||||||
url: this.PHP,
|
url: this.PHP,
|
||||||
sendParam: ['data=brow-produk','Cari_Produk'],
|
sendParam: ['data=brow-produk','Cari_Produk'],
|
||||||
onSuccess: function(){
|
onSuccess: () => FoniaJS.setFocus('#Cari_Produk')
|
||||||
FoniaJS.setFocus('#Cari_Produk');
|
|
||||||
}
|
|
||||||
}).send();
|
}).send();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -91,8 +89,8 @@ var CekHargaJS = {
|
|||||||
$('#Nama_Barang').val(adata[1]);
|
$('#Nama_Barang').val(adata[1]);
|
||||||
$('#Nama_Satuan').val(adata[2]);
|
$('#Nama_Satuan').val(adata[2]);
|
||||||
$('#Harga_Jual').val(adata[3]);
|
$('#Harga_Jual').val(adata[3]);
|
||||||
$('#Nama_Produk').val('');
|
$('#Sisa_Stok').val(adata[4]);
|
||||||
$('#Nama_Produk').focus();
|
$('#Nama_Produk').val('').focus();
|
||||||
CekHargaJS.update_Sup();
|
CekHargaJS.update_Sup();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ var AboutJS = {
|
|||||||
update_run: function(){
|
update_run: function(){
|
||||||
new Request.JSON({
|
new Request.JSON({
|
||||||
url: this.PHP,
|
url: this.PHP,
|
||||||
sendParam: ['data=proses_update','new_sha1','new_sha1'],
|
sendParam: ['data=proses_update','new_sha1','new_date'],
|
||||||
onSuccess: (adata) => {
|
onSuccess: (adata) => {
|
||||||
if (adata.sukses==true) {
|
if (adata.sukses==true) {
|
||||||
FoniaJS.showInfo('Aplikasi telah di Update.<br>Silakan refresh browser Anda!');
|
FoniaJS.showInfo('Aplikasi telah di Update.<br>Silakan refresh browser Anda!');
|
||||||
|
|||||||
+1
-1
@@ -93,7 +93,7 @@ if ( $data == "chart-sale" ) {
|
|||||||
$ajson['tipe'] = "tabel";
|
$ajson['tipe'] = "tabel";
|
||||||
$ajson['html'] = '<table class="table table-striped table-bordered table-hover dataTable no-footer dtr-inline"><thead><tr><th class="c">SKU</th><th class="l">Nama Barang</th><th class="r">Stok</th></tr></thead><tbody>';
|
$ajson['html'] = '<table class="table table-striped table-bordered table-hover dataTable no-footer dtr-inline"><thead><tr><th class="c">SKU</th><th class="l">Nama Barang</th><th class="r">Stok</th></tr></thead><tbody>';
|
||||||
|
|
||||||
$db->Query("SELECT S.*,P.Kode_SKU,P.Nama_Produk FROM (SELECT InvID,SUM(Stok) Stok FROM inv_detail WHERE CabID='".$_SESSION['__APP_INV']['CABANGID']."' GROUP BY InvID) S LEFT JOIN vi_inv_produk P ON (P.InvID=S.InvID AND P.Qty=1) WHERE P.Kode_SKU IS NOT NULL ORDER BY S.Stok LIMIT 20");
|
$db->Query("SELECT S.*,P.Kode_SKU,P.Nama_Produk FROM (SELECT * FROM inv_stok WHERE CabID='".$_SESSION['__APP_INV']['CABANGID']."') S LEFT JOIN vi_inv_produk P ON (P.InvID=S.InvID AND P.Qty=1) WHERE P.Kode_SKU IS NOT NULL ORDER BY S.Stok LIMIT 20");
|
||||||
while ($db->Next()) {
|
while ($db->Next()) {
|
||||||
$ajson['html'] .= sprintf('<tr><td class="c">%s</td><td class="l">%s</td><td class="r">%s</td></tr>', $db->Row("Kode_SKU"), $db->Row("Nama_Produk"), rupiah($db->Row("Stok",0)));
|
$ajson['html'] .= sprintf('<tr><td class="c">%s</td><td class="l">%s</td><td class="r">%s</td></tr>', $db->Row("Kode_SKU"), $db->Row("Nama_Produk"), rupiah($db->Row("Stok",0)));
|
||||||
}
|
}
|
||||||
|
|||||||
+41
-32
@@ -19,7 +19,6 @@ require_once(__DIR__."/../func.iss.php");
|
|||||||
use siaupheng\fonia3\DB\MySQL;
|
use siaupheng\fonia3\DB\MySQL;
|
||||||
use siaupheng\fonia3\Web\Param;
|
use siaupheng\fonia3\Web\Param;
|
||||||
use siaupheng\fonia3\Web\Table;
|
use siaupheng\fonia3\Web\Table;
|
||||||
use siaupheng\fonia3\Web\Form;
|
|
||||||
|
|
||||||
$db = $db ?? new MySQL();
|
$db = $db ?? new MySQL();
|
||||||
$ajson = [];
|
$ajson = [];
|
||||||
@@ -31,23 +30,25 @@ if ($data == "auto-produk") {
|
|||||||
$ajson['autodata'] = [];
|
$ajson['autodata'] = [];
|
||||||
$bcode = 0; $arec = [];
|
$bcode = 0; $arec = [];
|
||||||
// Cari by SKU
|
// Cari by SKU
|
||||||
$db->Query("SELECT P.*,CONCAT(K.Kode_SKU,' / ',K.Kode_Barcode,':',P.Nama_Produk,':',S.Nama_Satuan,':',CONVERT(FORMAT(K.Harga_Jual,0) USING UTF8)) 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");
|
$db->Query("SELECT P.*,K.Qty,CONCAT(K.Kode_SKU,' / ',K.Kode_Barcode,':',P.Nama_Produk,':',S.Nama_Satuan,':',CONVERT(FORMAT(K.Harga_Jual,0) USING UTF8)) 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()) {
|
if ($db->Next()) {
|
||||||
$bcode = 1;
|
$bcode = 1;
|
||||||
$arec = $db->AllRow();
|
$arec = $db->AllRow();
|
||||||
}
|
}
|
||||||
// Cari by Barcode
|
// Cari by Barcode
|
||||||
if ($bcode == 0) {
|
if ($bcode == 0) {
|
||||||
$db->Query("SELECT P.*,CONCAT(K.Kode_SKU,' / ',K.Kode_Barcode,':',P.Nama_Produk,':',S.Nama_Satuan,':',CONVERT(FORMAT(K.Harga_Jual,0) USING UTF8)) 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");
|
$db->Query("SELECT P.*,K.Qty,CONCAT(K.Kode_SKU,' / ',K.Kode_Barcode,':',P.Nama_Produk,':',S.Nama_Satuan,':',CONVERT(FORMAT(K.Harga_Jual,0) USING UTF8)) 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()) {
|
if ($db->Next()) {
|
||||||
$bcode = 1;
|
$bcode = 1;
|
||||||
$arec = $db->AllRow();
|
$arec = $db->AllRow();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($bcode == 1) {
|
if ($bcode == 1) {
|
||||||
$ajson['autodata'][] = ['value'=>$arec['InvID'], 'text'=>$arec['Nama_Produk'], 'data'=>$arec['Data2'], 'bc'=>1];
|
$db->Query("SELECT * FROM inv_stok WHERE CabID='".$id_cab."' AND InvID='".$arec['InvID']."' LIMIT 1");
|
||||||
|
$arec['Stok'] = ($db->Next()) ? ($db->RowFloat("Stok",0)/$arec['Qty']) : 0;
|
||||||
|
$ajson['autodata'][] = ['value'=>$arec['InvID'], 'text'=>$arec['Nama_Produk'], 'data'=>$arec['Data2'].":".$arec['Stok'], 'bc'=>1];
|
||||||
} else {
|
} else {
|
||||||
$db->Query("SELECT P.*,IF(IFNULL(X.Stok,0)=0,'KOSONG',ROUND(X.Stok/K.Qty,2)) Sisa_Stok,K.Kode_SKU,K.Harga_Jual,S.Nama_Satuan,CONCAT(K.Kode_SKU,' / ',K.Kode_Barcode,':',P.Nama_Produk,':',S.Nama_Satuan,':',CONVERT(FORMAT(K.Harga_Jual,0) USING UTF8)) 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 vi_inv_stok X ON (X.CabID='".$id_cab."' AND K.InvID=X.InvID) LEFT JOIN para_satuan S ON (S.SatuanID=K.SatuanID) ORDER BY P.Nama_Produk,K.Qty DESC LIMIT 50");
|
$db->Query("SELECT P.*,IF(IFNULL(X.Stok,0)=0,'KOSONG',ROUND(X.Stok/K.Qty,2)) Sisa_Stok,K.Kode_SKU,K.Harga_Jual,S.Nama_Satuan,CONCAT(K.Kode_SKU,' / ',K.Kode_Barcode,':',P.Nama_Produk,':',S.Nama_Satuan,':',CONVERT(FORMAT(K.Harga_Jual,0) USING UTF8),':',CONVERT(FORMAT(IFNULL(X.Stok,0)/K.Qty,0) USING UTF8)) 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 inv_stok X ON (X.CabID='".$id_cab."' AND K.InvID=X.InvID) LEFT JOIN para_satuan S ON (S.SatuanID=K.SatuanID) ORDER BY P.Nama_Produk,K.Qty DESC LIMIT 50");
|
||||||
while ($db->Next()) {
|
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")).' <span class="text-danger">('.$db->Row("Sisa_Stok").')</span>', 'data'=>$db->Row("Data2"), 'bc'=>0];
|
$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")).' <span class="text-danger">('.$db->Row("Sisa_Stok").')</span>', 'data'=>$db->Row("Data2"), 'bc'=>0];
|
||||||
}
|
}
|
||||||
@@ -55,39 +56,45 @@ if ($data == "auto-produk") {
|
|||||||
|
|
||||||
} else if ($data == "scan-produk") {
|
} else if ($data == "scan-produk") {
|
||||||
$tcari = Param::Get("Cari_Produk");
|
$tcari = Param::Get("Cari_Produk");
|
||||||
$ahasil = [];
|
$bcode = 0; $arec = [];
|
||||||
$bcode = 0;
|
|
||||||
// Cari by SKU
|
// Cari by SKU
|
||||||
$db->Query("SELECT P.InvID,K.Kode_SKU,K.Kode_Barcode,P.Nama_Produk,S.Nama_Satuan,CONVERT(FORMAT(K.Harga_Jual,0) USING UTF8) Harga_Jual 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");
|
$db->Query("SELECT P.InvID,K.Kode_SKU,K.Kode_Barcode,P.Nama_Produk,S.Nama_Satuan,K.Qty,CONVERT(FORMAT(K.Harga_Jual,0) USING UTF8) Harga_Jual 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()) {
|
if ($db->Next()) {
|
||||||
$bcode = 1;
|
$bcode = 1;
|
||||||
$ahasil = $db->AllRow();
|
$arec = $db->AllRow();
|
||||||
}
|
}
|
||||||
// Cari by Barcode
|
// Cari by Barcode
|
||||||
if ($bcode == 0) {
|
if ($bcode == 0) {
|
||||||
$db->Query("SELECT P.InvID,K.Kode_SKU,K.Kode_Barcode,P.Nama_Produk,S.Nama_Satuan,CONVERT(FORMAT(K.Harga_Jual,0) USING UTF8) Harga_Jual 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");
|
$db->Query("SELECT P.InvID,K.Kode_SKU,K.Kode_Barcode,P.Nama_Produk,S.Nama_Satuan,K.Qty,CONVERT(FORMAT(K.Harga_Jual,0) USING UTF8) Harga_Jual 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()) {
|
if ($db->Next()) {
|
||||||
$ahasil = $db->AllRow();
|
$bcode = 1;
|
||||||
|
$arec = $db->AllRow();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ($bcode == 1) {
|
||||||
$ahasil['Nama_Supplier'] = "BELUM ADA";
|
$db->Query("SELECT * FROM inv_stok WHERE CabID='".$id_cab."' AND InvID='".$arec['InvID']."' LIMIT 1");
|
||||||
if (count($ahasil) > 0) {
|
$arec['Stok'] = ($db->Next()) ? ($db->RowFloat("Stok",0)/$arec['Qty']) : 0;
|
||||||
$db->Query("SELECT S.Nama_Sup Nama FROM para_supplier S WHERE S.SupID=(SELECT SupID FROM inv_produk_sup WHERE InvID='".$ahasil['InvID']."' LIMIT 1)");
|
|
||||||
if ($db->Next()) $ahasil['Nama_Supplier'] = $db->Row("Nama");
|
|
||||||
}
|
}
|
||||||
$ajson['InvID'] = $ahasil['InvID'];
|
|
||||||
$ajson['Kode_Barang'] = $ahasil['Kode_SKU']." / ".$ahasil['Kode_Barcode'];
|
$arec['Nama_Supplier'] = "BELUM ADA";
|
||||||
$ajson['Nama_Barang'] = $ahasil['Nama_Produk'];
|
if (count($arec) > 0) {
|
||||||
$ajson['Nama_Satuan'] = $ahasil['Nama_Satuan'];
|
$db->Query("SELECT S.Nama_Sup Nama FROM para_supplier S WHERE S.SupID=(SELECT SupID FROM inv_produk_sup WHERE InvID='".$arec['InvID']."' ORDER BY Aktif DESC LIMIT 1)");
|
||||||
$ajson['Harga_Jual'] = $ahasil['Harga_Jual'];
|
if ($db->Next()) $arec['Nama_Supplier'] = $db->Row("Nama");
|
||||||
$ajson['Nama_Supplier'] = $ahasil['Nama_Supplier'];
|
}
|
||||||
|
|
||||||
|
$ajson['InvID'] = $arec['InvID'];
|
||||||
|
$ajson['Kode_Barang'] = $arec['Kode_SKU']." / ".$arec['Kode_Barcode'];
|
||||||
|
$ajson['Nama_Barang'] = $arec['Nama_Produk'];
|
||||||
|
$ajson['Nama_Satuan'] = $arec['Nama_Satuan'];
|
||||||
|
$ajson['Harga_Jual'] = $arec['Harga_Jual'];
|
||||||
|
$ajson['Nama_Supplier'] = $arec['Nama_Supplier'];
|
||||||
|
$ajson['Sisa_Stok'] = $arec['Stok'];
|
||||||
|
|
||||||
} else if ( $data == "brow-produk" ) {
|
} else if ( $data == "brow-produk" ) {
|
||||||
$tcari = trim(Param::Get("Cari_Produk"));
|
$tcari = trim(Param::Get("Cari_Produk"));
|
||||||
$tsql = ($tcari=="") ? "" : " AND P.Barcode_Nama LIKE '%".$tcari."%'";
|
$tsql = ($tcari=="") ? "" : " AND P.Barcode_Nama LIKE '%".$tcari."%'";
|
||||||
$obj = new Table($db);
|
$obj = new Table($db);
|
||||||
$obj->set_table("vi_inv_produk P", "P.*", "P.Harga_Jual>0 AND P.Aktif=1".$tsql);
|
$obj->set_table("vi_inv_produk P LEFT JOIN inv_stok S ON (S.CabID='".$id_cab."' AND S.InvID=P.InvID)", "P.*,(S.Stok/P.Qty) Stok", "P.Harga_Jual>0 AND P.Aktif=1".$tsql);
|
||||||
$obj->add_field("InvID", "ID", "hid");
|
$obj->add_field("InvID", "ID", "hid");
|
||||||
$obj->add_field("Kode_SKU", "SKU", "c");
|
$obj->add_field("Kode_SKU", "SKU", "c");
|
||||||
$obj->add_field("Kode_Barcode", "Kode Barcode", "c");
|
$obj->add_field("Kode_Barcode", "Kode Barcode", "c");
|
||||||
@@ -95,6 +102,7 @@ if ($data == "auto-produk") {
|
|||||||
$obj->add_field("Harga_Jual", "Harga @", "r", "rupiah");
|
$obj->add_field("Harga_Jual", "Harga @", "r", "rupiah");
|
||||||
$obj->add_field("Nama_Produk", "Produk", "hid");
|
$obj->add_field("Nama_Produk", "Produk", "hid");
|
||||||
$obj->add_field("Nama_Satuan", "Satuan", "hid");
|
$obj->add_field("Nama_Satuan", "Satuan", "hid");
|
||||||
|
$obj->add_field("Stok", "Stok", "hid");
|
||||||
$obj->set_field_order("Kode_SKU", "A");
|
$obj->set_field_order("Kode_SKU", "A");
|
||||||
$obj->add_row_btn("save", "Pilih", "CekHargaJS.produk_select");
|
$obj->add_row_btn("save", "Pilih", "CekHargaJS.produk_select");
|
||||||
$obj->set_func_navi("CekHargaJS.data_query('brow-produk')");
|
$obj->set_func_navi("CekHargaJS.data_query('brow-produk')");
|
||||||
@@ -102,18 +110,18 @@ if ($data == "auto-produk") {
|
|||||||
|
|
||||||
} else if ( $data == "cek_supplier") {
|
} else if ( $data == "cek_supplier") {
|
||||||
$n_sup = "BELUM ADA";
|
$n_sup = "BELUM ADA";
|
||||||
$db->Query("SELECT S.Nama_Sup Nama FROM para_supplier S WHERE S.SupID=(SELECT SupID FROM inv_produk_sup WHERE InvID='".Param::Get("InvID",0)."' LIMIT 1)");
|
$db->Query("SELECT S.Nama_Sup Nama FROM para_supplier S WHERE S.SupID=(SELECT SupID FROM inv_produk_sup WHERE InvID='".Param::Get("InvID",0)."' ORDER BY Aktif DESC LIMIT 1)");
|
||||||
if ($db->Next()) $n_sup = $db->Row("Nama");
|
if ($db->Next()) $n_sup = $db->Row("Nama");
|
||||||
$ajson[] = ['type'=>"form", 'id'=>"Nama_Supplier", 'value'=>$n_sup];
|
$ajson[] = ['type'=>"form", 'id'=>"Nama_Supplier", 'value'=>$n_sup];
|
||||||
|
|
||||||
} else if ( $data == "default") {
|
} else if ( $data == "default") {
|
||||||
$form = new Form($db);
|
$tbrg = '<input type="search" class="form-control" id="Nama_Produk" name="Nama_Produk" value="" placeholder="Scan Barcode / Ketik Nama Barang" required="true" autocomplete="off">';
|
||||||
$tbrg = $form->textauto("_", "Nama_Produk", null, true, true, "Scan Barcode / Ketik Nama Barang");
|
$tkode = '<input type="text" class="form-control" id="Kode_Barang" value="KODE_SKU / KODE_BARCODE" readonly="">';
|
||||||
$tkode = $form->textbox("_", "Kode_Barang", "KODE_SKU / KODE_BARCODE", false, false, "text");
|
$tnama = '<input type="text" class="form-control" id="Nama_Barang" value="NAMA_BARANG" readonly="">';
|
||||||
$tnama = $form->textbox("_", "Nama_Barang", "NAMA_BARANG", false, false, "text");
|
$tsat = '<input type="text" class="form-control" id="Nama_Satuan" value="SATUAN" readonly="">';
|
||||||
$tsat = $form->textbox("_", "Nama_Satuan", "SATUAN", false, false, "text");
|
$tharga = '<input type="text" class="form-control" id="Harga_Jual" value="" readonly="">';
|
||||||
$tharga = $form->textbox("_", "Harga_Jual", "", false, false, "text");
|
$tsup = '<input type="text" class="form-control" id="Nama_Supplier" value="" readonly="">';
|
||||||
$tsup = $form->textbox("_", "Nama_Supplier", "", false, false, "text");
|
$tstok = '<input type="text" class="form-control text-end" id="Sisa_Stok" value="0" readonly="">';
|
||||||
if (isMobile()) {
|
if (isMobile()) {
|
||||||
echo '
|
echo '
|
||||||
<div class="row mb-1"><div class="col"><div id="qr-reader"></div></div></div>
|
<div class="row mb-1"><div class="col"><div id="qr-reader"></div></div></div>
|
||||||
@@ -122,7 +130,7 @@ if ($data == "auto-produk") {
|
|||||||
';
|
';
|
||||||
} else {
|
} else {
|
||||||
echo '
|
echo '
|
||||||
<div class="row mb-1"><div class="col-sm-3 col-lg-3 col-form-label">Kunci Pencarian</div><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"><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>
|
||||||
<hr class="my-2">
|
<hr class="my-2">
|
||||||
<div class="row mb-1"><div class="col-sm-3 col-lg-3 col-form-label">Kode SKU / Barcode</div><div class="col">'.$tkode.'</div></div>
|
<div class="row mb-1"><div class="col-sm-3 col-lg-3 col-form-label">Kode SKU / Barcode</div><div class="col">'.$tkode.'</div></div>
|
||||||
';
|
';
|
||||||
@@ -133,6 +141,7 @@ if ($data == "auto-produk") {
|
|||||||
<div class="row mb-1"><div class="col-sm-3 col-lg-3 col-form-label">Satuan</div><div class="col">'.$tsat.'</div></div>
|
<div class="row mb-1"><div class="col-sm-3 col-lg-3 col-form-label">Satuan</div><div class="col">'.$tsat.'</div></div>
|
||||||
<div class="row mb-1"><div class="col-sm-3 col-lg-3 col-form-label">Harga Jual @</div><div class="col">'.$tharga.'</div></div>
|
<div class="row mb-1"><div class="col-sm-3 col-lg-3 col-form-label">Harga Jual @</div><div class="col">'.$tharga.'</div></div>
|
||||||
<div class="row mb-1"><div class="col-sm-3 col-lg-3 col-form-label">Supplier</div><div class="col">'.$tsup.'</div></div>
|
<div class="row mb-1"><div class="col-sm-3 col-lg-3 col-form-label">Supplier</div><div class="col">'.$tsup.'</div></div>
|
||||||
|
<div class="row mb-1"><div class="col-sm-3 col-lg-3 col-form-label">Sisa Stok</div><div class="col-sm-6 col-lg-5">'.$tstok.'</div></div>
|
||||||
<input type="hidden" id="InvID" value="0" />';
|
<input type="hidden" id="InvID" value="0" />';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -32,11 +32,12 @@ $nomor = Param::Get("No_Opname", "");
|
|||||||
|
|
||||||
if ( $data == "master" ) {
|
if ( $data == "master" ) {
|
||||||
$ajson = ['error'=>"", 'html'=>""];
|
$ajson = ['error'=>"", 'html'=>""];
|
||||||
$atabel = ['No_Opname'=>$nomor, 'CabID'=>$id_cab];
|
$atabel = ['No_Opname'=>$nomor, 'CabID'=>0];
|
||||||
|
|
||||||
if ($mode == "add") {
|
if ($mode == "add") {
|
||||||
$atabel['No_Opname'] = "TO-BARU#".$_SESSION['__WEB_APP']['SERVER_ID'].user_id(3);
|
$atabel['No_Opname'] = "TO-BARU#".$_SESSION['__WEB_APP']['SERVER_ID'].user_id(3);
|
||||||
$atabel['Tgl_Opname'] = tgl_ymd();
|
$atabel['Tgl_Opname'] = tgl_ymd();
|
||||||
|
$atabel['CabID'] = $id_cab;
|
||||||
$nomor = "";
|
$nomor = "";
|
||||||
|
|
||||||
} else if ($mode == "edit") {
|
} else if ($mode == "edit") {
|
||||||
@@ -181,13 +182,13 @@ if ( $data == "master" ) {
|
|||||||
$tsql = ($tcari=="") ? "" : " AND CONCAT(P.Kode_Barcode,P.Nama_Produk) LIKE '%".$tcari."%'";
|
$tsql = ($tcari=="") ? "" : " AND CONCAT(P.Kode_Barcode,P.Nama_Produk) LIKE '%".$tcari."%'";
|
||||||
|
|
||||||
$obj = new Table($db);
|
$obj = new Table($db);
|
||||||
$obj->set_table("(SELECT InvID,SatuanID,SUM(Stok) Stok FROM inv_detail WHERE Tgl_Ref<='".$ttgl."' AND CabID='".$id_cab."' GROUP BY InvID) D LEFT JOIN vi_inv_produk P ON (D.InvID=P.InvID AND D.SatuanID=P.SatuanID)", "D.InvID,P.StokID,D.Stok,P.Kode_SKU,P.Nama_Produk,P.Harga_Pokok", "P.Aktif=1".$tsql);
|
$obj->set_table("(SELECT * FROM inv_stok WHERE CabID='".$id_cab."') D LEFT JOIN vi_inv_produk P ON (D.InvID=P.InvID)", "D.InvID,P.StokID,(D.Stok/P.Qty) Stok,P.Kode_SKU,P.Nama_Produk,P.Harga_Pokok", "P.Aktif=1".$tsql);
|
||||||
$obj->add_field("InvID", "InvID", "hid");
|
$obj->add_field("InvID", "InvID", "hid");
|
||||||
$obj->add_field("StokID", "StokID", "hid");
|
$obj->add_field("StokID", "StokID", "hid");
|
||||||
$obj->add_field("Harga_Pokok", "HPP", "hid");
|
$obj->add_field("Harga_Pokok", "HPP", "hid");
|
||||||
$obj->add_field("Kode_SKU", "SKU", "c");
|
$obj->add_field("Kode_SKU", "SKU", "c");
|
||||||
$obj->add_field("Nama_Produk", "Nama Barang", "l");
|
$obj->add_field("Nama_Produk", "Nama Barang", "l");
|
||||||
$obj->add_field("Stok", "Stok", "r");
|
$obj->add_field("Stok", "Stok", "r", "rupiah2");
|
||||||
$obj->set_field_order("Kode_SKU", "A");
|
$obj->set_field_order("Kode_SKU", "A");
|
||||||
$obj->add_row_btn("save", "Pilih", "OpnameJS.produk_select");
|
$obj->add_row_btn("save", "Pilih", "OpnameJS.produk_select");
|
||||||
$obj->set_func_navi("OpnameJS.data_query('brow-produk')");
|
$obj->set_func_navi("OpnameJS.data_query('brow-produk')");
|
||||||
@@ -215,9 +216,9 @@ if ( $data == "master" ) {
|
|||||||
if ($bcode == 1) {
|
if ($bcode == 1) {
|
||||||
$ajson['autodata'][] = ['value'=>$arec['InvID'], 'text'=>$arec['Nama_Produk'], 'data'=>$arec['Data2'], 'bc'=>1];
|
$ajson['autodata'][] = ['value'=>$arec['InvID'], 'text'=>$arec['Nama_Produk'], 'data'=>$arec['Data2'], 'bc'=>1];
|
||||||
} else {
|
} else {
|
||||||
$db->Query("SELECT P.*,IF(IFNULL(X.Stok,0)=0,'KOSONG',ROUND(X.Stok/K.Qty,2)) Sisa_Stok,K.Kode_SKU,S.Nama_Satuan,CONCAT(K.Kode_SKU,' / ',K.Kode_Barcode,':',P.Nama_Produk,':',S.Nama_Satuan,':',K.SatuanID,':',CONVERT(FORMAT(P.Harga_Pokok/K.Qty,2) USING UTF8)) Data2 FROM (SELECT * FROM inv_produk_kemasan WHERE 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 (SELECT InvID,SUM(Stok) Stok FROM inv_detail WHERE Tgl_Ref<='".tgl_sql2str($ttgl)."' AND CabID='".$id_cab."' GROUP BY InvID) X ON (K.InvID=X.InvID) LEFT JOIN para_satuan S ON (S.SatuanID=K.SatuanID) ORDER BY P.Nama_Produk,K.Qty DESC LIMIT 50");
|
$db->Query("SELECT P.*,K.Kode_SKU,S.Nama_Satuan,CONCAT(K.Kode_SKU,' / ',K.Kode_Barcode,':',P.Nama_Produk,':',S.Nama_Satuan,':',K.SatuanID,':',CONVERT(FORMAT(P.Harga_Pokok/K.Qty,2) USING UTF8)) Data2 FROM (SELECT * FROM inv_produk_kemasan WHERE 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()) {
|
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").' <span class="text-danger">('.$db->Row("Sisa_Stok").')</span>', 'data'=>$db->Row("Data2"), 'bc'=>0];
|
$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"), 'data'=>$db->Row("Data2"), 'bc'=>0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -268,8 +269,8 @@ if ( $data == "master" ) {
|
|||||||
} else if ( $data == "cek_stok") {
|
} else if ( $data == "cek_stok") {
|
||||||
$id_inv = Param::Get("InvID", 0);
|
$id_inv = Param::Get("InvID", 0);
|
||||||
$stok = 0;
|
$stok = 0;
|
||||||
$db->Query("SELECT SUM(Stok) Stok FROM inv_detail WHERE Tgl_Ref<='".tgl_sql2str(Param::Get("Tgl_Opname"))."' AND CabID='".$id_cab."' AND InvID='".$id_inv."'");
|
$db->Query("SELECT * FROM inv_stok WHERE CabID='".$id_cab."' AND InvID='".$id_inv."' LIMIT 1");
|
||||||
if ($db->Next()) $stok = $db->RowFloat("Stok", 2);
|
if ($db->Next()) $stok = $db->RowFloat("Stok", 0);
|
||||||
$ajson[] = ['type'=>"form", 'id'=>"Stok_Sistem", 'value'=>rupiah2($stok)];
|
$ajson[] = ['type'=>"form", 'id'=>"Stok_Sistem", 'value'=>rupiah2($stok)];
|
||||||
|
|
||||||
} else if ( $data == "default") {
|
} else if ( $data == "default") {
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ use siaupheng\fonia3\DB\MySQL;
|
|||||||
use siaupheng\fonia3\DB\SQL;
|
use siaupheng\fonia3\DB\SQL;
|
||||||
use siaupheng\fonia3\Web\Param;
|
use siaupheng\fonia3\Web\Param;
|
||||||
use siaupheng\fonia3\Web\Table;
|
use siaupheng\fonia3\Web\Table;
|
||||||
use siaupheng\fonia3\Web\Form;
|
|
||||||
|
|
||||||
$db = $db ?? new MySQL();
|
$db = $db ?? new MySQL();
|
||||||
$ajson = [];
|
$ajson = [];
|
||||||
@@ -48,39 +47,38 @@ if ($data == "auto-produk") {
|
|||||||
if ($bcode == 1) {
|
if ($bcode == 1) {
|
||||||
$ajson['autodata'][] = ['value'=>$arec['InvID'], 'text'=>$arec['Nama_Produk'], 'data'=>$arec['Data2'], 'bc'=>1];
|
$ajson['autodata'][] = ['value'=>$arec['InvID'], 'text'=>$arec['Nama_Produk'], 'data'=>$arec['Data2'], 'bc'=>1];
|
||||||
} else {
|
} else {
|
||||||
$db->Query("SELECT P.*,IF(IFNULL(X.Stok,0)=0,'KOSONG',ROUND(X.Stok/K.Qty,2)) Sisa_Stok,K.Kode_SKU,K.Harga_Jual,S.Nama_Satuan,CONCAT(K.Kode_SKU,' / ',K.Kode_Barcode,':',P.Nama_Produk,':',S.Nama_Satuan,':',CONVERT(FORMAT(K.Harga_Jual,0) USING UTF8)) 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 vi_inv_stok X ON (X.CabID='".$id_cab."' AND K.InvID=X.InvID) LEFT JOIN para_satuan S ON (S.SatuanID=K.SatuanID) ORDER BY P.Nama_Produk,K.Qty DESC LIMIT 50");
|
$db->Query("SELECT P.*,K.Kode_SKU,K.Harga_Jual,S.Nama_Satuan,CONCAT(K.Kode_SKU,' / ',K.Kode_Barcode,':',P.Nama_Produk,':',S.Nama_Satuan,':',CONVERT(FORMAT(K.Harga_Jual,0) USING UTF8)) 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()) {
|
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")).' <span class="text-danger">('.$db->Row("Sisa_Stok").')</span>', 'data'=>$db->Row("Data2"), 'bc'=>0];
|
$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 == "scan-produk") {
|
} else if ($data == "scan-produk") {
|
||||||
$tcari = Param::Get("Cari_Produk");
|
$tcari = Param::Get("Cari_Produk");
|
||||||
$ahasil = [];
|
$bcode = 0; $arec = [];
|
||||||
$bcode = 0;
|
|
||||||
// Cari by SKU
|
// Cari by SKU
|
||||||
$db->Query("SELECT P.InvID,K.Kode_SKU,K.Kode_Barcode,P.Nama_Produk,S.Nama_Satuan 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");
|
$db->Query("SELECT P.InvID,K.Kode_SKU,K.Kode_Barcode,P.Nama_Produk,S.Nama_Satuan 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()) {
|
if ($db->Next()) {
|
||||||
$bcode = 1;
|
$bcode = 1;
|
||||||
$ahasil = $db->AllRow();
|
$arec = $db->AllRow();
|
||||||
}
|
}
|
||||||
// Cari by Barcode
|
// Cari by Barcode
|
||||||
if ($bcode == 0) {
|
if ($bcode == 0) {
|
||||||
$db->Query("SELECT P.InvID,K.Kode_SKU,K.Kode_Barcode,P.Nama_Produk,S.Nama_Satuan 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");
|
$db->Query("SELECT P.InvID,K.Kode_SKU,K.Kode_Barcode,P.Nama_Produk,S.Nama_Satuan 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()) {
|
if ($db->Next()) {
|
||||||
$ahasil = $db->AllRow();
|
$arec = $db->AllRow();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (count($ahasil) > 0) {
|
if (count($arec) > 0) {
|
||||||
$db->Query("SELECT SUM(Stok) Stok FROM inv_detail WHERE Tgl_Ref<='".tgl_ymd()."' AND CabID='".$id_cab."' AND InvID='".$ahasil['InvID']."'");
|
$db->Query("SELECT * FROM inv_stok WHERE CabID='".$id_cab."' AND InvID='".$arec['InvID']."' LIMIT 1");
|
||||||
if ($db->Next()) $ahasil['Stok_Sistem'] = $db->RowFloat("Stok", 2);
|
if ($db->Next()) $arec['Stok_Sistem'] = $db->RowFloat("Stok", 2);
|
||||||
}
|
}
|
||||||
$ajson['InvID'] = $ahasil['InvID'];
|
$ajson['InvID'] = $arec['InvID'];
|
||||||
$ajson['Kode_Barang'] = $ahasil['Kode_SKU']." / ".$ahasil['Kode_Barcode'];
|
$ajson['Kode_Barang'] = $arec['Kode_SKU']." / ".$arec['Kode_Barcode'];
|
||||||
$ajson['Nama_Barang'] = $ahasil['Nama_Produk'];
|
$ajson['Nama_Barang'] = $arec['Nama_Produk'];
|
||||||
$ajson['Nama_Satuan'] = $ahasil['Nama_Satuan'];
|
$ajson['Nama_Satuan'] = $arec['Nama_Satuan'];
|
||||||
$ajson['Stok_Sistem'] = $ahasil['Stok_Sistem'];
|
$ajson['Stok_Sistem'] = $arec['Stok_Sistem'];
|
||||||
|
|
||||||
} else if ( $data == "brow-produk" ) {
|
} else if ( $data == "brow-produk" ) {
|
||||||
$tcari = trim(Param::Get("Cari_Produk"));
|
$tcari = trim(Param::Get("Cari_Produk"));
|
||||||
@@ -102,8 +100,8 @@ if ($data == "auto-produk") {
|
|||||||
} else if ( $data == "cek_stok") {
|
} else if ( $data == "cek_stok") {
|
||||||
$id_inv = Param::Get("InvID", 0);
|
$id_inv = Param::Get("InvID", 0);
|
||||||
$stok = 0;
|
$stok = 0;
|
||||||
$db->Query("SELECT SUM(Stok) Stok FROM inv_detail WHERE Tgl_Ref<='".tgl_ymd()."' AND CabID='".$id_cab."' AND InvID='".$id_inv."'");
|
$db->Query("SELECT * FROM inv_stok WHERE CabID='".$id_cab."' AND InvID='".$id_inv."' LIMIT 1");
|
||||||
if ($db->Next()) $stok = $db->RowFloat("Stok", 2);
|
if ($db->Next()) $stok = $db->RowFloat("Stok", 0);
|
||||||
$ajson[] = ['type'=>"form", 'id'=>"Stok_Sistem", 'value'=>rupiah2($stok)];
|
$ajson[] = ['type'=>"form", 'id'=>"Stok_Sistem", 'value'=>rupiah2($stok)];
|
||||||
|
|
||||||
} else if ( $data == "simpan-opname") {
|
} else if ( $data == "simpan-opname") {
|
||||||
@@ -119,7 +117,7 @@ if ($data == "auto-produk") {
|
|||||||
$db->Query("SELECT * FROM inv_produk WHERE InvID='".$id_inv."' LIMIT 1");
|
$db->Query("SELECT * FROM inv_produk WHERE InvID='".$id_inv."' LIMIT 1");
|
||||||
if($db->Next()) $aproduk = $db->AllRow();
|
if($db->Next()) $aproduk = $db->AllRow();
|
||||||
|
|
||||||
$db->Query("SELECT SUM(Stok) Stok FROM inv_detail WHERE Tgl_Ref<='".tgl_ymd()."' AND CabID='".$id_cab."' AND InvID='".$id_inv."'");
|
$db->Query("SELECT * FROM inv_stok WHERE CabID='".$id_cab."' AND InvID='".$id_inv."' LIMIT 1");
|
||||||
if ($db->Next()) $stok -= $db->RowFloat("Stok", 0);
|
if ($db->Next()) $stok -= $db->RowFloat("Stok", 0);
|
||||||
|
|
||||||
$sql = new SQL($db);
|
$sql = new SQL($db);
|
||||||
@@ -139,13 +137,12 @@ if ($data == "auto-produk") {
|
|||||||
$ajson['Status'] = true;
|
$ajson['Status'] = true;
|
||||||
|
|
||||||
} else if ( $data == "default") {
|
} else if ( $data == "default") {
|
||||||
$form = new Form($db);
|
$tbrg = '<input type="search" class="form-control" id="Nama_Produk" name="Nama_Produk" value="" placeholder="Scan Barcode / Ketik Nama Barang" required="true" autocomplete="off">';
|
||||||
$tbrg = $form->textauto("_", "Nama_Produk", null, true, true, "Scan Barcode / Ketik Nama Barang");
|
$tkode = '<input type="text" class="form-control" id="Kode_Barang" value="KODE_SKU / KODE_BARCODE" readonly="">';
|
||||||
$tkode = $form->textbox("_", "Kode_Barang", "KODE_SKU / KODE_BARCODE", false, false, "text");
|
$tnama = '<input type="text" class="form-control" id="Nama_Barang" value="NAMA_BARANG" readonly="">';
|
||||||
$tnama = $form->textbox("_", "Nama_Barang", "NAMA_BARANG", false, false, "text");
|
$tsat = '<input type="text" class="form-control" id="Nama_Satuan" value="SATUAN" readonly="">';
|
||||||
$tsat = $form->textbox("_", "Nama_Satuan", "SATUAN", false, false, "text");
|
$tssis = '<input type="text" class="form-control text-end" id="Stok_Sistem" value="0" readonly="">';
|
||||||
$tssis = $form->textbox("_", "Stok_Sistem", "0", false, false, "double");
|
$tsfis = '<input type="double" class="form-control double" id="Stok_Fisik" value="0">';
|
||||||
$tsfis = $form->textbox("_", "Stok_Fisik", "0", true, false, "double");
|
|
||||||
if (isMobile()) {
|
if (isMobile()) {
|
||||||
echo '
|
echo '
|
||||||
<div class="row mb-1"><div class="col"><div id="qr-reader"></div></div></div>
|
<div class="row mb-1"><div class="col"><div id="qr-reader"></div></div></div>
|
||||||
@@ -154,7 +151,7 @@ if ($data == "auto-produk") {
|
|||||||
';
|
';
|
||||||
} else {
|
} else {
|
||||||
echo '
|
echo '
|
||||||
<div class="row mb-1"><div class="col-sm-3 col-lg-3 col-form-label">Kunci Pencarian</div><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"><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>
|
||||||
<hr class="my-2">
|
<hr class="my-2">
|
||||||
<div class="row mb-1"><div class="col-sm-3 col-lg-3 col-form-label">Kode SKU / Barcode</div><div class="col">'.$tkode.'</div></div>
|
<div class="row mb-1"><div class="col-sm-3 col-lg-3 col-form-label">Kode SKU / Barcode</div><div class="col">'.$tkode.'</div></div>
|
||||||
';
|
';
|
||||||
@@ -162,8 +159,8 @@ if ($data == "auto-produk") {
|
|||||||
echo '
|
echo '
|
||||||
<div class="row mb-1"><div class="col-sm-3 col-lg-3 col-form-label">Nama Barang</div><div class="col">'.$tnama.'</div></div>
|
<div class="row mb-1"><div class="col-sm-3 col-lg-3 col-form-label">Nama Barang</div><div class="col">'.$tnama.'</div></div>
|
||||||
<div class="row mb-1"><div class="col-sm-3 col-lg-3 col-form-label">Satuan</div><div class="col">'.$tsat.'</div></div>
|
<div class="row mb-1"><div class="col-sm-3 col-lg-3 col-form-label">Satuan</div><div class="col">'.$tsat.'</div></div>
|
||||||
<div class="row mb-1"><div class="col-sm-3 col-lg-3 col-form-label">Stok Sistem</div><div class="col-sm-8 col-lg-6">'.$tssis.'</div></div>
|
<div class="row mb-1"><div class="col-sm-3 col-lg-3 col-form-label">Stok Sistem</div><div class="col-sm-6 col-lg-5">'.$tssis.'</div></div>
|
||||||
<div class="row mb-1"><div class="col-sm-3 col-lg-3 col-form-label">Stok Fisik</div><div class="col-sm-8 col-lg-6">'.$tsfis.'</div></div>
|
<div class="row mb-1"><div class="col-sm-3 col-lg-3 col-form-label">Stok Fisik</div><div class="col-sm-6 col-lg-5">'.$tsfis.'</div></div>
|
||||||
<input type="hidden" id="InvID" value="0" />';
|
<input type="hidden" id="InvID" value="0" />';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -320,11 +320,11 @@ if ( $data == "master" ) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($bcode == 1) {
|
if ($bcode == 1) {
|
||||||
$db->Query("SELECT * FROM vi_inv_stok WHERE CabID='".$id_cab."' AND InvID='".$arec['InvID']."' LIMIT 1");
|
$db->Query("SELECT * FROM inv_stok WHERE CabID='".$id_cab."' AND InvID='".$arec['InvID']."' LIMIT 1");
|
||||||
$arec['Stok'] = ($db->Next()) ? $db->RowFloat("Stok",0) : 0;
|
$arec['Stok'] = ($db->Next()) ? $db->RowFloat("Stok",0) : 0;
|
||||||
$ajson['autodata'][] = ['value'=>$arec['InvID'], 'text'=>$arec['Nama_Produk'], 'data'=>$arec['Data2'].":".$arec['Stok'], 'bc'=>1];
|
$ajson['autodata'][] = ['value'=>$arec['InvID'], 'text'=>$arec['Nama_Produk'], 'data'=>$arec['Data2'].":".$arec['Stok'], 'bc'=>1];
|
||||||
} else {
|
} else {
|
||||||
$db->Query("SELECT P.*,IF(IFNULL(X.Stok,0)=0,'KOSONG',ROUND(X.Stok/K.Qty,2)) Sisa_Stok,K.Kode_SKU,K.Harga_Jual,S.Nama_Satuan,CONCAT(K.SatuanID,':',CONVERT(P.Harga_Pokok*K.Qty USING UTF8),':',CONVERT(K.Harga_Jual USING UTF8),':',CONVERT(IFNULL(X.Stok,0) USING UTF8)) 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 vi_inv_stok X ON (X.CabID='".$id_cab."' AND K.InvID=X.InvID) LEFT JOIN para_satuan S ON (S.SatuanID=K.SatuanID) ORDER BY P.Nama_Produk,K.Qty DESC LIMIT 50");
|
$db->Query("SELECT P.*,IF(IFNULL(X.Stok,0)=0,'KOSONG',ROUND(X.Stok/K.Qty,2)) Sisa_Stok,K.Kode_SKU,K.Harga_Jual,S.Nama_Satuan,CONCAT(K.SatuanID,':',CONVERT(P.Harga_Pokok*K.Qty USING UTF8),':',CONVERT(K.Harga_Jual USING UTF8),':',CONVERT(IFNULL(X.Stok,0) USING UTF8)) 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 inv_stok X ON (X.CabID='".$id_cab."' AND K.InvID=X.InvID) LEFT JOIN para_satuan S ON (S.SatuanID=K.SatuanID) ORDER BY P.Nama_Produk,K.Qty DESC LIMIT 50");
|
||||||
while ($db->Next()) {
|
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")).' <span class="text-danger">('.$db->Row("Sisa_Stok").')</span>', 'data'=>$db->Row("Data2"), 'bc'=>0];
|
$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")).' <span class="text-danger">('.$db->Row("Sisa_Stok").')</span>', 'data'=>$db->Row("Data2"), 'bc'=>0];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -97,6 +97,7 @@ if ( $data == "print-pos" ) {
|
|||||||
$pre->add(array("TOTAL PENERIMAAN Rp.",24), array(rupiah($tot_dana),16,"R"));
|
$pre->add(array("TOTAL PENERIMAAN Rp.",24), array(rupiah($tot_dana),16,"R"));
|
||||||
|
|
||||||
// pengeluaran kas
|
// pengeluaran kas
|
||||||
|
$item_keluar = 0; $tot_keluar = 0;
|
||||||
$db->Query("SELECT K.*,P.Kode_TX FROM (SELECT * FROM gel_kas WHERE (Tgl_Kas BETWEEN '".$tglfrom."' AND '".$tglto."') AND Tipe_Kas='O'".$tsql." ORDER BY No_Kas) K LEFT JOIN para_tx_kas P ON (P.TXID=K.TXID) ORDER BY K.No_Kas");
|
$db->Query("SELECT K.*,P.Kode_TX FROM (SELECT * FROM gel_kas WHERE (Tgl_Kas BETWEEN '".$tglfrom."' AND '".$tglto."') AND Tipe_Kas='O'".$tsql." ORDER BY No_Kas) K LEFT JOIN para_tx_kas P ON (P.TXID=K.TXID) ORDER BY K.No_Kas");
|
||||||
if ($db->RecordCount()>0) {
|
if ($db->RecordCount()>0) {
|
||||||
$pre->add_empty();
|
$pre->add_empty();
|
||||||
@@ -105,7 +106,10 @@ if ( $data == "print-pos" ) {
|
|||||||
while ($db->Next()) {
|
while ($db->Next()) {
|
||||||
$pre->add([$db->Row("Kode_TX"),20], ["Rp.",4,"R"], [rupiah($db->Row("Jumlah")),16,"R"]);
|
$pre->add([$db->Row("Kode_TX"),20], ["Rp.",4,"R"], [rupiah($db->Row("Jumlah")),16,"R"]);
|
||||||
$pre->add($db->Row("Ket"));
|
$pre->add($db->Row("Ket"));
|
||||||
|
$tot_keluar += $db->Row("Jumlah");
|
||||||
|
$item_keluar++;
|
||||||
}
|
}
|
||||||
|
if ($item_keluar > 1) $pre->add(array("TOTAL PENGELUARAN Rp.",24), array(rupiah($tot_keluar),16,"R"));
|
||||||
$pre->add_line("=");
|
$pre->add_line("=");
|
||||||
$pre->add_stamp(1, true);
|
$pre->add_stamp(1, true);
|
||||||
$pre->add_empty($_SESSION['__APP_INV']['PRINT_ROW']);
|
$pre->add_empty($_SESSION['__APP_INV']['PRINT_ROW']);
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ if ( $data == "check_update") {
|
|||||||
<div class="col col-form-label"><span class="form-control"><strong>'.$ainfo['new_sha'].'</strong> '.$ainfo['new_date'].'</span></div>
|
<div class="col col-form-label"><span class="form-control"><strong>'.$ainfo['new_sha'].'</strong> '.$ainfo['new_date'].'</span></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-4 col-lg-4 col-form-label">Info Update</div>
|
<div class="col-sm-4 col-lg-4 col-form-label">Informasi Update</div>
|
||||||
<div class="col col-form-label"><span class="form-control">'.$ainfo['new_message'].'</span></div>
|
<div class="col col-form-label"><span class="form-control">'.$ainfo['new_message'].'</span></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|||||||
@@ -0,0 +1,65 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/*******************************************************************
|
||||||
|
|
||||||
|
App. Name : INVENTORY AND SALES SYSTEMS
|
||||||
|
Module : /apps/cfg/app.php
|
||||||
|
Desc. : Konfigurasi Sub Aplikasi Display
|
||||||
|
Created By : Siau Pheng (siaupheng@3fonia.com).
|
||||||
|
Created Date : November 7th, 2009.
|
||||||
|
Last Modified : January 1st, 2026.
|
||||||
|
|
||||||
|
(c) 2009 - 2026, 3FONIA Software; WWW.3FONIA.COM.
|
||||||
|
|
||||||
|
*******************************************************************/
|
||||||
|
|
||||||
|
require_once(__DIR__."/../../../../../vendor/autoload.php");
|
||||||
|
require_once(__DIR__."/../../../apps/cfg/mysql.php");
|
||||||
|
|
||||||
|
use siaupheng\fonia3\DB\MySQL;
|
||||||
|
|
||||||
|
$db = $db ?? new MySQL();
|
||||||
|
|
||||||
|
if (($_SESSION['__WEB_APP']['APP_DISPLAY'] ?? "")<>"2412870909") {
|
||||||
|
foreach ($_SESSION as $_key => $_val) {
|
||||||
|
if (substr($_key,0,5)=="__WEB") unset($_SESSION[$_key]);
|
||||||
|
if (substr($_key,0,5)=="__APP") unset($_SESSION[$_key]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isset($_SESSION['__WEB_APP'])) {
|
||||||
|
$real_path = str_replace("\\", "/", __DIR__);
|
||||||
|
$real_path = str_replace("apps/cfg", "", $real_path);
|
||||||
|
$web_path = str_replace($_SERVER['DOCUMENT_ROOT'], "/", $real_path);
|
||||||
|
$web_path = str_replace("//", "/", $web_path);
|
||||||
|
$real_path = str_replace("//", "/", $real_path);
|
||||||
|
|
||||||
|
$apps = [];
|
||||||
|
$apps['APP_DISPLAY'] = "2412870909";
|
||||||
|
$apps['APP_NAME'] = "DISPLAY INVESA";
|
||||||
|
$apps['APP_NAMES'] = "Display Inventory And Sales Systems";
|
||||||
|
$apps['APP_VER'] = "2.0";
|
||||||
|
$apps['APP_UPDATED'] = "Jan 1st, 2025.";
|
||||||
|
$apps['APP_SID'] = md5(time());
|
||||||
|
$apps['APP_LOCALE'] = ['id'=>"Indonesia", 'en'=>"English"];
|
||||||
|
$apps['DEF_LOCALE'] = "id";
|
||||||
|
$apps['USER_LOG'] = false;
|
||||||
|
$apps['CREATOR_YEAR'] = "2012";
|
||||||
|
$apps['CREATOR_NAME'] = "3FONIA Software";
|
||||||
|
$apps['CREATOR_WEBSITE'] = "https://www.3fonia.com";
|
||||||
|
$apps['WEB_PATH'] = $web_path;
|
||||||
|
$apps['REAL_PATH'] = $real_path;
|
||||||
|
|
||||||
|
$db->Query("SELECT * FROM app_config WHERE REG_ID='".$apps['APP_DISPLAY']."' LIMIT 1");
|
||||||
|
if ($db->Next()) $apps = array_merge($apps, $db->AllRow());
|
||||||
|
if ($apps['APP_BUILD']<>"") $apps['APP_VER'] = $apps['APP_BUILD'];
|
||||||
|
$_SESSION['__WEB_APP'] = $apps;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isset($_SESSION['__APP_INV'])) {
|
||||||
|
$_SESSION['__APP_INV'] = [];
|
||||||
|
$db->Query("SELECT * FROM inv_config WHERE REG_ID='".$_SESSION['__WEB_APP']['APP_DISPLAY']."' LIMIT 1");
|
||||||
|
if ($db->Next()) $_SESSION['__APP_INV'] = $db->AllRow();
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
Reference in New Issue
Block a user