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

head1.gif 6.5 伝票の遷移

 ここでは,伝票を承認依頼したり,承認ずみにしたり,発送ずみにしたりといった具合に,伝票の状態を変更するのに必要となるメソッドを実装してゆく。

head2.gif 6.5.1 伝票の状態とすべき処理
 まずは,伝票がとる状態と,それが変化するのに伴って必要となる操作についてまとめておこう。すでに何度か図示したとおり,伝票はFig.6-83のように流れてゆく。

Fig.6-83 伝票の流れ
fig6_83

 Fig.6-83の流れを実現するために必要となる処理は,次の6つである。なお,括弧内に示しているのは,処理にかかわる部署名または担当者である。

承認依頼する(営業部)
 伝票の承認を上長(営業部上司)に依頼する。この段階で,納期までに在庫が揃うかどうかをチェックする。この処理が完了すると,伝票は「承認依頼中」となる。ただし,伝票の合計金額が一定金額以下であれば,次に説明する2.の処理が実施され,「承認ずみ」となる。この操作は,伝票の起票者または営業部の管理者(SalesAdminロールまたはAllAdminロールに属するユーザー)しか操作できないものとする。
 
承認する(営業部上司)
 承認依頼を受けた伝票を承認ずみとする。この処理が完了すると,伝票は「承認ずみ」となる。この操作は,営業部の上司を示すSalesManagerロールに属するユーザー,または営業部の管理者(SalesAdminロールまたはAllAdminロールに属するユーザー)しか操作できないものとする。
 
却下する(営業部上司)
 承認依頼を受けた伝票を却下する。この処理が完了すると,伝票は「却下ずみ」となる。この操作は,営業部上司を示すSalesManagerロールに属するユーザー,または営業部の管理者(SalesAdminロールまたはAllAdminロールに属するユーザー)しか操作できないものとする。
 
発送する(製品管理部)
 承認された伝票に基づいて,製品の発送手続きをする。この段階で,発送した製品の在庫を減らす。この処理が完了すると,伝票は「発送ずみ」となる。この操作は製品管理部を示すProductsロールに属するユーザー,およびその管理者(ProductsAdminロールまたはAllAdminロール)に属するユーザーしか操作できないものとする。
 
経理処理(経理部)
 発送された伝票を経理処理する。この処理が完了すると,伝票は「経理処理ずみ」となる。この操作は,経理部を示すAccountingロールに属するユーザー,およびその管理者(AccountingAdminロールまたはAllAdminロールに属するユーザー)しか操作できないものとする。
 
請求書処理(定期的に自動処理)
 経理処理された伝票を集計し,請求書を作成する。この処理が完了すると,伝票は「請求書処理ずみ」となる。この操作は,経理部を示すAccountingロールに属するユーザー,およびその管理者(AccountingAdminロール,AllAdminロールに属するユーザー)しか操作できないものとする。この処理の詳細については次節で説明する。

 ただし,これら6つの処理を実装するだけだと,伝票は「営業部→製品管理部→経理部」という一方向の流れしかできないことになる。しかし,実際の業務においては,承認されている伝票を発送まえに取り消したり,誤発送してしまった案件を取り消したりする処理が不可欠である。それらを踏まえ,さらに次の6つの処理も実装する。

承認依頼取り消し(伝票起票者)
 承認依頼している伝票を取り消し,「作成中」の段階に戻す。却下処理と似ているが,営業部上司ではなく伝票の起票当事者が操作するという点が異なる。実業務でいえば,すでに提出した伝票を途中で取り戻すという行為に相当する。この操作は,伝票の起票者または営業部の管理者(SalesAdminロールまたはAllAdminロールに属するユーザー)しか操作できないことにする。
 
承認取り消し(伝票起票者,営業部上司)
 承認ずみの伝票を取り消し,「承認依頼中」の段階に戻す。この操作は,伝票の起票者,伝票を承認したユーザー,営業部の管理者(SalesAdminロールまたはAllAdminロールに属するユーザー)しか操作できないことにする。
 
却下取り消し(営業部上司)
 却下したものを取り消し,「承認依頼中」の段階に戻す。この操作は,伝票を却下したユーザーまたは営業部の管理者(SalesAdminロールまたはAllAdminロールに属するユーザー)しか操作できないことにする。
 
発送取り消し(製品管理部の管理者)
 発送した伝票を取り消し,「発送まえ」の段階(「承認ずみ」と同じ)に戻す。誤発送が生じた伝票を訂正する機能である。この機能は,伝票を発送ずみとしたユーザーまたは製品管理部の管理者(ProductsAdminロールまたはAllAdminロールに属するユーザー)しか操作できないことにする。
 
経理処理取り消し(経理部の管理者)
 経理処理した伝票を取り消し,「経理処理まえ」の段階(「発送ずみ」と同じ)に戻す機能である。誤って経理処理した伝票を訂正する行為に相当する。この機能は,伝票を経理処理ずみとしたユーザーまたは経理部の管理者(AccountingAdminロールまたはAllAdminロールに属するユーザー)しか操作できないことにする。
 
請求書処理取り消し(経理部の管理者)
 請求書処理した伝票を取り消し,「請求書処理まえ」の段階(「経理処理ずみ」と同じ)に戻す機能である。誤って請求書が作成された伝票を訂正する行為に相当する。この機能は,経理部の管理者(AccountingAdminロールまたはAllAdminロールに属するユーザー)しか操作できないことにする。

 以上のことをまとめ,本節中で準備する処理と伝票の状態との関係を図示すると,Fig.6-84のようになる。なお,「6.4.2 伝票情報の編集」で説明したように,伝票の状態は伝票情報テーブルのMADEBILLFLAGREQ_CONSENTFLAGCONSENTEDFLAGREJECTEDFLAGSENDFLAGACCOUNTINGFLAGという6つのフィールドの状態で決まる。伝票の状態については,Table 6-17も併せて参照してほしい。

Fig.6-84 伝票の遷移図
fig6_84

 以下,本節中では,Fig.6-84において四角形で示した処理に必要なメソッドを順に実装してゆく。ただし,Fig.6-84の一番下にある「請求書処理」ならびに「請求書取り消し処理」の2つは,伝票だけでなく請求書の作成も絡む話となるため,ここではなく,「6.6 請求書の処理」で説明することにする。

prevpg.gif Chapter 6 66/92 nextpg.gif