【JPIERE-0384】得意先返品受付伝票明細に処理中の返品(IsProcessingRMAJP)フラグ追加

オープンソースのERP iDempiereでは、得意先返品受付伝票明細で明細毎に返品を受付けた数量に対する入荷済みの数量と請求済みの数量(返品された事による売り上げの減額処理を行った数量)を確認する事ができます。つまりiDempiereでは得意先返品受付伝票明細を確認すると、返品処理の進行状況が確認できるようになっています。

そして返品状況を確認する場合、その確認対象となるのは、処理中の返品(未入荷残がある得意先返品受付伝票明細や未請求残がある得意先返品受付伝票明細などのこと)か、もしくは最近処理が完了した得意先返品受付伝票がほとんどなのではないでしょうか!?。処理が完了して数年経つ過去のデータを参照する事はあまりないでしょう。

最近のデータを確認するという事では、JPiereでは返品受付日【JPIERE-0382】を得意先返品受付伝票に追加して、インデックスを付けていますので、返品受付日をWhere句に指定すれば、効率よく検索する事ができます。

しかし、処理中の得意先返品受付伝票(未入荷残や未請求残がある得意先返品受付伝票)を効率よく検索したい場合、未入荷残や未請求残を把握するためには計算する必要があり、インデックスを付けて効率よく検索する事がなかなか難しくなってきます。

データの件数で考えると、処理中の得意先返品受付伝票と処理済みの得意先返品受付伝票(返品を受け付けた数量の全てが売上の調整処理まで完了している伝票)の比率は、運用期間が長くなればあんるほど、処理済みの得意先返品受付伝票の方が圧倒的に多くなります。

処理中の得意先返品受付伝票を確認するのに、処理済みの得意先返品受付伝票は対象外として効率よく検索したいものです。そうすれば大量データ環境になってもレスポンスよく返品状況が確認できるはずです。

そこで、JPiereでは得意先返品受付伝票明細に処理中の注文(IsProcessingRMAJP)フラグを追加して、処理中の得意先返品受付伝票明細はONの状態にして、処理済みのデータと明確に区分するようにしました。

処理中の返品(IsProcessingRMAJP)フラグ

IsProcessingRMAJPは、次の場合にON(='Y')になります。

  • 返品数量(Qty)と入荷済数量(QtyDelivered)と請求済数量(QtyInvoiced)と計上数量(JP_QtyRecognized)の数値が同数でない場合。同数の場合は、IsProcessingRMAJPはOFF(='N')になります。
  • IsProcessingRMAJPは伝票ステータスには依存しません。あくまで上記の関係だけを判断して、ON←→OFFされます。

カスタマイズ情報

M_RMALineテーブルにIsProcessingRMAJPフラグを追加

M_RMALineテーブルのIsProcessingRMAJPカラムに部分インデックス(JP_IsProcessingRMAJP)を追加。部分インデックスの条件は、IsProcessingRMAJP='Y'

IsProcessingRMAJP='Y'のデータは、処理中の得意先返品受付伝票明細の事であり、基本的にはある程度一定数で遷移するはずです。そして割合は、得意先返品受付伝票明細が増えれば増えるほど、少なくなります。IsProcessingRMAJP='Y'を条件式に追加してクエリーを発行する事により、効率的に処理中の返品データを取得する事ができます。

jpiere.base.plugin.org.adempiere.base.JPiereContractRMAValidator にロジックを追加

IsProcessingRMAJPフラグをON←→OFFするロジックを追加しました。

関連するカスタマイズ

関連するコンテンツ