Udah lama gak update blog ini...
Ini mau bahas perhitungan stock...
Dikarenakan ada request untuk membuat modul yang menampilkan tree product dengan data future stock 7 minggu ke depan, maka saya harus memperhatikan dengan seksama method perhitungan stock di OpenERP.
Method nya ada di modul stock/product/product.py
def _product_available
yang di dalamnya memanggil method
def get_product_available
7 minggu ke depan maksudnya..
contoh hari ini tanggal 3 agustus adalah minggu ke 32,
maka saya harus menampilkan
jumlah stock saat ini, future stock minggu ke-32, minggu ke-33 sampai minggu ke-38
untuk jumlah stock saat ini tidak masalah, karena memang menghitung dari tabel stock_move dengan state 'done'
nah saat menghitung future stock ada keanehan (setidaknya menurut saya aneh, mohon dikoreksi ya)
contoh:
ada PO utk product X tanggal 03/08 dengan expected delivery tanggal 25 agustus (minggu ke-35) dengan jumlah 15
Stock saat ini adalah 20
maka yang saya harapkan adalah
current stock = 20
future stock minggu-32 = masih 20
future stock minggu-33 = masih 20
future stock minggu-34 = masih 20
future stock minggu-35 = baru berubah menjadi 35
ehh tapi hasilnyaaa....
current stock = 20
future stock minggu-32 = 35
future stock minggu-33 = 35
ehh tapi hasilnyaaa....
current stock = 20
future stock minggu-32 = 35
future stock minggu-33 = 35
future stock minggu-34 = 35
future stock minggu-35 = 35
kenapa hasilnya seperti itu?
karena di method
def get_product_available(self, cr, uid, ids, context=None):
kenapa hasilnya seperti itu?
karena di method
def get_product_available(self, cr, uid, ids, context=None):
ada baris berikut:
if from_date and to_date:
date_str = "date>=%s and date<=%s"
where.append(tuple([from_date]))
where.append(tuple([to_date]))
elif from_date:
date_str = "date>=%s"
date_values = [from_date]
elif to_date:
date_str = "date<=%s"
date_values = [to_date]
if date_values:
where.append(tuple(date_values))
Maksudnya adalah, dia akan menghitung stock dari table stock_move dengan where clause (jika ada filter date) adalah where stock_move.date >= from_date and date <= to_date dst
sedangkan field date sendiri digunakan untuk menyimpan tanggal order (tanggal dibuatnya IS - dari tanggal PO) dan jika sudah done maka field date adalah tanggal dikirimkan/diterimanya barang.
Sedangkan future stock harusnya diambil dari date_expected nya dongs...
jadi where stock_move.date_expected >= blablabla
Karena itu saya lakukan perubahan hmm 'lumayan sedikit #eeh' di method tsb seperti ini kira2..
jadi saya bagi-2
yg pertama utk states done saja pakai yang biasa
yang satu lagi selain done diambil dari date_expected
Mohon bantu review dan dikoreksi jika ada salah atau disederhanakan
terima kasihhh
assalamu'alaikm....mau tanya mbak siti mawadah punya modul tentang technical perhitugan stock soalnya saya pelajari bagian warehouse sudah 2 minggu blm paham2.....pengennya pengen buat modul sendiri dulu yg sederhana g kayak yg ad di openerp....mungkin bisa bantu baru belajar soalnya....terima kasih sebelumnya.....(maksudnya proses perhitungan stock itu alurnya gmn dlm openerp)
BalasHapus