(57)【要約】【課題】商品に適切な単価を設定すること。【解決手段】販売管理装置１０は、商品の単価が適用される適用期間ごとに当該商品の単価が対応付けられた単価マスタの適用期間の範囲内に新たに挿入する適用期間及び単価の指定を受け付け、単価マスタに定義された適用期間のうち指定を受け付けた適用期間が挿入される適用期間に対し、指定を受け付けた適用期間の開始日及び終了日を境界に当該挿入される適用期間を分断する更新を実行するとともに、指定を受け付けた適用期間に指定を受け付けた単価を対応付ける更新を実行し、単価の適用を受ける基準日が指定を受け付けた適用期間に該当する商品を取引の対象とする伝票を対象に、伝票に商品の単価を再設定する再設定指示を受け付け、再設定指示を受け付けた場合に、単価マスタに定義された商品の単価のうち基準日が含まれる適用期間に対応付けられた商品の単価を伝票に設定する。【選択図】図１
2014032513.tif 000002
【特許請求の範囲】
【請求項１】
商品の単価が適用される適用期間ごとに当該商品の単価が対応付けられた単価マスタの適用期間の範囲内に新たに挿入する適用期間及び単価の指定を受け付ける指定受付部と、
前記単価マスタに定義された適用期間のうち前記指定を受け付けた適用期間が挿入される適用期間に対し、前記指定を受け付けた適用期間の開始日及び終了日を境界に当該挿入される適用期間を分断する更新を実行するとともに、前記指定を受け付けた適用期間に前記指定を受け付けた単価を対応付ける更新を実行するマスタ更新部と、
単価の適用を受ける基準日が前記指定を受け付けた適用期間に該当する商品を取引の対象とする伝票を対象に、前記伝票に商品の単価を再設定する再設定指示を受け付ける再設定指示受付部と、
前記再設定指示を受け付けた場合に、前記単価マスタに定義された商品の単価のうち前記基準日が含まれる適用期間に対応付けられた商品の単価を前記伝票に設定する単価設定部と
を有することを特徴とする単価設定装置。
【請求項２】
前記伝票は、取引先、前記取引先が納入する納入先、前記取引先との間で取引される商品の数量もしくはこれらの組合せを基準に区分が設定されるものであって、
前記単価設定部は、同一の商品に異なる単価が定義された複数の単価マスタと前記伝票の区分との対応関係が定義された対応関係情報を参照し、複数の単価マスタのうち前記再設定指示を受け付けた伝票の区分に対応する単価マスタを用いて当該伝票に商品の単価を設定することを特徴とする請求項１に記載の単価設定装置。
【請求項３】
前記単価設定部は、同一の商品に異なる単価が定義された複数の単価マスタに含まれる各単価マスタの順序が定義された順序情報を参照し、前記順序情報に定義された順序にしたがって単価マスタから商品の単価を検索する処理を検索によって商品の単価が得られるまで繰り返し実行することを特徴とする請求項１または２に記載の単価設定装置。
【請求項４】
前記単価設定部は、前記伝票に設定された基準日が変更された場合に、前記単価マスタに定義された商品の単価のうち変更後の基準日が含まれる適用期間と対応付けられた商品の単価を前記伝票に設定することを特徴とする請求項１、２または３に記載の単価設定装置。
【請求項５】
コンピュータが、
商品の単価が適用される適用期間ごとに当該商品の単価が対応付けられた単価マスタの適用期間の範囲内に新たに挿入する適用期間及び単価の指定を受け付け、
前記単価マスタに定義された適用期間のうち前記指定を受け付けた適用期間が挿入される適用期間に対し、前記指定を受け付けた適用期間の開始日及び終了日を境界に当該挿入される適用期間を分断する更新を実行するとともに、前記指定を受け付けた適用期間に前記指定を受け付けた単価を対応付ける更新を実行し、
単価の適用を受ける基準日が前記指定を受け付けた適用期間に該当する商品を取引の対象とする伝票を対象に、前記伝票に商品の単価を再設定する再設定指示を受け付け、
前記再設定指示を受け付けた場合に、前記単価マスタに定義された商品の単価のうち前記基準日が含まれる適用期間に対応付けられた商品の単価を前記伝票に設定する
処理を実行することを特徴とする単価設定方法。
【請求項６】
コンピュータに、
商品の単価が適用される適用期間ごとに当該商品の単価が対応付けられた単価マスタの適用期間の範囲内に新たに挿入する適用期間及び単価の指定を受け付け、
前記単価マスタに定義された適用期間のうち前記指定を受け付けた適用期間が挿入される適用期間に対し、前記指定を受け付けた適用期間の開始日及び終了日を境界に当該挿入される適用期間を分断する更新を実行するとともに、前記指定を受け付けた適用期間に前記指定を受け付けた単価を対応付ける更新を実行し、
単価の適用を受ける基準日が前記指定を受け付けた適用期間に該当する商品を取引の対象とする伝票を対象に、前記伝票に商品の単価を再設定する再設定指示を受け付け、
前記再設定指示を受け付けた場合に、前記単価マスタに定義された商品の単価のうち前記基準日が含まれる適用期間に対応付けられた商品の単価を前記伝票に設定する
処理を実行させることを特徴とする単価設定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、単価設定装置、単価設定方法及び単価設定プログラムに関する。
【背景技術】
【０００２】
卸売業において基幹となる販売管理のシステム化が進んでいる。かかる卸売業の販売管理は、受注、出荷、売上、発注、入荷、仕入といったように多岐にわたるが、とりわけ商品の単価設定が重要視されている。
【０００３】
一般に、商品の単価設定には、商品の単価と当該単価の有効期間とが対応付けられたマスタデータが使用される。例えば、伝票を作成する場合には、商品が出荷される出荷日や商品が検収される検収日などを会計の基準日とし、マスタデータに含まれる商品の単価のうち基準日が該当する有効期間における商品の単価が受注金額や売上金額の算出に用いられる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−１４９２４７号公報
【特許文献２】特開２００３−２２８６５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の従来技術には、以下に説明するように、商品に不適切な単価が設定される場合があるという問題がある。
【０００６】
すなわち、上記のマスタデータには、最後に設定された有効期間の後ろの期間にしか商品の単価を設定することができない。このため、上記のマスタデータに既に有効期間が設定された期間の商品の単価は固定されて変更できない。それゆえ、上記のマスタデータに商品の単価が設定された時には適切であっても、その後に商品の単価が不適切なものになっても変更することができず、商品に不適切な単価が設定されてしまう場合がある。
【０００７】
開示の技術は、上記に鑑みてなされたものであって、商品に適切な単価を設定できる単価設定装置、単価設定方法及び単価設定プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本願の開示する単価設定装置は、商品の単価が適用される適用期間ごとに当該商品の単価が対応付けられた単価マスタの適用期間の範囲内に新たに挿入する適用期間及び単価の指定を受け付ける指定受付部と、前記単価マスタに定義された適用期間のうち前記指定を受け付けた適用期間が挿入される適用期間に対し、前記指定を受け付けた適用期間の開始日及び終了日を境界に当該挿入される適用期間を分断する更新を実行するとともに、前記指定を受け付けた適用期間に前記指定を受け付けた単価を対応付ける更新を実行するマスタ更新部と、単価の適用を受ける基準日が前記指定を受け付けた適用期間に該当する商品を取引の対象とする伝票を対象に、前記伝票に商品の単価を再設定する再設定指示を受け付ける再設定指示受付部と、前記再設定指示を受け付けた場合に、前記単価マスタに定義された商品の単価のうち前記基準日が含まれる適用期間に対応付けられた商品の単価を前記伝票に設定する単価設定部とを有する。
【発明の効果】
【０００９】
本願の開示する単価設定装置の一つの態様によれば、商品に適切な単価を設定できるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１に係る販売管理装置の機能的構成を示すブロック図である。
【図２】図２は、商品マスタの構成例を示す図である。
【図３】図３は、得意先マスタの構成例を示す図である。
【図４】図４は、仕入先マスタの構成例を示す図である。
【図５】図５は、システムマスタの構成例を示す図である。
【図６】図６は、取引先単価グループ別及び商品別の単価マスタの構成例を示す図である。
【図７】図７は、取引先別及び商品別の単価マスタの構成例を示す図である。
【図８】図８は、取引先別、納入先別及び商品別の単価マスタの構成例を示す図である。
【図９】図９は、取引先単価グループ別、商品別及び数量別の単価マスタの構成例を示す図である。
【図１０】図１０は、取引先別、商品別及び数量別の単価マスタの構成例を示す図である。
【図１１】図１１は、取引先別、納入先別及び商品別の履歴単価マスタの構成例を示す図である。
【図１２】図１２は、単価マスタの更新方法の一例を示す図である。
【図１３】図１３は、伝票画面の一例を示す図である。
【図１４】図１４は、実施例１に係る販売管理処理の手順を示すフローチャートである。
【図１５】図１５は、実施例１に係る単価設定処理の手順を示すフローチャートである。
【図１６】図１６は、実施例１に係る単価設定処理の手順を示すフローチャートである。
【図１７】図１７は、実施例１及び実施例２に係る単価設定プログラムを実行するコンピュータの一例について説明するための図である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示する単価設定装置、単価設定方法及び単価設定プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１２】
［販売管理装置の構成］
図１は、実施例１に係る販売管理装置の機能的構成を示すブロック図である。図１に示す販売管理装置１０は、商品の受注、出荷、売上、発注、入荷や仕入といった販売管理を行うものである。とりわけ、販売管理装置１０は、単価マスタ１６に既に定義された適用期間へ新たに単価が指定された適用期間を挿入する更新を実行した上で、単価の適用を受ける基準日が当該更新された適用期間に該当する商品を取引の対象とする伝票に商品の単価を再設定させる単価設定サービスを提供する。
【００１３】
かかる販売管理装置１０の一態様としては、上記の単価設定サービスを提供するＷｅｂサーバとして実装することとしてもよいし、また、アウトソーシングによって上記の単価設定サービスを提供するクラウドとして実装することもできる。他の一態様としては、パッケージソフトウェアやオンラインソフトウェアとして提供される単価設定プログラムを所望のコンピュータにプリインストール又はインストールさせることによっても実装できる。なお、本実施例では、食品店や青果店等から仕入れた商品をスーパーマーケット等の小売店へ販売する卸売業者が有するサーバ装置上で上記の単価設定プログラムを動作させる場合を想定して以下の説明を行う。
【００１４】
図１に示す販売管理装置１０は、所望のネットワークを介して、クライアント端末３０と相互に通信可能に接続される。かかるネットワークには、有線または無線を問わず、インターネット（Internet）、ＬＡＮ（Local  Area  Network）やＶＰＮ（Virtual  Private  Network）などの任意の種類の通信網を採用できる。
【００１５】
クライアント端末３０は、上記の単価設定サービスの提供を受けるコンピュータである。例えば、クライアント端末３０は、卸売業に携わる関係者によって使用される。かかるクライアント端末３０の一態様としては、パーソナルコンピュータを始めとする固定端末の他、携帯電話機、ＰＨＳ（Personal  Handyphone  System）やＰＤＡ（Personal  Digital  Assistants）などの移動体端末も採用できる。
【００１６】
図１に示すように、販売管理装置１０は、通信Ｉ／Ｆ（interface）部１１と、記憶部１３と、制御部１７とを有する。なお、販売管理装置１０は、図１に示した機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入出力デバイスなどを有することとしてもかまわない。
【００１７】
通信Ｉ／Ｆ部１１は、他の装置、例えばクライアント端末３０との間で通信制御を行うインタフェースである。かかる通信Ｉ／Ｆ部１１の一態様としては、ＬＡＮカードなどのネットワークインタフェースカードを採用できる。例えば、通信Ｉ／Ｆ部１１は、クライアント端末３０から各種伝票の閲覧要求や単価マスタの更新要求を受け付けたり、伝票画面や商品の単価設定の結果をクライアント端末３０へ通知したりする。
【００１８】
記憶部１３は、制御部１７で実行されるＯＳ（Operating  System）や単価設定プログラムなどの各種プログラムを記憶する記憶デバイスである。記憶部１３の一態様としては、フラッシュメモリなどの半導体メモリ素子、ハードディスク、光ディスクなどの記憶装置が挙げられる。また、記憶部１３は、上記の種類の記憶装置に限定されるものではなく、ＲＡＭ（Random  Access  Memory)、ＲＯＭ（Read  Only  Memory)であってもよい。
【００１９】
記憶部１３は、制御部１７で実行されるプログラムに用いられるデータの一例として、更新履歴情報１３ａ、伝票情報１３ｂ及びマスタデータ１４などを記憶する。なお、上記の更新履歴情報１３ａ、伝票情報１３ｂ及びマスタデータ１４以外にも、販売管理に関する電子データ、例えば在庫、入出庫や棚卸などに関するデータを併せて記憶することもできる。
【００２０】
このうち、更新履歴情報１３ａは、単価マスタ１６の更新に関する履歴データである。一例として、更新履歴情報１３ａには、マスタ更新部１７ｂによって単価マスタ１６が更新された場合に、当該更新に関する履歴がマスタ更新部１７ｂによって登録される。他の一例として、更新履歴情報１３ａは、伝票に設定された商品の単価が単価マスタ１６の更新前の単価を用いて設定されたものであるのか否かを判別するために、後述の再設定指示受付部１７ｄによって参照される。
【００２１】
かかる更新履歴情報１３ａの一態様としては、履歴ＩＤ（identification）、マスタ種別コード、取引先コード、取引先単価グループ、納入先コード、商品コード、適用期間や単価などの項目が対応付けられたデータを採用できる。ここで言う「履歴ＩＤ」は、更新履歴を識別する識別子を指す。また、「マスタ種別コード」は、単価マスタの種別を識別するコードを指し、ここでは、複数の単価マスタのうち更新が実行された単価マスタを意味する。また、「取引先コード」は、販売先または仕入先などの取引先を識別するコードを指す。また、「商品単価グループ」は、一定の共通性を持つ品目の商品をシリーズにまとめた品目のグループを指し、シリーズ品目とも呼ばれる。また、「納入先コード」は、取引先へ納入する納入先を識別するコードを指す。また、「商品コード」は、商品を識別するコードを指す。また、「数量」は、取引の対象とする商品の数量を指し、例えば、販売する商品の数量や仕入する商品の数量を意味する。また、「適用期間」は、単価マスタ１６に定義された単価が適用される期間を指し、ここでは、単価マスタ１６への挿入が指定された適用期間を意味する。例えば、適用期間は、単価の適用を開始する開始日および単価の適用を終了する終了日によって規定することができる。なお、上記の項目以外にも、単価マスタ１６が更新された日時などの他の項目を設けることとしてもよい。また、上記の各種の項目は、全ての項目が必須のものではない。例えば、伝票へ商品の単価設定に１つの単価マスタが使用される場合には、必ずしもマスタ種別コードは必要ない。また、取引先コード、取引先単価グループ、納入先コード及び商品コード等の項目のうちマスタ種別コードに対応する単価マスタ１６に存在しない項目には、必ずしも値が登録されているとは限らない。
【００２２】
伝票情報１３ｂは、各種の伝票に関するデータである。かかる伝票の一例としては、見積、受注、出荷や売上などの販売業務に関する伝票の他、発注、入荷や仕入などの購買業務に関する伝票が挙げられる。
【００２３】
上記の伝票情報１３ｂの一態様としては、伝票番号、取引先コード、納入先コード、商品コード、数量、基準日やマスタ種別コードなどの項目が対応付けられたデータを採用できる。ここで言う「伝票番号」は、伝票を識別する番号を指し、例えば、販売業務に含まれる一連のプロセス、すなわち見積、受注、出荷や売上などの間で共通して使用される。また、「基準日」は、会計の基準とする日付を指し、例えば、商品を受注した受注日、商品を出荷する出荷日、商品を納入する納入日や納入した商品が検収される検収日、商品の売上が確定する売上日などの業務日が挙げられる。ここでは、上記の基準日は、単価マスタ１６に定義された商品の単価のうちいずれの適用期間に対応付けられた単価の適用を受けるのかを特定するために用いられる。なお、上記の「基準日」は、伝票、商品、取引先、納入先、数量などの違いによって上述した受注日、出荷日、納入日、検収日や売上日などの業務日のうちいずれを採用するかを任意に設定することができ、また、任意の契機で日付を変更したり、業務日の種別を変更したりすることもできる。
【００２４】
マスタデータ１４は、卸売業の販売管理で用いられる各種のマスタデータである。例えば、図１に示すように、上記のマスタデータ１４には、商品マスタ１５ａ、得意先マスタ１５ｂ、仕入先マスタ１５ｃ、システムマスタ１５ｄの他、単価マスタ１６が含まれる。なお、以下では、伝票に販売単価を設定する場合を例示するが、以降に例示する単価マスタ１６に定義されている得意先である取引先を仕入先としたときの値に他の項目の値を変更することによって仕入単価を伝票に設定する場合にも同様に適用できる。
【００２５】
このうち、商品マスタ１５ａは、商品が定義されたマスタデータである。かかる商品マスタ１５ａの一態様としては、商品コード、商品単価グループ及び単価設定が対応付けられたデータを採用できる。図２は、商品マスタ１５ａの構成例を示す図である。図２の例では、商品コード「101010」及び商品コード「101015」の商品は、いずれもお菓子に分類され、単価マスタ１６に定義された単価に掛率を乗じることなく、単価がそのまま採用されることを意味する。また、図２に示す商品コード「101020」の商品は、冷食に分類され、単価マスタ１６に定義された単価に掛率を乗じることなく、単価がそのまま採用されることを意味する。さらに、図２に示す商品コード「101030」の商品は、その他に分類され、単価マスタ１６に定義された単価をそのまま採用せずに、掛率を乗算してから採用することを意味する。
【００２６】
得意先マスタ１５ｂは、卸売業者から販売する商品を購買する取引先、いわゆる得意先が定義されたマスタデータである。かかる得意先マスタ１５ｂの一態様としては、取引先コード、取引先単価グループ及び単価決定情報が対応付けられたデータを採用できる。ここで言う「取引先単価グループ」は、一定の共通性を持つ取引先をまとめたグループを指し、ここでは、得意先のグループを意味する。また、「単価決定情報」は、商品の単価を決定する場合に使用される各種の情報を指す。かかる「単価決定情報」には、単価の決定方法が区分された「単価決定区分」が含まれる。例えば、単価決定区分は、卸売業者の関係者による手入力で単価が取得される区分「1」と、単価マスタ１６に対する検索を実行することによって単価が取得される区分「9」とに大別される。また、「単価決定情報」には、得意先の単価に掛率を適用する場合の「単価掛率」が含まれる。さらに、「単価決定情報」には、取引先別に単価が区別された「取引先別単価」、商品別および数量別に単価が区別された「商品別数量別単価」及び前回に商品を納入した時の単価である「前回納入単価」のうちいずれの単価種別に対応する単価マスタ１６から検索を開始するかの順序が定められた「単価検索順」などが含まれる。
【００２７】
図３は、得意先マスタ１５ｂの構成例を示す図である。図３の例では、取引先コード「10101」および取引先コード「10201」の得意先は、いずれも取引先単価グループ「スーパー○○」に分類されていることを示す。また、図３の例では、取引先コード「20101」および取引先コード「30101」の得意先は、いずれも取引先単価グループが未設定であることを示す。さらに、図３の例では、取引先コード「10101」、取引先コード「10201」及び取引先コード「30101」の得意先に単価決定区分「9」が適用されることを示す。この場合には、単価マスタ１６に対する検索を実行することによって単価が取得される。一方、図３の例では、取引先コード「20101」の得意先に単価決定区分「1」が適用されることを示す。この場合には、単価マスタ１６に対する検索を実行せずに、クライアント端末３０を使用する関係者によって単価が手入力で設定されることになる。なお、図３に示す単価検索順の説明については、図５に示すシステムマスタ１５ｄに説明をあずける。
【００２８】
仕入先マスタ１５ｃは、卸売業者に商品を販売する取引先、いわゆる仕入先が定義されたマスタデータである。かかる仕入先マスタ１５ｃの一態様としては、取引先コード、取引先単価グループ及び単価決定情報が対応付けられたデータを採用できる。図４は、仕入先マスタ１５ｃの構成例を示す図である。図４の例では、取引先コード「50101」および取引先コード「60201」の仕入先は、いずれも取引先単価グループ「○○食品」に分類されていることを示す。また、図４の例では、取引先コード「70101」および取引先コード「80101」の仕入先は、いずれも取引先単価グループ「○△青果」に分類されていることを示す。さらに、図４の例では、取引先コード「50101」、取引先コード「60201」及び取引先コード「70101」の仕入先に単価決定区分「9」が適用されることを示す。この場合には、単価マスタ１６に対する検索を実行することによって単価が取得される。一方、図４の例では、取引先コード「80101」の得意先に単価決定区分「1」が適用されることを示す。この場合には、単価マスタ１６に対する検索を実行せずに、クライアント端末３０を使用する関係者によって単価が手入力で設定されることになる。なお、図４に示す単価検索順の説明についても、図５に示すシステムマスタ１５ｄに説明をあずける。
【００２９】
システムマスタ１５ｄは、単価設定システムが実行する単価マスタ１６の検索によって取得される単価種別が定義されたマスタデータである。かかるシステムマスタ１５ｄの一態様としては、単価種別及び単価優先順位が対応付けられたデータを採用できる。ここで言う「単価種別」は、単価を区別する基準とする項目の種別を指し、例えば、取引先別に単価が区別された「取引先別単価」、商品別および数量別に単価が区別された「商品別数量別単価」、さらには、前回に商品を納入した履歴別に単価が区別された「前回納入単価」などが含まれる。また、「単価優先順位」は、単価検索順序が優先される順位を指す。
【００３０】
図５は、システムマスタ１５ｄの構成例を示す図である。図５に示すように、単価優先順位が「取引先別単価」、「商品別数量別単価」、「前回納入単価」の順に設定されている。これは、単価検索順が「50」である場合には、「取引先別単価」に対応する単価マスタ１６から検索が開始され、単価の取得に失敗した場合には「商品別数量別単価」に対応する単価マスタ１６への検索が実行され、それでも単価の取得に失敗した場合には「前回納入単価」に対応する単価マスタ１６への検索が実行されることを意味する。また、単価検索順が「60」である場合には、「取引先別単価」に対応する単価マスタ１６には検索が実行されず、「商品別数量別単価」に対応する単価マスタ１６から検索が開始され、単価の取得に失敗した場合には「前回納入単価」に対応する単価マスタ１６への検索が実行されることを意味する。さらに、単価検索順が「70」である場合には、「取引先別単価」及び「商品別数量別単価」に対応する単価マスタ１６には検索が実行されず、「前回納入単価」に対応する単価マスタ１６への検索だけが実行されることを示す。
【００３１】
単価マスタ１６は、単価が定義されたマスタデータである。例えば、上記の単価マスタ１６には、取引先別に単価が区別された単価種別「取引先別単価」に対応する単価マスタ１６として、第１グループの単価マスタ１６ａ〜１６ｃが含まれる。
【００３２】
このうち、単価マスタ１６ａは、取引先単価グループ別及び商品別に単価が定義されたマスタデータである。かかる単価マスタ１６ａの一態様としては、取引先単価グループ、商品コード、適用期間、契約単価および契約掛率が対応付けられたデータを採用できる。図６は、取引先単価グループ別及び商品別の単価マスタ１６ａの構成例を示す図である。図６の例では、伝票に設定された取引先単価グループが「スーパー○○」であり、商品コードが「101010」であり、かつ基準日が適用期間「2012/3/1〜2012/3/31」内である場合には、１１００円が単価として検索される。一方、伝票に設定された取引先単価グループが「スーパー○○」であり、商品コードが「101010」であり、かつ基準日が適用期間「2012/4/1〜9999/99/99」内である場合には、９００円が単価として検索される。
【００３３】
単価マスタ１６ｂは、取引先別及び商品別に単価が定義されたマスタデータである。かかる単価マスタ１６ｂの一態様としては、取引先コード、商品コード、適用期間、契約単価および契約掛率が対応付けられたデータを採用できる。図７は、取引先別及び商品別の単価マスタ１６ｂの構成例を示す図である。図７の例では、伝票に設定された取引先コードが「10101」であり、商品コードが「101010」であり、かつ基準日が適用期間「2012/3/1〜2012/3/31」内である場合には、１１００円が単価として検索される。一方、伝票に設定された取引先コードが「10101」であり、商品コードが「101010」であり、かつ基準日が適用期間「2012/4/1〜9999/99/99」内である場合には、１０００円が単価として検索される。
【００３４】
単価マスタ１６ｃは、取引先別、納入先別及び商品別に単価が定義されたマスタデータである。かかる単価マスタ１６ｃの一態様としては、取引先コード、納入先コード、商品コード、適用期間、契約単価および契約掛率が対応付けられたデータを採用できる。図８は、取引先別、納入先別及び商品別の単価マスタ１６ｃの構成例を示す図である。図８の例では、伝票に設定された取引先コードが「10101」であり、納入先コードが「Ａ店」であり、商品コードが「101010」であり、かつ基準日が適用期間「2012/3/1〜2012/3/31」内である場合には、１１００円が単価として検索される。一方、伝票に設定された取引先コードが「10101」であり、納入先コードが「Ａ店」であり、商品コードが「101010」であり、かつ基準日が適用期間「2012/4/1〜9999/99/99」内である場合には、９００円が単価として検索される。
【００３５】
また、上記の単価マスタ１６には、商品別および数量別に単価が区別された単価種別「商品別数量別単価」に対応する単価マスタ１６として、第２グループの単価マスタ１６ｄ〜１６ｅが含まれる。
【００３６】
このうち、単価マスタ１６ｄは、取引先単価グループ別、商品別及び数量別に単価が定義されたマスタデータである。かかる単価マスタ１６ｄの一態様としては、取引先単価グループ、商品コード、適用期間、数量下限、数量上限、契約単価および契約掛率が対応付けられたデータを採用できる。図９は、取引先単価グループ別、商品別及び数量別の単価マスタ１６ｄの構成例を示す図である。図９の例では、伝票に設定された取引先単価グループが「スーパー○○」であり、商品コードが「101010」であり、かつ基準日が適用期間「2012/4/1〜9999/99/99」内である場合には、各々異なる単価が検索される。すなわち、伝票に設定された商品の数量、例えば受注数量、出荷数量、納品数量や検収数量が９９９個以下であるか、１０００個以上４９９９個以下であるか、あるいは５０００個以上９９９９個以下であるのかによって検索結果が変わる。例えば、伝票に設定された商品の数量が９９９個以下である場合には、１１００円が単価として検索される。また、伝票に設定された商品の数量が１０００個以上４９９９個以下である場合には、１０５０円が単価として検索される。また、伝票に設定された商品の数量が５０００個以上９９９９個以下である場合には、１０００円が単価として検索される。
【００３７】
単価マスタ１６ｅは、取引先別、商品別及び数量別に単価が定義されたマスタデータである。かかる単価マスタ１６ｅの一態様としては、取引先コード、商品コード、適用期間、数量下限、数量上限、契約単価および契約掛率が対応付けられたデータを採用できる。図１０は、取引先別、商品別及び数量別の単価マスタ１６ｅの構成例を示す図である。図１０の例では、伝票に設定された取引先コードが「10101」であり、商品コードが「101010」であり、かつ基準日が適用期間「2012/4/1〜9999/99/99」内である場合には、各々異なる単価が検索される。すなわち、上記の図９の例と同様に、伝票に設定された商品の数量が９９９個以下である場合には、１１００円が単価として検索される。また、伝票に設定された商品の数量が１０００個以上４９９９個以下である場合には、１０５０円が単価として検索される。また、伝票に設定された商品の数量が５０００個以上９９９９個以下である場合には、１０００円が単価として検索される。
【００３８】
また、上記の単価マスタ１６には、前回に商品を納入した履歴別に単価が区別された単価種別「前回納入単価」に対応する単価マスタ１６として、第３グループの履歴単価マスタ１６ｆが含まれる。
【００３９】
履歴単価マスタ１６ｆは、商品を納入した時の履歴が採取されたマスタデータである。かかる履歴単価マスタ１６ｆの一態様としては、取引先コード、納入先コード、商品コード、伝票日付、販売単価、仕入単価および発生日時が対応付けられたデータを採用できる。図１１は、取引先別、納入先別及び商品別の履歴単価マスタ１６ｆの構成例を示す図である。図１１の例では、上から１番目のレコードと上から２番目のレコードとの間で取引先コード、納入先コードおよび商品コードの値が共通する。ここで、上から２番目のレコードの方が上から１番目のレコードよりも伝票日付が新しい。このため、販売単価の場合には１０５０円が検索される一方で、仕入単価の場合には１０００円が検索される。
【００４０】
制御部１７は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部１７は、図１に示すように、指定受付部１７ａと、マスタ更新部１７ｂと、伝票処理部１７ｃと、再設定指示受付部１７ｄと、単価設定部１７ｅとを有する。
【００４１】
指定受付部１７ａは、単価マスタ１６の適用期間の範囲内に新たに挿入する適用期間及び単価の指定を受け付ける処理部である。一態様としては、指定受付部１７ａは、クライアント端末３０から単価マスタ１６の更新要求を受け付けた場合に、複数の単価マスタ１６ａ〜１６ｆのうち更新対象とする単価マスタ１６のマスタ種別コードの指定を受け付ける。その後、指定受付部１７ａは、更新対象とする単価マスタ１６のマスタ種別コードを受け付けると、当該マスタ種別コードに対応する単価マスタ１６とともに、適用期間及び単価の指定可能な画面をクライアント端末３０に表示させる。例えば、指定受付部１７ａは、クライアント端末３０の表示部上に指定の単価マスタ１６をテーブル形式等で表示させるとともに、単価マスタ１６の適用期間の範囲内に新たに挿入する適用期間の開始日及び終了日と単価とを入力可能なフォームまたはこれらを選択可能なプルダウンメニュー等を表示させる。このとき、指定受付部１７ａは、単価マスタ１６に含まれるレコードのうちいずれのレコードを更新対象とするのかを一意に特定するために必要な事項を入力可能または選択可能なＧＵＩを併せて表示させる。例えば、図７に示した取引先別及び商品別の単価マスタ１６ｂの場合には、適用期間の他にも、取引先コードや商品コードを併せて受け付ける必要がある。この場合には、指定受付部１７ａは、取引先コード及び商品コードを入力可能なフォームまたはこれらを選択可能なプルダウンメニュー等をクライアント端末３０に表示させる。かかる表示によって、クライアント端末３０から適用期間の開始日及び終了日の指定と単価の指定とを受け付ける。
【００４２】
マスタ更新部１７ｂは、単価マスタ１６の更新制御を実行する処理部である。一態様としては、マスタ更新部１７ｂは、適用期間を始め、必要事項を検索キーとし、単価マスタ１６に定義された適用期間のうち指定を受け付けた適用期間が挿入されるレコードを検索する。そして、マスタ更新部１７ｂは、検索結果として得られたレコードの適用期間に対し、指定を受け付けた適用期間の開始日及び終了日を境界に当該挿入される適用期間を分断する更新を実行する。すなわち、マスタ更新部１７ｂは、指定を受け付けた適用期間の挿入によって分断される適用期間の開始日と、指定を受け付けた適用期間の開始日の前日とによって区切られる期間を適用期間とする新たなレコードを生成する。さらに、マスタ更新部１７ｂは、指定を受け付けた適用期間の終了日の翌日と、指定を受け付けた適用期間の挿入によって分断される適用期間の終了日とによって区切られる期間を適用期間とする新たなレコードを生成する。その上で、マスタ更新部１７ｂは、先の分断によって新たに生成された２つのレコードには分断前に定義されていた単価を対応付けるとともに、指定を受け付けた適用期間に指定を受け付けた単価を対応付けたレコードを生成する。このとき、新たなに生成された３つのレコード間では、適用期間は互いに異なるものの、それ以外の単価を除く項目は元のレコードの値がコピーされる。
【００４３】
図１２は、単価マスタ１６の更新方法の一例を示す図である。図１２の例では、図７に示した単価マスタ１６ｂ、すなわち取引先別及び商品別の単価マスタ１６ｂが更新される場合を想定している。例えば、クライアント端末３０から取引先コード「20101」、商品コード「101020」、適用期間「2011/4/1〜2012/3/31」、契約単価「1000」を受け付けたこととする。
【００４４】
この場合には、適用期間「2011/4/1〜2012/3/31」を始め、取引先コード「20101」、商品コード「101020」及び契約単価「1000」を検索キーとし、単価マスタ１６ｂを検索する。この結果、図１２の上段に示す単価マスタ１６ｂのうち上から３番目のレコードが指定を受け付けた適用期間が挿入されるレコードとして特定される。すると、指定を受け付けた適用期間「2011/4/1〜2012/3/31」の挿入によって分断される適用期間の開始日「1999/1/1」と、指定を受け付けた適用期間の開始日の前日「2011/3/31」とによって区切られる期間を適用期間とする新たなレコード、すなわち図１２の下段に示す単価マスタ１６ｂのうち上から３番目のレコード（濃い塗り潰し）が生成される。さらに、指定を受け付けた適用期間の終了日の翌日「2012/4/1」と、指定を受け付けた適用期間の挿入によって分断される適用期間の終了日「9999/99/99」とによって区切られる期間を適用期間とする新たなレコード、すなわち図１２の下段に示す単価マスタ１６ｂのうち上から５番目のレコード（濃い塗りつぶし）を生成する。その上で、先の分断によって新たに生成された２つのレコードには分断前に定義されていた単価「900」を対応付けるとともに、指定を受け付けた適用期間に指定を受け付けた単価を対応付けたレコード、すなわち図１２の下段に示す単価マスタ１６ｂのうち上から４番目のレコード（薄い塗りつぶし）を生成する。このとき、新たなに生成された３つのレコード間では、適用期間は互いに異なるものの、それ以外の単価を除く取引先コード及び商品コードは元のレコードの値「20101」及び「101020」がコピーされて引き継がれる。これによって、既に適用期間が定義された期間の商品の単価であっても動的に更新することが可能になる。
【００４５】
単価マスタ１６ｂを更新後には、履歴ＩＤが採番され、先に生成された３つのレコードのうち更新要求を受け付けて生成したレコード、すなわち上から４番目のレコード（薄い塗りつぶし）に含まれる適用期間「2011/4/1〜2012/3/31」、取引先コード「20101」、商品コード「101020」及び契約単価「1000」とともに、単価マスタ１６ｂを示すマスタ種別コードを対応付けた更新履歴情報１３ａが生成された上で記憶部１３へ登録される。このように、単価マスタ１３ｂが更新された場合には、更新履歴情報１３ａに取引先単価グループ、納入先コード、商品単価グループ及び数量などの項目には値が設定されない。
【００４６】
伝票処理部１７ｃは、伝票に関する各種の処理を実行する処理部である。一態様としては、伝票処理部１７ｃは、クライアント端末３０から伝票番号を含む伝票の検索要求を受け付けた場合に、伝票情報１３ｂに含まれる伝票のうち検索要求を受け付けた伝票番号と同一の伝票番号を持つ伝票を検索する。そして、伝票処理部１７ｃは、検索結果として得られた伝票を編集可能な伝票画面をクライアント端末３０に表示させる。このようにして伝票画面が表示されると、クライアント端末３０で表示された伝票画面上で記入事項、例えば取引先コードや納入先コードなどの得意先情報、商品コードや数量などの取引内容情報の他、基準日情報が受け付けられる。かかる基準日情報の一例としては、受注日、出荷日、納品日や検収日などの業務日の他、いずれの業務日を基準日に採用するのかを示す基準日設定などが挙げられる。
【００４７】
図１３は、伝票画面の一例を示す図である。図１３には、一例として、受注伝票画面２００を図示している。かかる受注伝票画面２００の上部にレイアウトされたテキストボックス２１０に伝票番号が入力された状態で照会ボタン２２０が押下されると、その下部に「得意先情報」及び「基準日情報」を表示する表示領域２３０が表示される。この表示領域２３０に表示された「得意先情報」のタブ２３０Ａが選択された状態では、取引先コードや納入先コードを入力可能なフォームが表示される。また、「基準日情報」のタブ２３０Ｂが選択された状態では、受注日、出荷予定日、納品予定日や検収予定日などの業務日を入力可能なフォームが表示される他、いずれの業務日を基準日に採用するのかを示すラジオボタン等の選択肢が表示される。さらに、表示領域２３０の下部には、商品コードや受注数量などを入力可能なテーブルが表示される。また、受注伝票画面２００の右上に表示された伝票種別のプルダウンメニュー２４０から他の伝票、例えば見積伝票、出荷伝票、検収伝票や売上伝票などの他の種別の伝票画面を呼び出すことができる。このような受注伝票画面２００上で記入事項、例えば取引先コードや納入先コードなどの得意先情報、商品コードや数量などの取引内容情報の他、基準日情報が受け付けられる。その後、受注伝票画面２００に表示された登録ボタン２５０が押下されると、受注伝票画面２００に入力されていた各種の情報が伝票情報１３ｂとして記憶部１３へ登録される。
【００４８】
その後、伝票処理部１７ｃは、クライアント端末３０に表示された伝票画面上で伝票の登録操作が実行された場合に、基準日が変更されたか否か、例えば伝票画面上で日付の再変更や業務日の再選択が行われたか否かを判定する。このとき、基準日が変更されていない場合には、伝票処理部１７ｃは、当該伝票に単価が未設定であるか否かを判定する。このとき、単価が設定済みである場合には、伝票画面上での入力によって単価が変動しないことが判別できる。この場合には、単価マスタ１６の更新によって単価が変動しているか否かを判別するために、伝票処理部１７ｃは、当該伝票に設定されている基準日を始め、取引先コード、納入先コード、商品コード、商品単価グループおよび数量などの伝票情報を再取得指示受付部１７ｄへ出力する。
【００４９】
また、基準日が変更された場合には、単価の適用を受ける適用範囲が変化するのに伴って商品の単価も変動する可能性がある。この場合には、伝票処理部１７ｃは、登録操作がなされた伝票が単価の設定条件を満たすか否かを判定する。一例としては、伝票処理部１７ｃは、基準日が「受注日」に設定されている場合には、受注の業務が完了しているか否かを判定する。他の一例としては、伝票処理部１７ｃは、基準日が「出荷日」に設定されている場合には、出荷の業務が完了しているか否かを判定する。このように、基準日として設定された販売業務のプロセスが完了している場合には、伝票処理部１７ｃは、当該伝票に商品の単価を設定する指示を単価設定部１７ｅへ出力する。
【００５０】
一方、伝票処理部１７ｃは、単価が未設定である場合には、当該伝票の基準日が空欄、すなわちブランクであるか否かを判定する。このとき、伝票処理部１７ｃは、基準日がブランクである場合には、基準日の入力を促す画面表示を行って基準日の設定を受け付ける。このように基準日の設定を受け付けた場合にも、伝票処理部１７ｃは、登録操作がなされた伝票が単価の設定条件を満たすか否かを判定する。このとき、伝票情報が単価の設定条件を満たしている場合には、伝票処理部１７ｃは、当該伝票に商品の単価を設定する指示を単価設定部１７ｅへ出力する。
【００５１】
再設定指示受付部１７ｄは、更新履歴情報１３ａを用いて、伝票に商品の単価を再設定する再設定指示を受け付ける処理部である。一態様としては、再設定指示受付部１７ｄは、更新履歴情報１３ａに含まれるレコードのうち、伝票に単価が設定されたマスタ種別コード、すなわち単価設定時に使用された単価マスタ１６を表すコードと一致するレコードを抽出する。そして、再設定指示受付部１７ｄは、マスタ種別コードに対応する単価マスタ１６が有する項目を対象に、先に抽出した更新履歴情報１３ａのレコードのうち伝票処理部１７ｃによって出力された伝票情報の各項目との間で値が一致するレコードを抽出する。その上で、再設定指示受付部１７ｄは、伝票処理部１７ｃによって出力された基準日が更新履歴情報１３ａのレコードに含まれる適用期間の範囲内であるか否かを判定する。このとき、基準日が適用期間の範囲内である場合には、伝票に設定された単価が単価マスタ１６の更新前の単価を用いて設定されたものであると判別できる。よって、再設定指示受付部１７ｄは、伝票への単価の再設定を促す通知を行って再設定指示を受け付ける。このとき、再設定指示を受け付けた場合には、再設定指示受付部１７ｄは、伝票に単価を再設定する指示を単価設定部１７ｅへ出力する。なお、ここでは、再設定指示を受け付けることを条件に、単価の再設定を実行させる場合を例示したが、基準日が適用期間の範囲内である場合に、単価の再設定を自動的に実行させることとしてもかまわない。
【００５２】
単価設定部１７ｅは、伝票に単価を設定する処理部である。一態様としては、単価設定部１７ｅは、基準日として設定された販売業務のプロセスが完了している場合には、伝票に単価を設定する。また、単価設定部１７ｅは、伝票処理部１７ｃによって出力された基準日が先に抽出した更新履歴情報１３ａのレコード情報に含まれる適用期間の範囲内である場合に、伝票に単価を再設定する。なお、単価の設定も単価の再設定も処理が起動される条件が異なるだけで処理の内容は同様である。
【００５３】
かかる単価の設定方法について説明すると、単価設定部１７ｅは、得意先マスタ１５ｂに含まれるレコードのうち、伝票に設定されている取引先コードに対応するレコードを取得する。そして、単価設定部１７ｅは、先に取得した得意先マスタ１５ｂのレコードに含まれる単価決定区分の値が「9」であるか否かを判定する。このとき、単価設定部１７ｅは、単価決定区分の値が「9」でない場合、すなわち単価決定区分の値が「1」である場合には、伝票に単価を手入力で設定させる。
【００５４】
一方、単価設定部１７ｅは、単価決定区分の値が「9」である場合には、先に取得した得意先マスタ１５ｂのレコードに含まれる単価検索順の値が「70」であるか否かを判定する。このとき、単価設定部１７ｅは、単価検索順の値が「70」でない場合には、単価検索順の値が「60」であるか否かをさらに判定する。
【００５５】
ここで、単価設定部１７ｅは、単価検索順の値が「70」及び「60」のいずれでもない場合には、取引先別に単価が区別された単価種別「取引先別単価」に対応する第１グループの単価マスタ１６ａ〜１６ｃの検索を開始する。このとき、単価設定部１７ｅは、取引先別、納入先別及び商品別の単価マスタ１６ｃ、取引先別及び商品別の単価マスタ１６ｂ、取引先単価グループ別及び商品別の単価マスタ１６ａの順に単価の検索を実行する。
【００５６】
これを具体的に説明すると、単価設定部１７ｅは、取引先別、納入先別及び商品別の単価マスタ１６ｃから、伝票に設定された取引先コード、納入先コード及び商品コードと値が同一であり、かつ基準日が適用期間の範囲内に含まれるレコードを検索する。このとき、単価マスタ１６ｃからのレコードの取得に失敗した場合には、単価設定部１７ｅは、取引先別及び商品別の単価マスタ１６ｂから、伝票に設定された取引先コード及び商品コードと値が同一であり、かつ基準日が適用期間の範囲内に含まれるレコードをさらに検索する。そして、単価マスタ１６ｂからのレコードの取得に失敗した場合には、単価設定部１７ｅは、取引先単価グループ別及び商品別の単価マスタ１６ａから、伝票に設定された取引先単価グループ及び商品コードと値が同一であり、かつ基準日が適用期間の範囲内に含まれるレコードをさらに検索する。
【００５７】
ここで、単価マスタ１６ｃ、単価マスタ１６ｂまたは単価マスタ１６ａのいずれかの単価マスタ１６からのレコードの取得に成功した場合には、当該単価マスタ１６から取得されたレコードに含まれる契約単価が伝票に設定される。例えば、伝票に取引先コード「10101」、取引先単価グループ「スーパー○○」、納入先コード「Ａ店」及び商品コード「101010」及び基準日「2012/4/23」が設定されている場合を想定する。このとき、図８に示した単価マスタ１６ｃを検索した場合には、上から２番目のレコードが取得されるので、伝票には、単価「900円」が設定されることになる。また、図７に示した単価マスタ１６ｂを検索した場合には、上から２番目のレコードが取得されるので、伝票には、単価「1000円」が設定されることになる。また、図６に示した単価マスタ１６ａを検索した場合には、上から２番目のレコードが取得されるので、伝票には、単価「900円」が設定されることになる。
【００５８】
一方、単価設定部１７ｅは、単価マスタ１６ｃ、単価マスタ１６ｂ及び単価マスタ１６ａのいずれの単価マスタ１６からもレコードの取得に失敗した場合には、商品別および数量別に単価が区別された単価種別「商品別数量別単価」に対応する第２グループの単価マスタ１６ｄ〜１６ｅの検索を開始する。このとき、単価設定部１７ｅは、取引先別、商品別及び数量別の単価マスタ１６ｅ、取引先単価グループ別、商品別及び数量別の単価マスタ１６ｄの順に単価の検索を実行する。なお、単価検索順の値が「60」であった場合には、第１グループの単価マスタ１６ａ〜１６ｃへの検索は実行されず、第２グループの単価マスタ１６ｄ〜１６ｅの検索から開始される。
【００５９】
これを具体的に説明すると、単価設定部１７ｅは、取引先別、商品別及び数量別の単価マスタ１６ｅから、伝票に設定された取引先コード、商品コード及び数量と値が同一であり、かつ基準日が適用期間の範囲内に含まれるレコードを検索する。このとき、単価マスタ１６ｅからのレコードの取得に失敗した場合には、単価設定部１７ｅは、取引先単価グループ別、商品別及び数量別の単価マスタ１６ｄから、伝票に設定された取引先単価グループ、商品コード及び数量と値が同一であり、かつ基準日が適用期間の範囲内に含まれるレコードをさらに検索する。
【００６０】
ここで、単価マスタ１６ｅまたは単価マスタ１６ｄのいずれかの単価マスタ１６からのレコードの取得に成功した場合には、当該単価マスタ１６から取得されたレコードに含まれる契約単価が伝票に設定される。例えば、伝票に取引先コード「10101」、取引先単価グループ「スーパー○○」、納入先コード「Ａ店」及び商品コード「101010」及び基準日「2012/4/23」が設定されている場合を想定する。このとき、図１０に示した単価マスタ１６ｅを検索した場合には、上から１番目のレコードが取得されるので、伝票には、単価「1100円」が設定されることになる。また、図９に示した単価マスタ１６ｄを検索した場合には、上から１番目のレコードが取得されるので、伝票には、単価「1100円」が設定されることになる。
【００６１】
一方、単価設定部１７ｅは、単価マスタ１６ｅ及び単価マスタ１６ｄのいずれの単価マスタ１６からもレコードの取得に失敗した場合には、前回に商品を納入した履歴別に単価が区別された単価種別「前回納入単価」に対応する第３グループの履歴単価マスタ１６ｆの検索を開始する。なお、単価検索順の値が「70」であった場合には、第１グループの単価マスタ１６ａ〜１６ｃ及び第２グループの単価マスタ１６ｄ〜１６ｅへの検索は実行されず、第３グループの単価マスタ１６ｆの検索から開始される。
【００６２】
これを具体的に説明すると、単価設定部１７ｅは、取引先別、納入先別及び商品別の履歴単価マスタ１６ｆから、伝票に設定された取引先コード、納入先コード及び商品コードと値が同一であり、かつ伝票日付が最新であるレコードを検索する。このとき、単価マスタ１６ｆからのレコードの取得に成功した場合には、当該単価マスタ１６から取得されたレコードに含まれる契約単価が伝票に設定される。例えば、伝票に取引先コード「10101」、取引先単価グループ「スーパー○○」、納入先コード「Ａ店」及び商品コード「101010」及び基準日「2012/4/23」が設定されている場合を想定する。このとき、図１１に示した単価マスタ１６ｆを検索した場合には、上から２番目のレコードが取得されるので、伝票には、単価「1050円」が設定されることになる。
【００６３】
一方、単価マスタ１６ｆからのレコードの取得に失敗した場合には、単価設定部１７ｅは、全ての単価マスタ１６から単価の取得を失敗したことになるので、伝票に単価を手入力で設定させる。
【００６４】
なお、制御部１７には、各種の集積回路や電子回路を採用できる。また、制御部１７が有する機能部の一部を別の集積回路や電子回路とすることもできる。例えば、集積回路としては、ＡＳＩＣ（Application  Specific  Integrated  Circuit）が挙げられる。また、電子回路としては、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などが挙げられる。
【００６５】
［処理の流れ］
続いて、本実施例に係る販売管理装置の処理の流れについて説明する。なお、ここでは、販売管理装置１０によって実行される（１）販売管理処理について説明した後に、（２）単価設定処理について説明することとする。
【００６６】
（１）販売管理処理
図１４は、実施例１に係る販売管理処理の手順を示すフローチャートである。この販売管理処理は、販売管理装置１０の電源がＯＮ状態である限り、繰り返し実行される処理であり、クライアント端末３０から伝票番号を含む伝票の検索要求を受け付けた場合に処理が起動される。
【００６７】
図１４に示すように、伝票処理部１７ｃは、伝票情報１３ｂに含まれる伝票のうち検索要求を受け付けた伝票番号と同一の伝票番号を持つ伝票を検索した上でその検索結果として得られた伝票を編集可能な伝票画面をクライアント端末３０に表示させる（ステップＳ１０１）。
【００６８】
そして、伝票処理部１７ｃは、クライアント端末３０で表示された伝票画面を介して、伝票の記入事項、例えば取引先コードや納入先コードなどの得意先情報、商品コードや数量などの取引内容情報の他、基準日情報を受け付ける（ステップＳ１０２）。
【００６９】
続いて、伝票処理部１７ｃは、伝票画面上で伝票の登録操作がなされると、基準日が変更されたか否か、例えば伝票画面上で日付の再変更や業務日の再選択が行われたか否かを判定する（ステップＳ１０３）。
【００７０】
このとき、基準日が変更されていない場合（ステップＳ１０３否定）には、伝票処理部１７ｃは、当該伝票に単価が未設定であるか否かを判定する（ステップＳ１０４）。そして、単価が未設定である場合（ステップＳ１０４肯定）には、伝票処理部１７ｃは、当該伝票の基準日が空欄、すなわちブランクであるか否かを判定する（ステップＳ１０５）。
【００７１】
続いて、基準日がブランクである場合（ステップＳ１０５肯定）には、伝票処理部１７ｃは、基準日の入力を促す画面表示を行って基準日の設定を受け付ける（ステップＳ１０６）。なお、基準日がブランクではない場合（ステップＳ１０５否定）には、上記のステップＳ１０６の処理をとばしてステップＳ１０７の処理へ移行する。
【００７２】
また、基準日が変更された場合（ステップＳ１０３肯定）には、単価の適用を受ける適用範囲が変化するのに伴って商品の単価も変動する可能性がある。この場合にも、ステップＳ１０４〜ステップＳ１０６までの処理をとばし、ステップＳ１０７の処理へ移行する。
【００７３】
その後、伝票処理部１７ｃは、登録操作がなされた伝票が単価の設定条件を満たすか否かを判定する（ステップＳ１０７）。例えば、伝票処理部１７ｃは、基準日が「受注日」に設定されている場合には、受注の業務が完了しているか否かを判定する。他の一例としては、伝票処理部１７ｃは、基準日が「出荷日」に設定されている場合には、出荷の業務が完了しているか否かを判定する。
【００７４】
そして、伝票が単価の設定条件を満たす場合（ステップＳ１０７肯定）には、単価設定部１７ｅは、伝票に単価を設定する「単価設定処理」を実行し（ステップＳ１０８）、伝票処理部１７ｃに伝票に設定された伝票情報を記憶部１３へ登録させ（ステップＳ１０９）、処理を終了する。
【００７５】
一方、伝票が単価の設定条件を満たさない場合（ステップＳ１０７否定）には、伝票処理部１７ｃは、ステップＳ１０８の処理をとばし、伝票に設定された伝票情報を記憶部１３へ登録し（ステップＳ１０９）、処理を終了する。
【００７６】
また、単価が設定済みである場合（ステップＳ１０４否定）には、再設定指示受付部１７ｄは、更新履歴情報１３ａに含まれるレコードのうち伝票に単価が設定されたマスタ種別コードと一致するレコードであり、かつマスタ種別コードに対応する単価マスタ１６が有する項目を対象に伝票処理部１７ｃによって出力された伝票情報の各項目との間で値が一致するレコードに含まれる適用期間の範囲内に、伝票処理部１７ｃによって出力された基準日が含まれるか否かを判定する（ステップＳ１１０）。
【００７７】
このとき、基準日が適用期間の範囲内である場合（ステップＳ１１０肯定）には、伝票に設定された単価が単価マスタ１６の更新前の単価を用いて設定されたものであると判別できる。よって、再設定指示受付部１７ｄは、伝票への単価の再設定を促す通知を行って再設定指示がなされるのを待機する（ステップＳ１１１）。
【００７８】
このとき、再設定指示を受け付けた場合（ステップＳ１１１肯定）には、単価設定部１７ｅは、伝票に単価を設定する「単価設定処理」を実行し（ステップＳ１０８）、伝票処理部１７ｃに伝票に設定された伝票情報を記憶部１３へ登録させ（ステップＳ１０９）、処理を終了する。
【００７９】
一方、基準日が適用期間の範囲内でない場合、あるいは再設定指示が受け付けられなかった場合（ステップＳ１１０否定またはステップＳ１１１否定）には、伝票処理部１７ｃは、伝票に設定された伝票情報を記憶部１３へ登録し（ステップＳ１０９）、処理を終了する。
【００８０】
（２）単価設定処理
図１５及び図１６は、実施例１に係る単価設定処理の手順を示すフローチャートである。この単価設定処理は、図１４に示したステップＳ１０８に対応する処理であり、ステップＳ１０７肯定、あるいはステップＳ１１１肯定の場合に処理が起動される。
【００８１】
図１５に示すように、単価設定部１７ｅは、得意先マスタ１５ｂに含まれるレコードのうち、伝票に設定されている取引先コードに対応するレコードを取得する（ステップＳ３０１）。
【００８２】
そして、単価設定部１７ｅは、ステップＳ３０１で取得した得意先マスタ１５ｂのレコードに含まれる単価決定区分の値が「9」であるか否かを判定する（ステップＳ３０２）。なお、単価決定区分の値が「9」でない場合、すなわち単価決定区分の値が「1」である場合（ステップＳ３０２否定）には、単価設定部１７ｅは、伝票に単価を手入力で設定させ（ステップＳ３０３）、処理を終了する。
【００８３】
一方、単価設定部１７ｅは、単価決定区分の値が「9」である場合（ステップＳ３０２肯定）には、得意先マスタ１５ｂのレコードに含まれる単価検索順の値が「70」であるか否かを判定する（ステップＳ３０４）。なお、単価検索順の値が「70」である場合（ステップＳ３０４肯定）には、下記のステップＳ３０５〜ステップＳ３１５までの処理をとばし、ステップＳ３１６の処理へ移行する。
【００８４】
このとき、単価検索順の値が「70」でない場合（ステップＳ３０４否定）には、単価設定部１７ｅは、単価検索順の値が「60」であるか否かをさらに判定する（ステップＳ３０５）。なお、単価検索順の値が「60」である場合（ステップＳ３０５肯定）には、下記のステップＳ３０６〜ステップＳ３１１までの処理をとばし、ステップＳ３１２の処理へ移行する。
【００８５】
ここで、単価検索順の値が「60」でもない場合、すなわち単価検索順の値が「50」である場合（ステップＳ３０５否定）には、単価設定部１７ｅは、取引先別、納入先別及び商品別の単価マスタ１６ｃから、伝票に設定された取引先コード、納入先コード及び商品コードと値が同一であり、かつ基準日が適用期間の範囲内に含まれるレコードを検索する（ステップＳ３０６）。
【００８６】
このとき、単価マスタ１６ｃからのレコードの取得に失敗した場合（ステップＳ３０７肯定）には、単価設定部１７ｅは、取引先別及び商品別の単価マスタ１６ｂから、伝票に設定された取引先コード及び商品コードと値が同一であり、かつ基準日が適用期間の範囲内に含まれるレコードをさらに検索する（ステップＳ３０８）。
【００８７】
そして、単価マスタ１６ｂからのレコードの取得に失敗した場合（ステップＳ３０９肯定）には、単価設定部１７ｅは、取引先単価グループ別及び商品別の単価マスタ１６ａから、伝票に設定された取引先単価グループ及び商品コードと値が同一であり、かつ基準日が適用期間の範囲内に含まれるレコードをさらに検索する（ステップＳ３１０）。
【００８８】
ここで、単価マスタ１６ｃ、単価マスタ１６ｂまたは単価マスタ１６ａのいずれかの単価マスタ１６からのレコードの取得に成功した場合（ステップＳ３０７否定、ステップＳ３０９否定またはステップＳ３１１否定）には、単価設定部１７ｅは、当該単価マスタ１６から取得されたレコードに含まれる契約単価を伝票に設定し（ステップＳ３１８）、処理を終了する。
【００８９】
また、単価マスタ１６ａからのレコードの取得にも失敗した場合（ステップＳ３１１肯定）には、単価設定部１７ｅは、取引先別、商品別及び数量別の単価マスタ１６ｅから、伝票に設定された取引先コード、商品コード及び数量と値が同一であり、かつ基準日が適用期間の範囲内に含まれるレコードを検索する（ステップＳ３１２）。
【００９０】
このとき、単価マスタ１６ｅからのレコードの取得に失敗した場合（ステップＳ３１３肯定）には、単価設定部１７ｅは、取引先単価グループ別、商品別及び数量別の単価マスタ１６ｄから、伝票に設定された取引先単価グループ、商品コード及び数量と値が同一であり、かつ基準日が適用期間の範囲内に含まれるレコードをさらに検索する（ステップＳ３１４）。
【００９１】
ここで、単価マスタ１６ｅまたは単価マスタ１６ｄのいずれかの単価マスタ１６からのレコードの取得に成功した場合（ステップＳ３１３否定またはステップＳ３１５否定）には、単価設定部１７ｅは、当該単価マスタ１６から取得されたレコードに含まれる契約単価を伝票に設定し（ステップＳ３１８）、処理を終了する。
【００９２】
一方、単価マスタ１６ｄからのレコードの取得にも失敗した場合（ステップＳ３１５肯定）には、取引先別、納入先別及び商品別の履歴単価マスタ１６ｆから、伝票に設定された取引先コード、納入先コード及び商品コードと値が同一であり、かつ伝票日付が最新であるレコードを検索する（ステップＳ３１６）。
【００９３】
このとき、単価マスタ１６ｆからのレコードの取得に成功した場合（ステップＳ３１７肯定）には、単価設定部１７ｅは、当該単価マスタ１６から取得されたレコードに含まれる契約単価を伝票に設定し（ステップＳ３１８）、処理を終了する。
【００９４】
一方、単価マスタ１６ｆからのレコードの取得に失敗した場合（ステップＳ３１７否定）には、単価設定部１７ｅは、全ての単価マスタ１６から単価の取得を失敗したことになるので、伝票に単価を手入力で設定させ（ステップＳ３０３）、処理を終了する。
【００９５】
［実施例１の効果］
上述してきたように、本実施例に係る販売管理装置１０は、単価マスタ１６の適用期間の範囲内に新たに挿入する適用期間及び単価の指定を受け付け、単価マスタ１６に定義された適用期間のうち指定を受け付けた適用期間が挿入される適用期間に対し、指定を受け付けた適用期間の開始日及び終了日を境界に当該挿入される適用期間を分断する更新を実行するとともに、指定を受け付けた適用期間に指定を受け付けた単価を対応付ける更新を実行し、単価の適用を受ける基準日が指定を受け付けた適用期間に該当する商品を取引の対象とする伝票を対象に、伝票に商品の単価を再設定する再設定指示を受け付け、再設定指示を受け付けた場合に、単価マスタ１６に定義された商品の単価のうち基準日が含まれる適用期間に対応付けられた商品の単価を伝票に設定する。
【００９６】
このため、本実施例に係る販売管理装置１０では、既に適用期間が定義された期間の商品の単価であっても単価マスタを動的に更新できるので、商品の単価が設定された時点から時を経て商品の単価が不適切なものになっても単価を変更できる。さらに、本実施例に係る販売管理装置１０では、伝票に設定された単価が単価マスタ１６の更新前の単価を用いて設定されたものであれば、伝票に単価を再設定できる。したがって、販売管理装置１０によれば、商品に適切な単価を設定することが可能である。
【実施例２】
【００９７】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【００９８】
［分散および統合］
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、指示受付部１７ａ、マスタ更新部１７ｂ、伝票処理部１７ｃ、再設定指示受付部１７ｄまたは単価設定部１７ｅを販売管理装置１０の外部装置としてネットワーク経由で接続するようにしてもよい。また、指示受付部１７ａ、マスタ更新部１７ｂ、伝票処理部１７ｃ、再設定指示受付部１７ｄまたは単価設定部１７ｅを別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の販売管理装置１０の機能を実現するようにしてもよい。
【００９９】
［単価設定プログラム］
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図１７を用いて、上記の実施例と同様の機能を有する単価設定プログラムを実行するコンピュータの一例について説明する。
【０１００】
図１７は、実施例１及び実施例２に係る単価設定プログラムを実行するコンピュータの一例について説明するための図である。図１７に示すように、コンピュータ１００は、操作部１１０ａと、スピーカ１１０ｂと、カメラ１１０ｃと、ディスプレイ１２０と、通信部１３０とを有する。さらに、このコンピュータ１００は、ＣＰＵ１５０と、ＲＯＭ１６０と、ＨＤＤ１７０と、ＲＡＭ１８０とを有する。これら１１０〜１８０の各部はバス１４０を介して接続される。
【０１０１】
ＨＤＤ１７０には、図１７に示すように、上記の実施例１で示した指示受付部１７ａ、マスタ更新部１７ｂ、伝票処理部１７ｃ、再設定指示受付部１７ｄ及び単価設定部１７ｅと同様の機能を発揮する単価設定プログラム１７０ａが予め記憶される。この単価設定プログラム１７０ａについては、図１に示した各々の指示受付部１７ａ、マスタ更新部１７ｂ、伝票処理部１７ｃ、再設定指示受付部１７ｄ及び単価設定部１７ｅの各構成要素と同様、適宜統合又は分離しても良い。すなわち、ＨＤＤ１７０に格納される各データは、常に全てのデータがＨＤＤ１７０に格納される必要はなく、処理に必要なデータのみがＨＤＤ１７０に格納されれば良い。
【０１０２】
そして、ＣＰＵ１５０が、単価設定プログラム１７０ａをＨＤＤ１７０から読み出してＲＡＭ１８０に展開する。これによって、図１７に示すように、単価設定プログラム１７０ａは、単価設定プロセス１８０ａとして機能する。この単価設定プロセス１８０ａは、ＨＤＤ１７０から読み出した各種データを適宜ＲＡＭ１８０上の自身に割り当てられた領域に展開し、この展開した各種データに基づいて各種処理を実行する。なお、単価設定プロセス１８０ａは、図１に示した指示受付部１７ａ、マスタ更新部１７ｂ、伝票処理部１７ｃ、再設定指示受付部１７ｄ及び単価設定部１７ｅにて実行される処理、例えば図１４〜図１６に示す処理を含む。また、ＣＰＵ１５０上で仮想的に実現される各処理部は、常に全ての処理部がＣＰＵ１５０上で動作する必要はなく、処理に必要な処理部のみが仮想的に実現されれば良い。
【０１０３】
なお、上記の単価設定プログラム１７０ａについては、必ずしも最初からＨＤＤ１７０やＲＯＭ１６０に記憶させておく必要はない。例えば、コンピュータ１００に挿入されるフレキシブルディスク、いわゆるＦＤ、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。そして、コンピュータ１００がこれらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ１００に接続される他のコンピュータまたはサーバ装置などに各プログラムを記憶させておき、コンピュータ１００がこれらから各プログラムを取得して実行するようにしてもよい。
【符号の説明】
【０１０４】
１０    販売管理装置
１１    通信Ｉ／Ｆ部
１３    記憶部
１３ａ  更新履歴情報
１３ｂ  伝票情報
１４    マスタデータ
１５ａ  商品マスタ
１５ｂ  得意先マスタ
１５ｃ  仕入先マスタ
１５ｄ  システムマスタ
１６，１６ａ，１６ｂ，１６ｃ，１６ｄ，１６ｅ，１６ｆ    単価マスタ
１７    制御部
１７ａ  指定受付部
１７ｂ  マスタ更新部
１７ｃ  伝票処理部
１７ｄ  再設定指示受付部
１７ｅ  単価設定部
【図１】
2014032513.tif 000003
【図２】
2014032513.tif 000004
【図３】
2014032513.tif 000005
【図４】
2014032513.tif 000006
【図５】
2014032513.tif 000007
【図６】
2014032513.tif 000008
【図７】
2014032513.tif 000009
【図８】
2014032513.tif 000010
【図９】
2014032513.tif 000011
【図１０】
2014032513.tif 000012
【図１１】
2014032513.tif 000013
【図１２】
2014032513.tif 000014
【図１３】
2014032513.tif 000015
【図１４】
2014032513.tif 000016
【図１５】
2014032513.tif 000017
【図１６】
2014032513.tif 000018
【図１７】
2014032513.tif 000019