Kalo query langsung sih nggak ada. Mau nggak mau pakai coding.
Kalau mau cara yg lebih mudah, sebaiknya cari stok akhir (dibanding cari
penjualan)
Misal total pembelian = 23
Total penjualan = 17
Stok akhir = 23 - 17 = 6
Ambil transaksi pembelian via query, order by tgl beli >> misal select *
from TableTransaksi order by Tgl_beli desc
JmlStokAkhir = 6 (angka 6 diambil dari perhitungan pembelian - penjualan >>
bisa sendiri kan?)
Do while not Table.EOF
If JmlStokAkhir < Table.Fields("jumlah").value Then
NilaiStokAkhir = JmlStokAkhir * Table.Fields("harga").Value
Else
NilaiStockAkhir = Table.fields("jumlah").value *
Table.Fields("harga").value
JmlStokAkhir = JmlStokAkhir - Table.Fields("jumlah").value
EndIf
Table.MoveNext
Loop
Laba = TotalPenjualan - (TotalPembelian - NilaiStokAkhir)
Jadi sama seperti ilustrasi yg Anda berikan, contoh saya di atas jadinya :
Laba = TotalPenjualan - (TotalPembelian - NilaiStokAkhir)
Laba = 7x13.000 - ((10x10.000 + 5x11.000 + 8x9.000) - (6x9.000))
Laba = 221.000 - (227.000 - 54.000)
Laba = 48.000
Sama kan? Coding di atas sekalian bisa dipakai juga untuk cari saldo akhir
secara FIFO :)
PS : sorry saya nggak pakai code VB yang pasti jalan, saya hanya berikan
logikanya saja.
Liung's
www.tinggalpilih.com
From: [email protected] [mailto:[email protected]]
On Behalf Of Toni R
Sent: Wednesday, October 07, 2009 10:59 AM
To: [email protected]
Subject: [Programmer-VB] Cara ngambil laba secara FIFO
Dear all
ada yang tahu logika cara menghitung selisih harga pembelian - penjualan
secara fifo ? contoh...
pembelian 1
tanggal : 20/2/2009
jumlah : 10
harga : 10.000
pembelian 2
tanggal : 22/2/2009
jumlah : 5
harga : 11.000
pembelian 3
tanggal : 23/2/2009
jumlah : 8
harga : 9.000
Jika ada penjualan pada tanggal 23/2/2009 sebanyak 17 dengan harga jual
13.000
maka perhitungannya :
laba = penjualan - pembelian
laba = (10 x 13.000 - 10 x 10.000) + (5 x 13.000 - 5 x 11.000) + (2 x 13.000
- 2 x 9.000)
laba = 30.000 + 10.000 + 8.000
laba = 48.000
ada yang tahu perhitungan secara coding atau querry nya ?
Thanks sebelumnya