(57)【要約】【課題】ロットを基準とした在庫引当を実現すること。【解決手段】受注入力装置は、顧客コード、商品コードおよび受注数の入力を受け付ける受注情報受付部と、受注情報受付部に入力された商品コードに対応するロット番号のうち、当該ロット番号に対応する製造情報が受注情報受付部に入力された顧客コードに設定された引当条件に該当するロット番号を抽出するロット抽出部と、受注情報受付部に入力された受注数にロット抽出部により抽出されたロット番号の在庫から引き当てる引当数の入力を受け付ける在庫引当受付部と、を有する。【選択図】図１
2020201848.tif 000002
【特許請求の範囲】
【請求項１】
顧客コード、商品コードおよび受注数の入力を受け付ける受注情報受付部と、
前記受注情報受付部に入力された商品コードに対応するロット番号のうち、当該ロット番号に対応する製造情報が前記受注情報受付部に入力された顧客コードに設定された引当条件に該当するロット番号を抽出するロット抽出部と、
前記受注情報受付部に入力された受注数に前記ロット抽出部により抽出されたロット番号の在庫から引き当てる引当数の入力を受け付ける在庫引当受付部と、
を有することを特徴とする受注入力装置。
【請求項２】
前記在庫引当受付部に入力された引当数および前記引当数が入力されたロット番号が前記顧客コードに設定された引当条件に該当するか否かを判定する在庫引当判定部をさらに有することを特徴とする請求項１に記載の受注入力装置。
【請求項３】
前記ロット抽出部は、前記ロット番号に対応する製造工場又は製造工場ラインが前記顧客コードに前記引当条件として設定された製造工場又は製造工場ラインに該当するロット番号を抽出することを特徴とする請求項１または２に記載の受注入力装置。
【請求項４】
前記ロット抽出部は、前記ロット番号に対応する製造日が前記顧客コードに前記引当条件として設定された出荷、納品又は検収に関する期限に該当するロット番号を抽出することを特徴とする請求項１ないし３のいずれか１つに記載の受注入力装置。
【請求項５】
前記ロット抽出部は、前記顧客コードに同一のロット番号の商品の出荷が前記引当条件として設定されている場合、前記顧客コードに対応する出荷履歴に含まれるロット番号を抽出することを特徴とする請求項１ないし４のいずれか１つに記載の受注入力装置。
【請求項６】
前記在庫引当判定部は、前記在庫引当受付部に前記引当数が入力されたロット番号が前記顧客コードに対応する出荷履歴に含まれるロット番号と同一であるか否かを判定することを特徴とする請求項２に記載の受注入力装置。
【請求項７】
顧客コード、商品コードおよび受注数の入力を受け付け、
前記入力を受け付けた商品コードに対応するロット番号のうち、当該ロット番号に対応する製造情報が前記入力を受け付けた顧客コードに設定された引当条件に該当するロット番号を抽出し、
前記入力を受け付けた受注数に抽出されたロット番号の在庫から引き当てる引当数の入力を受け付ける、
処理をコンピュータが実行することを特徴とする受注入力方法。
【請求項８】
顧客コード、商品コードおよび受注数の入力を受け付け、
前記入力を受け付けた商品コードに対応するロット番号のうち、当該ロット番号に対応する製造情報が前記入力を受け付けた顧客コードに設定された引当条件に該当するロット番号を抽出し、
前記入力を受け付けた受注数に抽出されたロット番号の在庫から引き当てる引当数の入力を受け付ける、
処理をコンピュータに実行させることを特徴とする受注入力プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、受注入力装置、受注入力方法及び受注入力プログラムに関する。
【背景技術】
【０００２】
商品の受発注や出荷の管理を行う販売管理アプリケーションでは、商品の注文を受け付けた際に、注文商品の在庫を引き当てる処理が行われている。在庫引当は、受注した商品ごとに受注数量の商品を在庫から引き当てるものである。単純に在庫数量の管理を行う場合は、商品の受注数分だけ当該商品の在庫数を減らし、商品の出荷を行うといったことが行われる。また、商品の期限管理等が必要な場合には、在庫商品ごとに属性情報を持たせ、たとえば製造年月日が早い商品から先に出荷するように先入れ先出しの考えで在庫引当を行うといったことも行われている。
【０００３】
例えば、特許文献１においては、顧客の属性情報や商品の識別情報などに基づいて、顧客の属性に即した商品の在庫引当を行うといった方法も開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１０５７９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
トレーサビリティや品質管理の観点から、例えば同一の工場ラインで同一日に製造された商品にはおなじロット番号を商品に付与するといった商品のロット管理が行われている。ロット番号と関連付けて、製造日や製造工場ラインなどの情報を記録しておくことで、ロット番号から商品の情報を知ることができるため、ロット番号を基準にした、トレーサビリティ管理や、期限管理を行うことができる。
【０００６】
しかし、特定の条件を満たすロット番号の商品を特定の顧客の受注時に引き当てるといった、ロット番号を基準にした在庫引当を行いたい場合であっても、従来の方法では商品単位で在庫引当を行うため、たとえば、ロット番号が早い商品を先に引き当てる、特定のロット番号が付与された商品を先に引き当てる、といった商品を基準にした在庫引当しか行えず、ロットを基準にした在庫引当が行えないといった課題がある。
【０００７】
１つの側面では、本発明は、ロットを基準とした在庫引当を実現することができる受注入力装置、受注入力方法及び受注入力プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
一態様では、受注入力装置は、顧客コード、商品コードおよび受注数の入力を受け付ける受注情報受付部と、前記受注情報受付部に入力された商品コードに対応するロット番号のうち、当該ロット番号に対応する製造情報が前記受注情報受付部に入力された顧客コードに設定された引当条件に該当するロット番号を抽出するロット抽出部と、前記受注情報受付部に入力された受注数に前記ロット抽出部により抽出されたロット番号の在庫から引き当てる引当数の入力を受け付ける在庫引当受付部と、を有する。
【発明の効果】
【０００９】
ロットを基準とした在庫引当を実現することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１に係るサーバ装置１０の機能的構成の一例を示すブロック図である。
【図２】図２は、受注入力画面の一例を示す図である。
【図３】図３は、受注情報１３Ａ１の一例を示す図である。
【図４】図４は、受注情報１３Ａ２の一例を示す図である。
【図５】図５は、引当条件情報１３Ｂの一例を示す図である。
【図６】図６は、ロット情報１３Ｃの一例を示す図である。
【図７】図７は、ロット情報の抽出遷移の一例を示す図である。
【図８】図８は、ロット在庫画面の一例を示す図である。
【図９】図９は、引当情報１３Ｄの一例を示す図である。
【図１０】図１０は、受注入力画面の他の一例を示す図である。
【図１１】図１１は、実施例１に係る受注入力処理の手順を示すフローチャートである。
【図１２】図１２は、実施例１に係るロット抽出処理の手順を示すフローチャートである。
【図１３】図１３は、実施例１に係るロット判定処理の手順を示すフローチャートである。
【図１４】図１４は、実施例１に係る在庫引当判定処理の手順を示すフローチャートである。
【図１５】図１５は、コンピュータのハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照して本願に係る受注入力装置、受注入力方法及び受注入力プログラムについて説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１２】
［システム構成］
図１は、実施例１に係るサーバ装置１０の機能的構成の一例を示すブロック図である。図１に示す販売管理システム１は、あくまで１つの側面として、販売管理に関する各種の機能、例えば売上、請求、売掛、受注、発注、引当、入荷、出荷あるいは在庫管理などの機能がパッケージ化された販売管理サービスを提供するものである。
【００１３】
図１に示すように、販売管理システム１には、サーバ装置１０と、クライアント端末５０とが含まれ得る。これらサーバ装置１０及びクライアント端末５０は、ネットワークＮＷを介して通信可能に接続される。ネットワークＮＷには、有線または無線を問わず、インターネットやＬＡＮ（Local  Area  Network）などの任意の種類の通信網が採用されることとしてもかまわない。なお、図１には、あくまで説明の便宜上、１つのサーバ装置１０につき１つのクライアント端末５０が接続される例を図示したが、１つのサーバ装置１０につき複数のクライアント端末５０が接続されることを妨げない。
【００１４】
サーバ装置１０は、上記の販売管理サービスを提供するコンピュータの一例である。
【００１５】
一実施形態として、サーバ装置１０は、パッケージソフトウェア又はオンラインソフトウェアとして、上記の販売管理サービスに対応する機能を実現する販売管理プログラムを任意のコンピュータにインストールさせることによって実装できる。例えば、サーバ装置１０は、上記の販売管理サービスに関する機能をオンプレミスに提供するサーバとして実装することができる。これに限定されず、サーバ装置１０は、ＳａａＳ（Software  as  a  Service）型の販売管理アプリケーションとして実装することで、上記の販売管理サービスをクラウドサービスとして提供することとしてもかまわない。
【００１６】
このような販売管理サービスのあくまで一例として、下記に挙げる複数の機能がパッケージで提供される例を挙げて以下の説明を行う。上記の販売管理サービスとして、販売管理で標準とされる「売上」、「請求」、「売掛」を始め、「受注」、「発注」、「引当」、「入荷」、「出荷」、あるいは「在庫管理」などの機能がパッケージ化される。例えば、上記の「受注」では、商品の注文受付時に注文に関する各種の情報、例えば取引先や期限、商品などの伝票項目に対応するデータを入力する「受注入力」といった機能の他、当該注文に在庫の商品を引き当てる「在庫引当」といった機能が提供される。
【００１７】
クライアント端末５０は、上記の販売管理サービスの提供を受けるクライアントにより使用されるコンピュータの一例に対応する。このようなクライアントのあくまで一例として、販売管理に携わる事業者等の組織やそれに所属する関係者全般が挙げられる。例えば、クライアント端末５０の具体的なユーザの一例としては、卸売業者のオペレータなどが挙げられる。クライアント端末５０は、サーバ装置１０により提供されるサービスを利用できる端末であれば、如何なるハードウェア構成を備えるものであってかまわない。あくまで一例として、クライアント端末５０には、デスクトップ型またはラップトップ型のパーソナルコンピュータなどが対応する。これはあくまで一例であり、クライアント端末５０は、携帯端末装置やウェアラブル端末などの任意のコンピュータであってかまわない。
【００１８】
［課題の一側面］
上記の背景技術の欄で説明した通り、上記の特許文献１を始めとする従来技術は、あくまで在庫引当を品目や製造日という粗い粒度で行うものに過ぎないので、顧客満足度が低下する状況が避けられない場合がある。
【００１９】
例えば、同じ品目の商品であったとしてもその商品が製造される工場やラインは異なる場合がある。このとき、商品を仕入れる顧客によって相応しい在庫も異なる。あくまで１つの側面として、全品回収のリスクを回避することを優先する顧客であれば、同じ品目の商品であったとしても、異なる工場、あるいは異なるラインで製造された商品を分散して仕入れたい実状がある。他の側面として、商品の均一な品質を優先する顧客であれば、同一の工場、あるいは同一のラインで製造された商品に統一して商品を仕入れたい実状がある。
【００２０】
このような実状があるにもかかわらず、上記の従来技術では、製造年月日が早い商品から先に出荷するように先入れ先出しの考えで在庫引当を行うことしかできないので、次に挙げる不具合が起こることがある。例えば、リスク回避優先の顧客に同一の工場、さらには同一のラインで製造された在庫を引き当てたり、均一品質優先の顧客に異なる工場、さらには異なるラインで製造された在庫を引き当てたりする場合がある。このように顧客のニーズに反する在庫引当が行われた場合、個々の商品の品質が十分であっても在庫引当が一因となって顧客満足度が低下することがある。
【００２１】
［課題解決のアプローチの一側面］
そこで、本実施例に係る受注入力機能では、製品の生産管理でトレーサビリティや品質管理の側面から用いられる「ロット」と呼ばれる単位を基準とした在庫引当を実現するというアプローチを採用する。以下、本実施例では、同一の工場ラインで同一日に製造される商品に同じロット番号が付与されることとして説明を行うこととする。
【００２２】
すなわち、本実施例に係る受注入力機能では、ロットを基準にした在庫引当を実現するために、ロットおよび顧客ごとに引当条件を設定できるようにする。そして、受注入力の際に、引当条件に応じて引当可能なロットを自動的に抽出し、ロットごとに在庫引当が行えるようにする。さらに、ロットごとの受注数入力の際に、引当条件のチェックを行う。
【００２３】
このような受注入力や在庫引当の仕組みを実現し、トレーサビリティ管理や期限管理の観点で上記の引当条件を設定すれば、取引ルールに即した形でのロットを基準にした在庫引当が可能となる。例えば、リスク回避優先の顧客に異なるロットの在庫を引き当てたり、均一品質優先の顧客に同一ロットの在庫を引き当てたりといった在庫引当を実現できる。この結果、在庫引当によって顧客満足度を向上させることも可能になる。
【００２４】
［サーバ装置の構成］
次に、本実施例に係る受注入力機能を搭載するサーバ装置１０の機能的構成について説明する。図１に示すように、サーバ装置１０は、通信インタフェース１１と、記憶部１３と、制御部１５とを有する。なお、図１には、データの授受の関係を表す実線が示されているが、説明の便宜上、最小限の部分について示されているに過ぎない。すなわち、各処理部に関するデータの入出力は、図示の例に限定されず、図示以外のデータの入出力、例えば処理部及び処理部の間、処理部及びデータの間、並びに、処理部及び外部装置の間のデータの入出力が行われることとしてもかまわない。
【００２５】
通信インタフェース１１は、他の装置、例えばクライアント端末５０との間で通信制御を行うインタフェースである。
【００２６】
あくまで一例として、通信インタフェース１１には、ＬＡＮカードなどのネットワークインタフェースカードを採用することができる。例えば、通信インタフェース１１は、クライアント端末５０から受注伝票に関する各種の入力や在庫引当に関する各種の操作を受け付けたり、また、受注伝票や在庫引当、在庫引当のチェック結果に関する各種の画面をクライアント端末５０へ送信したりする。
【００２７】
記憶部１３は、制御部１５で実行されるＯＳ（Operating  System）を始め、上記の販売管理プログラム、あるいは上記の受注入力機能がモジュール化された受注入力プログラムなどの各種プログラムに用いられるデータを記憶する機能部である。
【００２８】
あくまで一例として、記憶部１３は、サーバ装置１０における補助記憶装置に対応する。例えば、ＨＤＤ（Hard  Disk  Drive）、光ディスクやＳＳＤ（Solid  State  Drive）などが補助記憶装置に対応する。この他、ＥＰＲＯＭ（Erasable  Programmable  Read  Only  Memory)などのフラッシュメモリも補助記憶装置に対応する。
【００２９】
記憶部１３は、制御部１５で実行されるプログラムに用いられるデータの一例として、受注情報１３Ａと、引当条件情報１３Ｂと、ロット情報１３Ｃと、引当情報１３Ｄとを記憶する。これらのデータ以外にも、上記の受注入力プログラムによって参照または生成が行われるデータ、例えば上記の販売管理サービスのアカウントなどが記憶部１３に記憶されることとしてもかまわない。なお、受注情報１３Ａ、引当条件情報１３Ｂ、ロット情報１３Ｃ及び引当情報１３Ｄの説明は、各データの参照または生成が行われる制御部１５の説明と合わせて行うこととする。
【００３０】
また、図１には、あくまで一例として、上記の受注入力プログラムによって参照または生成が行われるデータを抜粋して例示したが、他のデータが記憶部１３に記憶されることを妨げない。例えば、上記の受注入力プログラム以外の他のプログラム、例えばパッケージソフトである販売管理プログラムなどによって参照または生成されるデータが記憶されることとしてもよい。
【００３１】
制御部１５は、サーバ装置１０の全体制御を行う機能部である。
【００３２】
一実施形態として、制御部１５は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などのハードウェアプロセッサにより実装することができる。ここでは、プロセッサの一例として、ＣＰＵやＭＰＵを例示したが、汎用型および特化型を問わず、任意のプロセッサにより実装することができる。この他、制御部１５は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などのハードワイヤードロジックによって実現されることとしてもかまわない。
【００３３】
制御部１５は、上記の受注入力プログラムを実行することにより、図示しない主記憶装置として実装されるＤＲＡＭ（Dynamic  Random  Access  Memory）などのＲＡＭのワークエリア上に図１に示す処理部を仮想的に実現する。なお、ここでは、上記の販売管理サービスとしてパッケージ化される機能のうち上記の受注入力機能に対応する受注入力プログラムが実行される例を挙げるが、サーバ装置１０上で動作するプログラムはこれに限定されない。例えば、上記の販売管理プログラムのパッケージソフトウェアが実行されることとしてもよいし、上記の販売管理サービスのうち任意の機能を抜粋してプログラムモジュールとして実行されたり、あるいはライブラリとして参照されたりすることとしてもかまわない。
【００３４】
例えば、制御部１５は、図１に示すように、受注情報受付部１５Ａと、ロット抽出部１５Ｂと、在庫引当受付部１５Ｃと、在庫引当判定部１５Ｄとを有する。
【００３５】
受注情報受付部１５Ａは、受注情報を受け付ける処理部である。
【００３６】
あくまで一例として、受注情報受付部１５Ａは、上記の販売管理サービスのアカウントの認証に成功したクライアント端末５０から受注伝票の作成リクエストを受け付けることができる。例えば、受注情報受付部１５Ａは、クライアント端末５０に表示されたメニュー画面上で「受注入力」のアイコンなどの押下操作を受け付けた場合、図２に示す受注入力画面をクライアント端末５０に表示させる。この受注入力画面に対する入力操作を介して、受注情報受付部１５Ａは、顧客情報や予定日情報、受注商品情報などの受注情報の入力を受け付ける。
【００３７】
［受注入力画面］
図２は、受注入力画面の一例を示す図である。図２に示すように、受注入力画面２００には、各種のＧＵＩ（Graphical  User  Interface）コンポーネントが含まれる。例えば、受注入力画面２００には、受注伝票番号、受注日、得意先（顧客）、出荷予定日、納品予定日および検収予定日などといった項目ごとに対応付けてテキストボックス２１０、２２０、２３０及び２４０Ａ〜２４０Ｃが配置される。
【００３８】
ここで、「受注伝票番号」とは、受注伝票に採番される識別情報の一例を指し、例えば、記憶部１３に記憶された受注情報１３Ａに新規の受注伝票のエントリが作成された段階で自動的に採番される。「受注日」とは、商品の注文を受け付けた日付を指す。「得意先（顧客）」とは、顧客の名称を指し、例えば、コンピュータ上では、図示しない顧客マスタ等に顧客名に対応付けて登録された顧客コードによって識別される。「出荷予定日」とは、顧客への商品の出荷が予定された日付を指す。「納品予定日」とは、顧客への商品の納品が予定された日付を指す。「検収予定日」とは、顧客先での商品の検収が予定された日付を指す。
【００３９】
例えば、「受注日」に対応するテキストボックス２２０には、受注入力画面２００が生成された日付が自動的に入力される。当然のことながら、テキストボックス２２０に入力された日付の値は、テンキー等を介して編集できることは言うまでもない。
【００４０】
また、「得意先（顧客）」は、顧客情報の一例に対応する。例えば、テキストボックス２３０に顧客コードがテキスト入力されることにより、顧客コードに対応する顧客名が顧客マスタから検索された上でテキストボックス２３０Ａへ自動的に入力される。これも当然のことながら、テキストボックス２３０Ａに顧客名をテキスト入力させることにより、顧客名に対応する顧客コードを顧客マスタから検索させた上でテキストボックス２３０へ入力させることとしてもかまわない。なお、図２には、顧客情報を入力するＧＵＩコンポーネントとして、テキストボックスを挙げたが、これはあくまで一例に過ぎず、プルダウンメニューやコンボボックスなどの他のＧＵＩコンポーネントを用いることとしてもかまわない。
【００４１】
また、「出荷予定日」、「納品予定日」及び「検収予定日」は、予定日情報の一例に対応する。例えば、テキストボックス２４０Ａ〜２４０Ｃを介して日付のテキスト入力を受け付けることにより、「出荷予定日」、「納品予定日」及び「検収予定日」を含む予定情報を入力させることができる。なお、図２には、予定情報を入力するＧＵＩコンポーネントとして、テキストボックスを挙げたが、これはあくまで一例に過ぎず、カレンダー付きの日付入力ウィジェットやプルダウンメニューなどの他のＧＵＩコンポーネントを用いることとしてもかまわない。
【００４２】
これら顧客情報や予定情報を入力させるＧＵＩコンポーネントの他にも、受注入力画面２００には、受注商品情報の入力を受け付けるテーブル２５０が含まれ得る。図２に示すように、テーブル２５０では、あくまで一例として、行単位で受注商品情報の入力を受け付ける。すなわち、テーブル２５０の行方向には、左から順に、「商品コード」及び「商品名」の入力欄と、「受注数」の入力欄と、「受注単価」の入力欄と、「ロット番号」の入力欄とが配置されている。
【００４３】
例えば、「商品コード」または「商品名」のいずれか一方の入力欄に値が入力されると、図示しない商品マスタ等から他方を検索することにより他方が自動的に入力される。さらに、「受注単価」も商品によって定まるので、「受注単価」の入力欄にも商品マスタ、あるいは時期や顧客別に商品の単価が登録された単価マスタ（不図示）等から検索された受注単価の値を自動的に入力することができる。また、「受注数」の入力欄には、テンキー等を介して数値が入力される。これら「商品名」又は「商品コード」と「受注数」との入力欄に値が設定された場合、受注単価と受注数から「受注金額」が計算可能であるので、「受注金額」の入力欄にも計算結果、すなわち受注単価及び受注数の乗算値を自動的に入力することができる。なお、「ロット番号」は、在庫引当に用いられる入力欄であるので、その説明は後述する。
【００４４】
このように、受注入力画面２００に入力された顧客情報、予定日情報および受注商品情報に対応する新規のエントリが記憶部１３に記憶された受注情報１３Ａに追加される。例えば、受注情報受付部１５Ａは、受注伝票番号を所定のルールに従って採番し、当該受注伝票番号に対応付けて顧客情報、予定日情報および受注商品情報に対応する新規のエントリを受注情報１３Ａに追加する。このとき、受注情報受付部１５Ａは、顧客情報、予定日情報および受注商品情報のうち、顧客情報および予定日情報に関するエントリを受注情報１３Ａ１に追加すると共に、受注商品情報に関するエントリを受注情報１３Ａ１に追加する。
【００４５】
例えば、図２に示す顧客情報、予定日情報および受注商品情報の入力が行われた場合、受注情報受付部１５Ａは、受注伝票番号のあくまで一例として「ＪＵ００００１」を採番する。
【００４６】
［受注情報１３Ａ１］
その上で、受注情報受付部１５Ａは、図２に示す受注入力画面２００に入力された顧客情報および予定日情報に対応するエントリを受注情報１３Ａ１に追加する。これによって、受注情報１３Ａ１は、図３に示す状態に更新される。図３は、受注情報１３Ａ１の一例を示す図である。すなわち、受注情報受付部１５Ａは、受注伝票番号「ＪＵ００００１」に、テキストボックス２２０の入力値「２０１８／１０／１」、テキストボックス２３０の入力値「Ｃ０００１」、テキストボックス２４０Ａの入力値「２０１８／１０／２」、テキストボックス２４０Ｂの入力値「２０１８／１０／３」及びテキストボックス２４０Ｃの入力値「２０１８／１０／３」が対応付けられたエントリを受注情報１３Ａ１に生成する。これによって、受注情報１３Ａ１には、図３に示すように、上から１番目の受注伝票番号「ＪＵ００００１」のエントリが追加される。
【００４７】
［受注情報１３Ａ２］
さらに、受注情報受付部１５Ａは、図２に示す受注入力画面２００のテーブル２５０の行ごとに当該行に対応する受注商品情報のエントリを受注情報１３Ａ２に追加する。これによって、受注情報１３Ａ２は、図４に示す状態に更新される。図４は、受注情報１３Ａ２の一例を示す図である。例えば、テーブル２５０の１行目の例で言えば、受注情報受付部１５Ａは、受注伝票番号「ＪＵ００００１」に、商品コードの入力欄の値「３０００１」、受注数の入力欄の値「５０」及び受注金額の入力欄の値「５，０００」が対応付けられたエントリを受注情報１３Ａ２に生成する。これによって、受注情報１３Ａ２には、図４に示すように、上から１番目のエントリが追加される。さらに、テーブル２５０の２行目の例で言えば、受注情報受付部１５Ａは、受注伝票番号「ＪＵ００００１」に、商品コードの入力欄の値「３０００２」、受注数の入力欄の値「４０」及び受注金額の入力欄の値「４，４００」が対応付けられたエントリを受注情報１３Ａ２に生成する。これによって、受注情報１３Ａ２には、図４に示すように、上から２番目のエントリが追加される。さらに、テーブル２５０の３行目の例で言えば、受注情報受付部１５Ａは、受注伝票番号「ＪＵ００００１」に、商品コードの入力欄の値「３０００３」、受注数の入力欄の値「１０」及び受注金額の入力欄の値「１，２００」が対応付けられたエントリを受注情報１３Ａ２に生成する。これによって、受注情報１３Ａ２には、図４に示すように、上から３番目のエントリが追加される。
【００４８】
ロット抽出部１５Ｂは、受注商品のロットのうち引当条件に適合するロットを抽出する処理部である。
【００４９】
あくまで一例として、ロット抽出部１５Ｂは、受注入力画面２００のテーブル２５０に含まれる商品のうち、在庫引当を行う商品の選択を受け付けた場合、引当条件に適合するロット抽出を実行する。例えば、ロット抽出部１５Ｂは、受注入力画面２００のテーブル２５０に表示された行が選択された状態でロットボタン２６０Ａの操作を受け付けた場合、選択中の行に対応する商品を在庫引当を行う商品として引当条件に適合するロット抽出を開始する。
【００５０】
より詳細には、ロット抽出部１５Ｂは、記憶部１３に記憶された受注情報１３Ａ１のうち受注入力画面２００を介して登録が行われたエントリに対応する顧客コードを取得する。さらに、ロット抽出部１５Ｂは、記憶部１３に記憶された引当条件情報１３Ｂに含まれる引当条件のうち、先に取得した顧客コードに対応する引当条件を取得する。さらに、ロット抽出部１５Ｂは、受注入力画面２００のテーブル２５０で選択中である行に対応する商品コードを在庫引当を行う商品として取得する。その上で、ロット抽出部１５Ｂは、記憶部１３に記憶されたロット情報１３Ｃのうち、先に取得した商品コードに対応するロット情報群を取得する。
【００５１】
ここで、引当条件情報１３Ｂおよびロット情報１３Ｃの一例を挙げる。
【００５２】
［引当条件情報１３Ｂ］
図５は、引当条件情報１３Ｂの一例を示す図である。図５に示すように、引当条件情報１３Ｂには、顧客コードごとに、ロット条件、工場ライン条件、出荷日条件、納品日条件および検収日条件が対応付けられたデータを採用できる。
【００５３】
ここで言う「ロット条件」とは、ロットを指定する条件を指す。例えば、「ロット条件」には、「なし」、「同一ロット」、「複数ロット」および「同月出荷商品と同一ロット」などの種類の条件が設定される。このうち、「なし」は、ロットを指定しない無条件を指す。「なし」がロット条件に設定される場合、任意のロット番号の在庫が引き当てられることが許容される。また、「同一ロット」は、受注に引き当てる在庫のロット番号を同一のロット番号で統一する条件を指す。「同一ロット」が設定される場合、複数のロット番号が混在することが禁止される。また、「複数ロット」は、受注に引き当てる在庫のロット番号に複数のロット番号が含まれる条件を指す。「複数ロット」が設定される場合、単一のロット番号しか含まれない状態が禁止される。また、「同月出荷商品と同一ロット」とは、先行の受注の履歴が同月内にある場合に先行の受注時に出荷された商品のロット番号と同一のロット番号の在庫を引き当てる条件を指す。
【００５４】
また、「工場ライン条件」とは、工場ラインを指定する条件を指す。例えば、「工場ライン条件」には、「なし」、「工場＋ライン」および「同一工場」などの種類の条件が設定される。このうち、「なし」は、工場ラインを指定しない無条件を指す。「なし」が工場ライン条件に設定される場合、任意の工場かつ任意のラインの在庫が引き当てられることが許容される。また、「工場＋ライン」は、工場およびラインを指定する条件を指す。あくまで一例として、「Ａ工場第１ライン」が工場ライン条件に設定される場合、Ａ工場の第１ライン以外で製造された商品の在庫を引き当てることが禁止される。また、「同一工場」は、受注に引き当てる在庫を同一の工場で製造されたものに統一する条件を指す。「同一工場」が工場ライン条件に設定される場合、複数の工場で製造された商品の在庫が混在することが禁止される。
【００５５】
また、「出荷日条件」、「納品日条件」及び「検収日条件」とは、出荷日、納品日または検収日を指定する条件を指す。例えば、「出荷日条件」、「納品日条件」及び「検収日条件」には、「製造日からＮ（自然数）日まで」といったフォーマットで製造日から在庫引当を許可する期間の日数Ｎを条件として設定させることができる。なお、当然のことながら、出荷日、納品日または検収日を指定しない無条件である「なし」を設定することができるのも言うまでもない。
【００５６】
［ロット情報１３Ｃ］
図６は、ロット情報１３Ｃの一例を示す図である。図６に示すように、ロット情報１３Ｃには、商品コード、ロット番号、在庫数、引当数、製造工場、製造ライン、製造日および有効期限などの項目が対応付けられたデータが採用される。
【００５７】
ここで言う「ロット番号」とは、ロットを識別する識別情報の一例を指す。上述の通り、同一の工場ラインで同一日に製造される商品には同じロット番号が付与されると共に、同一の商品の間でも製造日が早い商品ほど小さい番号が付与される。あくまで一例として、「ロット番号」には、工場とラインの識別子が埋め込まれた番号が採番される例を挙げる。例えば、末尾３桁目の英文字「Ａ」が工場名を指し、末尾２桁目および末尾１桁目の数字がライン番号を指すこととする。ロット番号が「Ａ１１１Ａ０１」である場合、Ａ工場第１ラインで製造された商品であることを意味する。
【００５８】
また、「在庫数」とは、在庫の個数を指す。ここでは、あくまで一例として、バラの個数で表記する例を挙げるが、段ボールやパレットなどの梱包の単位の個数で表記することとしてもかまわない。また、「引当数」とは、受注に引き当てられた在庫の個数を指す。また、「製造工場」とは、商品が製造された工場を指す。また、「製造ライン」とは、商品が製造されたラインを指す。また、製造日は、商品が製造された日付を指す。さらに、「有効期限」とは、商品が有効である期限を指し、例えば、消費期限や賞味期限等が対応する。
【００５９】
ロット抽出の説明に戻り、商品コードに対応するロット情報群が取得された後、ロット抽出部１５Ｂは、取得したロット情報ごとに、工場ライン条件、出荷日条件、納品日条件および検収日条件を満たすか否かのチェックを実行する。
【００６０】
例えば、ロット抽出部１５Ｂは、ロット情報が顧客コードに対応する引当条件のうち工場ライン条件を満たすか否かを判定する。このとき、工場ライン条件を満たす場合、ロット抽出部１５Ｂは、ロット情報が顧客コードに対応する引当条件のうち出荷日条件を満たすか否かをさらに判定する。そして、出荷日条件を満たす場合、ロット抽出部１５Ｂは、ロット情報が顧客コードに対応する引当条件のうち納品日条件を満たすか否かをさらに判定する。このとき、納品日条件を満たす場合、ロット抽出部１５Ｂは、ロット情報が顧客コードに対応する引当条件のうち検収日条件を満たすか否かをさらに判定する。そして、検収日条件も満たす場合、ロット抽出部１５Ｂは、引当条件に適応するロットと判定する。一方、工場ライン条件、出荷日条件、納品日条件または検収日条件のいずれか１つでも満たさない場合、ロット抽出部１５Ｂは、引当条件に適応しないロットと判定する。以下、引当条件に適応するロットのことを「適応ロット」と記載する一方で、引当条件に適応しないロットのことを「不適応ロット」と記載する場合がある。
【００６１】
このような工場ライン条件、出荷日条件、納品日条件および検収日条件のチェックがロット情報ごとに実行される。その後、全てのロット情報のチェックが終了すると、ロット抽出部１５Ｂは、ロット条件が設定されているか否か、すなわちロット条件が「なし」以外であるか否かを判定する。このとき、ロット条件が設定されている場合、ロット抽出部１５Ｂは、適応ロットのロット情報のうち、ロット条件を満たすロット情報をさらに抽出する。その上で、ロット抽出部１５Ｂは、抽出後のロット情報を有効期限が早い順にソートし、該ソートされたロット情報の一覧をクライアント端末５０に表示させる。なお、ロット条件が設定されていない場合、当然のことながら、ロット条件を満たすロット情報を抽出する処理はスキップされる。
【００６２】
［ロット抽出の具体例］
ここで、ロット抽出について具体例を挙げて説明する。あくまで一例として、図２に示す受注入力画面２００のテーブル２５０の１行目が選択された状態でロットボタン２６０Ａの操作を受け付けた場面を例に挙げる。
【００６３】
この場合、図３に示す受注情報１３Ａ１のうち、受注入力画面２００を介して登録が行われたエントリ、すなわち１行目のエントリに対応する顧客コード「Ｃ０００１」が取得される。さらに、図５に示す引当条件情報１３Ｂに含まれる引当条件のうち、先に取得した顧客コード「Ｃ０００１」に対応する引当条件、すなわち１行目のレコードが取得される。つまり、ロット条件「同一ロット」、工場ライン条件「Ａ工場第１ライン」、出荷日条件「製造日から７日まで」、納品日条件「製造日から１０日まで」および検収日条件「製造日から１３日まで」が顧客コード「Ｃ０００１」の引当条件として取得される。さらに、受注入力画面２００のテーブル２５０で選択中である１行目に対応する商品コード「３０００１」が取得される。
【００６４】
その上で、図６に示すロット情報１３Ｃのうち、先に取得した商品コード「３０００１」に対応する５つのロット情報が取得される。図７は、ロット情報の抽出遷移の一例を示す図である。図７には、説明の便宜上、工場ライン条件、出荷日条件、納品日条件および検収日条件ごとに各ロット情報の間でチェックが並列して実行される様子が示されている。図７に示すように、図６に示すロット情報１３Ｃのうち、先に取得した商品コード「３０００１」に対応する５つのロット情報が取得される（ステップＳ１）。以下、商品コード「３０００１」に対応する５つのロット情報を各ロット情報が持つロット番号で識別しながら説明を行う。
【００６５】
（１）工場ライン条件のチェック
続いて、ロット番号「Ａ１１１Ａ０１」、「Ａ１１２Ａ０１」、「Ａ１１３Ａ０１」、「Ａ１１４Ａ０１」及び「Ａ１１５Ｂ０１」に対応する５つのロット情報ごとに、工場ライン条件「Ａ工場第１ライン」のチェックが行われる。すなわち、工場ライン条件「Ａ工場第１ライン」に従ってＡ工場第１ラインで製造されたロット情報が抽出される。ここで、５つのロット情報のうちロット番号「Ａ１１５Ｂ０１」のロット情報は、商品コード「３０００１」の商品ではあるものの、Ａ工場ではなく、Ｂ工場で製造されたロットであるので、不適応ロットと判定される。一方、ロット番号「Ａ１１１Ａ０１」、「Ａ１１２Ａ０１」、「Ａ１１３Ａ０１」及び「Ａ１１４Ａ０１」に対応する４つのロット情報は、工場ライン条件「Ａ工場第１ライン」を満たすので、当該４つのロット情報に次のチェックが行われる。
【００６６】
（２）出荷日条件のチェック
次に、ロット番号「Ａ１１１Ａ０１」、「Ａ１１２Ａ０１」、「Ａ１１３Ａ０１」及び「Ａ１１４Ａ０１」に対応する４つのロット情報ごとに、出荷日条件「製造日から７日まで」のチェックが行われる。ここで、ロット番号「Ａ１１１Ａ０１」、「Ａ１１２Ａ０１」、「Ａ１１３Ａ０１」及び「Ａ１１４Ａ０１」の製造日は、「２０１８／９／２１」、「２０１８／９／２７」、「２０１８／９／２８」及び「２０１８／９／２８」である。一方、受注で指定された出荷予定日は、図２に示す受注入力画面２００の通り、「２０１８／１０／２」ある。このうち、ロット番号「Ａ１１１Ａ０１」の製造日「２０１８／９／２１」は、出荷予定日「２０１８／１０／２」の１１日前であり、製造日から７日までの条件指定を超えるので、不適応ロットと判定される。一方、ロット番号「Ａ１１２Ａ０１」、「Ａ１１３Ａ０１」及び「Ａ１１４Ａ０１」に対応する３つのロット情報の製造日の７日以内に出荷予定日が含まれる。このように、ロット番号「Ａ１１２Ａ０１」、「Ａ１１３Ａ０１」及び「Ａ１１４Ａ０１」に対応する３つのロット情報は、出荷日条件「製造日から７日まで」を満たすので、次のチェックに移行する。
【００６７】
（３）納品日条件のチェック
次に、ロット番号「Ａ１１２Ａ０１」、「Ａ１１３Ａ０１」及び「Ａ１１４Ａ０１」に対応する３つのロット情報ごとに、納品日条件「製造日から１０日まで」のチェックが行われる。ここで、ロット番号「Ａ１１２Ａ０１」、「Ａ１１３Ａ０１」及び「Ａ１１４Ａ０１」の製造日は、「２０１８／９／２７」、「２０１８／９／２８」及び「２０１８／９／２８」である。一方、受注で指定された納品予定日は、図２に示す受注入力画面２００の通り、「２０１８／１０／３」ある。このため、ロット番号「Ａ１１２Ａ０１」、「Ａ１１３Ａ０１」及び「Ａ１１４Ａ０１」に対応する３つのロット情報の製造日から１０日以内に納品予定日が含まれる。このように、ロット番号「Ａ１１２Ａ０１」、「Ａ１１３Ａ０１」及び「Ａ１１４Ａ０１」に対応する３つのロット情報は、納品日条件「製造日から１０日まで」を満たすので、次のチェックに移行する。
【００６８】
（４）検収日条件のチェック
次に、ロット番号「Ａ１１２Ａ０１」、「Ａ１１３Ａ０１」及び「Ａ１１４Ａ０１」に対応する３つのロット情報ごとに、検収日条件「製造日から１３日まで」のチェックが行われる。ここで、ロット番号「Ａ１１２Ａ０１」、「Ａ１１３Ａ０１」及び「Ａ１１４Ａ０１」の製造日は、「２０１８／９／２７」、「２０１８／９／２８」及び「２０１８／９／２８」である。一方、受注で指定された検収予定日は、図２に示す受注入力画面２００の通り、「２０１８／１０／３」ある。このため、ロット番号「Ａ１１２Ａ０１」、「Ａ１１３Ａ０１」及び「Ａ１１４Ａ０１」に対応する３つのロット情報の製造日から１３日以内に検収予定日が含まれる。このように、ロット番号「Ａ１１２Ａ０１」、「Ａ１１３Ａ０１」及び「Ａ１１４Ａ０１」に対応する３つのロット情報は、検収日条件「製造日から１３日まで」を満たす。
【００６９】
この結果、図７に示すように、ロット番号「Ａ１１２Ａ０１」、「Ａ１１３Ａ０１」及び「Ａ１１４Ａ０１」が適応ロットとして抽出される（ステップＳ２）。
【００７０】
（５）ロット条件のチェック
ここで、顧客コード「Ｃ０００１」に対応する引当条件には、ロット条件「同一ロット」が設定されている。このように、ロット条件に「同一ロット」が設定されている場合、受注に引き当てる在庫のロット番号に複数のロット番号が混在することが禁止される。このため、ロット番号の在庫数が受注数以上である否かがチェックされる。例えば、受注情報１３Ａ２に示す通り、受注伝票番号「ＪＵ００００１」の商品コード「３０００１」の受注数は、「５０」である。一方、ロット番号「Ａ１１２Ａ０１」の在庫数が「４０」であり、ロット番号「Ａ１１３Ａ０１」の在庫数が「６０」であり、また、ロット番号「Ａ１１４Ａ０１」の在庫数が「５０」である。これらのうち、ロット番号「Ａ１１２Ａ０１」の在庫数「４０」は、受注数「５０」未満であるので、ロット番号「Ａ１１２Ａ０１」の単独で受注に引き当てるのは困難である。一方、ロット番号「Ａ１１３Ａ０１」およびロット番号「Ａ１１４Ａ０１」の在庫数は、受注数「５０」以上であるので、ロット番号「Ａ１１３Ａ０１」またはロット番号「Ａ１１４Ａ０１」の単独で受注に引き当てることが可能である。
【００７１】
このことから、ロット番号「Ａ１１３Ａ０１」およびロット番号「Ａ１１４Ａ０１」に対応する２つのロット情報が抽出される（ステップＳ３）。その後、ロット番号「Ａ１１３Ａ０１」およびロット番号「Ａ１１４Ａ０１」に対応する２つのロット情報の一覧が図８に示すロット在庫画面としてクライアント端末５０に表示される。なお、ここでは、ロット条件を満たすロットが存在する例を挙げたが、ロット条件を満たすロットが存在しない場合、エラーメッセージ、例えば「引当可能ロットなし」などを表示させることができる。
【００７２】
図８は、ロット在庫画面の一例を示す図である。図８に示すように、ロット在庫画面３００には、在庫引当を受け付けるテーブル３１０が表示される。テーブル３１０には、ロット番号「Ａ１１３Ａ０１」およびロット番号「Ａ１１４Ａ０１」の２つの行が含まれている。さらに、テーブル３１０の行方向には、左から順に、「ロット番号」、「有効期限」、「在庫数」および「引当可能数」が表示されており、末尾には、「引当数」の入力欄が配置されている。テーブル３１０では、各行の「引当数」の入力欄を介して、行単位で在庫の引当数の入力を受け付けることができる。
【００７３】
なお、ここでは、ロット条件の一例として「同一ロット」が設定されている例を挙げたが、「複数ロット」が設定されている場合、複数のロット情報が抽出されていないならば、例えばロット情報が１つしか抽出されていないならば、エラーメッセージ、例えば「引当可能なロットが不足しています」などを表示させることができる。また、「同月出荷商品と同一ロット」が設定されている場合、顧客コードごとに出荷された商品の商品コードおよびそのロット番号が対応付けられた出荷履歴を参照して、先行の受注の履歴が同月内に存在するならば、先行の受注時に出荷された商品のロット番号と同一のロット番号のロット情報だけを抽出し、当該ロット情報の抽出に失敗する場合、エラーメッセージ、例えば「引当可能なロットが存在しません」などを表示させることができる。この他、「同月出荷商品と同一ロット」が設定された顧客コードの出荷履歴に存在するロット番号は他の顧客コードの受注に在庫を引き当てるのを禁止することもできる。
【００７４】
図１の説明に戻り、在庫引当受付部１５Ｃは、在庫引当を受け付ける処理部である。
【００７５】
あくまで一例として、在庫引当受付部１５Ｃは、ロット抽出部１５Ｂにより抽出されたロット情報の一覧上で在庫引当を行うロットおよび引当数を受け付ける。例えば、在庫引当受付部１５Ｃは、ロット在庫画面３００のテーブル３１０の中から行の選択を受け付けることにより、在庫引当を行うロットの選択を受け付ける。さらに、在庫引当受付部１５Ｃは、ロット在庫画面３００のテーブル３１０で選択中の行の「引当数」の入力欄を介して引当数の入力を受け付ける。
【００７６】
このように引当数の入力が行われた後、登録ボタン３２０Ａの操作を受け付けることにより、受注入力画面２００のテーブル２５０に含まれる商品のうち、選択中の商品の在庫引当の受付が完了する。なお、登録ボタン３２０Ａが操作されるまでに取消ボタン３２０Ｂが操作された場合には、引当数が取り消される。また、登録ボタン３２０Ａが操作されるまでに閉じるボタン３２０Ｃが操作された場合には、ロット在庫画面３００のウィンドウが閉じられる。
【００７７】
ここで、在庫引当の受付が完了すると、在庫引当受付部１５Ｃは、記憶部１３に記憶されたロット情報１３Ｃのうち、在庫引当が行われたロット番号の引当数にテーブル３１０の「引当数」の入力欄を介して入力された引当数を加算する。例えば、ロット在庫画面３００のテーブル３１０のうち１行目のロット番号「Ａ１１３Ａ０１」が選択された状態で１行目の「引当数」の入力欄に「５０」がさらに入力された状態で登録ボタン３２０Ａが操作された場合、図６に示すロット情報１３Ｃのうち、ロット番号「Ａ１１３Ａ０１」に対応するレコードが有する引当数「０」に、テーブル３１０の「引当数」の入力欄を介して入力された「５０」を加算することにより、ロット情報１３Ｃのロット番号「Ａ１１３Ａ０１」に対応するレコードが有する引当数が「５０（＝０＋５０）」に更新される。
【００７８】
さらに、在庫引当受付部１５Ｃは、記憶部１３に記憶された引当情報１３Ｄに、当該在庫引当に関する新規のエントリを生成する。
【００７９】
［引当情報１３Ｄ］
図９は、引当情報１３Ｄの一例を示す図である。図９には、ロット在庫画面３００のテーブル３１０のうち１行目のロット番号「Ａ１１３Ａ０１」が選択された状態で１行目の「引当数」の入力欄に「５０」がさらに入力された状態で登録ボタン３２０Ａが操作された場合に生成される引当情報１３Ｄのエントリが示されている。図９に示すように、引当情報１３Ｄには、受注伝票番号、ロット番号および引当数が対応付けられたデータが採用される。図９に示す引当情報１３Ｄの１行目のレコードの例で言えば、受注伝票番号「ＪＵ００００１」の受注には、ロット番号「Ａ１１３Ａ０１」の在庫のうち５０個が引き当てられたことを意味する。
【００８０】
その後、受注入力画面２００のテーブル２５０に含まれる全ての商品に在庫引当が行われるまで、在庫引当を行うロットの選択および引当数の入力が繰り返し実行される。
【００８１】
在庫引当判定部１５Ｄは、在庫引当受付部１５Ｃにより受け付けた在庫引当が引当条件を満たすか否かを判定する処理部である。
【００８２】
あくまで一例として、在庫引当判定部１５Ｄは、受注入力画面２００のテーブル２５０に含まれる全ての商品に在庫引当が行われた状態で登録ボタン２６０Ｂが操作された場合、在庫引当判定部１５Ｄは、受注商品ごとに在庫引当が引当条件を満たすか否かのチェックを実行する。なお、受注入力画面２００の登録ボタン２６０Ｂが操作されるまでに取消ボタン２６０Ｃが操作された場合には、テキストボックス２１０、２２０、２３０及び２４０Ａ〜２４０Ｃの入力値やテーブル２５０内の入力値が取り消される。また、受注入力画面２００の登録ボタン２６０Ｂが操作されるまでに終了ボタン２６０Ｄが操作された場合には、受注入力および在庫引当が終了される。
【００８３】
より詳細には、在庫引当判定部１５Ｄは、記憶部１３に記憶された受注情報１３Ａ１のうち受注入力画面２００を介して登録が行われたエントリに対応する顧客コードを取得する。さらに、在庫引当判定部１５Ｄは、記憶部１３に記憶された引当条件情報１３Ｂに含まれる引当条件のうち、先に取得した顧客コードに対応する引当条件を取得する。さらに、在庫引当判定部１５Ｄは、記憶部１３に記憶されたロット情報１３Ｃのうち在庫引当が行われたエントリの引当数と、記憶部１３に記憶された引当情報１３Ｄのうち在庫引当により新規に生成されたエントリの引当数とを取得する。
【００８４】
その上で、在庫引当判定部１５Ｄは、複数ロットに引当数が入力されているか否かを判定する。このとき、複数ロットに引当数が入力されている場合、在庫引当判定部１５Ｄは、引当条件のうちロット条件に「同一ロット」が設定されているか否かをさらに判定する。そして、ロット条件に「同一ロット」が設定されている場合、在庫引当判定部１５Ｄは、在庫引当不可であると判定する。
【００８５】
このようなチェックが実行されるのは、次のようなヒューマンエラーが生じうるからである。例えば、図８に示すロット在庫画面３００のテーブル３１０には、ロット番号「Ａ１１３Ａ０１」およびロット番号「Ａ１１４Ａ０１」の２つのロットが含まれる。これは、２つのロットに引当数を入力させるためではなく、在庫引当に２つのロットが選択肢として存在することを提示するためである。しかしながら、顧客コード「Ｃ０００１」の顧客のロット条件に「同一ロット」が設定されていることを知らなかったり、あるいは忘れていたりする場合、２つのロットがテーブル３１０に表示されることによって２つのロットに引当数を入力してしまうヒューマンエラーも起こり得る。このようなヒューマンエラーを抑制する側面から、上記のチェックが在庫引当の受付後にも改めて実施される。
【００８６】
また、複数ロットに引当数が入力されていない場合、あるいは複数ロットに引当数が入力されていてもロット条件に「同一ロット」が設定されていない場合、在庫引当判定部１５Ｄは、各ロットの引当数が各ロットの在庫数以下であるか否かのチェックを行う。このとき、各ロットの引当数が各ロットの在庫数以下でない場合、在庫引当判定部１５Ｄは、在庫引当不可であると判定する。一方、各ロットの引当数が各ロットの在庫数以下である場合、在庫引当判定部１５Ｄは、在庫引当可能であると判定する。
【００８７】
［在庫引当のチェックの一例］
あくまで一例として、受注入力画面２００のテーブル２５０に下記の在庫引当が行われた状態で登録ボタン２６０Ｂが操作された場面を例に挙げて在庫引当のチェックを行う例を説明する。このとき、テーブル２５０のうち１行目の商品コード「３０００１」の在庫引当のチェックを抜粋して説明することとし、商品コード「３０００１」の在庫引当は、ロット在庫画面３００のテーブル３１０のうち１行目のロット番号「Ａ１１３Ａ０１」が選択された状態で１行目の「引当数」の入力欄に「５０」がさらに入力された状態で登録ボタン３２０Ａが操作された場合を想定する。
【００８８】
この場合、図３に示す受注情報１３Ａ１のうち、受注入力画面２００を介して登録が行われたエントリ、すなわち１行目のエントリに対応する顧客コード「Ｃ０００１」が取得される。さらに、図５に示す引当条件情報１３Ｂに含まれる引当条件のうち、先に取得した顧客コード「Ｃ０００１」に対応する引当条件、すなわち１行目のレコードが取得される。つまり、ロット条件「同一ロット」、工場ライン条件「Ａ工場第１ライン」、出荷日条件「製造日から７日まで」、納品日条件「製造日から１０日まで」および検収日条件「製造日から１３日まで」が顧客コード「Ｃ０００１」の引当条件として取得される。さらに、ロット情報１３Ｃのうち、在庫引当が行われることにより更新されたロット番号「Ａ１１３Ａ０１」のエントリの引当数「５０」と、引当情報１３Ｄのうち在庫引当により新規に生成されたエントリの引当数「５０」とが取得される。
【００８９】
その上で、複数ロットに引当数が入力されているか否かがチェックされる。ここで、受注伝票番号「ＪＵ００００１」の受注のうち商品コード「３０００１」に対応する商品の受注に在庫引当が行われたロット情報は、ロット番号「Ａ１１３Ａ０１」のエントリしか存在しない。よって、複数ロットに引当数が入力されていないと判定される。この場合、各ロットの引当数が各ロットの在庫数以下であるか否かのチェックがさらに行われる。例えば、ロット番号「Ａ１１３Ａ０１」の在庫数は「６０」であり、引当数は「５０」である。このように、引当数が在庫数以下であるので、受注伝票番号「ＪＵ００００１」の商品コード「３０００１」に対応する商品の受注に対するロット番号「Ａ１１３Ａ０１」の在庫引当が可能であると判定される。なお、ここでは、引当数が在庫数以下である例を挙げたが、引当数が在庫数を超える場合、エラーメッセージ、例えば「引当入力数が在庫を上回っています」などを表示させることができる。
【００９０】
［在庫引当のチェックの他の一例］
他の一例として、図１０に示す受注入力画面２０１のテーブル２５０に示す在庫引当が行われた状態で登録ボタン２６０Ｂが操作される場面を例に挙げて在庫引当のチェックを行う例を説明する。図１０は、受注入力画面の他の一例を示す図である。図１０に示す受注入力画面２０１の例で言えば、顧客コード「Ｃ０００３」のＣ商店からの商品コード「３０００２」の商品の受注に対し、ロット番号「Ｂ２２１Ａ０１」の在庫を１０個引き当てると共に、ロット番号「Ｂ２２２Ａ０１」の在庫を３０個引き当てる在庫引当が行われた例が示されている。
【００９１】
この場合、図３に示す受注情報１３Ａ１のうち、受注入力画面２０１を介して登録が行われたエントリ、すなわち２行目のエントリに対応する顧客コード「Ｃ０００２」が取得される。さらに、図５に示す引当条件情報１３Ｂに含まれる引当条件のうち、先に取得した顧客コード「Ｃ０００２」に対応する引当条件、すなわち２行目のレコードが取得される。つまり、ロット条件「なし」、工場ライン条件「同一工場」、出荷日条件「なし」、納品日条件「なし」および検収日条件「製造日から７日まで」が顧客コード「Ｃ０００２」の引当条件として取得される。さらに、ロット情報１３Ｃのうち、在庫引当が行われることにより更新されたロット番号「Ｂ２２１Ａ０１」のエントリの引当数「１０」と、ロット番号「Ｂ２２２Ａ０１」のエントリの引当数「３０」とが取得される。
【００９２】
その上で、複数ロットに引当数が入力されているか否かがチェックされる。ここで、受注伝票番号「ＪＵ００００２」の受注のうち商品コード「３０００２」に対応する商品の受注に在庫引当が行われたロット情報は、ロット番号「Ｂ２２１Ａ０１」およびロット番号「Ｂ２２２Ａ０１」の２つのエントリが存在する。よって、複数ロットに引当数が入力されていると判定される。この場合、ロット条件に「同一ロット」が設定されているか否かがチェックされる。このとき、顧客コード「Ｃ０００２」のロット条件には、「なし」が設定されており、「同一ロット」は設定されていない。このため、各ロットの引当数が各ロットの在庫数以下であるか否かのチェックがさらに行われる。例えば、ロット番号「Ｂ２２１Ａ０１」の在庫数は「５０」であり、引当数は「１０」である。また、ロット番号「Ｂ２２２Ａ０１」の在庫数は「５０」であり、引当数は「３０」である。このように、いずれのロットにおいても引当数が在庫数以下であるので、受注伝票番号「ＪＵ００００２」の商品コード「３０００２」に対応する商品の受注に対するロット番号「Ｂ２２１Ａ０１」およびロット番号「Ｂ２２２Ａ０１」の在庫引当が可能であると判定される。なお、ここでは、ロット条件に「同一ロット」が設定されていない例を挙げたが、ロット条件に「同一ロット」が設定されている場合、エラーメッセージ、例えば「複数ロットに引当入力されています」などを表示させることができる。
【００９３】
なお、ここでも、「同月出荷商品と同一ロット」が設定されている場合、顧客コードごとに出荷された商品の商品コードおよびそのロット番号が対応付けられた出荷履歴を参照して、先行の受注の履歴が同月内に存在するならば、在庫引当が行われたロット番号が先行の受注時に出荷された商品のロット番号と同一のロット番号であるか否かを判定し、両者が異なる場合、エラーメッセージ、例えば「今月に出荷実績があるロット番号と異なるロット番号が引き当てられています」などを表示させることができる。
【００９４】
［処理の流れ］
図１１は、実施例１に係る受注入力処理の手順を示すフローチャートである。この処理は、あくまで一例として、クライアント端末５０に表示されたメニュー画面上で「受注入力」のアイコンなどの押下操作を受け付けた場合に開始される。
【００９５】
図１１に示すように、受注情報受付部１５Ａは、クライアント端末５０に表示させた受注入力画面に対する入力操作を介して、顧客情報や予定日情報、受注商品情報などの受注情報の入力を受け付ける（ステップＳ１０１、ステップＳ１０２及びステップＳ１０３）。
【００９６】
続いて、受注入力画面に受注商品情報として入力された商品の中から在庫引当を行う商品の選択を受け付けた場合（ステップＳ１０４）、ロット抽出部１５Ｂは、受注商品のロットのうち引当条件に適合するロットを抽出する「ロット抽出処理」を実行する（ステップＳ１０５）。
【００９７】
図１２は、実施例１に係るロット抽出処理の手順を示すフローチャートである。この処理は、図１１に示すステップＳ１０５の処理に対応する。図１２に示すように、ロット抽出部１５Ｂは、記憶部１３に記憶された受注情報１３Ａ１のうち受注入力画面を介して登録が行われたエントリに対応する顧客コードを取得する（ステップＳ３０１）。
【００９８】
さらに、ロット抽出部１５Ｂは、記憶部１３に記憶された引当条件情報１３Ｂに含まれる引当条件のうち、ステップＳ３０１で取得された顧客コードに対応する引当条件を取得する（ステップＳ３０２）。
【００９９】
さらに、ロット抽出部１５Ｂは、ステップＳ１０４で在庫引当を行う商品として選択を受け付けた商品の商品コードを取得する（ステップＳ３０３）。その上で、ロット抽出部１５Ｂは、記憶部１３に記憶されたロット情報１３Ｃのうち、ステップＳ３０３で取得された商品コードに対応するロット情報群を取得する（ステップＳ３０４）。
【０１００】
その後、ロット抽出部１５Ｂは、ステップＳ３０４で取得されたロット情報ごとに、工場ライン条件、出荷日条件、納品日条件および検収日条件を満たすか否かを判定する「ロット判定処理」を実行する（ステップＳ３０５）。
【０１０１】
図１３は、実施例１に係るロット判定処理の手順を示すフローチャートである。この処理は、図１２に示すステップＳ３０５の処理に対応する。図１３に示すように、引当条件に工場ライン条件の設定がある場合、すなわち工場ライン条件が「なし」以外である場合（ステップＳ５０１Ｙｅｓ）、ロット抽出部１５Ｂは、ロット情報が顧客コードに対応する引当条件のうち工場ライン条件を満たすか否かを判定する（ステップＳ５０２）。なお、引当条件に工場ライン条件の設定がない場合（ステップＳ５０１Ｎｏ）、上記のステップＳ５０２の処理をスキップしてステップＳ５０３の処理へ移行する。
【０１０２】
このとき、工場ライン条件を満たす場合（ステップＳ５０２Ｙｅｓ）、ロット抽出部１５Ｂは、引当条件に出荷日条件の設定があるか否か、すなわち出荷日条件が「なし」以外であるかを判定する（ステップＳ５０３）。そして、引当条件に出荷日条件の設定がある場合（ステップＳ５０３Ｙｅｓ）、ロット抽出部１５Ｂは、ロット情報が出荷日条件を満たすか否かをさらに判定する（ステップＳ５０４）。なお、引当条件に出荷日条件の設定がない場合（ステップＳ５０３Ｎｏ）、上記のステップＳ５０４の処理をスキップしてステップＳ５０５の処理へ移行する。
【０１０３】
続いて、出荷日条件を満たす場合（ステップＳ５０４Ｙｅｓ）、ロット抽出部１５Ｂは、引当条件に納品日条件の設定があるか否か、すなわち納品日条件が「なし」以外であるかを判定する（ステップＳ５０５）。そして、引当条件に納品日条件の設定がある場合（ステップＳ５０５Ｙｅｓ）、ロット抽出部１５Ｂは、ロット情報が納品日条件を満たすか否かをさらに判定する（ステップＳ５０６）。なお、引当条件に納品日条件の設定がない場合（ステップＳ５０５Ｎｏ）、上記のステップＳ５０６の処理をスキップしてステップＳ５０７の処理へ移行する。
【０１０４】
そして、納品日条件を満たす場合（ステップＳ５０６Ｙｅｓ）、ロット抽出部１５Ｂは、引当条件に検収日条件の設定があるか否か、すなわち検収日条件が「なし」以外であるかを判定する（ステップＳ５０７）。そして、引当条件に検収日条件の設定がある場合（ステップＳ５０７Ｙｅｓ）、ロット抽出部１５Ｂは、ロット情報が検収日条件を満たすか否かをさらに判定する（ステップＳ５０８）。なお、引当条件に検収日条件の設定がない場合（ステップＳ５０７Ｎｏ）、上記のステップＳ５０８の処理をスキップしてステップＳ５０９の処理へ移行する。
【０１０５】
ここで、検収日条件も満たす場合（ステップＳ５０８Ｙｅｓ）、ロット抽出部１５Ｂは、適応ロットと判定し（ステップＳ５０９）、処理を終了する。一方、工場ライン条件、出荷日条件、納品日条件または検収日条件のいずれか１つでも満たさない場合（ステップＳ５０２Ｎｏ、ステップＳ５０４Ｎｏ、ステップＳ５０６ＮｏまたはステップＳ５０８Ｎｏ）、ロット抽出部１５Ｂは、不適応ロットと判定し（ステップＳ５１０）、処理を終了する。
【０１０６】
図１２の説明に戻り、すべてのロット情報に上記のロット判定処理が実行されるまで（ステップＳ３０６Ｎｏ）、上記のロット判定処理が実行される（ステップＳ３０５）。その後、すべてのロット情報に上記のロット判定処理が実行された場合（ステップＳ３０６Ｙｅｓ）、ロット抽出部１５Ｂは、ロット条件に設定があるか否か、すなわちロット条件が「なし」以外であるか否かを判定する（ステップＳ３０７）。
【０１０７】
このとき、ロット条件が設定されている場合（ステップＳ３０７Ｙｅｓ）、ロット抽出部１５Ｂは、適応ロットのロット情報のうち、ロット条件を満たすロット情報をさらに抽出する（ステップＳ３０８）。その上で、ロット抽出部１５Ｂは、抽出後のロット情報を有効期限が早い順にソートし（ステップＳ３０９）、該ソートされたロット情報の一覧をクライアント端末５０に表示させ（ステップＳ３１０）、処理を終了する。
【０１０８】
なお、ロット条件が設定されていない場合（ステップＳ３０７Ｎｏ）、ステップＳ３０８の処理はスキップされる。この場合、適応ロットのロット情報を有効期限が早い順にソートし（ステップＳ３０９）、該ソートされたロット情報の一覧をクライアント端末５０に表示させ（ステップＳ３１０）、処理を終了する。
【０１０９】
図１１の説明に戻り、在庫引当受付部１５Ｃは、ステップＳ１０５のロット抽出処理の結果として抽出されたロット情報の一覧上で在庫引当を行うロットおよび引当数を受け付ける（ステップＳ１０６及びステップＳ１０７）。
【０１１０】
そして、受注入力画面に含まれる全ての商品に在庫引当が行われるまで（ステップＳ１０８Ｎｏ）、上記のステップＳ１０４から上記のステップＳ１０７までの処理が繰り返し実行される。
【０１１１】
その後、受注入力画面に含まれる全ての商品に在庫引当が行われた場合（ステップＳ１０８Ｙｅｓ）、在庫引当判定部１５Ｄは、上記のロット情報の一覧上で受け付けた在庫引当が引当条件を満たすか否かを判定する「在庫引当判定処理」を実行し（ステップＳ１０９）、処理を終了する。
【０１１２】
図１４は、実施例１に係る在庫引当判定処理の手順を示すフローチャートである。この処理は、図１１に示したステップＳ１０９の処理に対応する。図１４に示すように、在庫引当判定部１５Ｄは、記憶部１３に記憶された受注情報１３Ａ１のうち受注入力画面を介して登録が行われたエントリに対応する顧客コードを取得する（ステップＳ７０１）。
【０１１３】
さらに、在庫引当判定部１５Ｄは、記憶部１３に記憶された引当条件情報１３Ｂに含まれる引当条件のうち、ステップＳ７０１で取得された顧客コードに対応する引当条件を取得する（ステップＳ７０２）。
【０１１４】
さらに、在庫引当判定部１５Ｄは、記憶部１３に記憶されたロット情報１３Ｃのうち在庫引当が行われたエントリの引当数と、記憶部１３に記憶された引当情報１３Ｄのうち在庫引当により新規に生成されたエントリの引当数とを取得する（ステップＳ７０３）。
【０１１５】
その上で、在庫引当判定部１５Ｄは、複数ロットに引当数が入力されているか否かを判定する（ステップＳ７０４）。このとき、複数ロットに引当数が入力されている場合（ステップＳ７０４Ｙｅｓ）、在庫引当判定部１５Ｄは、引当条件のうちロット条件に「同一ロット」が設定されているか否かをさらに判定する（ステップＳ７０５）。
【０１１６】
そして、ロット条件に「同一ロット」が設定されている場合（ステップＳ７０５Ｙｅｓ）、在庫引当判定部１５Ｄは、在庫引当不可であると判定し（ステップＳ７０６）、処理を終了する。
【０１１７】
また、複数ロットに引当数が入力されていない場合（ステップＳ７０４Ｎｏ）、あるいは複数ロットに引当数が入力されていてもロット条件に「同一ロット」が設定されていない場合（ステップＳ７０４ＹｅｓかつステップＳ７０５Ｎｏ）、在庫引当判定部１５Ｄは、各ロットの引当数が各ロットの在庫数以下であるか否かのチェックを行う（ステップＳ７０７）。
【０１１８】
ここで、各ロットの引当数が各ロットの在庫数以下でない場合（ステップＳ７０７Ｎｏ）、在庫引当判定部１５Ｄは、在庫引当不可であると判定し（ステップＳ７０６）、処理を終了する。一方、各ロットの引当数が各ロットの在庫数以下である場合（ステップＳ７０７Ｙｅｓ）、在庫引当判定部１５Ｄは、在庫引当可能であると判定し（ステップＳ７０８）、処理を終了する。
【０１１９】
［効果の一側面］
上述してきたように、本実施例に係るサーバ装置１０は、ロットおよび顧客ごとに引当条件を設定できるようにする。そして、受注入力の際に、引当条件に応じて引当可能なロットを自動的に抽出し、ロットごとに在庫引当が行えるようにする。さらに、ロットごとの受注数入力の際に、引当条件のチェックを行う。したがって、本実施例に係るサーバ装置１０によれば、ロットを基準にした在庫引当を実現することが可能である。
【実施例２】
【０１２０】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【０１２１】
［分散および統合］
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されておらずともよい。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、受注情報受付部１５Ａ、ロット抽出部１５Ｂ、在庫引当受付部１５Ｃまたは在庫引当判定部１５Ｄをサーバ装置１０の外部装置としてネットワーク経由で接続するようにしてもよい。また、受注情報受付部１５Ａ、ロット抽出部１５Ｂ、在庫引当受付部１５Ｃまたは在庫引当判定部１５Ｄを別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記のサーバ装置１０の機能を実現するようにしてもよい。
【０１２２】
［受注入力プログラム］
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図１５を用いて、上記の実施例と同様の機能を有する受注入力プログラムを実行するコンピュータの一例について説明する。
【０１２３】
図１５は、コンピュータのハードウェア構成例を示す図である。図１５に示すように、コンピュータ１００は、操作部１１０ａと、スピーカ１１０ｂと、カメラ１１０ｃと、ディスプレイ１２０と、通信部１３０とを有する。さらに、このコンピュータ１００は、ＣＰＵ１５０と、ＲＯＭ１６０と、ＨＤＤ１７０と、ＲＡＭ１８０とを有する。これら１１０〜１８０の各部はバス１４０を介して接続される。
【０１２４】
ＨＤＤ１７０には、図１５に示すように、上記の実施例１で示した受注情報受付部１５Ａ、ロット抽出部１５Ｂ、在庫引当受付部１５Ｃ及び在庫引当判定部１５Ｄと同様の機能を発揮する受注入力プログラム１７０ａが記憶される。この受注入力プログラム１７０ａは、図１に示した受注情報受付部１５Ａ、ロット抽出部１５Ｂ、在庫引当受付部１５Ｃまたは在庫引当判定部１５Ｄの各構成要素と同様、統合又は分離してもかまわない。すなわち、ＨＤＤ１７０には、必ずしも上記の実施例１で示した全てのデータが格納されずともよく、処理に用いるデータがＨＤＤ１７０に格納されればよい。
【０１２５】
このような環境の下、ＣＰＵ１５０は、ＨＤＤ１７０から受注入力プログラム１７０ａを読み出した上でＲＡＭ１８０へ展開する。この結果、受注入力プログラム１７０ａは、図１５に示すように、受注入力プロセス１８０ａとして機能する。この受注入力プロセス１８０ａは、ＲＡＭ１８０が有する記憶領域のうち受注入力プロセス１８０ａに割り当てられた領域にＨＤＤ１７０から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、受注入力プロセス１８０ａが実行する処理の一例として、図１１〜図１４に示す処理などが含まれる。なお、ＣＰＵ１５０では、必ずしも上記の実施例１で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
【０１２６】
なお、上記の受注入力プログラム１７０ａは、必ずしも最初からＨＤＤ１７０やＲＯＭ１６０に記憶されておらずともかまわない。例えば、コンピュータ１００に挿入されるフレキシブルディスク、いわゆるＦＤ、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に受注入力プログラム１７０ａを記憶させる。そして、コンピュータ１００がこれらの可搬用の物理媒体から受注入力プログラム１７０ａを取得して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ１００に接続される他のコンピュータまたはサーバ装置などに受注入力プログラム１７０ａを記憶させておき、コンピュータ１００がこれらから受注入力プログラム１７０ａを取得して実行するようにしてもよい。
【符号の説明】
【０１２７】
１    販売管理システム
１０    サーバ装置
１１    通信インタフェース
１３    記憶部
１３Ａ  受注情報
１３Ｂ  引当条件情報
１３Ｃ  ロット情報
１３Ｄ  引当情報
１５    制御部
１５Ａ  受注情報受付部
１５Ｂ  ロット抽出部
１５Ｃ  在庫引当受付部
１５Ｄ  在庫引当判定部
５０    クライアント端末
【図１】
2020201848.tif 000003
【図２】
2020201848.tif 000004
【図３】
2020201848.tif 000005
【図４】
2020201848.tif 000006
【図５】
2020201848.tif 000007
【図６】
2020201848.tif 000008
【図７】
2020201848.tif 000009
【図８】
2020201848.tif 000010
【図９】
2020201848.tif 000011
【図１０】
2020201848.tif 000012
【図１１】
2020201848.tif 000013
【図１２】
2020201848.tif 000014
【図１３】
2020201848.tif 000015
【図１４】
2020201848.tif 000016
【図１５】
2020201848.tif 000017