alexa-tracking

Stok barang

Main Content

1024
1024
KASKUS
51
244
https://www.kaskus.co.id/thread/5af94c27d9d77073308b4567/stok-barang
Stok barang
GImana caranya agar stok akhir jadi stok awal  pada bulan yang berbeda dan stok awalnya bisa berubah2 jikalau stok akhir yang bulan lalu itu berubah....
Dengan koding kaya gini gan....
Bantu ya gan
// Row Inserted event
function Row_Inserted($rsold, &$rsnew) {
$kodemasuk=$rsnew["kode_master"];
$bulan=$rsnew["bulan"];
$awal=$rsnew["stok_master"];
$masuk=$rsnew["stok_terima"];
$keluar=$rsnew["jumlah_keluar"];
$akhir=$rsnew["stok_akhir"];
$tanggal=$rsnew["tanggal_terima"];
$subtanggal=substr($tanggal,0,7).'-01';

$baris=ew_ExecuteScalar("SELECT COUNT(kode_master='$kodemasuk') FROM stok_barang_master WHERE kode_master='$kodemasuk' and bulan='$subtanggal'");
$baris2=ew_ExecuteScalar("SELECT COUNT(bulan='$bulan') FROM stok_barang_master WHERE kode_master='$kodemasuk' and bulan='$subtanggal'");
// $pindah=ew_ExecuteScalar("SELECT stok_akhir FROM stok_barang_master WHERE kode_master='$kodemasuk' and month(bulan)=month(date_sub('$subtanggal',interval 1 month)) and year(bulan)=year('$subtanggal')");
$stok=ew_ExecuteScalar("SELECT stok_akhir FROM stok_barang_master WHERE kode_master='$kodemasuk'");
while ($row = mysqli_fetch_array($stok)){
$stok=$row['stok_akhir'];
$stok=($row['stok_akhir']+$row['stok_terima'])-$row['jumlah_keluar'];
$row['stok_akhir']=$stok;
}
if ($baris>0 and $baris2>0){
ew_Execute("UPDATE stok_barang_master SET stok_akhir='$stok',stok_terima=(stok_terima + '$masuk'),jumlah_keluar=(jumlah_keluar + '$keluar'), stok_akhir=(stok_master + stok_terima - jumlah_keluar), bulan='$subtanggal' WHERE kode_master='$kodemasuk' and bulan='$subtanggal'");
}
else if ($baris2<=0 and $baris<=0){
ew_Execute("INSERT INTO stok_barang_master (kode_master,stok_master,stok_terima,jumlah_keluar,stok_akhir,bulan) VALUES ('$kodemasuk','$stok','$masuk','$keluar','$stok'+'$masuk'-'$keluar','$subtanggal')");
}
else if ($baris2<=0 and $baris>0 ){
ew_Execute("INSERT INTO stok_barang_master (kode_master,stok_master,stok_terima,jumlah_keluar,stok_akhir,bulan) VALUES ('$kodemasuk','$stok','$masuk','$keluar','$stok'+'$masuk'-'$keluar','$subtanggal')");
}
}
dengan koding seperti ini gan...
// Row Inserted event
function Row_Inserted($rsold, &$rsnew) {
$kodemasuk=$rsnew["kode_master"];
$bulan=$rsnew["bulan"];
$awal=$rsnew["stok_master"];
$masuk=$rsnew["stok_terima"];
$keluar=$rsnew["jumlah_keluar"];
$akhir=$rsnew["stok_akhir"];
$tanggal=$rsnew["tanggal_terima"];
$subtanggal=substr($tanggal,0,7).'-01';

$baris=ew_ExecuteScalar("SELECT COUNT(kode_master='$kodemasuk') FROM stok_barang_master WHERE kode_master='$kodemasuk' and bulan='$subtanggal'");
$baris2=ew_ExecuteScalar("SELECT COUNT(bulan='$bulan') FROM stok_barang_master WHERE kode_master='$kodemasuk' and bulan='$subtanggal'");
// $pindah=ew_ExecuteScalar("SELECT stok_akhir FROM stok_barang_master WHERE kode_master='$kodemasuk' and month(bulan)=month(date_sub('$subtanggal',interval 1 month)) and year(bulan)=year('$subtanggal')");
$stok=ew_ExecuteScalar("SELECT stok_akhir FROM stok_barang_master WHERE kode_master='$kodemasuk'");
while ($row = mysqli_fetch_array($stok)){
$stok=$row['stok_akhir'];
$stok=($row['stok_akhir']+$row['stok_terima'])-$row['jumlah_keluar'];
$row['stok_akhir']=$stok;
}
if ($baris>0 and $baris2>0){
ew_Execute("UPDATE stok_barang_master SET stok_akhir='$stok',stok_terima=(stok_terima + '$masuk'),jumlah_keluar=(jumlah_keluar + '$keluar'), stok_akhir=(stok_master + stok_terima - jumlah_keluar), bulan='$subtanggal' WHERE kode_master='$kodemasuk' and bulan='$subtanggal'");
}
else if ($baris2<=0 and $baris<=0){
ew_Execute("INSERT INTO stok_barang_master (kode_master,stok_master,stok_terima,jumlah_keluar,stok_akhir,bulan) VALUES ('$kodemasuk','$stok','$masuk','$keluar','$stok'+'$masuk'-'$keluar','$subtanggal')");
}
else if ($baris2<=0 and $baris>0 ){
ew_Execute("INSERT INTO stok_barang_master (kode_master,stok_master,stok_terima,jumlah_keluar,stok_akhir,bulan) VALUES ('$kodemasuk','$stok','$masuk','$keluar','$stok'+'$masuk'-'$keluar','$subtanggal')");
}
}
Mohon bantuannya gan ane mentok
ane hanya koment utk yg ane quote, gak tertarik utk melihat code krn emang gak menarik.
Quote:

