この特集のトップページへ
Chapter 6:ビジネスロジックの設計

head2.gif 6.6.4 請求書の参照
 以上で請求書を作成する処理を実装したわけだが,作成した請求書は当然,あとから参照できなければならない。そこで,請求書を参照するメソッドを実装してゆく。

●請求書の状態を取得する
 このサンプルにおいて,請求書は次の4つのいずれかの状態となる。

請求書作成ずみ
 請求書を作成した直後の状態。つまり,Business.BillコンポーネントのMakeBillsメソッド(List 6-174)やMakeOneBillメソッド(List 6-176)を呼び出して請求書を作成したときの状態。
 
請求書送付ずみ
 請求書を作成したのち,送付した状態。請求書情報テーブルのSENDBILLFLAGフィールドをTrueにしたときに,この状態となる。たとえば,プレゼンテーション層で請求書を印刷処理したときには,この状態にする。これは請求書を印刷するときの単なるマークとしてのみ用いる。つまり,請求書送付ずみとなっている請求書は,一括印刷するときに対象から除外するといった目的に用いる。
 
入金確認ずみ
 請求書を送付したのち,入金を確認した状態。請求書情報テーブルのPAIDFLAGフィールドをTrueにしたときに,この状態となる。これは請求書の最終的な形態である。
 
削除ずみ
 請求書が削除された状態。請求書情報テーブルのDELETEDFLAGフィールドをTrueにしたときに,この状態となる。請求書の削除については「6.6.6 請求書作成の取り消し」で説明する。

 まずはじめに,上述した4つの状態のうち,どの状態になるのかを返すメソッドを実装しておく。請求書の状態としては,List 6-177に示すBillStatus列挙型で示すことにする。この列挙型はDataObj.Billコンポーネントに記載する。

 そして,DataObj.BillコンポーネントにGet_BillStatusというメソッドを実装する(List 6-178)。Get_BillStatusメソッドは引数に請求書番号をとり,その請求書の状態によってBILL_Created(請求書作成ずみ),BILL_Send(請求書送付ずみ),BILL_Paid(入金確認ずみ),BILL_Deleted(削除ずみ),のいずれかの値を返すというものである。

●1枚の請求書の情報を取得する
 請求書の参照機能としてまず必要になるのが,請求書番号を指定し,その請求書の各フィールドの値を返すメソッドである。そこで,DataObj.BillコンポーネントにGetRecordというメソッドを実装する(List 6-179)。

 DataObj.BillコンポーネントのGetRecordメソッドは,第1引数で指定した請求書番号と合致する請求書の各フィールド値を,第2引数以降で指定した変数に返すというものである。

 また,プレゼンテーション層から請求書を参照できるように,Business.BillコンポーネントにGetBillというメソッドを実装する(List 6-180)。GetBillメソッドは,単純にDataObj.BillコンポーネントのGetRecordメソッドの呼び出しを中継するだけのものである。

 ただし,List 6-180の43〜57行目にあるように,GetBillメソッドではロールを使ってセキュリティを判定し,Accountingロール,AccountingAdminロール,AllAdminロールに属さないユーザーは請求書を参照できないようにした。さらに,AccountingAdminロール,AllAdminロールに属さない場合には,削除ずみである(DELETEDFLAGフィールドの値がFalseである)請求書を参照できないようにした。

prevpg.gif Chapter 6 85/92 nextpg.gif