pengambilan barang via www.tmginconline.com |
Dalam pembuatan sistem inventory pengurangan jumlah stok barang akan mudah jika barang tersebut tidak memiliki tanggal kadaluarsa. Kita hanya tinggal mengurangi stok dengan jumlah yang dibeli.
Namun bagaimana jika barang tersebut memiliki tanggal kadaluarsa yang berbeda-beda,
Sebagai contoh
barang dengan kode ABC memiliki perincian sebagai berikut
1. ABC tanggal kadaluarsa 23-04-2017 jumlah stok 20
2. ABC tanggal kadaluarsa 30-04-2017 jumlah stok 3
3. ABC tanggal kadaluarsa 30-05-2017 jumlah stok 5
Bagaimana merancang tabelnya?
Untuk merancangan tabelnya, Saya memiliki dua tabel dengan spesifikasi minimum seperti berikut:
Tabel Barang
- kdbarang (Primary Key INT )
- nmbarang (VARCHAR)
Tabel StokBarang
- id (Primay key Auto Increment INT)
- kdbarang (VARCHAR)
- ed (DATE)
- stok (INT)
Bagaimana cara untuk melakukan pengurangan stoknya?
Saat melakukan transaksi penjualan barang, untuk pengurangan stok, sistem akan mengambil barang dengan tanggal kadaluarsa paling lama atau expired date paling lama dan jumlahnya lebih dari nol.Setelah didapatkan data stoknya maka sistem akan membandingkan dengan jumlah barang yang keluar, jika ternyata stok lebih dari jumlah jumlah beli maka tinggal kurangi stok dengan jumlah yang dibeli.
jika ternyata stok kurang dari jumlah yang dibeli maka kurangi stok sesuai dengan stok yang ada kemudian hitung sisa jumlah barang yang keluar setelah dikurangi stok. untuk lebih rincinya kita dapat melihat alur pengurangan stok seperti dibawah ini.
Algoritma
- Baca kode barang simpan di variabel kode
- Baca jumlah beli simpan di variabel jumbel
- Ambil data stok dari database pada tabel stokbarang dengan kriteria ed (expired paling lama) dan kodebarang sama dengan variabel kode serta jumlah stok lebih dari 0. simpan data stok pada variabel stk
- Jika stok (stk) yang ada kurang dari jumlah yang dibeli (jumbel) maka lakukan pengurangan stok barang sesuai stok yang ada (stk). Selanjutnya hitung sisa jumlah yang dibeli yaitu jumlah beli (jumbel) dikurangi stok (stk), simpan dalam variabel sisa
- Jika sisa jumlah yang dibeli (sisa) lebih dari 0 maka ambil lagi data stok dari tabase pada tabel stokbarang dengan kriteria ed (expired paling lama) dan kodebarang sama dengan variabel kode serta jumlah stok lebih dari 0.
- Jika data stok lebih dari sisa maka lakukan pengurangan stok barang dengan cara stok dikurangi sisa
- Selain data stok leib dari sisa maka set variabel jumbel sama dengan sisa. Kembali ke langkah 3 dan ulangi
- Selain sisa jumlah yang dibeli lebih dari 0 maka keluar
- Selain stok (stk kurang dari jumlah yang dibeli (jumbel) maka lakukan pengurangan stok barang dengan cara stok yang ada dikurangi dengan jumlah beli
- Selesai
Implementasi dengan VB 6
'Deklarasi Variabel
Dim jumbeli As Integer
Dim kode As String
Dim stk As Integer
Dim awal As Integer
Dim sisa As Integer
'hitung jumlah beli
kode = gridjual.TextMatrix(i, 0)
jumbeli = Val(gridjual.TextMatrix(i, 4)) * Val(gridjual.TextMatrix(i, 7))
'kurangi stok
ulang::
Set Rs = New ADODB.Recordset
Rs.Open "SELECT id as kdstok, stok from stokbarang WHERE kdbarang = '" & kode & "' and ed =(select min(ed) from stokbarang where kdbarang='" & kode & "' and stok>0)", konekdb, adOpenDynamic, adLockBatchOptimistic
Rs.Requery
stk = Rs!stok
If stk < jumbeli Then 'bandingin agar saat stok kosong di ambil ed berikutnya
SQL = "UPDATE stokbarang set stok=stok-" & stk & " where id='" & Rs!kdstok & "'"
konekdb.Execute SQL, , adCmdText
sisa = jumbeli - stk
If sisa > 0 Then
Set Rs_golongan = New ADODB.Recordset
Rs_golongan.Open "SELECT id as kdstok, stok from stokbarang WHERE kdbarang = '" & kode & "' and ed =(select min(ed) from stokbarang where kdbarang='" & kode & "' and stok>0)", konekdb, adOpenDynamic, adLockBatchOptimistic
If Rs_golongan!stok > sisa Then 'bandingin agar saat stok kosong di ambil ed berikutnya
SQL = "UPDATE stokbarang set stok=stok-" & sisa & " where id='" & Rs_golongan!kdstok & "'"
konekdb.Execute SQL, , adCmdText
ElseIf Rs_golongan!stok < sisa Then
jumbeli = sisa
GoTo ulang
End If
'GoTo ulangi
Else
Exit Sub
End If
Else 'jika stok lebih banyak gak masalah
SQL = "UPDATE stokbarang set stok=stok-" & jumbeli & " where id='" & Rs!kdstok & "'"
konekdb.Execute SQL, , adCmdText
End If
Semoga Bermafaat
0 Comments