bagi ane stok awal itu hanya ada satu, yg lainnya hanya hasil penjumlahan pengurangan.
jadi stok(awal maupun akhir) bulan lalu itu gk ada yg tiba2 berubah.
PHP Code:
----------------------------------------
ket. | bln 1 bln 2 bln 3 bln 4 |
|------|-------|-------|-------|-------|
|
awal  |    10 |    22 |    44 |    20 |
|
masuk |   123 |   234 |   345 |       |
|
keluar|   111 |   212 |   369 |       |
|
akhir |    22 |    44 |    20 |       |
---------------------------------------- 
stok awal suatu periode adalah stok akhir periode sebelumnya.

KASKUS Ads
Ya bang,,, tapi jika bulan lalu itu ada kemasukan atau pengeluaran kan stok akhirnya juga berubah bang,, nahhhh gimana caranya stok awal yang sekarang itu ngikutin stok akhir bulan lalu...
Berubah dalam arti bang jikalau ada transaksi masuk ataupun keluar dibulan lalu maka stok awal bulan ini mengikutin stok akhir bulan lalu..
tabelnya ane rubah jadi gini
PHP Code:
------------------------------------------------
ket. | bln 0 bln 1 bln 2 bln 3 bln 4 |
|------|-------|-------|-------|-------|-------|
|
masuk |    10 |   123 |   234 |   345 |       |
|
keluar|       |   111 |   212 |   369 |       |
------------------------------------------------ 
jadi brp stok awal bulan 4?
jika bulan 3 yg masuk itu bukan 345 melainkan 388, brp stok awal bulan 4?
jika bulan 2 yg keluar itu bukan 212 melainkan 242, brp stok awal bulan 4?

#mungkinmasihjakasembung
intinya bang setiap ada transaksi di bulan lalu stok awalnya bulan depannya itu mengikuti stok akhir bulan lalu...
misalkan di bulan 4 stok akhir 5, otomatis bulan 5 stok awal juga 5 kan...
namun admin ini lupa masih ada transaksi yang kurang di bulan 4... di tambahlah di bulan 4 misal 2 jadi kan stok akhir nya 7 maka di stok awal bulan 5 juga ikut 7 bang..
Quote:
PHP Code:
for bulan bulanLupa sampai bulanTerakhir
    tambahkanStok
(bulan); 
Tinggal buat fungsi tambahkanStok().
Quote:

#sesuaidugaan_masihjakasembung
desain database menggunakan stok akhir sangat rawan error
lempar saja ke tong sampah


gunakan stok awal
lalu hitung stok akhir untuk tanggal dan bulan berapa pun dengan menggunakan keluar masuk barang + stok awal

