ここで説明する"アカウント(Account)"とは、現金や通帳、金券など現金同等物を管理するためのマスタです。出納帳と合わせて使用し、現金同等物の残高を管理します。iDempiereでは現金同等物の管理において、その管理責任部署を明確にするために、アカウントと出納帳には必ずその管理責任部署を「組織(AD_Org_ID)」に入力する仕様になっています。
しかしながら、iDempiereの標準機能では、アカウントに設定されている組織と出納帳の組織との整合性を確保するチェックロジックが実装されていません。そのため、アカウントに設定されている組織と出納帳に設定されている組織が不整合となるような誤入力もできてしまいます。
このような誤入力を防ぐために、JPiereでは、誤入力防止のチェックロジックを実装しました。
MBankStatmentLineのモデルバリデータ(JPiereベースプラグイン)
出納帳明細のモデルクラスのMBankStatementLineのモデルバリデータのBefer Saveの処理に次のチェックロジックを実装。
- アカウントに設定されている組織と出納帳明細の組織が異なる場合のエラー処理。
- アカウントに設定されている通貨と出納帳明細の通貨が異なる場合のエラー処理。
MPaymentのモデルバリデータ(JPiereベースプラグイン)
入金伝票および支払伝票のモデルクラスのMPaymentのモデルバリデータのBefer Saveの処理に次のチェックロジックを実装。
- アカウントに設定されている組織と伝票の組織が異なる場合のエラー処理。
- アカウントに設定されている通貨と伝票の通貨が異なる場合のエラー処理。
コールアウト(JPiereベースプラグイン)
入金伝票および支払伝票の登録の際に、アカウントを選択するとマスタに設定されている通貨が自動的に入金伝票および支払伝票の通貨に設定されるコールアウト(JPiereBankAccountCallout.java)をプラグインとして実装。
ダイナミックバリデーション(JPiereコンフィギュレーションズ)
JP Bank Account belong to Org
組織(AD_Org_ID)と結びつくアカウント(C_BankAccount_ID)が選択できるように次のダイナミックバリデーションを追加しました。
バリデーションコード:C_BankAccount.AD_Org_ID = @AD_Org_ID@
JP Currency of Bank Account
出納帳に入力に際して、アカウントに設定されている通貨と異なる通貨で記帳しないように次のダイナミックバリデーションを追加しました。
バリデーションコード:C_Currency.C_Currency_ID =(SELECT C_Currency_ID FROM C_BankAccount WHERE C_BankAccount_ID=@C_BankAccount_ID@)