この特集のトップページへ
>
Chapter 6:ビジネスロジックの設計
6.6 請求書の処理
伝票の処理が一通り終わったところで,伝票の最終段階である請求書の処理を実装してゆく。
6.6.1 請求書処理の概要
このサンプルでは,請求書の情報を請求書情報テーブルに格納する。請求書情報テーブルに格納された個々のレコードが1枚の請求書になるというイメージである。請求書情報テーブルは,「Chapter 3 データストア層の構築」においてTable 6-18のように定義した。
Table 6-18 請求書情報テーブル
フィールド名 | 型 | サイズ | NULL | 解説 |
ID | 数値型(オートナンバー) | − | 不可 | 請求書を識別するための唯一無二の番号。請求書番号として使われる |
CUSTOMERID | 数値型 | − | 不可 | この請求書の対象となる顧客を示す顧客番号。顧客情報テーブルのIDフィールドに格納されているいずれかの値が格納される |
STARTDATE | 日付型 | − | 不可 | この請求書の集計期間の開始日(この日を含む) |
ENDDATE | 日付型 | − | 不可 | この請求書の集計期間の終了日(この日を含む) |
MADEDATE | 日付型 | − | 不可 | 請求書の作成日 |
SUBMITDATE | 日付型 | − | 可 | 入金の確認日 |
PAIDFLAG | Boolean型 | − | − | 入金があったかどうかのフラグ。Trueで入金ずみ,Falseで未入金を示す |
SENDBILLFLAG | Boolean型 | − | − | 請求書を送付済みかどうかのフラグ。Trueで送付済み,Falseで未送付を示す |
SUBTOTAL | 金銭型 | − | 不可 | 小計。この請求書の金額(税抜)合計。STARTDATE〜ENDDATEの期間内の伝票の小計(SUBTOTALフィールド)の和 |
TAX | 金銭型 | − | 不可 | 消費税。STARTDATE〜ENDDATEの期間内の伝票の消費税(TAXフィールド)の和 |
TOTAL | 金銭型 | − | 不可 | この請求書の合計(税込金額)。STARTDATE〜ENDDATEの期間内の伝票の合計(TOTALフィールド)の和 |
MEMO | 文字型 | 80 | 可 | 摘要 |
SUBMITUSER | 文字型 | 256 | 可 | 入金を確認したユーザーのアカウント名 |
MADEUSER | 文字型 | 256 | 不可 | 請求書を作成したユーザーのアカウント名 |
LASTUSER | 文字型 | 256 | 不可 | 最終更新者のアカウント名 |
LASTDATE | 日付型 | − | 不可 | 最終更新日 |
DELETEDFLAG | Boolean型 | − | − | 削除されたかどうかのフラグ。Trueで削除されたことを,Falseで削除されていないことを示す |
請求書情報テーブルのレコードと伝票情報テーブルのレコードとは,1対多の関係になる(Fig.6-91)。伝票情報テーブルのうち,顧客ごとに月次で集計された伝票群を1枚の請求書にまとめるという具合である。ただし,伝票情報テーブルのONEBILLFLAGフィールドの値がTrueである場合には,月次にまとめるのではなく,その伝票に限って1枚の独立した請求書を作成する。すなわち,この場合に限り,請求書情報テーブルのレコードと伝票情報テーブルのレコードとは1対1の関係となる。
Fig.6-91 請求書情報テーブルと伝票情報テーブルの関係
Chapter 6 78/92 |