komputer zaman sekarang sudah cukup kuat untuk mengolah query berikut dalam waktu kurang dari 1 detik
Code:

select distinct barang.stokawal + sum(transaksi.masuk) - sum(transaksi.keluar) as stokakhir, barang.namabarang
from barang, transaksi
where barang.kodebarang = transaksi.kodebarang and transaksi.tanggal < tanggalquery
group by barang.kodebarang
Bang kalo Looping gimana bang...
Itu gimana caranya...
Quote:

setiap update data lakukan UPDATE dua kali. contoh:

Quote:

nggak bisa bang,,,, katanya pake Perulangan atau Looping
Quote:

itu juga ane pake looping. ane udah test dan bisa (untuk tahun yg sama). untuk tahun yg beda-beda tinggal dimodif sedikit
Saya pake media PHPMaker bang
itu $db maksudnya gimana ya,,,
Quote:

$db adalah object database.
$db = new PDO('mysql:host=localhost;dbname=namadb','pengguna','password');
Masih gagal bang gak bisa alias masih error ya...
Quote:

bisa liat kodingan yg udah dicoba?
function Row_Inserted($rsold, &$rsnew) {
$kodemasuk=$rsnew["kode_master"];
$bulan=$rsnew["bulan"];
$awal=$rsnew["stok_master"];
$masuk=$rsnew["stok_terima"];
$keluar=$rsnew["jumlah_keluar"];
$akhir=$rsnew["stok_akhir"];
$tanggal=$rsnew["tanggal_terima"];
$subtanggal=substr($tanggal,0,7).'-01';

$baris=ew_ExecuteScalar("SELECT COUNT(kode_master='$kodemasuk') FROM stok_barang_master WHERE kode_master='$kodemasuk' and bulan='$subtanggal'");
$baris2=ew_ExecuteScalar("SELECT COUNT(bulan='$bulan') FROM stok_barang_master WHERE kode_master='$kodemasuk' and bulan='$subtanggal'");
$query =ew_ExecuteScalar("SELECT stok_akhir FROM stok_barang_master WHERE kode_master='$kodemasuk'");
foreach($query as $row){
$query = "UPDATE stok_barang_master SET stok_master=(SELECT a.stok_akhir FROM (SELECT * FROM stok_barang_master) a WHERE a.kode_master='$kode' AND MONTH(a.bulan)=MONTH(date_sub('$row[bulan]',INTERVAL 1 MONTH))),stok_akhir=stok_master+stok_terima-jumlah_keluar WHERE kode_master='$kode' AND bulan='$row[bulan]'";
($query);
}
if ($baris>0 and $baris2>0){
$query = ew_Execute("UPDATE stok_barang_master SET stok_akhir=(SELECT stok_akhir FROM stok_barang_gud WHERE kode_master='$kodemasuk' and bulan='$subtanggal'), stok_terima=(stok_terima + '$masuk'),jumlah_keluar=(jumlah_keluar + '$keluar'), stok_akhir=(stok_master + stok_terima - jumlah_keluar), bulan='$subtanggal' WHERE kode_master='$kodemasuk' and bulan='$subtanggal'");
}
else if ($baris2<=0 and $baris<=0){
ew_Execute("INSERT INTO stok_barang_master (kode_master,stok_master,stok_terima,jumlah_keluar,stok_akhir,bulan) VALUES ('$kodemasuk','$query','$masuk','$keluar','$query'+'$masuk'-'$keluar','$subtanggal')");
}
else if ($baris2<=0 and $baris>0){
ew_Execute("INSERT INTO stok_barang_master (kode_master,stok_master,stok_terima,jumlah_keluar,stok_akhir,bulan) VALUES ('$kodemasuk','$query','$masuk','$keluar','$query'+'$masuk'-'$keluar','$subtanggal')");
}
}
KAya gini BAng
Quote:

maksud ane bukan gitu.
tp sebelumnya coba agan jelasin fungsi Row_Inserted() tu dipanggil buat nginput apa?
bedanya $rsnew["bulan"] dengan $rsnew["tanggal_terima"] apa?
jelasin juga $baris dan $baris2 itu maksudnya agan mau nyari apa? bukannya itu hasilnya sama aja?
×