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

head1.gif 6.6 請求書の処理

 伝票の処理が一通り終わったところで,伝票の最終段階である請求書の処理を実装してゆく。

head2.gif 6.6.1 請求書処理の概要
 このサンプルでは,請求書の情報を請求書情報テーブルに格納する。請求書情報テーブルに格納された個々のレコードが1枚の請求書になるというイメージである。請求書情報テーブルは,「Chapter 3 データストア層の構築」においてTable 6-18のように定義した。

Table 6-18 請求書情報テーブル
フィールド名サイズNULL解説
ID数値型(オートナンバー)不可請求書を識別するための唯一無二の番号。請求書番号として使われる
CUSTOMERID数値型不可この請求書の対象となる顧客を示す顧客番号。顧客情報テーブルのIDフィールドに格納されているいずれかの値が格納される
STARTDATE日付型不可この請求書の集計期間の開始日(この日を含む)
ENDDATE日付型不可この請求書の集計期間の終了日(この日を含む)
MADEDATE日付型不可請求書の作成日
SUBMITDATE日付型入金の確認日
PAIDFLAGBoolean型入金があったかどうかのフラグ。Trueで入金ずみ,Falseで未入金を示す
SENDBILLFLAGBoolean型請求書を送付済みかどうかのフラグ。Trueで送付済み,Falseで未送付を示す
SUBTOTAL金銭型不可小計。この請求書の金額(税抜)合計。STARTDATEENDDATEの期間内の伝票の小計(SUBTOTALフィールド)の和
TAX金銭型不可消費税。STARTDATEENDDATEの期間内の伝票の消費税(TAXフィールド)の和
TOTAL金銭型不可この請求書の合計(税込金額)。STARTDATEENDDATEの期間内の伝票の合計(TOTALフィールド)の和
MEMO文字型80摘要
SUBMITUSER文字型256入金を確認したユーザーのアカウント名
MADEUSER文字型256不可請求書を作成したユーザーのアカウント名
LASTUSER文字型256不可最終更新者のアカウント名
LASTDATE日付型不可最終更新日
DELETEDFLAGBoolean型削除されたかどうかのフラグ。Trueで削除されたことを,Falseで削除されていないことを示す

 請求書情報テーブルのレコードと伝票情報テーブルのレコードとは,1対多の関係になる(Fig.6-91)。伝票情報テーブルのうち,顧客ごとに月次で集計された伝票群を1枚の請求書にまとめるという具合である。ただし,伝票情報テーブルのONEBILLFLAGフィールドの値がTrueである場合には,月次にまとめるのではなく,その伝票に限って1枚の独立した請求書を作成する。すなわち,この場合に限り,請求書情報テーブルのレコードと伝票情報テーブルのレコードとは1対1の関係となる。

Fig.6-91 請求書情報テーブルと伝票情報テーブルの関係
fig6_91

prevpg.gif Chapter 6 78/92 nextpg.gif