Selasa, 03 Juni 2014

Re: Bls: [belajar-access] Re: Cara buat kartu stok dan hpp stok avarage

 

Yang menentukan HPP berdasarkan FIFO, LIFO, atau Average adalah pengakuan harga barang saat keluar. Saya pernah membuatnya dalam bentuk VBA, kalau nggak salah di postingan sebelum ini.

Saya mengambil dari fungsi harga di PHP yang pernah saya design:

function cek_harga($n,$jn){
$ry = "Select * From persediaan_metode where pil='1'";
$il = mysql_query($ry);
$ta = mysql_fetch_array($il);
$meto = $ta[0];

$jen = $jn-10;
$br = mysql_query("SELECT Sum(jml) FROM persediaan
where jen='$jn' and id_p<='$n'");
$bb = mysql_fetch_array($br);
$bbb = $bb[0];
if($meto==0){
$pa = "order by id_p desc";
}else if($meto==1){
$pa = "order by id_p asc";
}

if($meto<2){
$bo = mysql_query("SELECT * FROM persediaan
where jen='$jen' and id_p<='$n' $pa");

$jjm = 0;
while($bos = mysql_fetch_array($bo)){
$jjm = $jjm + $bos['jml'];
if($bbb<$jjm){
$harga = $bos['h_sat'];
break;
}
}
}else{
$bo = mysql_query("SELECT AVG(h_sat) FROM persediaan
where jen='$jen' and id_p<='$n' group by jen");
$bos = mysql_fetch_array($bo);
$harga = $bos[0];
}

return $harga;
}

Yang dalam bentuk VBA, akan saya cari arsipnya ya..

Hariyanto (Surabaya)
--------------------------------------------
On Tue, 3/6/14, teuku alwi teukualwi@yahoo.com [belajar-access] <belajar-access@yahoogroups.com> wrote:

Subject: Bls: [belajar-access] Re: Cara buat kartu stok dan hpp stok avarage
To: belajar-access@yahoogroups.com
Date: Tuesday, 3 June, 2014, 8:06 AM


Mas hari bisa bantu
saya Cara buat kartu stok dan hpp stok
FIFO dan LIFO, kalau ada contoh aplikasi mohon di kirim.
 Terima Kasih

Pada
Sabtu, 1 Februari 2014 18:51, hari yanto
<har_i20002000@yahoo.com> menulis:


[Attachment(s)
from hari yanto included below]


Baiklah..., pada dasarnya
pengambilan data berdasarkan tabel t, yang diolah
(menggunakan VBA) berdasarkan id sebelum atau sesudah data
yang ditampilkan di query. VBAnya saya letakkan di module
agar bisa dibaca oleh query. Penjelasan VBA-nya hampir sama
dengan yang saya sampaikan sebelumnya.

VBA dan eksekusi lengkapnya, bisa
dilihat di lampiran (mdb 2003).

Semoga bisa membantu dan memberi
semangat.

Hariyanto (Surabaya)


On
Saturday, 1 February 2014, 14:30,
"xella_navi@yahoo.com"
<xella_navi@yahoo.com> wrote:

 













iya gan, saya
pengennya muncul ky gitu, ada field/kolom saldo awalnya dan
perhitungn nilai rata2 stock pada saat barang keluar
(sebagai hpp) pada saat tanggal barang keluar, bukan total
rata2 selama 1 periode


---In
belajar-access@yahoogroups.com, <har_i20002000@...>
wrote:

Apabila dikendaki hal demikian,
menurut saya hal pertama yang harus kita tetapkan adalah
pengakuan harga (kecuali harga beli, karena sudah ditetapkan
oleh user). Mulai dari harga awal, keluar maupun di
saldo.
Karena susah untuk diterapkan di
query murni, saya coba gabungkan antara query Ms Access
dengan VBA. Artinya, VBA yang dieksekusi melalui query. Saya
buat VBA
untuk saldo rata-rata seperti ini:
=====
Function h_rata2(ByVal RecordID
As Variant, nmtabel As Variant _
, fi_harga As Variant, n_id As
Variant, fi_db As Variant, _
fi_kr As Variant, iki As Integer)
As Double

    Dim hsl, qty
As Double
   
Dim rss As DAO.Recordset
   
    Set rss =
CurrentDb.OpenRecordset("SELECT sum(" & fi_db
_
    &
" * " & fi_harga & ") From "
& nmtabel & " where " & n_id &
"<" & RecordID)
   
    If Not rss.EOF Then
        hsl =
Round(Nz(rss.Fields(0), 0))
    Else
        hsl = 0
    End If
   
    Set rss =
CurrentDb.OpenRecordset("SELECT sum(" & fi_kr
_
    &
" * " & fi_harga & ") From "
& nmtabel & " where " & n_id &
"<" & RecordID)
    If Not rss.EOF
Then
        hsl = hsl -
Round(Nz(rss.Fields(0), 0))
    End If
    rss.Close
    Set rss = Nothing
   
    Set rss =
CurrentDb.OpenRecordset("SELECT sum(" & fi_db
_
    &
") From " & nmtabel & " where "
& n_id & "<" & RecordID)
   
    If Not
rss.EOF Then
        qty =
Round(Nz(rss.Fields(0), 0))
    Else
        qty = 0
    End If
   
    Set rss =
CurrentDb.OpenRecordset("SELECT sum(" & fi_kr
_
    &
") From " & nmtabel & " where "
& n_id & "<" & RecordID)
    If Not
rss.EOF Then
       
qty = qty - Round(Nz(rss.Fields(0), 0))
    End If
    rss.Close
    Set rss = Nothing
   
    If qty >
hsl Then
        h_rata2 = 0
    ElseIf qty =
hsl Then
        If iki = 0 Then
            h_rata2 =
DLookup("[" & fi_harga & "]",
nmtabel, "[" & n_id & "]=" _
            &
DMin("[" & n_id & "]", nmtabel,
""))
        Else
            h_rata2 =
0
       
End If
   
Else
        h_rata2 = (hsl /
qty)
    End
If
End
Function
====
Penjelasannya
sebagai berikut:
-----
Function h_rata2(ByVal RecordID
As Variant, nmtabel As Variant _
, fi_harga As
Variant, n_id As Variant, fi_db As Variant, _
fi_kr As Variant,
iki As Integer) As Double----
Fungsi ini akan menghasilkan
nilai number (double). Variabel yang diminta fungsi
adalah:
ByVal RecordID : Nilai dari id
nmtabel
: nama tabel
fi_harga: Nama Field
Harga n_id: Nama Field
idfi_db: Nama Field
masukfi_kr: Nama Field
keluariki: control kebutuhan
data (0 ==> harga saldo awal; lainnya untuk harga saldo
lainnya)
----
Set rss =
CurrentDb.OpenRecordset("SELECT sum(" & fi_db
_

    &
" * " & fi_harga & ")
From " & nmtabel & " where " &
n_id & "<" & RecordID)
   
    If Not rss.EOF Then
        hsl =
Round(Nz(rss.Fields(0), 0))
    Else
        hsl = 0
    End
If----
Ini
akan menjumlah seluruh
nilai barang masuk X harga dengan catatan id< kurang dari
variable nilai ID. Jadi tergantung nilai variablenya. Karena
kita ingin mencarai nilai bersihnya, maka harus dikurangi
dengan yang dikeluarkan dengan memakai script ini:
----
Set rss =
CurrentDb.OpenRecordset("SELECT sum(" & fi_kr
_
    &
" * " & fi_harga & ") From "
& nmtabel & " where "
& n_id & "<" & RecordID)
    If Not
rss.EOF Then
        hsl = hsl -
Round(Nz(rss.Fields(0), 0))
    End If
    rss.Close
    Set rss = Nothing
   
    Set rss =
CurrentDb.OpenRecordset("SELECT sum(" & fi_db
_
    &
") From " & nmtabel & " where "
& n_id & "<" & RecordID)
   
    If Not
rss.EOF Then
        qty =
Round(Nz(rss.Fields(0),
0))
   
Else
        qty = 0
   
End If
---
Dari sini kita akan mendapatkan
nilai sisa barang pada id sebelum dipilih.

----

Set rss =
CurrentDb.OpenRecordset("SELECT sum(" & fi_db
_
    &
") From "
& nmtabel & " where " & n_id &
"<" & RecordID)
   
    If Not rss.EOF Then
        qty =
Round(Nz(rss.Fields(0), 0))
    Else
        qty = 0
    End If
   
    Set rss =
CurrentDb.OpenRecordset("SELECT sum(" & fi_kr
_
    &
") From " & nmtabel & " where "
& n_id & "<" & RecordID)
    If Not
rss.EOF Then
       
qty = qty - Round(Nz(rss.Fields(0), 0))
    End If
    rss.Close
    Set rss = Nothing
   
----
Yang ini akan mendapatkan jumlah
unit barang. Tujuannya satu: untuk mendapatkan harga

rata-rata, karena harga rata-rata diperoleh dari nilai
bersih total dibagi jumlah unit
bersih. Untuk itu kita turunkan script
ini:
----

If qty > hsl Then
       
h_rata2 = 0
    ElseIf qty = hsl Then
        If
iki = 0 Then
            h_rata2 =
DLookup("[" & fi_harga & "]",
nmtabel, "[" & n_id & "]="
_
            &
DMin("[" & n_id & "]", nmtabel,
""))
        Else
            h_rata2 =
0
       
End If
   
Else
        h_rata2 = (hsl /
qty)
    End
If
----
Cara penggunaan di querynya
begini:
p_awal:
h_rata2([id];"t";"p_masuk";"id";"masuk";"keluar";1)
asumsinya:[id] = record idt = Nama tabelp_masuk = Nama field harga barang
masukid = nama field
idmasuk = Nama field barang
masukkeluar = Nama field barang keluar1 = Untuk kebutuhan harga
awal
Bila kita letakkan ke dalam
query, akan seperti ini:


Dan,
bila kita eksekusi, hasilnya berubah begini:

p_awal
==> price awal.
Kita
akan menguraikan lebih lanjut hingga sampai pada titik akhir
berupa query seperti dibawah ini:

Sebelum
sampai kesana. Apakah yang seperti ini sesuai harapan Mas
Ivan?
Hariyanto
(Surabaya)


On Friday, 31 January
2014, 21:19, ivan alexander <xella_navi@...> wrote:

 [Attachment(s)
from ivan alexander included below]agan2 yang terhormat,ini saya
lampirkan contoh file access
yg saya buat.klo recordnya cm beberapa ya harap maklum krna
kan aplikasinya aja
blm selesai, jd blm d isi recordnya.yg saya mau tanya ke cak hary
yanto, yg di query masuk
keluar itu, kan tanggal 1-1-14 ada pembelian brg B 1000
unit, dengan harga
Rp600. nah nilai stoknya kan jadi Rp600.000. trus di tanggal
2-1-14 ada jual
barang B 100 unit, jd nilai keluarnya
(100unit*Rp600=Rp60.000). jadi sisanya

(Rp540.000di dapat dari 600.000 - 60.000).dengan nilai rata2
per unit sekarang
= 540.000/900unit = Rp600.trus di tanggal 29-1-14 ada beli
barang B sebanyak 2.000
unit dengan harga Rp 500 jd nilai masuknya 2.000*Rp500=
Rp1.000.000.nah skrg
nilai rata2 stoknya kan jadinya 1.000.000+540.000
dibagi 2.000+900 = 1.540.000/2.900=Rp531,034.di tanggal 30-1-14 ada jual lagi
barang B sebanyak 100 unit,
maka pengurangan stoknya jadi 100*Rp531,034 =
Rp53.103sisa stoknya
menjadi 1.540.000-53.103 = 1.486.897 dengan
unitnya sebanyak 2.800 unit.pemahaman saya tentang nilai stok
seperti itu cak hary, klo
ada kekeliruan atau tidak sesuai dengan konsep akuntansi
saya mohon koreksinyaTerimakasih

On Friday, January 31, 2014 12:10 PM, Ivan
Alexander <xella_navi@...> wrote:
Agan2 yth, sorry saya
compose pertanyaan lagi, sy mau tanya cara buat kartu stok
seperti yg ada d lampiran saya. Model kartu stok yg ada
nomor transaksi,tanggal,saldo awal,masuk,keluar,saldo akhir,
yg ada kuantitas stok dan nilai/harga stoknya.Mungkin ada d
antara agan2 yg berkenan membantu, saya
ucapkan
terimakasih
Agan2 yth, sorry saya compose
pertanyaan lagi, sy mau tanya cara buat kartu stok seperti
yg ada d lampiran saya. Model kartu stok yg ada nomor
transaksi,tanggal,saldo awal,masuk,keluar,saldo akhir, yg
ada kuantitas stok dan nilai/harga stoknya.Mungkin ada d
antara agan2 yg berkenan membantu, saya ucapkan
terimakasih


__._,_.___

Posted by: hari yanto <har_i20002000@yahoo.com>
Reply via web post Reply to sender Reply to group Start a New Topic Messages in this topic (13)
SPAM IS PROHIBITED

.

__,_._,___

Tidak ada komentar:

Posting Komentar