(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-13
(45)【発行日】2023-02-21
(54)【発明の名称】受注入力装置、受注入力方法及び受注入力プログラム
(51)【国際特許分類】
G06Q 10/087 20230101AFI20230214BHJP
G06Q 30/06 20230101ALI20230214BHJP
B65G 1/137 20060101ALI20230214BHJP
G07G 1/12 20060101ALI20230214BHJP
【FI】
G06Q10/08 330
G06Q30/06
B65G1/137 A
G07G1/12 321Q
(21)【出願番号】P 2019109933
(22)【出願日】2019-06-12
【審査請求日】2022-03-08
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】勝見 孝司
(72)【発明者】
【氏名】米満 健
(72)【発明者】
【氏名】中瀬 暁之
(72)【発明者】
【氏名】池山 卓
(72)【発明者】
【氏名】川添 俊史
(72)【発明者】
【氏名】野口 博史
(72)【発明者】
【氏名】中村 康徳
【審査官】速水 雄太
(56)【参考文献】
【文献】特開2008-105795(JP,A)
【文献】特開2002-145418(JP,A)
【文献】特開2018-077621(JP,A)
【文献】特開2002-215980(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
B65G 1/137
G07G 1/12
(57)【特許請求の範囲】
【請求項1】
顧客コード、商品コードおよび受注数の入力を受け付ける受注情報受付部と、
前記受注情報受付部に入力された商品コードに対応するロット番号のうち、当該ロット番号に対応する製造情報が前記受注情報受付部に入力された顧客コードに設定された引当条件に該当するロット番号を抽出するロット抽出部と、
前記受注情報受付部に入力された受注数に前記ロット抽出部により抽出されたロット番号の在庫から引き当てる引当数の入力を受け付ける在庫引当受付部と、
を有することを特徴とする受注入力装置。
【請求項2】
前記在庫引当受付部に入力された引当数および前記引当数が入力されたロット番号が前記顧客コードに設定された引当条件に該当するか否かを判定する在庫引当判定部をさらに有することを特徴とする請求項1に記載の受注入力装置。
【請求項3】
前記ロット抽出部は、前記ロット番号に対応する製造工場又は製造工場ラインが前記顧客コードに前記引当条件として設定された製造工場又は製造工場ラインに該当するロット番号を抽出することを特徴とする請求項1または2に記載の受注入力装置。
【請求項4】
前記ロット抽出部は、前記ロット番号に対応する製造日が前記顧客コードに前記引当条件として設定された出荷、納品又は検収に関する期限に該当するロット番号を抽出することを特徴とする請求項1ないし3のいずれか1つに記載の受注入力装置。
【請求項5】
前記ロット抽出部は、前記顧客コードに同一のロット番号の商品の出荷が前記引当条件として設定されている場合、前記顧客コードに対応する出荷履歴に含まれるロット番号を抽出することを特徴とする請求項1ないし4のいずれか1つに記載の受注入力装置。
【請求項6】
前記在庫引当判定部は、前記在庫引当受付部に前記引当数が入力されたロット番号が前記顧客コードに対応する出荷履歴に含まれるロット番号と同一であるか否かを判定することを特徴とする請求項2に記載の受注入力装置。
【請求項7】
顧客コード、商品コードおよび受注数の入力を受け付け、
前記入力を受け付けた商品コードに対応するロット番号のうち、当該ロット番号に対応する製造情報が前記入力を受け付けた顧客コードに設定された引当条件に該当するロット番号を抽出し、
前記入力を受け付けた受注数に抽出されたロット番号の在庫から引き当てる引当数の入力を受け付ける、
処理をコンピュータが実行することを特徴とする受注入力方法。
【請求項8】
顧客コード、商品コードおよび受注数の入力を受け付け、
前記入力を受け付けた商品コードに対応するロット番号のうち、当該ロット番号に対応する製造情報が前記入力を受け付けた顧客コードに設定された引当条件に該当するロット番号を抽出し、
前記入力を受け付けた受注数に抽出されたロット番号の在庫から引き当てる引当数の入力を受け付ける、
処理をコンピュータに実行させることを特徴とする受注入力プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、受注入力装置、受注入力方法及び受注入力プログラムに関する。
【背景技術】
【0002】
商品の受発注や出荷の管理を行う販売管理アプリケーションでは、商品の注文を受け付けた際に、注文商品の在庫を引き当てる処理が行われている。在庫引当は、受注した商品ごとに受注数量の商品を在庫から引き当てるものである。単純に在庫数量の管理を行う場合は、商品の受注数分だけ当該商品の在庫数を減らし、商品の出荷を行うといったことが行われる。また、商品の期限管理等が必要な場合には、在庫商品ごとに属性情報を持たせ、たとえば製造年月日が早い商品から先に出荷するように先入れ先出しの考えで在庫引当を行うといったことも行われている。
【0003】
例えば、特許文献1においては、顧客の属性情報や商品の識別情報などに基づいて、顧客の属性に即した商品の在庫引当を行うといった方法も開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
トレーサビリティや品質管理の観点から、例えば同一の工場ラインで同一日に製造された商品にはおなじロット番号を商品に付与するといった商品のロット管理が行われている。ロット番号と関連付けて、製造日や製造工場ラインなどの情報を記録しておくことで、ロット番号から商品の情報を知ることができるため、ロット番号を基準にした、トレーサビリティ管理や、期限管理を行うことができる。
【0006】
しかし、特定の条件を満たすロット番号の商品を特定の顧客の受注時に引き当てるといった、ロット番号を基準にした在庫引当を行いたい場合であっても、従来の方法では商品単位で在庫引当を行うため、たとえば、ロット番号が早い商品を先に引き当てる、特定のロット番号が付与された商品を先に引き当てる、といった商品を基準にした在庫引当しか行えず、ロットを基準にした在庫引当が行えないといった課題がある。
【0007】
1つの側面では、本発明は、ロットを基準とした在庫引当を実現することができる受注入力装置、受注入力方法及び受注入力プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
一態様では、受注入力装置は、顧客コード、商品コードおよび受注数の入力を受け付ける受注情報受付部と、前記受注情報受付部に入力された商品コードに対応するロット番号のうち、当該ロット番号に対応する製造情報が前記受注情報受付部に入力された顧客コードに設定された引当条件に該当するロット番号を抽出するロット抽出部と、前記受注情報受付部に入力された受注数に前記ロット抽出部により抽出されたロット番号の在庫から引き当てる引当数の入力を受け付ける在庫引当受付部と、を有する。
【発明の効果】
【0009】
ロットを基準とした在庫引当を実現することができる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、実施例1に係るサーバ装置10の機能的構成の一例を示すブロック図である。
【
図2】
図2は、受注入力画面の一例を示す図である。
【
図3】
図3は、受注情報13A1の一例を示す図である。
【
図4】
図4は、受注情報13A2の一例を示す図である。
【
図5】
図5は、引当条件情報13Bの一例を示す図である。
【
図6】
図6は、ロット情報13Cの一例を示す図である。
【
図7】
図7は、ロット情報の抽出遷移の一例を示す図である。
【
図8】
図8は、ロット在庫画面の一例を示す図である。
【
図9】
図9は、引当情報13Dの一例を示す図である。
【
図11】
図11は、実施例1に係る受注入力処理の手順を示すフローチャートである。
【
図12】
図12は、実施例1に係るロット抽出処理の手順を示すフローチャートである。
【
図13】
図13は、実施例1に係るロット判定処理の手順を示すフローチャートである。
【
図14】
図14は、実施例1に係る在庫引当判定処理の手順を示すフローチャートである。
【
図15】
図15は、コンピュータのハードウェア構成例を示す図である。
【発明を実施するための形態】
【0011】
以下に添付図面を参照して本願に係る受注入力装置、受注入力方法及び受注入力プログラムについて説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例1】
【0012】
[システム構成]
図1は、実施例1に係るサーバ装置10の機能的構成の一例を示すブロック図である。
図1に示す販売管理システム1は、あくまで1つの側面として、販売管理に関する各種の機能、例えば売上、請求、売掛、受注、発注、引当、入荷、出荷あるいは在庫管理などの機能がパッケージ化された販売管理サービスを提供するものである。
【0013】
図1に示すように、販売管理システム1には、サーバ装置10と、クライアント端末50とが含まれ得る。これらサーバ装置10及びクライアント端末50は、ネットワークNWを介して通信可能に接続される。ネットワークNWには、有線または無線を問わず、インターネットやLAN(Local Area Network)などの任意の種類の通信網が採用されることとしてもかまわない。なお、
図1には、あくまで説明の便宜上、1つのサーバ装置10につき1つのクライアント端末50が接続される例を図示したが、1つのサーバ装置10につき複数のクライアント端末50が接続されることを妨げない。
【0014】
サーバ装置10は、上記の販売管理サービスを提供するコンピュータの一例である。
【0015】
一実施形態として、サーバ装置10は、パッケージソフトウェア又はオンラインソフトウェアとして、上記の販売管理サービスに対応する機能を実現する販売管理プログラムを任意のコンピュータにインストールさせることによって実装できる。例えば、サーバ装置10は、上記の販売管理サービスに関する機能をオンプレミスに提供するサーバとして実装することができる。これに限定されず、サーバ装置10は、SaaS(Software as a Service)型の販売管理アプリケーションとして実装することで、上記の販売管理サービスをクラウドサービスとして提供することとしてもかまわない。
【0016】
このような販売管理サービスのあくまで一例として、下記に挙げる複数の機能がパッケージで提供される例を挙げて以下の説明を行う。上記の販売管理サービスとして、販売管理で標準とされる「売上」、「請求」、「売掛」を始め、「受注」、「発注」、「引当」、「入荷」、「出荷」、あるいは「在庫管理」などの機能がパッケージ化される。例えば、上記の「受注」では、商品の注文受付時に注文に関する各種の情報、例えば取引先や期限、商品などの伝票項目に対応するデータを入力する「受注入力」といった機能の他、当該注文に在庫の商品を引き当てる「在庫引当」といった機能が提供される。
【0017】
クライアント端末50は、上記の販売管理サービスの提供を受けるクライアントにより使用されるコンピュータの一例に対応する。このようなクライアントのあくまで一例として、販売管理に携わる事業者等の組織やそれに所属する関係者全般が挙げられる。例えば、クライアント端末50の具体的なユーザの一例としては、卸売業者のオペレータなどが挙げられる。クライアント端末50は、サーバ装置10により提供されるサービスを利用できる端末であれば、如何なるハードウェア構成を備えるものであってかまわない。あくまで一例として、クライアント端末50には、デスクトップ型またはラップトップ型のパーソナルコンピュータなどが対応する。これはあくまで一例であり、クライアント端末50は、携帯端末装置やウェアラブル端末などの任意のコンピュータであってかまわない。
【0018】
[課題の一側面]
上記の背景技術の欄で説明した通り、上記の特許文献1を始めとする従来技術は、あくまで在庫引当を品目や製造日という粗い粒度で行うものに過ぎないので、顧客満足度が低下する状況が避けられない場合がある。
【0019】
例えば、同じ品目の商品であったとしてもその商品が製造される工場やラインは異なる場合がある。このとき、商品を仕入れる顧客によって相応しい在庫も異なる。あくまで1つの側面として、全品回収のリスクを回避することを優先する顧客であれば、同じ品目の商品であったとしても、異なる工場、あるいは異なるラインで製造された商品を分散して仕入れたい実状がある。他の側面として、商品の均一な品質を優先する顧客であれば、同一の工場、あるいは同一のラインで製造された商品に統一して商品を仕入れたい実状がある。
【0020】
このような実状があるにもかかわらず、上記の従来技術では、製造年月日が早い商品から先に出荷するように先入れ先出しの考えで在庫引当を行うことしかできないので、次に挙げる不具合が起こることがある。例えば、リスク回避優先の顧客に同一の工場、さらには同一のラインで製造された在庫を引き当てたり、均一品質優先の顧客に異なる工場、さらには異なるラインで製造された在庫を引き当てたりする場合がある。このように顧客のニーズに反する在庫引当が行われた場合、個々の商品の品質が十分であっても在庫引当が一因となって顧客満足度が低下することがある。
【0021】
[課題解決のアプローチの一側面]
そこで、本実施例に係る受注入力機能では、製品の生産管理でトレーサビリティや品質管理の側面から用いられる「ロット」と呼ばれる単位を基準とした在庫引当を実現するというアプローチを採用する。以下、本実施例では、同一の工場ラインで同一日に製造される商品に同じロット番号が付与されることとして説明を行うこととする。
【0022】
すなわち、本実施例に係る受注入力機能では、ロットを基準にした在庫引当を実現するために、ロットおよび顧客ごとに引当条件を設定できるようにする。そして、受注入力の際に、引当条件に応じて引当可能なロットを自動的に抽出し、ロットごとに在庫引当が行えるようにする。さらに、ロットごとの受注数入力の際に、引当条件のチェックを行う。
【0023】
このような受注入力や在庫引当の仕組みを実現し、トレーサビリティ管理や期限管理の観点で上記の引当条件を設定すれば、取引ルールに即した形でのロットを基準にした在庫引当が可能となる。例えば、リスク回避優先の顧客に異なるロットの在庫を引き当てたり、均一品質優先の顧客に同一ロットの在庫を引き当てたりといった在庫引当を実現できる。この結果、在庫引当によって顧客満足度を向上させることも可能になる。
【0024】
[サーバ装置の構成]
次に、本実施例に係る受注入力機能を搭載するサーバ装置10の機能的構成について説明する。
図1に示すように、サーバ装置10は、通信インタフェース11と、記憶部13と、制御部15とを有する。なお、
図1には、データの授受の関係を表す実線が示されているが、説明の便宜上、最小限の部分について示されているに過ぎない。すなわち、各処理部に関するデータの入出力は、図示の例に限定されず、図示以外のデータの入出力、例えば処理部及び処理部の間、処理部及びデータの間、並びに、処理部及び外部装置の間のデータの入出力が行われることとしてもかまわない。
【0025】
通信インタフェース11は、他の装置、例えばクライアント端末50との間で通信制御を行うインタフェースである。
【0026】
あくまで一例として、通信インタフェース11には、LANカードなどのネットワークインタフェースカードを採用することができる。例えば、通信インタフェース11は、クライアント端末50から受注伝票に関する各種の入力や在庫引当に関する各種の操作を受け付けたり、また、受注伝票や在庫引当、在庫引当のチェック結果に関する各種の画面をクライアント端末50へ送信したりする。
【0027】
記憶部13は、制御部15で実行されるOS(Operating System)を始め、上記の販売管理プログラム、あるいは上記の受注入力機能がモジュール化された受注入力プログラムなどの各種プログラムに用いられるデータを記憶する機能部である。
【0028】
あくまで一例として、記憶部13は、サーバ装置10における補助記憶装置に対応する。例えば、HDD(Hard Disk Drive)、光ディスクやSSD(Solid State Drive)などが補助記憶装置に対応する。この他、EPROM(Erasable Programmable Read Only Memory)などのフラッシュメモリも補助記憶装置に対応する。
【0029】
記憶部13は、制御部15で実行されるプログラムに用いられるデータの一例として、受注情報13Aと、引当条件情報13Bと、ロット情報13Cと、引当情報13Dとを記憶する。これらのデータ以外にも、上記の受注入力プログラムによって参照または生成が行われるデータ、例えば上記の販売管理サービスのアカウントなどが記憶部13に記憶されることとしてもかまわない。なお、受注情報13A、引当条件情報13B、ロット情報13C及び引当情報13Dの説明は、各データの参照または生成が行われる制御部15の説明と合わせて行うこととする。
【0030】
また、
図1には、あくまで一例として、上記の受注入力プログラムによって参照または生成が行われるデータを抜粋して例示したが、他のデータが記憶部13に記憶されることを妨げない。例えば、上記の受注入力プログラム以外の他のプログラム、例えばパッケージソフトである販売管理プログラムなどによって参照または生成されるデータが記憶されることとしてもよい。
【0031】
制御部15は、サーバ装置10の全体制御を行う機能部である。
【0032】
一実施形態として、制御部15は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などのハードウェアプロセッサにより実装することができる。ここでは、プロセッサの一例として、CPUやMPUを例示したが、汎用型および特化型を問わず、任意のプロセッサにより実装することができる。この他、制御部15は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによって実現されることとしてもかまわない。
【0033】
制御部15は、上記の受注入力プログラムを実行することにより、図示しない主記憶装置として実装されるDRAM(Dynamic Random Access Memory)などのRAMのワークエリア上に
図1に示す処理部を仮想的に実現する。なお、ここでは、上記の販売管理サービスとしてパッケージ化される機能のうち上記の受注入力機能に対応する受注入力プログラムが実行される例を挙げるが、サーバ装置10上で動作するプログラムはこれに限定されない。例えば、上記の販売管理プログラムのパッケージソフトウェアが実行されることとしてもよいし、上記の販売管理サービスのうち任意の機能を抜粋してプログラムモジュールとして実行されたり、あるいはライブラリとして参照されたりすることとしてもかまわない。
【0034】
例えば、制御部15は、
図1に示すように、受注情報受付部15Aと、ロット抽出部15Bと、在庫引当受付部15Cと、在庫引当判定部15Dとを有する。
【0035】
受注情報受付部15Aは、受注情報を受け付ける処理部である。
【0036】
あくまで一例として、受注情報受付部15Aは、上記の販売管理サービスのアカウントの認証に成功したクライアント端末50から受注伝票の作成リクエストを受け付けることができる。例えば、受注情報受付部15Aは、クライアント端末50に表示されたメニュー画面上で「受注入力」のアイコンなどの押下操作を受け付けた場合、
図2に示す受注入力画面をクライアント端末50に表示させる。この受注入力画面に対する入力操作を介して、受注情報受付部15Aは、顧客情報や予定日情報、受注商品情報などの受注情報の入力を受け付ける。
【0037】
[受注入力画面]
図2は、受注入力画面の一例を示す図である。
図2に示すように、受注入力画面200には、各種のGUI(Graphical User Interface)コンポーネントが含まれる。例えば、受注入力画面200には、受注伝票番号、受注日、得意先(顧客)、出荷予定日、納品予定日および検収予定日などといった項目ごとに対応付けてテキストボックス210、220、230及び240A~240Cが配置される。
【0038】
ここで、「受注伝票番号」とは、受注伝票に採番される識別情報の一例を指し、例えば、記憶部13に記憶された受注情報13Aに新規の受注伝票のエントリが作成された段階で自動的に採番される。「受注日」とは、商品の注文を受け付けた日付を指す。「得意先(顧客)」とは、顧客の名称を指し、例えば、コンピュータ上では、図示しない顧客マスタ等に顧客名に対応付けて登録された顧客コードによって識別される。「出荷予定日」とは、顧客への商品の出荷が予定された日付を指す。「納品予定日」とは、顧客への商品の納品が予定された日付を指す。「検収予定日」とは、顧客先での商品の検収が予定された日付を指す。
【0039】
例えば、「受注日」に対応するテキストボックス220には、受注入力画面200が生成された日付が自動的に入力される。当然のことながら、テキストボックス220に入力された日付の値は、テンキー等を介して編集できることは言うまでもない。
【0040】
また、「得意先(顧客)」は、顧客情報の一例に対応する。例えば、テキストボックス230に顧客コードがテキスト入力されることにより、顧客コードに対応する顧客名が顧客マスタから検索された上でテキストボックス230Aへ自動的に入力される。これも当然のことながら、テキストボックス230Aに顧客名をテキスト入力させることにより、顧客名に対応する顧客コードを顧客マスタから検索させた上でテキストボックス230へ入力させることとしてもかまわない。なお、
図2には、顧客情報を入力するGUIコンポーネントとして、テキストボックスを挙げたが、これはあくまで一例に過ぎず、プルダウンメニューやコンボボックスなどの他のGUIコンポーネントを用いることとしてもかまわない。
【0041】
また、「出荷予定日」、「納品予定日」及び「検収予定日」は、予定日情報の一例に対応する。例えば、テキストボックス240A~240Cを介して日付のテキスト入力を受け付けることにより、「出荷予定日」、「納品予定日」及び「検収予定日」を含む予定情報を入力させることができる。なお、
図2には、予定情報を入力するGUIコンポーネントとして、テキストボックスを挙げたが、これはあくまで一例に過ぎず、カレンダー付きの日付入力ウィジェットやプルダウンメニューなどの他のGUIコンポーネントを用いることとしてもかまわない。
【0042】
これら顧客情報や予定情報を入力させるGUIコンポーネントの他にも、受注入力画面200には、受注商品情報の入力を受け付けるテーブル250が含まれ得る。
図2に示すように、テーブル250では、あくまで一例として、行単位で受注商品情報の入力を受け付ける。すなわち、テーブル250の行方向には、左から順に、「商品コード」及び「商品名」の入力欄と、「受注数」の入力欄と、「受注単価」の入力欄と、「ロット番号」の入力欄とが配置されている。
【0043】
例えば、「商品コード」または「商品名」のいずれか一方の入力欄に値が入力されると、図示しない商品マスタ等から他方を検索することにより他方が自動的に入力される。さらに、「受注単価」も商品によって定まるので、「受注単価」の入力欄にも商品マスタ、あるいは時期や顧客別に商品の単価が登録された単価マスタ(不図示)等から検索された受注単価の値を自動的に入力することができる。また、「受注数」の入力欄には、テンキー等を介して数値が入力される。これら「商品名」又は「商品コード」と「受注数」との入力欄に値が設定された場合、受注単価と受注数から「受注金額」が計算可能であるので、「受注金額」の入力欄にも計算結果、すなわち受注単価及び受注数の乗算値を自動的に入力することができる。なお、「ロット番号」は、在庫引当に用いられる入力欄であるので、その説明は後述する。
【0044】
このように、受注入力画面200に入力された顧客情報、予定日情報および受注商品情報に対応する新規のエントリが記憶部13に記憶された受注情報13Aに追加される。例えば、受注情報受付部15Aは、受注伝票番号を所定のルールに従って採番し、当該受注伝票番号に対応付けて顧客情報、予定日情報および受注商品情報に対応する新規のエントリを受注情報13Aに追加する。このとき、受注情報受付部15Aは、顧客情報、予定日情報および受注商品情報のうち、顧客情報および予定日情報に関するエントリを受注情報13A1に追加すると共に、受注商品情報に関するエントリを受注情報13A1に追加する。
【0045】
例えば、
図2に示す顧客情報、予定日情報および受注商品情報の入力が行われた場合、受注情報受付部15Aは、受注伝票番号のあくまで一例として「JU00001」を採番する。
【0046】
[受注情報13A1]
その上で、受注情報受付部15Aは、
図2に示す受注入力画面200に入力された顧客情報および予定日情報に対応するエントリを受注情報13A1に追加する。これによって、受注情報13A1は、
図3に示す状態に更新される。
図3は、受注情報13A1の一例を示す図である。すなわち、受注情報受付部15Aは、受注伝票番号「JU00001」に、テキストボックス220の入力値「2018/10/1」、テキストボックス230の入力値「C0001」、テキストボックス240Aの入力値「2018/10/2」、テキストボックス240Bの入力値「2018/10/3」及びテキストボックス240Cの入力値「2018/10/3」が対応付けられたエントリを受注情報13A1に生成する。これによって、受注情報13A1には、
図3に示すように、上から1番目の受注伝票番号「JU00001」のエントリが追加される。
【0047】
[受注情報13A2]
さらに、受注情報受付部15Aは、
図2に示す受注入力画面200のテーブル250の行ごとに当該行に対応する受注商品情報のエントリを受注情報13A2に追加する。これによって、受注情報13A2は、
図4に示す状態に更新される。
図4は、受注情報13A2の一例を示す図である。例えば、テーブル250の1行目の例で言えば、受注情報受付部15Aは、受注伝票番号「JU00001」に、商品コードの入力欄の値「30001」、受注数の入力欄の値「50」及び受注金額の入力欄の値「5,000」が対応付けられたエントリを受注情報13A2に生成する。これによって、受注情報13A2には、
図4に示すように、上から1番目のエントリが追加される。さらに、テーブル250の2行目の例で言えば、受注情報受付部15Aは、受注伝票番号「JU00001」に、商品コードの入力欄の値「30002」、受注数の入力欄の値「40」及び受注金額の入力欄の値「4,400」が対応付けられたエントリを受注情報13A2に生成する。これによって、受注情報13A2には、
図4に示すように、上から2番目のエントリが追加される。さらに、テーブル250の3行目の例で言えば、受注情報受付部15Aは、受注伝票番号「JU00001」に、商品コードの入力欄の値「30003」、受注数の入力欄の値「10」及び受注金額の入力欄の値「1,200」が対応付けられたエントリを受注情報13A2に生成する。これによって、受注情報13A2には、
図4に示すように、上から3番目のエントリが追加される。
【0048】
ロット抽出部15Bは、受注商品のロットのうち引当条件に適合するロットを抽出する処理部である。
【0049】
あくまで一例として、ロット抽出部15Bは、受注入力画面200のテーブル250に含まれる商品のうち、在庫引当を行う商品の選択を受け付けた場合、引当条件に適合するロット抽出を実行する。例えば、ロット抽出部15Bは、受注入力画面200のテーブル250に表示された行が選択された状態でロットボタン260Aの操作を受け付けた場合、選択中の行に対応する商品を在庫引当を行う商品として引当条件に適合するロット抽出を開始する。
【0050】
より詳細には、ロット抽出部15Bは、記憶部13に記憶された受注情報13A1のうち受注入力画面200を介して登録が行われたエントリに対応する顧客コードを取得する。さらに、ロット抽出部15Bは、記憶部13に記憶された引当条件情報13Bに含まれる引当条件のうち、先に取得した顧客コードに対応する引当条件を取得する。さらに、ロット抽出部15Bは、受注入力画面200のテーブル250で選択中である行に対応する商品コードを在庫引当を行う商品として取得する。その上で、ロット抽出部15Bは、記憶部13に記憶されたロット情報13Cのうち、先に取得した商品コードに対応するロット情報群を取得する。
【0051】
ここで、引当条件情報13Bおよびロット情報13Cの一例を挙げる。
【0052】
[引当条件情報13B]
図5は、引当条件情報13Bの一例を示す図である。
図5に示すように、引当条件情報13Bには、顧客コードごとに、ロット条件、工場ライン条件、出荷日条件、納品日条件および検収日条件が対応付けられたデータを採用できる。
【0053】
ここで言う「ロット条件」とは、ロットを指定する条件を指す。例えば、「ロット条件」には、「なし」、「同一ロット」、「複数ロット」および「同月出荷商品と同一ロット」などの種類の条件が設定される。このうち、「なし」は、ロットを指定しない無条件を指す。「なし」がロット条件に設定される場合、任意のロット番号の在庫が引き当てられることが許容される。また、「同一ロット」は、受注に引き当てる在庫のロット番号を同一のロット番号で統一する条件を指す。「同一ロット」が設定される場合、複数のロット番号が混在することが禁止される。また、「複数ロット」は、受注に引き当てる在庫のロット番号に複数のロット番号が含まれる条件を指す。「複数ロット」が設定される場合、単一のロット番号しか含まれない状態が禁止される。また、「同月出荷商品と同一ロット」とは、先行の受注の履歴が同月内にある場合に先行の受注時に出荷された商品のロット番号と同一のロット番号の在庫を引き当てる条件を指す。
【0054】
また、「工場ライン条件」とは、工場ラインを指定する条件を指す。例えば、「工場ライン条件」には、「なし」、「工場+ライン」および「同一工場」などの種類の条件が設定される。このうち、「なし」は、工場ラインを指定しない無条件を指す。「なし」が工場ライン条件に設定される場合、任意の工場かつ任意のラインの在庫が引き当てられることが許容される。また、「工場+ライン」は、工場およびラインを指定する条件を指す。あくまで一例として、「A工場第1ライン」が工場ライン条件に設定される場合、A工場の第1ライン以外で製造された商品の在庫を引き当てることが禁止される。また、「同一工場」は、受注に引き当てる在庫を同一の工場で製造されたものに統一する条件を指す。「同一工場」が工場ライン条件に設定される場合、複数の工場で製造された商品の在庫が混在することが禁止される。
【0055】
また、「出荷日条件」、「納品日条件」及び「検収日条件」とは、出荷日、納品日または検収日を指定する条件を指す。例えば、「出荷日条件」、「納品日条件」及び「検収日条件」には、「製造日からN(自然数)日まで」といったフォーマットで製造日から在庫引当を許可する期間の日数Nを条件として設定させることができる。なお、当然のことながら、出荷日、納品日または検収日を指定しない無条件である「なし」を設定することができるのも言うまでもない。
【0056】
[ロット情報13C]
図6は、ロット情報13Cの一例を示す図である。
図6に示すように、ロット情報13Cには、商品コード、ロット番号、在庫数、引当数、製造工場、製造ライン、製造日および有効期限などの項目が対応付けられたデータが採用される。
【0057】
ここで言う「ロット番号」とは、ロットを識別する識別情報の一例を指す。上述の通り、同一の工場ラインで同一日に製造される商品には同じロット番号が付与されると共に、同一の商品の間でも製造日が早い商品ほど小さい番号が付与される。あくまで一例として、「ロット番号」には、工場とラインの識別子が埋め込まれた番号が採番される例を挙げる。例えば、末尾3桁目の英文字「A」が工場名を指し、末尾2桁目および末尾1桁目の数字がライン番号を指すこととする。ロット番号が「A111A01」である場合、A工場第1ラインで製造された商品であることを意味する。
【0058】
また、「在庫数」とは、在庫の個数を指す。ここでは、あくまで一例として、バラの個数で表記する例を挙げるが、段ボールやパレットなどの梱包の単位の個数で表記することとしてもかまわない。また、「引当数」とは、受注に引き当てられた在庫の個数を指す。また、「製造工場」とは、商品が製造された工場を指す。また、「製造ライン」とは、商品が製造されたラインを指す。また、製造日は、商品が製造された日付を指す。さらに、「有効期限」とは、商品が有効である期限を指し、例えば、消費期限や賞味期限等が対応する。
【0059】
ロット抽出の説明に戻り、商品コードに対応するロット情報群が取得された後、ロット抽出部15Bは、取得したロット情報ごとに、工場ライン条件、出荷日条件、納品日条件および検収日条件を満たすか否かのチェックを実行する。
【0060】
例えば、ロット抽出部15Bは、ロット情報が顧客コードに対応する引当条件のうち工場ライン条件を満たすか否かを判定する。このとき、工場ライン条件を満たす場合、ロット抽出部15Bは、ロット情報が顧客コードに対応する引当条件のうち出荷日条件を満たすか否かをさらに判定する。そして、出荷日条件を満たす場合、ロット抽出部15Bは、ロット情報が顧客コードに対応する引当条件のうち納品日条件を満たすか否かをさらに判定する。このとき、納品日条件を満たす場合、ロット抽出部15Bは、ロット情報が顧客コードに対応する引当条件のうち検収日条件を満たすか否かをさらに判定する。そして、検収日条件も満たす場合、ロット抽出部15Bは、引当条件に適応するロットと判定する。一方、工場ライン条件、出荷日条件、納品日条件または検収日条件のいずれか1つでも満たさない場合、ロット抽出部15Bは、引当条件に適応しないロットと判定する。以下、引当条件に適応するロットのことを「適応ロット」と記載する一方で、引当条件に適応しないロットのことを「不適応ロット」と記載する場合がある。
【0061】
このような工場ライン条件、出荷日条件、納品日条件および検収日条件のチェックがロット情報ごとに実行される。その後、全てのロット情報のチェックが終了すると、ロット抽出部15Bは、ロット条件が設定されているか否か、すなわちロット条件が「なし」以外であるか否かを判定する。このとき、ロット条件が設定されている場合、ロット抽出部15Bは、適応ロットのロット情報のうち、ロット条件を満たすロット情報をさらに抽出する。その上で、ロット抽出部15Bは、抽出後のロット情報を有効期限が早い順にソートし、該ソートされたロット情報の一覧をクライアント端末50に表示させる。なお、ロット条件が設定されていない場合、当然のことながら、ロット条件を満たすロット情報を抽出する処理はスキップされる。
【0062】
[ロット抽出の具体例]
ここで、ロット抽出について具体例を挙げて説明する。あくまで一例として、
図2に示す受注入力画面200のテーブル250の1行目が選択された状態でロットボタン260Aの操作を受け付けた場面を例に挙げる。
【0063】
この場合、
図3に示す受注情報13A1のうち、受注入力画面200を介して登録が行われたエントリ、すなわち1行目のエントリに対応する顧客コード「C0001」が取得される。さらに、
図5に示す引当条件情報13Bに含まれる引当条件のうち、先に取得した顧客コード「C0001」に対応する引当条件、すなわち1行目のレコードが取得される。つまり、ロット条件「同一ロット」、工場ライン条件「A工場第1ライン」、出荷日条件「製造日から7日まで」、納品日条件「製造日から10日まで」および検収日条件「製造日から13日まで」が顧客コード「C0001」の引当条件として取得される。さらに、受注入力画面200のテーブル250で選択中である1行目に対応する商品コード「30001」が取得される。
【0064】
その上で、
図6に示すロット情報13Cのうち、先に取得した商品コード「30001」に対応する5つのロット情報が取得される。
図7は、ロット情報の抽出遷移の一例を示す図である。
図7には、説明の便宜上、工場ライン条件、出荷日条件、納品日条件および検収日条件ごとに各ロット情報の間でチェックが並列して実行される様子が示されている。
図7に示すように、
図6に示すロット情報13Cのうち、先に取得した商品コード「30001」に対応する5つのロット情報が取得される(ステップS1)。以下、商品コード「30001」に対応する5つのロット情報を各ロット情報が持つロット番号で識別しながら説明を行う。
【0065】
(1)工場ライン条件のチェック
続いて、ロット番号「A111A01」、「A112A01」、「A113A01」、「A114A01」及び「A115B01」に対応する5つのロット情報ごとに、工場ライン条件「A工場第1ライン」のチェックが行われる。すなわち、工場ライン条件「A工場第1ライン」に従ってA工場第1ラインで製造されたロット情報が抽出される。ここで、5つのロット情報のうちロット番号「A115B01」のロット情報は、商品コード「30001」の商品ではあるものの、A工場ではなく、B工場で製造されたロットであるので、不適応ロットと判定される。一方、ロット番号「A111A01」、「A112A01」、「A113A01」及び「A114A01」に対応する4つのロット情報は、工場ライン条件「A工場第1ライン」を満たすので、当該4つのロット情報に次のチェックが行われる。
【0066】
(2)出荷日条件のチェック
次に、ロット番号「A111A01」、「A112A01」、「A113A01」及び「A114A01」に対応する4つのロット情報ごとに、出荷日条件「製造日から7日まで」のチェックが行われる。ここで、ロット番号「A111A01」、「A112A01」、「A113A01」及び「A114A01」の製造日は、「2018/9/21」、「2018/9/27」、「2018/9/28」及び「2018/9/28」である。一方、受注で指定された出荷予定日は、
図2に示す受注入力画面200の通り、「2018/10/2」ある。このうち、ロット番号「A111A01」の製造日「2018/9/21」は、出荷予定日「2018/10/2」の11日前であり、製造日から7日までの条件指定を超えるので、不適応ロットと判定される。一方、ロット番号「A112A01」、「A113A01」及び「A114A01」に対応する3つのロット情報の製造日の7日以内に出荷予定日が含まれる。このように、ロット番号「A112A01」、「A113A01」及び「A114A01」に対応する3つのロット情報は、出荷日条件「製造日から7日まで」を満たすので、次のチェックに移行する。
【0067】
(3)納品日条件のチェック
次に、ロット番号「A112A01」、「A113A01」及び「A114A01」に対応する3つのロット情報ごとに、納品日条件「製造日から10日まで」のチェックが行われる。ここで、ロット番号「A112A01」、「A113A01」及び「A114A01」の製造日は、「2018/9/27」、「2018/9/28」及び「2018/9/28」である。一方、受注で指定された納品予定日は、
図2に示す受注入力画面200の通り、「2018/10/3」ある。このため、ロット番号「A112A01」、「A113A01」及び「A114A01」に対応する3つのロット情報の製造日から10日以内に納品予定日が含まれる。このように、ロット番号「A112A01」、「A113A01」及び「A114A01」に対応する3つのロット情報は、納品日条件「製造日から10日まで」を満たすので、次のチェックに移行する。
【0068】
(4)検収日条件のチェック
次に、ロット番号「A112A01」、「A113A01」及び「A114A01」に対応する3つのロット情報ごとに、検収日条件「製造日から13日まで」のチェックが行われる。ここで、ロット番号「A112A01」、「A113A01」及び「A114A01」の製造日は、「2018/9/27」、「2018/9/28」及び「2018/9/28」である。一方、受注で指定された検収予定日は、
図2に示す受注入力画面200の通り、「2018/10/3」ある。このため、ロット番号「A112A01」、「A113A01」及び「A114A01」に対応する3つのロット情報の製造日から13日以内に検収予定日が含まれる。このように、ロット番号「A112A01」、「A113A01」及び「A114A01」に対応する3つのロット情報は、検収日条件「製造日から13日まで」を満たす。
【0069】
この結果、
図7に示すように、ロット番号「A112A01」、「A113A01」及び「A114A01」が適応ロットとして抽出される(ステップS2)。
【0070】
(5)ロット条件のチェック
ここで、顧客コード「C0001」に対応する引当条件には、ロット条件「同一ロット」が設定されている。このように、ロット条件に「同一ロット」が設定されている場合、受注に引き当てる在庫のロット番号に複数のロット番号が混在することが禁止される。このため、ロット番号の在庫数が受注数以上である否かがチェックされる。例えば、受注情報13A2に示す通り、受注伝票番号「JU00001」の商品コード「30001」の受注数は、「50」である。一方、ロット番号「A112A01」の在庫数が「40」であり、ロット番号「A113A01」の在庫数が「60」であり、また、ロット番号「A114A01」の在庫数が「50」である。これらのうち、ロット番号「A112A01」の在庫数「40」は、受注数「50」未満であるので、ロット番号「A112A01」の単独で受注に引き当てるのは困難である。一方、ロット番号「A113A01」およびロット番号「A114A01」の在庫数は、受注数「50」以上であるので、ロット番号「A113A01」またはロット番号「A114A01」の単独で受注に引き当てることが可能である。
【0071】
このことから、ロット番号「A113A01」およびロット番号「A114A01」に対応する2つのロット情報が抽出される(ステップS3)。その後、ロット番号「A113A01」およびロット番号「A114A01」に対応する2つのロット情報の一覧が
図8に示すロット在庫画面としてクライアント端末50に表示される。なお、ここでは、ロット条件を満たすロットが存在する例を挙げたが、ロット条件を満たすロットが存在しない場合、エラーメッセージ、例えば「引当可能ロットなし」などを表示させることができる。
【0072】
図8は、ロット在庫画面の一例を示す図である。
図8に示すように、ロット在庫画面300には、在庫引当を受け付けるテーブル310が表示される。テーブル310には、ロット番号「A113A01」およびロット番号「A114A01」の2つの行が含まれている。さらに、テーブル310の行方向には、左から順に、「ロット番号」、「有効期限」、「在庫数」および「引当可能数」が表示されており、末尾には、「引当数」の入力欄が配置されている。テーブル310では、各行の「引当数」の入力欄を介して、行単位で在庫の引当数の入力を受け付けることができる。
【0073】
なお、ここでは、ロット条件の一例として「同一ロット」が設定されている例を挙げたが、「複数ロット」が設定されている場合、複数のロット情報が抽出されていないならば、例えばロット情報が1つしか抽出されていないならば、エラーメッセージ、例えば「引当可能なロットが不足しています」などを表示させることができる。また、「同月出荷商品と同一ロット」が設定されている場合、顧客コードごとに出荷された商品の商品コードおよびそのロット番号が対応付けられた出荷履歴を参照して、先行の受注の履歴が同月内に存在するならば、先行の受注時に出荷された商品のロット番号と同一のロット番号のロット情報だけを抽出し、当該ロット情報の抽出に失敗する場合、エラーメッセージ、例えば「引当可能なロットが存在しません」などを表示させることができる。この他、「同月出荷商品と同一ロット」が設定された顧客コードの出荷履歴に存在するロット番号は他の顧客コードの受注に在庫を引き当てるのを禁止することもできる。
【0074】
図1の説明に戻り、在庫引当受付部15Cは、在庫引当を受け付ける処理部である。
【0075】
あくまで一例として、在庫引当受付部15Cは、ロット抽出部15Bにより抽出されたロット情報の一覧上で在庫引当を行うロットおよび引当数を受け付ける。例えば、在庫引当受付部15Cは、ロット在庫画面300のテーブル310の中から行の選択を受け付けることにより、在庫引当を行うロットの選択を受け付ける。さらに、在庫引当受付部15Cは、ロット在庫画面300のテーブル310で選択中の行の「引当数」の入力欄を介して引当数の入力を受け付ける。
【0076】
このように引当数の入力が行われた後、登録ボタン320Aの操作を受け付けることにより、受注入力画面200のテーブル250に含まれる商品のうち、選択中の商品の在庫引当の受付が完了する。なお、登録ボタン320Aが操作されるまでに取消ボタン320Bが操作された場合には、引当数が取り消される。また、登録ボタン320Aが操作されるまでに閉じるボタン320Cが操作された場合には、ロット在庫画面300のウィンドウが閉じられる。
【0077】
ここで、在庫引当の受付が完了すると、在庫引当受付部15Cは、記憶部13に記憶されたロット情報13Cのうち、在庫引当が行われたロット番号の引当数にテーブル310の「引当数」の入力欄を介して入力された引当数を加算する。例えば、ロット在庫画面300のテーブル310のうち1行目のロット番号「A113A01」が選択された状態で1行目の「引当数」の入力欄に「50」がさらに入力された状態で登録ボタン320Aが操作された場合、
図6に示すロット情報13Cのうち、ロット番号「A113A01」に対応するレコードが有する引当数「0」に、テーブル310の「引当数」の入力欄を介して入力された「50」を加算することにより、ロット情報13Cのロット番号「A113A01」に対応するレコードが有する引当数が「50(=0+50)」に更新される。
【0078】
さらに、在庫引当受付部15Cは、記憶部13に記憶された引当情報13Dに、当該在庫引当に関する新規のエントリを生成する。
【0079】
[引当情報13D]
図9は、引当情報13Dの一例を示す図である。
図9には、ロット在庫画面300のテーブル310のうち1行目のロット番号「A113A01」が選択された状態で1行目の「引当数」の入力欄に「50」がさらに入力された状態で登録ボタン320Aが操作された場合に生成される引当情報13Dのエントリが示されている。
図9に示すように、引当情報13Dには、受注伝票番号、ロット番号および引当数が対応付けられたデータが採用される。
図9に示す引当情報13Dの1行目のレコードの例で言えば、受注伝票番号「JU00001」の受注には、ロット番号「A113A01」の在庫のうち50個が引き当てられたことを意味する。
【0080】
その後、受注入力画面200のテーブル250に含まれる全ての商品に在庫引当が行われるまで、在庫引当を行うロットの選択および引当数の入力が繰り返し実行される。
【0081】
在庫引当判定部15Dは、在庫引当受付部15Cにより受け付けた在庫引当が引当条件を満たすか否かを判定する処理部である。
【0082】
あくまで一例として、在庫引当判定部15Dは、受注入力画面200のテーブル250に含まれる全ての商品に在庫引当が行われた状態で登録ボタン260Bが操作された場合、在庫引当判定部15Dは、受注商品ごとに在庫引当が引当条件を満たすか否かのチェックを実行する。なお、受注入力画面200の登録ボタン260Bが操作されるまでに取消ボタン260Cが操作された場合には、テキストボックス210、220、230及び240A~240Cの入力値やテーブル250内の入力値が取り消される。また、受注入力画面200の登録ボタン260Bが操作されるまでに終了ボタン260Dが操作された場合には、受注入力および在庫引当が終了される。
【0083】
より詳細には、在庫引当判定部15Dは、記憶部13に記憶された受注情報13A1のうち受注入力画面200を介して登録が行われたエントリに対応する顧客コードを取得する。さらに、在庫引当判定部15Dは、記憶部13に記憶された引当条件情報13Bに含まれる引当条件のうち、先に取得した顧客コードに対応する引当条件を取得する。さらに、在庫引当判定部15Dは、記憶部13に記憶されたロット情報13Cのうち在庫引当が行われたエントリの引当数と、記憶部13に記憶された引当情報13Dのうち在庫引当により新規に生成されたエントリの引当数とを取得する。
【0084】
その上で、在庫引当判定部15Dは、複数ロットに引当数が入力されているか否かを判定する。このとき、複数ロットに引当数が入力されている場合、在庫引当判定部15Dは、引当条件のうちロット条件に「同一ロット」が設定されているか否かをさらに判定する。そして、ロット条件に「同一ロット」が設定されている場合、在庫引当判定部15Dは、在庫引当不可であると判定する。
【0085】
このようなチェックが実行されるのは、次のようなヒューマンエラーが生じうるからである。例えば、
図8に示すロット在庫画面300のテーブル310には、ロット番号「A113A01」およびロット番号「A114A01」の2つのロットが含まれる。これは、2つのロットに引当数を入力させるためではなく、在庫引当に2つのロットが選択肢として存在することを提示するためである。しかしながら、顧客コード「C0001」の顧客のロット条件に「同一ロット」が設定されていることを知らなかったり、あるいは忘れていたりする場合、2つのロットがテーブル310に表示されることによって2つのロットに引当数を入力してしまうヒューマンエラーも起こり得る。このようなヒューマンエラーを抑制する側面から、上記のチェックが在庫引当の受付後にも改めて実施される。
【0086】
また、複数ロットに引当数が入力されていない場合、あるいは複数ロットに引当数が入力されていてもロット条件に「同一ロット」が設定されていない場合、在庫引当判定部15Dは、各ロットの引当数が各ロットの在庫数以下であるか否かのチェックを行う。このとき、各ロットの引当数が各ロットの在庫数以下でない場合、在庫引当判定部15Dは、在庫引当不可であると判定する。一方、各ロットの引当数が各ロットの在庫数以下である場合、在庫引当判定部15Dは、在庫引当可能であると判定する。
【0087】
[在庫引当のチェックの一例]
あくまで一例として、受注入力画面200のテーブル250に下記の在庫引当が行われた状態で登録ボタン260Bが操作された場面を例に挙げて在庫引当のチェックを行う例を説明する。このとき、テーブル250のうち1行目の商品コード「30001」の在庫引当のチェックを抜粋して説明することとし、商品コード「30001」の在庫引当は、ロット在庫画面300のテーブル310のうち1行目のロット番号「A113A01」が選択された状態で1行目の「引当数」の入力欄に「50」がさらに入力された状態で登録ボタン320Aが操作された場合を想定する。
【0088】
この場合、
図3に示す受注情報13A1のうち、受注入力画面200を介して登録が行われたエントリ、すなわち1行目のエントリに対応する顧客コード「C0001」が取得される。さらに、
図5に示す引当条件情報13Bに含まれる引当条件のうち、先に取得した顧客コード「C0001」に対応する引当条件、すなわち1行目のレコードが取得される。つまり、ロット条件「同一ロット」、工場ライン条件「A工場第1ライン」、出荷日条件「製造日から7日まで」、納品日条件「製造日から10日まで」および検収日条件「製造日から13日まで」が顧客コード「C0001」の引当条件として取得される。さらに、ロット情報13Cのうち、在庫引当が行われることにより更新されたロット番号「A113A01」のエントリの引当数「50」と、引当情報13Dのうち在庫引当により新規に生成されたエントリの引当数「50」とが取得される。
【0089】
その上で、複数ロットに引当数が入力されているか否かがチェックされる。ここで、受注伝票番号「JU00001」の受注のうち商品コード「30001」に対応する商品の受注に在庫引当が行われたロット情報は、ロット番号「A113A01」のエントリしか存在しない。よって、複数ロットに引当数が入力されていないと判定される。この場合、各ロットの引当数が各ロットの在庫数以下であるか否かのチェックがさらに行われる。例えば、ロット番号「A113A01」の在庫数は「60」であり、引当数は「50」である。このように、引当数が在庫数以下であるので、受注伝票番号「JU00001」の商品コード「30001」に対応する商品の受注に対するロット番号「A113A01」の在庫引当が可能であると判定される。なお、ここでは、引当数が在庫数以下である例を挙げたが、引当数が在庫数を超える場合、エラーメッセージ、例えば「引当入力数が在庫を上回っています」などを表示させることができる。
【0090】
[在庫引当のチェックの他の一例]
他の一例として、
図10に示す受注入力画面201のテーブル250に示す在庫引当が行われた状態で登録ボタン260Bが操作される場面を例に挙げて在庫引当のチェックを行う例を説明する。
図10は、受注入力画面の他の一例を示す図である。
図10に示す受注入力画面201の例で言えば、顧客コード「C0003」のC商店からの商品コード「30002」の商品の受注に対し、ロット番号「B221A01」の在庫を10個引き当てると共に、ロット番号「B222A01」の在庫を30個引き当てる在庫引当が行われた例が示されている。
【0091】
この場合、
図3に示す受注情報13A1のうち、受注入力画面201を介して登録が行われたエントリ、すなわち2行目のエントリに対応する顧客コード「C0002」が取得される。さらに、
図5に示す引当条件情報13Bに含まれる引当条件のうち、先に取得した顧客コード「C0002」に対応する引当条件、すなわち2行目のレコードが取得される。つまり、ロット条件「なし」、工場ライン条件「同一工場」、出荷日条件「なし」、納品日条件「なし」および検収日条件「製造日から7日まで」が顧客コード「C0002」の引当条件として取得される。さらに、ロット情報13Cのうち、在庫引当が行われることにより更新されたロット番号「B221A01」のエントリの引当数「10」と、ロット番号「B222A01」のエントリの引当数「30」とが取得される。
【0092】
その上で、複数ロットに引当数が入力されているか否かがチェックされる。ここで、受注伝票番号「JU00002」の受注のうち商品コード「30002」に対応する商品の受注に在庫引当が行われたロット情報は、ロット番号「B221A01」およびロット番号「B222A01」の2つのエントリが存在する。よって、複数ロットに引当数が入力されていると判定される。この場合、ロット条件に「同一ロット」が設定されているか否かがチェックされる。このとき、顧客コード「C0002」のロット条件には、「なし」が設定されており、「同一ロット」は設定されていない。このため、各ロットの引当数が各ロットの在庫数以下であるか否かのチェックがさらに行われる。例えば、ロット番号「B221A01」の在庫数は「50」であり、引当数は「10」である。また、ロット番号「B222A01」の在庫数は「50」であり、引当数は「30」である。このように、いずれのロットにおいても引当数が在庫数以下であるので、受注伝票番号「JU00002」の商品コード「30002」に対応する商品の受注に対するロット番号「B221A01」およびロット番号「B222A01」の在庫引当が可能であると判定される。なお、ここでは、ロット条件に「同一ロット」が設定されていない例を挙げたが、ロット条件に「同一ロット」が設定されている場合、エラーメッセージ、例えば「複数ロットに引当入力されています」などを表示させることができる。
【0093】
なお、ここでも、「同月出荷商品と同一ロット」が設定されている場合、顧客コードごとに出荷された商品の商品コードおよびそのロット番号が対応付けられた出荷履歴を参照して、先行の受注の履歴が同月内に存在するならば、在庫引当が行われたロット番号が先行の受注時に出荷された商品のロット番号と同一のロット番号であるか否かを判定し、両者が異なる場合、エラーメッセージ、例えば「今月に出荷実績があるロット番号と異なるロット番号が引き当てられています」などを表示させることができる。
【0094】
[処理の流れ]
図11は、実施例1に係る受注入力処理の手順を示すフローチャートである。この処理は、あくまで一例として、クライアント端末50に表示されたメニュー画面上で「受注入力」のアイコンなどの押下操作を受け付けた場合に開始される。
【0095】
図11に示すように、受注情報受付部15Aは、クライアント端末50に表示させた受注入力画面に対する入力操作を介して、顧客情報や予定日情報、受注商品情報などの受注情報の入力を受け付ける(ステップS101、ステップS102及びステップS103)。
【0096】
続いて、受注入力画面に受注商品情報として入力された商品の中から在庫引当を行う商品の選択を受け付けた場合(ステップS104)、ロット抽出部15Bは、受注商品のロットのうち引当条件に適合するロットを抽出する「ロット抽出処理」を実行する(ステップS105)。
【0097】
図12は、実施例1に係るロット抽出処理の手順を示すフローチャートである。この処理は、
図11に示すステップS105の処理に対応する。
図12に示すように、ロット抽出部15Bは、記憶部13に記憶された受注情報13A1のうち受注入力画面を介して登録が行われたエントリに対応する顧客コードを取得する(ステップS301)。
【0098】
さらに、ロット抽出部15Bは、記憶部13に記憶された引当条件情報13Bに含まれる引当条件のうち、ステップS301で取得された顧客コードに対応する引当条件を取得する(ステップS302)。
【0099】
さらに、ロット抽出部15Bは、ステップS104で在庫引当を行う商品として選択を受け付けた商品の商品コードを取得する(ステップS303)。その上で、ロット抽出部15Bは、記憶部13に記憶されたロット情報13Cのうち、ステップS303で取得された商品コードに対応するロット情報群を取得する(ステップS304)。
【0100】
その後、ロット抽出部15Bは、ステップS304で取得されたロット情報ごとに、工場ライン条件、出荷日条件、納品日条件および検収日条件を満たすか否かを判定する「ロット判定処理」を実行する(ステップS305)。
【0101】
図13は、実施例1に係るロット判定処理の手順を示すフローチャートである。この処理は、
図12に示すステップS305の処理に対応する。
図13に示すように、引当条件に工場ライン条件の設定がある場合、すなわち工場ライン条件が「なし」以外である場合(ステップS501Yes)、ロット抽出部15Bは、ロット情報が顧客コードに対応する引当条件のうち工場ライン条件を満たすか否かを判定する(ステップS502)。なお、引当条件に工場ライン条件の設定がない場合(ステップS501No)、上記のステップS502の処理をスキップしてステップS503の処理へ移行する。
【0102】
このとき、工場ライン条件を満たす場合(ステップS502Yes)、ロット抽出部15Bは、引当条件に出荷日条件の設定があるか否か、すなわち出荷日条件が「なし」以外であるかを判定する(ステップS503)。そして、引当条件に出荷日条件の設定がある場合(ステップS503Yes)、ロット抽出部15Bは、ロット情報が出荷日条件を満たすか否かをさらに判定する(ステップS504)。なお、引当条件に出荷日条件の設定がない場合(ステップS503No)、上記のステップS504の処理をスキップしてステップS505の処理へ移行する。
【0103】
続いて、出荷日条件を満たす場合(ステップS504Yes)、ロット抽出部15Bは、引当条件に納品日条件の設定があるか否か、すなわち納品日条件が「なし」以外であるかを判定する(ステップS505)。そして、引当条件に納品日条件の設定がある場合(ステップS505Yes)、ロット抽出部15Bは、ロット情報が納品日条件を満たすか否かをさらに判定する(ステップS506)。なお、引当条件に納品日条件の設定がない場合(ステップS505No)、上記のステップS506の処理をスキップしてステップS507の処理へ移行する。
【0104】
そして、納品日条件を満たす場合(ステップS506Yes)、ロット抽出部15Bは、引当条件に検収日条件の設定があるか否か、すなわち検収日条件が「なし」以外であるかを判定する(ステップS507)。そして、引当条件に検収日条件の設定がある場合(ステップS507Yes)、ロット抽出部15Bは、ロット情報が検収日条件を満たすか否かをさらに判定する(ステップS508)。なお、引当条件に検収日条件の設定がない場合(ステップS507No)、上記のステップS508の処理をスキップしてステップS509の処理へ移行する。
【0105】
ここで、検収日条件も満たす場合(ステップS508Yes)、ロット抽出部15Bは、適応ロットと判定し(ステップS509)、処理を終了する。一方、工場ライン条件、出荷日条件、納品日条件または検収日条件のいずれか1つでも満たさない場合(ステップS502No、ステップS504No、ステップS506NoまたはステップS508No)、ロット抽出部15Bは、不適応ロットと判定し(ステップS510)、処理を終了する。
【0106】
図12の説明に戻り、すべてのロット情報に上記のロット判定処理が実行されるまで(ステップS306No)、上記のロット判定処理が実行される(ステップS305)。その後、すべてのロット情報に上記のロット判定処理が実行された場合(ステップS306Yes)、ロット抽出部15Bは、ロット条件に設定があるか否か、すなわちロット条件が「なし」以外であるか否かを判定する(ステップS307)。
【0107】
このとき、ロット条件が設定されている場合(ステップS307Yes)、ロット抽出部15Bは、適応ロットのロット情報のうち、ロット条件を満たすロット情報をさらに抽出する(ステップS308)。その上で、ロット抽出部15Bは、抽出後のロット情報を有効期限が早い順にソートし(ステップS309)、該ソートされたロット情報の一覧をクライアント端末50に表示させ(ステップS310)、処理を終了する。
【0108】
なお、ロット条件が設定されていない場合(ステップS307No)、ステップS308の処理はスキップされる。この場合、適応ロットのロット情報を有効期限が早い順にソートし(ステップS309)、該ソートされたロット情報の一覧をクライアント端末50に表示させ(ステップS310)、処理を終了する。
【0109】
図11の説明に戻り、在庫引当受付部15Cは、ステップS105のロット抽出処理の結果として抽出されたロット情報の一覧上で在庫引当を行うロットおよび引当数を受け付ける(ステップS106及びステップS107)。
【0110】
そして、受注入力画面に含まれる全ての商品に在庫引当が行われるまで(ステップS108No)、上記のステップS104から上記のステップS107までの処理が繰り返し実行される。
【0111】
その後、受注入力画面に含まれる全ての商品に在庫引当が行われた場合(ステップS108Yes)、在庫引当判定部15Dは、上記のロット情報の一覧上で受け付けた在庫引当が引当条件を満たすか否かを判定する「在庫引当判定処理」を実行し(ステップS109)、処理を終了する。
【0112】
図14は、実施例1に係る在庫引当判定処理の手順を示すフローチャートである。この処理は、
図11に示したステップS109の処理に対応する。
図14に示すように、在庫引当判定部15Dは、記憶部13に記憶された受注情報13A1のうち受注入力画面を介して登録が行われたエントリに対応する顧客コードを取得する(ステップS701)。
【0113】
さらに、在庫引当判定部15Dは、記憶部13に記憶された引当条件情報13Bに含まれる引当条件のうち、ステップS701で取得された顧客コードに対応する引当条件を取得する(ステップS702)。
【0114】
さらに、在庫引当判定部15Dは、記憶部13に記憶されたロット情報13Cのうち在庫引当が行われたエントリの引当数と、記憶部13に記憶された引当情報13Dのうち在庫引当により新規に生成されたエントリの引当数とを取得する(ステップS703)。
【0115】
その上で、在庫引当判定部15Dは、複数ロットに引当数が入力されているか否かを判定する(ステップS704)。このとき、複数ロットに引当数が入力されている場合(ステップS704Yes)、在庫引当判定部15Dは、引当条件のうちロット条件に「同一ロット」が設定されているか否かをさらに判定する(ステップS705)。
【0116】
そして、ロット条件に「同一ロット」が設定されている場合(ステップS705Yes)、在庫引当判定部15Dは、在庫引当不可であると判定し(ステップS706)、処理を終了する。
【0117】
また、複数ロットに引当数が入力されていない場合(ステップS704No)、あるいは複数ロットに引当数が入力されていてもロット条件に「同一ロット」が設定されていない場合(ステップS704YesかつステップS705No)、在庫引当判定部15Dは、各ロットの引当数が各ロットの在庫数以下であるか否かのチェックを行う(ステップS707)。
【0118】
ここで、各ロットの引当数が各ロットの在庫数以下でない場合(ステップS707No)、在庫引当判定部15Dは、在庫引当不可であると判定し(ステップS706)、処理を終了する。一方、各ロットの引当数が各ロットの在庫数以下である場合(ステップS707Yes)、在庫引当判定部15Dは、在庫引当可能であると判定し(ステップS708)、処理を終了する。
【0119】
[効果の一側面]
上述してきたように、本実施例に係るサーバ装置10は、ロットおよび顧客ごとに引当条件を設定できるようにする。そして、受注入力の際に、引当条件に応じて引当可能なロットを自動的に抽出し、ロットごとに在庫引当が行えるようにする。さらに、ロットごとの受注数入力の際に、引当条件のチェックを行う。したがって、本実施例に係るサーバ装置10によれば、ロットを基準にした在庫引当を実現することが可能である。
【実施例2】
【0120】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【0121】
[分散および統合]
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されておらずともよい。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、受注情報受付部15A、ロット抽出部15B、在庫引当受付部15Cまたは在庫引当判定部15Dをサーバ装置10の外部装置としてネットワーク経由で接続するようにしてもよい。また、受注情報受付部15A、ロット抽出部15B、在庫引当受付部15Cまたは在庫引当判定部15Dを別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記のサーバ装置10の機能を実現するようにしてもよい。
【0122】
[受注入力プログラム]
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、
図15を用いて、上記の実施例と同様の機能を有する受注入力プログラムを実行するコンピュータの一例について説明する。
【0123】
図15は、コンピュータのハードウェア構成例を示す図である。
図15に示すように、コンピュータ100は、操作部110aと、スピーカ110bと、カメラ110cと、ディスプレイ120と、通信部130とを有する。さらに、このコンピュータ100は、CPU150と、ROM160と、HDD170と、RAM180とを有する。これら110~180の各部はバス140を介して接続される。
【0124】
HDD170には、
図15に示すように、上記の実施例1で示した受注情報受付部15A、ロット抽出部15B、在庫引当受付部15C及び在庫引当判定部15Dと同様の機能を発揮する受注入力プログラム170aが記憶される。この受注入力プログラム170aは、
図1に示した受注情報受付部15A、ロット抽出部15B、在庫引当受付部15Cまたは在庫引当判定部15Dの各構成要素と同様、統合又は分離してもかまわない。すなわち、HDD170には、必ずしも上記の実施例1で示した全てのデータが格納されずともよく、処理に用いるデータがHDD170に格納されればよい。
【0125】
このような環境の下、CPU150は、HDD170から受注入力プログラム170aを読み出した上でRAM180へ展開する。この結果、受注入力プログラム170aは、
図15に示すように、受注入力プロセス180aとして機能する。この受注入力プロセス180aは、RAM180が有する記憶領域のうち受注入力プロセス180aに割り当てられた領域にHDD170から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、受注入力プロセス180aが実行する処理の一例として、
図11~
図14に示す処理などが含まれる。なお、CPU150では、必ずしも上記の実施例1で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
【0126】
なお、上記の受注入力プログラム170aは、必ずしも最初からHDD170やROM160に記憶されておらずともかまわない。例えば、コンピュータ100に挿入されるフレキシブルディスク、いわゆるFD、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に受注入力プログラム170aを記憶させる。そして、コンピュータ100がこれらの可搬用の物理媒体から受注入力プログラム170aを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANなどを介してコンピュータ100に接続される他のコンピュータまたはサーバ装置などに受注入力プログラム170aを記憶させておき、コンピュータ100がこれらから受注入力プログラム170aを取得して実行するようにしてもよい。
【符号の説明】
【0127】
1 販売管理システム
10 サーバ装置
11 通信インタフェース
13 記憶部
13A 受注情報
13B 引当条件情報
13C ロット情報
13D 引当情報
15 制御部
15A 受注情報受付部
15B ロット抽出部
15C 在庫引当受付部
15D 在庫引当判定部
50 クライアント端末