公開コンテンツだれでも自由に閲覧できるコンテンツです。コンテンツの公開区分が指定されていない場合は、すべて公開コンテンツです。サポーターズコンテンツJPiereサポーターになると閲覧できるコンテンツです。JPiereのサポーターになって、オープンソースのERPのエコシステムを支援して下さい。トレーニングコンテンツ有料トレーニングで同様の内容を提供しているコンテンツです。有料トレーニングを受講する事でiDempiereを効率よく学ぶ事ができます。非公開コンテンツ公開していないコンテンツです。Labカスタマイズ会計管理JPiereの期末在庫評価の計算方法に、総平均原価を追加しました。行うようになっています。平均単価で評価しようとして場合、"平均発注単価"と"平均請求単価"がこれまでも選べましたが、この計算は、単純平均(期間平均)であり、期首在庫の評価金額と在庫数量は平均単価の計算に加味されていませんでした。在庫評価プロファイルで選択できる在庫評価方法これまでの機能でも、在庫評価期間をシステムの運用開始日とすることで、総平均原価的な評価は可能でしたが、この方法だと運用期間が長くなればなるほど、処理に時間がかかるようになりますし、期首在庫の評価金額と在庫数量が加味されていないので、会社の設立当初から運用を開始していない限りは、正確な総平均原価にはなりません。そこで、JPiereでは、これまでの"平均発注単価"と"平均請求単価"の計算方法を"単純平均(期間平均)"とし、期首在庫の評価金額と在庫数量を平均単価の計算に加味する在庫評価計算処理を"総平均"として追加しました。フィールドが表示され、"総平均"か"単純平均(期間平均)"を選択します。ここで、"単純平均(期間平均)"を選択すると、これまで実装されていたロジックで在庫評価計算伝票で在庫評価が行われます。"総平均"を選択すると、今回追加した新しい在庫評価ロジックで在庫評価が行われます。プロセスを実行すると、総平均で計算する在庫評価計算プロファイルを使用している場合は、"期首となる在庫評価計算伝票"が入力されていない場合は、"期首在庫となる在庫評価計算伝票"を自動設定します。クラスでは、次の条件に合致している在庫評価計算伝票を"期首在庫となる在庫評価計算伝票"に自動設定します。合致する在庫評価計算伝票が無い場合は、自動設定されません。ヘッダ異なる在庫評価プロファイルの在庫評価計算伝票は設定する事ができません。総平均で在庫評価を行う場合には、期首在庫の評価金額と在庫数量を持っている在庫評価計算伝票(≒前回の在庫評価計算伝票)を指定します。総平均まず評価日付から前回評価日付の期間の入荷伝票(ベース伝票タイプが”MMR”で、IsSOTrxフラグが”N”であり伝票ステータスが”完成”か”クローズ”の入荷伝票明細)を取得します。"の伝票ステータスが”完成”か”クローズ”の明細データを取得します。計算から返品データを除外している理由。返品処理のデータを平均発注単価の計算に加味すると複雑性が増し実装工数が増えます。一方で返品処理のデータを加味しても加味しなくても、最終的に平均発注単価の計算としては、大きな差異はなく無視できる程度の差異なのではないかと思います("重要性の原則"の観点から考えて、問題になるほど大きな差異にはならないと思います)。そのためデフォルトでJPiereが用意している平均発注単価の在庫評価計算においては今のところ返品処理のデータは平均発注単価の計算においては無視する仕様としています。JPiereの在庫評価計算は、計算処理をするプロセスをプラグインとして差し替える事ができますので、上記仕様で問題がある場合には自由にカスタマイズして下さい。次に在庫評価計算伝票のヘッダー情報に入力されている、"期首となる在庫評価計算伝票"フィールドに設定されている在庫評価計算伝票から、在庫評価金額と帳簿数量を取得し、当期商品仕入高と当期商品仕入数量にそれぞれ加算し、合計金額から合計数量を除算して総平均原価(在庫評価単価)を求め、総平均原価に期末在庫数量を乗算して期末在庫評価金額を算出します。まとめると次のような計算式になります。期首となる在庫評価計算伝票が設定されていない場合は、"単純平均(期間平均)"で計算します。(2019年4月23日改修)平均単価の算出に際して小数点以下の金額の取扱いについては、通貨の原価計算精度に依存します。通貨の原価計算精度以下の桁数は四捨五入されます。品目毎の在庫評価金額については、通貨の標準精度に依存し、標準精度以下の桁数は四捨五入されます。"総平均"の在庫評価方法の際に、期首在庫の評価額と在庫数量を期首在庫となる在庫評価計算伝票からのみ取得していたのを、次のいずれかの方法で取得するように改修しました。1期首在庫となる在庫評価計算伝票が指定されている場合->期首在庫となる在庫評価計算伝票の対応する明細に入力されている在庫評価単価と帳簿数量を使用します。2期首在庫となる在庫評価計算伝票が指定されていない場合->期首在庫の数量は前回評価日付の組織在庫のタイムスタンプから取得します。->在庫評価単価は、在庫評価プロファイルに設定されているプライスリストの前回評価日付のバージョンから取得します。該当するデータが無い場合は、標準原価の”現在の原価”を使用します。3上記のいずれにも該当しない場合->期首の時点では在庫は存在していなかった事になります。その場合、単純平均(期間平均)で計算します。総平均まず評価日付から前回評価日付の期間の入荷伝票(ベース伝票タイプが”MMR”で、IsSOTrxフラグが”N”であり伝票ステータスが”完成”か”クローズ”の入荷伝票明細)を取得します。"の伝票ステータスが”完成”か”クローズ”の明細データを取得します。次に在庫評価計算伝票のヘッダー情報に入力されている、"期首となる在庫評価計算伝票"フィールドに設定されている在庫評価計算伝票から、在庫評価金額と帳簿数量を取得し、当期商品仕入高と当期商品仕入数量にそれぞれ加算し、合計金額から合計数量を除算して総平均原価(在庫評価単価)を求め、総平均原価に期末在庫数量を乗算して期末在庫評価金額を算出します。まとめると次のような計算式になります。期首となる在庫評価計算伝票が設定されていない場合は、"単純平均(期間平均)"で計算します。(2019年4月23日改修)平均単価の算出に際して小数点以下の金額の取扱いについては、通貨の原価計算精度に依存します。通貨の原価計算精度以下の桁数は四捨五入されます。品目毎の在庫評価金額については、通貨の標準精度に依存し、標準精度以下の桁数は四捨五入されます。"総平均"の在庫評価方法の際に、期首在庫の評価額と在庫数量を期首在庫となる在庫評価計算伝票からのみ取得していたのを、次のいずれかの方法で取得するように改修しました。1期首在庫となる在庫評価計算伝票が指定されている場合->期首在庫となる在庫評価計算伝票の対応する明細に入力されている在庫評価単価と帳簿数量を使用します。2期首在庫となる在庫評価計算伝票が指定されていない場合->期首在庫の数量は前回評価日付の組織在庫のタイムスタンプから取得します。->在庫評価単価は、在庫評価プロファイルに設定されているプライスリストの前回評価日付のバージョンから取得します。該当するデータが無い場合は、標準原価の”現在の原価”を使用します。3上記のいずれにも該当しない場合->期首の時点では在庫は存在していなかった事になります。その場合、単純平均(期間平均)で計算します。平均発注単価と平均請求単価の"総平均"の在庫評価方法の際に、期首在庫の評価額と在庫数量を期首在庫となる在庫評価計算伝票からのみ取得していたのを、次のいずれかの方法で取得するように改修しました。1期首在庫となる在庫評価計算伝票が指定されている場合->期首在庫となる在庫評価計算伝票の対応する明細に入力されている在庫評価単価と帳簿数量を使用します。2期首在庫となる在庫評価計算伝票が指定されていない場合->期首在庫の数量は前回評価日付の組織在庫のタイムスタンプから取得します。->在庫評価単価は、在庫評価プロファイルに設定されているプライスリストの前回評価日付のバージョンから取得します。該当するデータが無い場合は、標準原価の”現在の原価”を使用します。3上記のいずれにも該当しない場合->期首の時点では在庫は存在していなかった事になりますので、単純平均(期間平均)で計算します。◆修正クラスjpiere.base.plugin.org.adempiere.process.DefaultInventoryValuationCalculate2016年11月12日:平均請求原価の計算に返品を含めて計算するこれまで、平均請求単価を計算する際に、返品は考慮していませんでしたが、このカスタマイズで返品を平均請求単価を計算する際に考慮するように致しました。プロセス(DefaultCreateInvValCalLine)総平均の計算の場合で、期首となる在庫評価計算伝票が入力されていない場合は、期首となる在庫評価計算伝票を自動設定するように変更しました。◆在庫評価計算プロセス(DefaultInventoryValuatiionCalculate)総平均原価の計算ロジックを追加しました。ヘッダ(MInvValCal)beforeSave()メソッドで、期首となる在庫評価計算伝票の入力がある場合で、かつ在庫評価プロファイルが総平均を採用している場合、同じ在庫評価プロファイルを使用しているかどうかのチェックと、期首となる在庫評価計算伝票の伝票ステータスが"完成"もしくは"クローズ"になっているかのチェックと、期首となる在庫評価計算伝票の評価日付と前回評価日付が同じかどうかのチェックと追加しました。次のテーブルはカラムを追加したため、XクラスとIクラスを再作成しています。Profile(在庫評価プロファイルが異なります。Valuation(期首となる在庫評価計算伝票の評価日付と前回評価日付が異なります。Timestamp(組織在庫のタイムスタンプを作成して下さい。2012※このサイトは、iDempiereを中心としたOSSのERPに関する調査及び研究の成果を記録しておく事を目的とした個人のサイトです。