this article is talking about inventory calculation
I wrote this in Bahasa (english version will at next posting)
Inventory Closing
Alasan dilakukan Inventory Closing berkala
Agar tidak memberatkan perhitungan recalculation inventory pada masing-masing entity di AX, karena perhitungan recalculation dilakukan pada periode setelah inventory closing terakhir. Akibatnya jika inventory closing dilakukan dalam periode yang lama, recalculation akan semakin lama, dan berpengaruh kepada load aplikasi axnya sendiri ketika menjalankan transaksi yang berhubungan dengan inventory, seperti receive good, picking list, packing slip, sales invoice
Secara default, nilai COGS di transaksi inventory di ax berdasarkan average, akibatnya ketika ada satu atau dua entity menggunakan settingan COGS FIFO atau LIFO, maka cogs nya akan bermasalah bila tidak di recalculate, contohnya di entity “MTL” menganut sistem FIFO, bila tidak melakukan recalculation, maka perhitungan COGS nya akan average.
Syarat melakukan inventory Closing
- Harus membersihkan transaksi yang masih pending, bila sudah inventory closing, maka tidak boleh ada transaksi yang menggunakan session date sebelum periode tersebut, contoh transaksi nya adalah : stock adjustment (counting journal)
- Harus melakukan inventory recalculation dahulu sebelum inventory closing, seperti yang sudah dijelaskan di atas, inventory recalculation berguna untuk mengkalkulasi ulang inventory agar sesuai dengan settingan yang di minta (FIFO/LIFO/AVG)
- Lakukan inventory closing ketika tidak ada transaksi yang sedang berjalan.
- Ingat, bila sudah melakukan inventory closing, transaksi yang menggunakan session date harus dikunci
Bagaimana bila kita sudah melakukan inventory Closing dan ternyata ada kesalahan dalam transaksi yang harus kita perbaiki?
Inventory Closing yang sudah dibuat harus dicancel, dan berurutan cancelnya, misalnya, kita sudah closing bulan 6,7,8 dan tiba tiba ada transaksi bulan 6 yang salah/lupa diinput user, maka, closing bulan 8 harus di cancel, 7 cancel, dan 6 cancel, lalu baru bisa input transaksi di bulan 6 tsb, setelah itu selesai, maka bulan 6 harus di closing ulang, bulan 7 dan 8 juga
Note: closing inventory harus dilakukan per akhir periode bulan tsb, misalnya bulan 6 dilakukan untuk tgl 30 juni
makanya diharapkan untuk closing inventory, jangan terlalu tepat waktu, kadang ada user yang belum melakukan input transaksi inventory tersebut
Cara melakukan Inventory Closing
Masuk ke inventory and warehouse management –> Periodic –> Closing and adjustment
Step 1 : recalculation
Jalankan recalculation. Pastikan bahwa bila ada stok opname (counting journal), transfer order dalam periode tersebut sudah diproses semua, termasuk bila ada GRN, Packing Slip
Masukkan periodenya, tanggal recalculate sampai dengan (semua tgl recalculate dimulai dari tanggal inventory closing terakhir),
Note: kita bisa melakukan recalculate pada item item tertentu saja, dengan cara melakukan select, (perhatikan tombol di kanan atas)
Jika sudah ok, tekan tombol OK, maka akan dimulailah proses recalculate pada periode tsb
Jika sudah selesai, lakukan
Closed Procedure -> 1. Cek Open Quantity, Adalah menampilkan data stok yang akan di proses,
perhatikan outputnya, jika masih ada qty minus, atau marked transaction artinya seharusnya dibereskan dahulu transaksi nya sebelum dilakukan inventory closing (dan harus lakukan inventory recalculation jika marked nya sudah dilepas)
Closed Procedure -> 2. Cek Cost Price, akan menampilkan data cost price dari transaksi closing yang akan dilakukan
Setelah sudah OK semua, barulah bisa lakukan Closed Procedure –> Closed
Perhatikan, cek box dari Run Recalculation after closing harus di centang sebelum klik OK. Gunanya adalah melakukan calculation ulang setelah tanggal invoice closing
Kasus kasus yang terjadi ketika karena efek dari melakukan inventory closing
jika melakukan closing sebelum melakukan recalculate akibatnya biasanya akan muncul error bahwa “cost amount selisih lebih besar” (Cost value must be negative upon issue from inventory) pada saat melakukan invoicing bila ada perbedaan antara cost value (lihat gambar di bawah)
Perhatikan pada aot -> \Classes\InventUpd_Financial, function updateFinancialIssue
Ada beberapa solusi yang bisa dilakukan bila terjadi kasus ini:
- Lakukan prosedur normal, yaitu:
- inventory closing pada periode transaksi ybs harus di cancel dahulu secara mundur,
- Lakukan recalculation pada periode tersebut
- Lakukan inventory closing pada periode tersebut
- Lakukan recalculation pada periode selanjutnya
- Lakukan inventory closing pada periode selanjut, sampai dengan inventory closing terakhir
- Lakukan posting invoice
Yang perlu diperhatikan, melakukan point a-e tidak bisa aktif secara langsung, butuh waktu utk melakukan cancel dan closing. Cara ini jarang dilakukan mengingat perusahaan sudah membuat laporan keuangan dalam periode sebelumnya, bila dilakukan cara ini, maka laporan keuangan harus dibuat ulang
- Lakukan debuging data, (tidak disarankan), dari ax technical, cukup melakukan comment pada box merah di atas, jika sudah selesai proses invoice, dikembalikan lagi comment nya
- Lakukan tembak data, (tidak disarankan), dari database, error ini muncul karena field COSTAMOUNTADJUSTMENT dan COSTAMOUNTPHYSICAL tidak 0 ketika dikurangkan, artinya ada nya perbedaan cost pada saat transaksi dan pada saat posting, kita bisa by pass masalah ini dengan
- mengupdate nilai CostAmountAdjustment sama dengan CostAmountPhysical
- Jika sudah selesai, nilai CostAmountAdjustment dikembalikan lagi ke nilai asalnya