【JPIERE-0517】契約書で契約カレンダーを作成するプロセス

契約書で契約カレンダーを作成できるプロセスをです。契約内容タブと契約内容明細タブで実行する事ができます。契約カレンダーを契約毎に作成するケースにおいて使用する事を想定したプロセスです。

契約内容タブ

契約内容タブで、契約カレンダーを作成するプロセスを実行すると、作成した契約カレンダーが、契約内容タブの契約カレンダーフィールドに自動設定されます。

契約カレンダー作成プロセス

契約内容タブの契約作成プロセスボタン
契約内容タブの契約作成プロセスボタン

◆契約カレンダー [JP_ContractCalender_ID]

契約内容タブの契約カレンダーフィールドに値が入力されている時に表示され、その値が入力されています。読取専用で変更する事はできません。契約内容タブの契約カレンダーフィールドに値が入力されていない場合は表示されません。

このプロセスパラメーターが表示されている場合には、そのカレンダーに対して契約処理期間を作成します。このプロセスパラメーターが表示されていない場合は、契約カレンダーは新規に作成されます。

◆契約カレンダーの検索キー [JP_ContractCalendar_Value]

契約内容タブの契約カレンダーフィールドに値が入力されていない時に表示されます。新規に作成される契約カレンダーの検索キーの値になります。

◆契約カレンダーの名称 [JP_ContractCalendar_Name]

契約内容タブの契約カレンダーフィールドに値が入力されていない時に表示されます。新規に作成される契約カレンダーの名称になります。

◆契約処理期間グループを作成 [IsCreateCProcPeriodGJP]

契約内容タブの契約カレンダーフィールドに値が入力されている時に表示されます。既存の契約カレンダーに対して契約処理期間を作成する場合に、契約処理期間グループを新規に作成するかどうか制御します。

◆契約処理期間グループの検索キー [JP_CProcPeriodG_Value]

契約処理期間グループを作成 フラグがONの場合に表示されます。新規に作成する契約処理期間グループの検索キーの値になります。

◆契約処理期間グループの名称 [JP_CProcPeriodG_Name]

契約処理期間グループを作成 フラグがONの場合に表示されます。新規に作成する契約処理期間グループの名称になります。

◆契約処理実行キー [JP_ContractProcessValue]

契約処理期間グループを作成 フラグがONの場合に表示されます。新規に作成する契約処理期間グループの契約処理実行キーの値になります。

◆契約処理期間グループ [JP_ContractProcPeriodG_ID]

契約処理期間グループを作成 フラグがOFFの場合に表示されます。作成する契約処理期間が属する契約処理期間グループを選択します。

 

【技術情報】ビジネスロジックの修正

契約内容タブで契約カレンダーを作成する都合上、次のロジックを修正しています。

  • 契約カレンダーの必須チェック … 契約内容タブのbeforeSave()メソッドにあった契約カレンダーの必須チェックをprepareIt()メソッドに移動しました。
  • 契約処理期間の存在チェック … 契約内容明細タブのbeforeSave()メソッドにあった契約処理期間(From)~契約処理期間(To)に対応する契約処理期間マスタの存在チェックをprepareIt()メソッドに移動しました。

契約内容明細タブ

契契約内容明細タブでは、派生伝票を作成する契約カレンダーを作成する事ができます。

 

【技術情報】ビジネスロジックの修正

契約内容明細で契約カレンダーを作成する都合上、契約カレンダーの必須チェック契約処理期間の存在チェック&整合性チェックなどのロジックを一部修正しています。

 

契約カレンダー(入出荷)作成プロセス

◆他の明細のカレンダーが空欄の場合に、作成したカレンダーを設定する[IsSetAnotherLine]

契約内容明細タブの契約カレンダー(入出荷)フィールドが空欄の時に表示されるプロセスのパラメーターです。作成した契約カレンダーを、他の契約内容明細の契約カレンダー(入出荷)フィールドが空欄の時に設定するかどうか制御します。

