この特集のトップページへ
>
Chapter 6:ビジネスロジックの設計
6.4 伝票管理処理
では次に,伝票を管理するBusiness.Slipコンポーネントに必要とされるメソッドについて考えよう。伝票管理はいままで考えてきた顧客管理や製品管理よりも若干複雑である。なぜなら,Fig.6-72に示すように,伝票は,伝票情報テーブル,明細情報テーブル,伝票追加情報テーブルという3つのテーブルで表現されるからである。
Fig.6-72 伝票を表現する3つのテーブル
6.4.1 伝票の作成
まずは,伝票を作成するときにどのようなメソッドが必要であるのかを考えてみる。Fig.6-72に示したように,伝票は,伝票情報テーブル,明細情報テーブル,伝票追加情報テーブルの3つで構成される。このうち,伝票を作成するときに必要となるのは,伝票情報テーブルと伝票追加情報テーブルのみである。明細情報が存在しなくても伝票としては成立するから,明細情報テーブルは必須というわけではない。そこで,しばらくのあいだは明細情報テーブルの存在を無視することにし,伝票情報テーブルと伝票追加情報テーブルの2つについて考えてゆくことにする。
すでに「3.2 データベーステーブルの設計」で述べたように,伝票情報テーブルはTable 6-14のように,伝票追加情報テーブルはTable 6-15のように,それぞれ定義した。
Table 6-14 伝票情報テーブル
フィールド名 | 型 | サイズ | NULL | 解説 |
---|---|---|---|---|
ID | 数値型(オートナンバー) | − | 不可 | 伝票を識別するための唯一無二の番号。伝票番号として使われる |
CUSTOMERID | 数値型 | − | 不可 | この伝票の対象となる顧客を示す顧客番号。顧客情報テーブルのIDフィールドに格納されているいずれかの値が格納される |
MADEDATE | 日付型 | − | 不可 | 伝票の起票日 |
SUBTOTAL | 金銭型 | − | 不可 | 小計。この伝票に含まれるすべての注文の金額(税抜)を加えたもの |
TAX | 金銭型 | − | 不可 | 消費税。現状では小計×1.05 |
TOTAL | 金銭型 | − | 不可 | 合計(税込金額)。小計+消費税 |
BILLID | 数値型 | − | 可 | この伝票を集計結果として含む請求書の請求書番号。請求書情報テーブルのIDフィールドに格納されているいずれかの値が格納される。未集計のときにはNULLが格納される |
BILLDATE | 日付型 | − | 可 | この伝票を集計結果として含む請求書が作られた日時 |
MADEBILLFLAG | Boolean型 | − | − | この伝票を集計結果として含む請求書が作られているかどうかのフラグ。Trueで請求書が作られていることを,Falseで作られていないことを示す |
ONEBILLFLAG | Boolean型 | − | − | この伝票に対して独立した請求書を作るかどうかのフラグ。Trueで独立した請求書を作ることを,Falseで月単位で集計した請求書に含めることを示す |
REQ_CONSENTFLAG | Boolean型 | − | − | 承認の依頼をしているかどうかのフラグ。Trueで承認依頼中,Falseで承認依頼をまだしていないことを示す |
REQ_CONSENTDATE | 日付型 | − | 可 | 承認依頼をした日時 |
REQ_CONSENTCOMMENT | 文字型 | − | 可 | 承認依頼時のコメント。営業部上司へのコメントとなる |
CONSENTEDFLAG | Boolean型 | − | − | 承認したかどうかのフラグ。Trueで承認した,Falseで承認していないことを示す。通常は営業部の上司が設定するが,伝票の取引額が一定以下であり上司の承認が不要である伝票については,システム側でこのフラグをTrueに設定する |
CONSENTEDDATE | 日付型 | − | 可 | 承認された日時 |
CONSENTEDCOMMENT | 文字型 | 80 | 可 | 承認の際のコメント |
REJECTEDFLAG | Boolean型 | − | − | 上司によって却下されたかどうかを示すフラグ。Trueで却下されたことを,Falseで却下されていないことを示す |
REJECTEDDATE | 日付型 | − | 可 | 却下された日時 |
REJECTEDCOMMENT | 文字型 | 80 | 可 | 却下理由 |
SENDFLAG | Boolean型 | − | − | この伝票に含まれている製品が発送されたかどうかのフラグ。Trueで発送ずみであることを,Falseで未発送であることを示す |
SENDDATE | 日付型 | − | 可 | 発送日 |
SENDCOMMENT | 文字型 | 80 | 可 | 発送の際のコメント |
ACCOUNTINGFLAG | Boolean型 | − | − | 経理部がその伝票をチェックしたかどうかのフラグ。チェックしたならばTrue,まだチェックしていなければFalse。このフラグがTrueになると,それが請求書を作成する際に集計の対象となる |
ACCOUNTINGDATE | 日付型 | − | 可 | 経理部が伝票をチェックした日 |
ACCOUNTINGCOMMENT | 文字型 | 80 | 可 | 経理部のコメント |
MADEUSER | 文字型 | 256 | 不可 | この伝票を起票したユーザーのアカウント名 |
REQ_CONSENTUSER | 文字型 | 256 | 可 | この伝票を承認依頼したユーザーのアカウント名 |
CONSENTEDUSER | 文字型 | 256 | 可 | この伝票を承認したユーザーのアカウント名 |
REJECTEDUSER | 文字型 | 256 | 可 | この伝票を却下したユーザーのアカウント名 |
SENDUSER | 文字型 | 256 | 可 | 発送処理をしたユーザーのアカウント名 |
ACCOUNTINGUSER | 文字型 | 256 | 可 | 経理処理をしたユーザーのアカウント名 |
LASTUSER | 文字型 | 256 | 不可 | 最終更新者のアカウント名 |
LASTDATE | 日付型 | − | 不可 | 最終更新日 |
DELETEDFLAG | Boolean型 | − | − | 削除されたかどうかのフラグ。Trueで削除されたことを,Falseで削除されていないことを示す |
Table 6-15 伝票追加情報テーブル
フィールド名 | 型 | サイズ | NULL | 解説 |
---|---|---|---|---|
ID | 数値型(オートナンバー) | − | 不可 | レコードを識別するための唯一無二の番号 |
SLIPID | 数値型 | − | 不可 | この情報と結び付けられている伝票の伝票番号。伝票テーブルのIDフィールドに格納されているいずれかの値が格納される |
DIVISION | 文字型 | 64 | 可 | 顧客側の部署名 |
PERSON | 文字型 | 64 | 可 | 顧客側の担当者名 |
DELIVERDATE | 日付型 | − | 可 | 納入予定日 |
SENT_ADDR | 文字型 | 255 | 可 | 発送先の住所。製品管理部が製品をこの住所に発送する |
SENT_TEL | 文字型 | 32 | 可 | 発送先の電話番号。製品管理部が製品発送の際の連絡用として用いる |
MEMO | 文字型 | 80 | 可 | 摘要 |
MADEDATE | 日付型 | − | 不可 | 伝票の起票日 |
MADEUSER | 文字型 | 256 | 不可 | この伝票を起票したユーザーのアカウント名 |
LASTDATE | 日付型 | − | 不可 | 最終更新日 |
LASTUSER | 文字型 | 256 | 不可 | 最終更新者のアカウント名 |
DELETEDFLAG | Boolean型 | − | − | 削除されたかどうかのフラグ。Trueで削除されたことを,Falseで削除されていないことを示す |
Chapter 6 52/92 |