◆契約カレンダー(請求)でも使用する[IsUseInvoiceCalendar]

契約内容明細タブの契約カレンダー(入出荷)フィールドが空欄の時に表示されるプロセスのパラメーターです。請求カレンダー(請求)フィールドが空欄の場合に、作成して契約カレンダーを設定するかどうか制御します。

このパラメータがONで、作成したカレンダーを設定するのプロセスパラメーターもONになっている場合、他の契約内容明細においても、請求カレンダー(請求)フィールドが空欄だったら作成した契約カレンダーが自動設定されます。

 

契約カレンダー(請求)作成プロセス

◆他の明細のカレンダーが空欄の場合に、作成したカレンダーを設定する[IsSetAnotherLine]

契約内容明細タブの契約カレンダー(請求)フィールドが空欄の時に表示されるプロセスのパラメーターです。作成した契約カレンダーを、他の契約内容明細の契約カレンダー(請求)フィールドが空欄の時に設定するかどうか制御します。

契約書固有の契約カレンダー

契約書から契約カレンダーを作成する場合、その契約カレンダーは他の契約書では使用して欲しくない場合があります。そのような場合に、システムコンフィグ設定で他の契約書では使用できないようにするチェックロジックを有効にできます。

システムコンフィグ設:JP_RESTRICTION_OF_CONTRACT_CALENDAR

◆Y ・・・ 制限する

◆N・・・ 制限しない

制限した場合、契約カレンダーの契約書フィールドに入力されている契約書以外でそのカレンダーを選択できなくなります。選択した場合、保存時にエラーになります。

カスタマイズ情報

カラムの追加

◆JP_ContractContentテーブル

  • JP_Processing5カラム

◆JP_ContractLineテーブル

  • JP_Processing3カラム
  • JP_Processing4カラム

◆JP_ContractCalenderテーブル

  • JP_Contract_IDカラム

追加CSSスタイル

  • 名称:JP_ContractContent.JP_ContractCalender_ID
  • 名称:JP_ContractLine.JP_ContractCalender_InOut_ID
  • 名称:JP_ContractLine.JP_ContractCalender_Inv_ID
  • 名称:JP_ContractLine.JP_ProcPeriod_Lump_ID
  • 名称:JP_ContractLine.JP_ProcPeriod_Start_ID
  • 名称:JP_ContractLine.JP_ProcPeriod_End_ID
  • 名称:JP_ContractLine.JP_ProcPeriod_Lump_InOut_ID
  • 名称:JP_ContractLine.JP_ProcPeriod_Start_InOut_ID
  • 名称:JP_ContractLine.JP_ProcPeriod_End_InOut_ID
  • 名称:JP_ContractLine.JP_ProcPeriod_Lump_Inv_ID
  • 名称:JP_ContractLine.JP_ProcPeriod_Start_Inv_ID
  • 名称:JP_ContractLine.JP_ProcPeriod_End_Inv_ID

追加プロセス

  • 検索キー:JP_CreateContractCalendar_CC
  • 検索キー:JP_CreateContractCalendar_InOut
  • 検索キー:JP_CreateContractCalendar_Invoice

修正クラス

  • jpiere.base.plugin.org.adempiere.process.CreateContractProcessPeriod

カスタマイズ履歴

2022年7月27日(v9):bug fix

1日だけの契約処理期間が作れなかったので作れるようにしました。

2022年5月28日(v9):「契約処理期間を1つ作成する」フラグの追加

契約カレンダーを作成するプロセスに「契約処理期間を1つ作成する(IsCreateOnlyOneCProcPeriodJP)」フラグを追加して、契約日付のFrom~Toに指定されている期間に1つだけ契約処理期間を作成できるようにしました。

これにより、契約処理期間を1つだけ作成したい場合に、より簡単に作成する事ができるようになりました。

「契約処理期間を1つ作成する」フラグがONになっている場合は、契約処理期間(年)、契約処理期間(月)、契約処理期間(日)のフィールドは非表示になります。

関連するカスタマイズ