以下、本発明の実施形態について、図面を参照して詳細に説明する。なお、本実施形態では、管理システムがカフェテリア方式のレストラン店で用いられる場合について説明するが、本発明はこれに限らず、カフェ等の飲食店に用いられても良い。また、本実施形態では、料理が盛られている食器に、非接触で読み書き可能な無線タグの一例としてID付き無線タグが取り付けられているものとする。本実施形態では、一例として、カフェテリア方式で顧客が、料理が盛られている食器を取って自ら席に運んだ後に、特別注文する場合の会計処理の一例を説明する。また、本実施形態では、食事の後に会計をする後会計方式を前提とする。なお、特別注文は、顧客が食器を取って自ら席に運んだ後だけに限らず、顧客が食器を取って自ら席に運ぶ以前でもよい。
図1は、本実施形態に係るデータ管理システム9の構成を示す概略ブロック図である。飲食データ管理コントローラ(CT、管理装置)1と、無線中継機2と、ハンディターミナル(HT、読取装置)3と、伝票出力用プリンタ4と、調理指示表示装置5と、食器6と、携帯用プリンタ7と、POS(Point Of Sale;販売時点情報管理)レジスタ8とを備える。
飲食データ管理コントローラ1は、POSレジスタ8と通信を行う。飲食データ管理コントローラ1は、無線中継機2を介して、例えばハンディターミナル3、伝票出力用プリンタ4、及び、調理指示表示装置5と無線通信を行う。また、飲食データ管理コントローラ1は、飲食物に関する飲食データを一元管理する。飲食データ管理コントローラ1は、例えば、店内にある。
例えば、飲食データ管理コントローラ1は、ハンディターミナル3から送信された入力情報を無線中継機2を介して受信し、受信した入力情報を保持する。飲食データ管理コントローラ1は、ハンディターミナル3が読み取った食器識別情報と特別注文を識別する注文識別情報とを記憶部に関連付けて記憶させる。
また、例えば、飲食データ管理コントローラ1は、無線中継機2を介して伝票出力用データを伝票出力用プリンタ4へ送信する。
また、例えば、飲食データ管理コントローラ1は、POSレジスタ8からの合計金額の要求に応じて、POSレジスタ8から送信された会計IDに応じた会計金額情報を読み出し、読み出した合計金額情報をPOSレジスタ8へ送信する。ここで、会計金額情報は、会計金額を示す情報である。
無線中継機2は、例えば店舗の壁に設置され、データ管理システム9の各機器との間で通信を中継する。例えば、無線中継機2は、飲食データ管理コントローラ1と、ハンディターミナル3、伝票出力用プリンタ4、及び、調理指示表示装置5と、の無線通信を中継する。
例えば、無線中継機2は、店内の各機器から送信されたデータを受信し、受信したデータを飲食データ管理コントローラ1へ出力する。また、無線中継機2は、飲食データ管理コントローラ1から送信されたデータを店内の各機器へ送信する。無線中継機2は、例えば、壁などに配置される。なお、無線中継機2は、複数台あってもよい。
ハンディターミナル3は、店員が携帯し、注文を入力したり食器の個数をカウントしたりするために使用する。ハンディターミナル3は、操作者(例えば、店員)からの入力を受け付け、受け付けた入力に応じて表示を変更する。また、ハンディターミナル3は、操作者からの入力に基づいて、注文データを生成する。ハンディターミナル3は、注文データを無線中継機2を介してデータ管理コントローラ1に送信する。このハンディターミナル3からの注文データに基づき、データ管理コントローラ1は、伝票出力用プリンタ4に伝票データを、調理指示表示装置5には調理指示データを送信する。なお、ハンディターミナル3は、注文データを、無線中継機2を介して伝票出力用プリンタ4及び調理指示表示装置5へ送信するようにしてもよい。
また、ハンディターミナル3は、食器6に取り付けられたID付き無線タグ61が保持する情報を読み取る。ハンディターミナル3は、読み取った情報に基づいて、食器カウントデータを生成する。ハンディターミナル3は、食器カウントデータを、無線中継機2を介して飲食データ管理コントローラ1へ送信する。
また、ハンディターミナル3は、顧客の注文を示す注文情報を、無線中継機2を介して調理指示表示装置5へ送信する。
その後、ハンディターミナル3は、飲食データ管理コントローラ1から会計データを受信し、受信した会計データに基づいて、伝票に印字する印刷データを生成する。ハンディターミナル3は、生成した印刷データを携帯用プリンタ7へ送信する。
伝票出力用プリンタ4は、顧客用の伝票を印刷するプリンタである。伝票出力用プリンタ4は、飲食データ管理コントローラ1から受信した注文データの示す注文内容を、印刷して出力する。なお、伝票出力用プリンタ4は、注文データをハンディターミナル3から受信して印刷してもよく、また、飲食データ管理コントローラ1と有線接続されても良い。
調理指示表示装置5は、顧客からの注文を調理担当者に報知する。調理指示表示装置5は、飲食データ管理コントローラ1から受信した注文データに基づいて、メニュー名や数量を表示する。なお、調理指示表示装置5は、注文データをハンディターミナル3から受信して表示してもよく、また、飲食データ管理コントローラ1と有線接続されても良い。
また、調理指示表示装置5は、顧客の注文を印字するプリンタでもよい。また、調理指示表示装置5は、複数台あってもよい。
食器6は、料理が盛られる食器である。なお、食器6には、料理以外の物(飲食物や遊具)が載せられても良い。食器6には、ID付き無線タグ61が取り付けられている。このID付き無線タグ61には、例えば食器を識別する食器識別情報(以下、食器IDという)と、食器の種類(100円小鉢、デザート200円プレート、ホットドリンク150円マグカップなど。以後、説明の簡略化のため、「○○円食器」と表現する)を示す情報(以下、食器の種類という)が記憶されている。
携帯用プリンタ7は、ハンディターミナル3からの指令によって伝票を印刷するプリンタである。携帯用プリンタ7は、ハンディターミナル3から受信した印刷データを表す会計伝票を印刷する。ここで、携帯用プリンタ7は、会計伝票に、会計IDを示すバーコードを印刷する。なお、携帯用プリンタ7は、ハンディターミナル3に内蔵されているかまたは一体になっていてもよい。
POSレジスタ8は、顧客(又は顧客のグループ)が会計をするための機器である。POSレジスタ8は、例えば、会計IDがバーコード化されたバーコードを読みとり、そのバーコードから会計IDを抽出する。そして、POSレジスタ8は、会計IDに対応する会計演算情報を飲食データ管理コントローラ1に要求する。POSレジスタ8は、送信した会計IDに対応する会計演算情報を飲食データ管理コントローラ1から受信し、受信した会計演算情報に基づいて会計処理を行う。そして、POSレジスタ8は、会計処理を行う。なお、POSレジスタ8は、店内に複数あってもよい。
<飲食データ管理コントローラ1について>
図2は、本実施形態に係る飲食データ管理コントローラ1の概略ブロック図である。この図において、飲食データ管理コントローラ1は、CPU(Central Processing Unit)10と、ROM(Read Only Memory)11と、RAM(Random Access Memory)12と、通信制御部13と、記憶部14とを備える。
CPU10は、コンピュータの中央処理装置である。CPU10は、ROM11、RAM12、及び記憶部14に記憶されるデータに基づいて演算処理を行うことで、飲食データ管理コントローラ1の各部を制御する。例えば、CPU10は、ハンディターミナル3が読み取った食器識別情報と特別注文を識別する注文識別情報とを記憶部14に関連付けて記憶させる処理部として機能する。
CPU10は、ハンディターミナル3から注文に関する注文データを受信する毎に、その注文データに対して注文を識別する注文識別情報(注文ID)を付与する。ここで、注文IDは、未会計の注文データの中で固有の識別情報である。
ROM11は、読み出し専用のメモリである。ROM11には、CPU10が読み出して実行する各種のプログラムが記憶されている。
RAM12は、書き込みと読み出しのできるメモリである。RAM12は、CPU10が一時的に読み書きするデータを保持する。
通信制御部13は、CPU10の制御に基づいて、外部の装置と通信を行う。例えば、通信制御部13は、POSレジスタ8と通信を行う。通信制御部13は、無線中継機2を介して、例えばハンディターミナル3、伝票出力用プリンタ4、及び、調理指示表示装置5と無線通信を行う。通信制御部13は、通信で取得した情報を、RAM12、又は記憶部14に書き込む。
記憶部14は、CPU10によって書き込まれたデータを保持する。ここで、記憶部14は、例えばハードディスクである。なお、記憶部14は、シリコンディスク上のデータベースあるいはファイルであってもよい。
図3は、飲食データ管理コントローラ1の記憶部14に記憶されるデータの構成の一例である。記憶部14は、注文データ保持部15と、会計データ保持部16と、メニューマスタ保持部17とを備える。注文データ保持部15は、ハンディターミナル3から入力される注文データに対して注文IDと会計フラグが付与された注文データを保持する。同図の例では、注文データ保持部15は、注文ID−1、…、注文ID−nのn個(nは正の整数)の注文データを保持する。
会計データ保持部16は、会計時に作成される会計データを保持する。同図の例では、会計データ保持部16は、会計ID−a、…、会計ID−xまでの会計データを保持する(a及びxは正の整数)。
メニューマスタ保持部17は、メニューマスタとサブメニューマスタ、その他のマスタ(例えば、店員マスタなど)を保持する。ここで、メニューマスタは、例えば、各種のメニューを識別するメニューIDとメニュー名とを関連付けて保持するテーブルである。サブメニューマスタは、あるメニュー名を選択時に選択する情報(例えば、卵あり/なしの選択、大/小の選択、焼き/煮つけの選択)を保持する。店員マスタは、例えば、店員を識別する店員IDと店員の名前とを関連付けて保持する。
図4は、飲食データ管理コントローラ1の注文データ保持部15に記憶される注文データの構成の一例である。この図において、注文データは、注文ID、テーブルNo、注文アイテムデータ、リンク情報、会計フラグから構成されている。
なお、注文IDは例えば1回の注文で「ビール2本と船盛り1丁」と注文された場合に、「ビール2本」と「船盛り1丁」にそれぞれ付番され、別々の注文データがハンディターミナル3上で生成される。これは、後に記述する「リンクの変換」や「割り勘」を考慮した仕様である。
テーブルNoは、注文をした顧客のテーブル番号を示し、注文品を配膳するための情報である。
注文アイテムデータは、注文品の詳細を示すデータであり、例えば、メニューNo、数量及び変動金額から構成されている。飲食の途中などに追加する特別注文があった場合にこの注文アイテムデータに情報が追加される。メニューNoは、メニューマスタに登録されているメニューを識別する番号である。例えば、瓶ビールが注文された場合、メニューNoは「100」である。数量は、当該メニューが注文された数量である。例えば、瓶ビールが2本注文された場合、数量は「2」である。変動金額は、メニューマスタ上、金額が定まっていないメニュー(時価など)の場合に、注文時などにハンディターミナル3から入力された金額である。
リンク情報は、この注文に対して関連付けられる(リンクされる)食器6の識別情報(以下、リンク食器IDという)を有している。このリンク食器IDは、注文入力時に店員のハンディターミナル3の操作によって読み取る食器6のID付き無線タグ61に記録されている食器識別情報(以下、食器IDという)である。ここで、食器IDは、食器6に固有の識別情報である。
会計フラブは、会計済みか否かを示す情報であり、本実施形態では例えば、未会計の場合0で、会計済みの場合1である。
図5は、飲食データ管理コントローラ1の会計データ保持部16に記憶される会計データの構成の一例である。この図において、会計データは、会計ID、顧客情報、食器カウントデータ、注文データ集合、会計金額及び会計フラグから構成されている。会計IDは、飲食データ管理コントローラ1が生成する、未会計データの中で固有の番号である。顧客情報は、一例として、テーブルNo、人数及び客層から構成されている。
テーブルNo.は、テーブルの識別情報である。例えば、テーブルNo.は、同じテーブルに同席した顧客のグループを示す。1人用の席(例えばカウンター席)の場合は、テーブルNo.は、その顧客を示す。なお、テーブルNo.は、席の識別情報であっても良い。また、テーブルNo.は複数の項目を有してもよく、例えば、1組のお客が複数のテーブルに亘って座る場合、この複数のテーブルのテーブルNo.すべてが同一の注文データ(図5参照)の項目に格納されてもよい。
人数は、顧客のグループの人数である。客層とは、顧客の階層を示し、例えば、性別や顧客グループの構成、年齢である。具体的には、客層には、「男」或いは「女」のいずれか、又は、「家族連れ」、「単独」或いは「カップル」のいずれか、を表す情報が格納される。なお、客層は、マーケティング等の分析に用いられる情報である。また、客層は、複数の項目を有してもよい。
食器カウントデータは、店内に存在する食器の種類分のフィールドを持ち、それぞれのカウント数を示す情報である。例えば、食器カウントデータは、100円食器が5個、150円食器が2個及び500円食器は0個いう情報である。
注文データ集合は、一例として注文IDが1からnまでのn個の注文データから構成されている。特別注文があった場合に、会計データ保持部16が保持する注文データの領域に情報が追加される。
注文データ集合に含まれる個々の注文データは、注文ID毎に、注文ID、メニューNo、数量、変動金額から構成されている。メニューNoは、メニューマスタに登録されているメニューの番号である。例えば、メニューNoが100の場合、瓶ビールを示す。数量は、当該メニューを注文された数量である。例えば、瓶ビールが2本注文された場合、数量は「2」である。変動金額は、メニューマスタ上、金額が定まっていないメニュー(時価など)の場合、注文時にハンディターミナル3から入力される金額である。
会計金額は、会計の合計金額の演算により得られた合計金額である。会計フラブは、会計済みか否かを示す情報であり、本実施形態では例えば、未会計の場合0で、会計済みの場合1である。例えば「お勘定お願いします」と顧客から言われた時に、店員がハンディターミナル3を操作することにより、ハンディターミナル3がテーブル上の食器に取り付けられたID付き無線タグ61から食器ID及び食器の種類等を読み取る。以下、この読み取りを食器スキャンともいう。ハンディターミナル3は、読み取った食器ID及び食器の種類等を含む食器カウントデータを飲食データ管理コントローラ1へ送信する。飲食データ管理コントローラ1は、その情報に基づいて、合計金額を算出する。同図の会計データは、その算出の経過で作成される会計に関わる情報である。
図6は、飲食データ管理コントローラ1のメニューマスタ保持部17が保持するメニューマスタデータの構成の一例を示す概略図である。この図において、メニューマスタデータは、メニューNo.、ハンディ表示名称、伝票表示名称、調理指示表示名称、金額オープンフラグ、金額、及び、サブメニューNo.(1)〜(h)の各項目を有する。ここで、メニューNo.は、キーとなる情報である。ハンディ表示名称は、ハンディターミナル3に表示されるメニューの名称を示す。伝票表示名称は、伝票出力用プリンタ4で印字されるメニューの名称を示す。調理指示表示名称は、調理指示表示装置5に表示されるメニューの名称を示す。
金額オープンフラグは、金額固定を表す「0」又は金額オープンを表す「1」が格納される。金額は、メニューの金額を示す。なお、金額オープンフラグが「1」の場合、そのメニューの金額は変動金額であるので、金額は「null」(値なし)となる。サブメニューNo.(1)〜(h)は、メニューを選択するときに選択できる情報である(図6参照)。なお、サブメニューNo.(H)(H=1、2、・・・、h)が「0」場合は、選択される情報がないことを表す。
図6において、例えば、メニューNo.「2」のメニューは、ハンディ表示名称が「キセツ」、伝票表示名称が「季節のお魚」、調理指示表示名称が「季節」であることを表している。また、メニューNo.「2」のメニューは、金額オープン(金額オープンフラグが「1」)、金額が無し(変動金額を入力)であり、サブメニューNo.が「1」と「4」の情報を選択できることを表している。
図7は、飲食データ管理コントローラ1のメニューマスタ保持部17が保持するサブメニューマスタデータの構成の一例を示す概略図である。この図において、サブメニューマスタデータは、サブメニューNo.毎に選択肢(セレクト1、2、・・・)の項目を有する。また、サブメニューマスタデータは、選択肢毎に、ハンディ表示名称、伝票表示名称、調理指示表示名称、及び、付加金額の項目を有する。付加金額は、メニューの金額に付加(増額)する金額である。
図7のサブメニューマスタデータは、例えば、サブメニューNo.が「1」のときに、メニューの飲食物の大(「セレクト1」)と小(「セレクト2」)が選択できることを表す。このとき、「セレクト1」が選択された場合には、ハンディ表示名称が「ダイ」、伝票表示名称が「大」、調理指示表示名称が「大」、付加金額が「50」であることを表している。また、図7のサブメニューマスタデータは、例えば、サブメニューNo.が「2」のときに、メニューの飲食物の調理を「焼き」とするか「煮付け」とするかを選択できることを表す。
<ハンディターミナル3について>
図8は、本実施形態に係るハンディターミナル3のハードウェア構成を示す概略ブロック図である。この図において、ハンディターミナル3は、CPU30と、ROM31と、RAM32と、表示部33と、入力部34と、無線制御部(通信部)37と、無線タグ−R/W部(読取部)38と、音声出力部39とを備える。
CPU30は、コンピュータの中央処理装置である。CPU30は、ROM31、RAM32、及び記憶部37に記憶されるデータに基づいて演算処理を行うことで、ハンディターミナル3の各部を制御する。
ROM31は、読み出し専用のメモリである。ROM31は、CPU30が実行する各種のプログラムを保持する。
RAM32は、書き込みと読み出しのできるメモリである。RAM32は、CPU30が一時的に読み書きするデータを保持する。本実施形態では、RAM32上に記憶部320が形成されるものとする。
表示部33は、例えば、液晶ディスプレイである。表示部33は、CPU30が生成した表示情報に基づいて、表示を行う。
入力部34は、店員による入力を受け付け、受け付けた入力情報をCPU30へ出力する。ここで、入力部34は、タッチパネル35とキーボード36とを備える。
タッチパネル35は、操作入力デバイスとして、指などの操作体が接触した位置を検知し、検知した位置を示す位置信号をCPU30へ出力する。キーボード36は、複数のキーを有し、店員が指などの操作体がキーを押すと、押されたキーを示すキー信号をCPU30へ出力する。
キーボード36は、例えば、十字キー等の選択キー、数字を入力するテンキー、入力を確定させるENTキー、処理を終了させる終了キー、処理を取り消すキャンセルキーを有する。
なお、本実施形態において、タッチパネル35に採用される方式は、人体の皮膚の接触に反応するものであれば、静電容量方式や抵抗膜方式など、公知の方式のタッチパネルを用いることができ、特定のタッチパネルに限定されない。
無線制御部37は、CPU30の制御に基づいて、外部の装置と通信を行う。例えば、無線制御部37は、飲食データ管理コントローラ1及び携帯用プリンタ7と通信を行う。無線制御部37は、通信で取得した情報を、RAM32に書き込む。
無線タグ−R/W部38は、食器6に取り付けられたID付き無線タグ61の情報を読み書きする。例えば、店員がハンディターミナル3を操作することにより、無線タグ−R/W部38は、顧客が特別注文をする毎に、顧客のテーブルの上にある食器6のうちから一の食器6が備えるID付き無線タグ61から食器IDを読み取る。そして、無線タグ−R/W部38は、読み取った食器IDをCPU30へ出力する。CPU30は、その食器IDを無線制御部37を介して飲食データ管理コントローラ1へ送信する。これにより、飲食データ管理コントローラ1は、その食器IDと特別注文を識別する注文IDとを記憶部14に関連付けて記憶させる。
また、店員が勘定する場合、店員がハンディターミナル3を操作することにより、無線タグ−R/W部38は、顧客のテーブルの上にある全ての食器に取り付けられた非接触IDタグから食器IDを読み取り、読み取った全ての食器IDをCPU30へ出力する。CPU30は、その全ての食器IDを、無線制御部37を介して飲食データ管理コントローラ1へ送信する。これにより、飲食データ管理コントローラ1は、その食器IDと関連付けて記憶している注文IDを参照して、顧客の会計金額を算出する。
音声出力部39は、無線タグ−R/W部38が食器6に取り付けられたID付き無線タグ61から、既読でない食器IDを読み取る毎に、音(例えば、ブザー音)を出力する。
図9は、本実施形態に係るハンディターミナル3のソフトウェア構成を示す概略ブロック図である。ハンディターミナル3は、ハードウェア91と、OS(オペレーティングシステム)・BIOS92と、注文データ処理部93と、食器カウントデータ処理部96とを備える。BIOSは、ベーシックインプットアウトプットシステムである。
この図において、図8で示したハードウェア91を制御するためのドライバを含むOS・BIOS92の上で、注文データ処理部93と、食器カウントデータ処理部96とが動作することが示されている。
注文データ処理部93は、ある注文に該当するキーが押された場合、入力部34から対応するキー信号を受け取る。そして、注文データ処理部93は、受け取ったキー信号に基づいて、注文データを生成し、生成した注文データを飲食データ管理コントローラ1へ出力する。ここで、注文データ処理部93は、注文入力部94と、食器リンク処理部95とを備える。
注文入力部94は、ある注文に該当するキーが押された場合、入力部34から対応するキー信号を受け取り、受け取ったキー信号に基づいて注文データを生成する、そして、生成した注文データをRAM32で一旦保持させる。
食器リンク処理部95は、食器6に取り付けられたID付き無線タグ61から食器IDと食器の種類等を読み取り、読み取った食器IDをRAM32に保持されている注文データ(図11参照)のリンク情報に上書きし、RAM23に一旦保持させる。そして、食器リンク処理部95は、RAM23が保持する注文データを無線制御部37から飲食データ管理コントローラ1へ送信させる。
食器カウントデータ処理部96は、食器6に取り付けられたID付き無線タグ61から食器IDと食器の種類等を読み取り、読み取った食器IDと食器の種類等を食器カウントデータ(図12参照)の一部としてRAM32に一旦記憶させる。そして、食器カウントデータ処理部96は、その食器カウントデータデータを無線制御部37から飲食データ管理コントローラ1へ送信する。
図10は、本実施形態に係るハンディターミナル3のRAM32に形成される記憶部320の構成を示す概略ブロック図である。同図に示すように、RAM32上に形成される記憶部320は、メニューマスタ保持部321と、注文データ保持部322と、食器カウントデータ保持部323とを備える。
メニューマスタ保持部321は、メニューマスタを保持する。メニューマスタ保持部321は、飲食データ管理コントローラ1とメニューマスタの同期を取っている。すなわち、飲食データ管理コントローラ1が保持するメニューマスタと同じものを保持する。
ただし、図6及び図7の構成のうち、ハンディターミナル3で必要な情報だけを保持するようにしてもよい。例えば、ハンディターミナル3は、伝票表示名称や調理指示表示名称を保持していなくてもよい。
注文データ保持部322は、注文データを保持する。この注文データは客の注文が発生する度に、一時的にハンディターミナル3に生成されるデータであり、飲食データ管理コントローラ1に送信された後は飲食データ管理コントローラ1が保存するので、CPU30は、RAM32上から削除してもよい。
食器カウントデータ保持部323は、食器IDと食器の種類とを含む食器カウントデータを保持する。この食器カウントデータは、お勘定時にテーブル上の食器6のID付き無線タグ61から食器IDと食器の種類等をハンディターミナル3で読み取ったときに、一時的にハンディターミナル3に生成されるデータである。そのため、この食器カウントデータは、飲食データ管理コントローラ1に送信された後は、飲食データ管理コントローラ1が保持するので、CPU30は、RAM32上から食器カウントデータを削除してもよい。
図11は、本実施形態に係るハンディターミナル3の注文データ保持部322に記憶される注文データの構成の一例である。同図の例では、注文データは、テーブルNo、注文アイテムデータ及びリンク情報から構成されている。テーブルNoは、テーブル番号であり、注文品を配膳するための情報である。注文アイテムデータは、特別注文があった場合にこの領域に情報が追加される。
同図の例では、注文アイテムデータは、メニューNO、数量及び変動金額から構成されている。メニューNOは、メニューマスタに登録されているメニューの番号である。例えばメニューNOが「100」の場合、瓶ビールを示す。数量は、当該メニューが注文された数量である。例えば、瓶ビール2本が注文された場合、数量は「2」である。変動金額は、メニューマスタ上、金額が定まっていないメニュー(時価など)の場合、注文時にハンディターミナル3から入力されるそのメニューの金額である。
リンク情報は、この注文に対してリンクされるリンク食器IDである。このリンク食器IDは、注文入力時に店員のハンディターミナル3の操作によって、無線タグ−R/W部38が食器6のID付き無線タグ61から読み取った食器IDである。
図12は、本実施形態に係るハンディターミナル3の食器カウントデータ保持部323に記憶される食器カウントデータの構成の一例である。同図の例では、食器カウントデータは、顧客情報及び食器スキャンデータから構成されている。顧客情報は、テーブルNo、人数及び客層から構成されている。テーブルNoは、顧客が座ったテーブルNoである。1組の顧客が複数のテーブルに亘って座る場合を想定して、食器カウントデータ保持部323は、複数の領域を確保してもよい。人数は、そのテーブルの顧客の人数である。客層は、男/女、家族連れ/単独などの情報であり、のちに客層を分析するための情報である。なお、店員が客層に複数の情報を入力できるように、客層は1組の顧客に対して複数のフィールドを保持してもよい。
食器スキャンデータは、食器1枚につき、読み取った食器IDとその食器の種類(例えば、100円食器、200円食器)との一組のデータを含んでいる。食器カウントデータはお勘定時にテーブル上の食器6のID付き無線タグ61から食器IDと食器の種類等をハンディターミナル3で読み取った時に、一時的にハンディターミナル3に生成されるデータである。ハンディターミナル3が飲食データ管理コントローラ1へ食器スキャンデータを送信した後は、飲食データ管理コントローラ1が食器スキャンデータを保持する。そのため、飲食データ管理コントローラ1に食器スキャンデータを送信した後は、CPU30は食器カウントデータ保持部323が保持する食器スキャンデータを削除してもよい。
<食器6について>
本実施形態に係る食器6は、目に見えない箇所、または、食器を洗っても防水が保てるような箇所に、ID付き無線タグ61を備えている。図13は、本実施形態に係るID付き無線タグ61の構成を示す概略図である。この図において、ID付き無線タグ61は、FROM(フラッシュROM)611、RAM612、CPU613、無線送信受信回路614、及びアンテナ615を備える。
FROM611は、書き換え可能であり、電源を切ってもデータが消えない不揮発性の半導体メモリである。FROM611は、食器データ(図14参照)を記憶する。
RAM612は、書き込みと読み出しのできるメモリである。RAM612は、CPU613が読み込むデータを一時的に記憶する。
CPU613は、ID付き無線タグ61の中央処理装置である。CPU613は、ID付き無線タグ61の外部からの給電又は内蔵電源によって起動する。CPU613は、FROM611が記憶する食器データをRAMを介して取得する。CPU613は、取得した食器データを、無線送信受信回路614へ出力する。無線送信受信回路614は、CPU613から入力された食器データを変調し、変調した食器データをアンテナ615を介して送信する。なお、無線送信受信回路614は、データを受信する場合には、データを復調してCPU613へ出力する。
図14は、本実施形態に係る食器データの構成の一例を示す概略図である。この図において、食器データは、食器ID、食器の種類、及び、その他付加情報の項目を有している。その他付加情報は、例えば、食品の製造時刻や、客先陳列の状態から食品と食器を回収する時刻等である。
図15Aは、本実施形態の飲食データ管理コントローラ1の処理の概要を説明するための図である。状態151では、食器1から食器5までの5枚の食器が示されている。この状態151で注文ID−1の特別注文1があった場合、飲食データ管理コントローラ1は、注文ID−1を食器2と関連付ける(リンクする)。そうすると、状態152となる。状態152では、食器2と注文ID−1とが破線で結ばれていることが示されている。
この状態152で、注文ID−2の特別注文2があった場合、飲食データ管理コントローラ1は、注文ID−2を食器4とリンクする。そうすると、状態153となる。状態153では、食器2と注文ID−1とに加えて、食器4と注文ID−2とが破線で結ばれていることが示されている。
最後にお勘定のために、ハンディターミナル3は、食器1〜5のID付き無線タグ61から食器IDを読み取り、読み取った食器IDを含む食器カウントデータを飲食データ管理コントローラ1へ送信する。飲食データ管理コントローラ1は、ハンディターミナル3から受信した食器1〜5の食器IDとリンクした注文ID−1と注文ID−2とを抽出する。そして、飲食データ管理コントローラ1は、食器1〜5の金額と注文ID−1の金額と注文ID−2に金額を加算した会計金額を算出する。
図15Bは、特別注文を受ける前のハンディターミナル(HT)3の表示部33の画面遷移を示す図である。この図において、機能選択画面154と、テーブル選択画面157とが示されている。まず、ハンディターミナルを起動した場合に、機能選択画面154が表示される。この機能選択画面154において、注文入力の選択ボタン155と食器カウントの選択ボタン156とが表示される。機能選択画面154の注文入力の選択ボタン156がタッチされて選択された場合、CPU30の制御により表示部33の画面がテーブル選択画面157へ遷移する。テーブル選択画面157において、テーブルNoの入力欄158が表示されている。ハンディターミナル3は、店員によるテーブルNoの入力を受け付け、受け付けたテーブルNoを保持する。
図15Cは、本実施形態に係るデータ管理システム9の注文時のシーケンスの一例を示す図である。このシーケンスは、図15BのテーブルNoを受け付けた後の処理である。
まず、ハンディターミナル(HT)3は、特別注文の入力を受け付け、受け付けた入力を注文データ(図11参照)の注文アイテムデータとして保持する(T101)。注文をハンディターミナル3で入力する時の画面遷移とハンディターミナル3の処理の詳細は後述する図16Aで説明する。
次に、注文入力が完了した場合、ハンディターミナル3は、特別注文を、特別注文した顧客のテーブル上にある食器とリンクさせる(T102)。具体的には、例えば、ハンディターミナル(HT)3は、その特別注文をした顧客の食器のID付き無線タグ61から食器IDを読み出す。そして、ハンディターミナル3は、読み取った食器IDで上記注文データ中のリンク食器IDとして保持する。
なお、リンクする食器はテーブル上のどの食器でもよく、確実に特別注文した顧客の食器であれば良い。
次に、T103において、ハンディターミナル3は、飲食データ管理コントローラ(CT)1へ注文データ(図11参照)を送信する。なお、1回の注文で複数のメニューが注文された場合には、図11に示す注文データをそのメニュー分、生成して飲食データ管理コントローラ1へ送信する。つまり、テーブルNoとリンク食器IDの入力は1回だけになるが、ハンディターミナル3は、注文により入力されたそれぞれのメニューNoに対してテーブルNoと食器IDを付加する。
このことを、例えば、テーブルNoが「5」で、注文されたメニューNoが「1」と「2」で、リンク食器IDが「xyz」の場合について説明する。この場合、ハンディターミナル3が生成するデータは、二組の注文データである。一組は、テーブルNoが「5」で、注文されたメニューNoが「1」で、リンク食器IDが「xyz」という一組の注文データである。もう一組は、テーブルNoが「5」で、注文されたメニューNoが「2」で、リンク食器IDが「xyz」という一組の注文データである。
次に、T104において、飲食データ管理コントローラ1のCPU10は注文メニュー毎に注文ID(k)と注文データレコードとを生成する(図4参照)。ここで、kは注文データのインデックスである。飲食データ管理コントローラ1は、生成した注文データを保持する。
次に、T105において、飲食データ管理コントローラ1のCPU10は、注文データに含まれテーブルNo、メニューNo、数量、変動金額、リンク食器IDの値を入れる。
次に、T106において、飲食データ管理コントローラ1のCPU10は、注文データに含まれる会計フラグ(図4参照)を0(未会計)にする。
次に、T107において、飲食データ管理コントローラ1のCPU10は、注文データ分処理したか否か判定する。CPU10は、注文データ分処理していない場合(T107 NO)、CPU10はT105の処理に戻る。一方、CPU10は、注文データ分処理した場合(T107 YES)、CPU10は、T108の処理に遷移する。
次に、T108において、飲食データ管理コントローラ1はハンディターミナル3へ成功を返信する。これにより、T109において、ハンディターミナル3は、成功を表示部33の画面に表示する。
次に、T110において、飲食データ管理コントローラ1は調理指示表示装置5へ表示させる表示情報を送信する。この表示情報は、例えば、メニューと調理指示表示名称である。これにより、調理指示表示装置5は、メニューと調理指示表示名称を表示するので、調理担当者はこのメニューと調理指示表示名称を参照して顧客が注文した注文どおりの料理を調理することができる。
次に、T111において、飲食データ管理コントローラ1は伝票出力用プリンタ4から伝票を出力させる。伝票には、例えば、テーブルNoとメニューと伝票表示名称が表示される。これにより、店員は、この伝票を参照して調理された料理を載せた食器を、伝票に印字されたテーブルに運ぶことができる。また、例えば、店員は、その食器をテーブルに運び終わると、テーブル上にある伝票ホルダーにその伝票を保持させてもよい。これにより、この伝票を確認することにより、顧客は追加で注文した内容を確認することができる。以上で、本シーケンスの処理を終了する。
以上、図15のシーケンスにより、ハンディターミナル3は、特別注文の注文IDと食器IDとを関連付けた(リンクさせた)注文データ(図11参照)を生成する。そして、ハンディターミナル3は、生成した注文データを飲食データ管理コントローラ1へ送信する。そして、飲食データ管理コントローラ1は、受信した注文データを図4のデータ形式で保持する。
お勘定のときに、ハンディターミナル3はID付き無線タグ61が搭載された食器6の
全てから食器IDを読み取り、ハンディターミナル3は、読み取った食器IDを飲食デー
タ管理コントローラ1へ送信する。ここで、ハンディターミナル3から注文入力する特別
料理等が盛られた食器にはID付き無線タグ61が取り付けられなくてもかまわない。また、ハンディターミナル3から注文入力する特別料理等が盛られた食器にID付き無線タグ61が取り付けられていても食器IDを読み取る必要はない。そして、飲食データ管理コントローラ1は、注文データ保持部15が保持する注文データから、受信した食器IDがリンク食器IDとして含まれる注文IDを抽出する。これにより、飲食データ管理コントローラ1は、食器IDに対応する金額と注文IDに対応する金額とを加算することにより、合計金額を算出することができる。
すなわち、飲食データ管理コントローラ1は、注文IDとリンク食器IDとを関連付けて保持することにより、お勘定のときにハンディターミナル3が全ての食器6のID付き無線タグ61から食器IDを読み取った場合、特別注文の金額が含まれる合計金額を算出することができる。
なお、バックヤードまたは店員が手持ちで0円食器を用意しておき、上記処理と同様に、ハンディターミナル3はその0円食器の食器IDと注文IDとを関連付けて保持してもよい。その場合、店員は、0円食器をその場でテーブルの上に置いてくるか、注文品と一緒に運ぶかして、テーブル上に残るようにする。
図16Aは、図15CのT101における注文の入力処理のフローチャートとそのときの画面遷移の一例である。図16Bは、図15CのT102おける食器とのリンク処理のフローチャートとそのときの画面遷移の一例である。
まず、ステップS201において、ハンディターミナル3のCPU30は、注文入力画面を表示する。この図において、画面161は注文入力画面の一例である。
次に、ステップS202において、キーが入力されたか否か判定する(ステップS202)。キーが入力されていない場合(ステップS202 NO)、CPU30はステップS201の処理に戻る。キーが入力された場合(ステップS202 YES)、CPU30はステップS203の処理へ遷移する(ステップS203)。
ステップS203において、注文入力が完了したか否か判定する。注文入力が完了していない場合(ステップS203 NO)、CPU30はステップS204の処理に遷移する。
ステップS204において、CPU30は、注文入力からメニューNoを取得する。次に、ステップS205において、CPU30は、メニューマスタから、メニューNoに対応するハンディ表示名称を取得し、取得したハンディ表示名称を表示部33に表示させる。この図において、画面162は、「季節のお魚」が注文入力として入力された場合の表示画面の一例である。画面162において、「キセツ 1」が表示されており、これは「季節のお魚」の数量が「1」であることを示している。この数量「1」は仮の数量である。
次に、ステップS206において、CPU30は、金額オープンフラグが1であるか否か判定する(ステップS206)。金額オープンフラグが1である場合、CPU30は、金額入力処理を行う(ステップS207)。具体的には、CPU30は、入力部34からの金額の入力を待機する。ここで、店員は入力部34を操作して金額を入力する。入力部34は受け付けた金額をCPU30へ出力し、CPU30は、受け付けた金額で注文データの変動金額を更新し、ステップS208へ遷移する。一方、金額オープンフラグが1でない場合(ステップS206 NO)、CPU30は、サブメニューの有無の確認を行う(ステップS208)。
続いて、CPU30は、ステップ208とステップS209の処理をサブメニュー分、繰り返す。ステップS208において、サブメニュー(i)が存在しない(NULL)か否か判定する。ここで、iはサブメニューのインデックスを示す整数である。サブメニュー(i)が存在する場合(ステップ208 NO)、サブメニュー選択処理を実行する。具体的には、例えば、CPU30は、画面163を表示部に表示させる。画面163には、「ヤキ」ボタンと「ニツケ」ボタンが表示されている。例えば、焼きを顧客が選択した場合、店員は「ヤキ」ボタンをタッチすることによりヤキを選択する。CPU30は、「ヤキ」ボタンがタッチされた旨の入力を入力部34から受け取ると、例えば、画面164を表示させる。画面164には、キセツの数量が「1」で、そのうちヤキの数量が「1」であることが示されている。
ステップS208において、サブメニュー(i)が存在しない場合(ステップ208 YES)、次のサブメニューに対してステップS208の処理を実行する。
続いて、ステップ208とステップS209の処理をサブメニュー分、繰り返した後に、CPU30は、ステップS210へ遷移する。
ステップS210において、CPU30は、数量入力処理を実行する。その際に、入力部34は、数量の入力を受け付け、受け付けた数量を示す数量情報をCPU30へ出力する。CPU30は、注文データに含まれる数量を、入力部34から入力された数量情報が示す数量に変更し、その数量を表示部34に表示させる。例えば、画面164において、数量として「2」が入力された場合、CPU30は画面165を表示させる。画面165には、キセツの数量が「2」で、そのうちヤキの数量が「2」であることが示されている。
次にステップS211において、CPU30はENTキーが押されたか否か判定する。ENTキーが押されていない場合(ステップS211 NO)、CPU30は、ENTキーが押されるまで待機する。一方、入力部34のENTキーが押された場合(ステップS211 YES)、CPU30は、次の注文入力を受け付けるために、ステップS201の処理に戻る。
ステップS203に戻って、ステップS203において注文入力が完了した場合(ステップS203 YES)、CPU30は図16BのステップS211の処理へ遷移する。具体的には、例えば、画面161で、「終了」キーを押下することで注文を確定して注文入力を完了した場合、CPU30は図16BのステップS211以降のリンク処理を実行する。
次に、ステップS211において、CPU30は食器とのリンク操作画面を表示させる。具体的には、例えば、CPU30は、同図の画面166を表示部34に表示させる。画面166には、「リンクする食器を選択し、ハンディをかざしてください」という店員へのメッセージが示され、IDが値が入っていない空欄状態となっている。ここで、店員は、特別注文とリンクする食器6を選択し、その食器6に対してハンディターミナル3をかざしてID付き無線タグ61から食器IDと食器の種類等を読み出す。
次に、ステップS212において、CPU30は、食器IDを読み取ったか否か判定する。食器IDを読み取っていない場合(ステップS212 NO)、CPU30は更に待機する。食器IDを読み取った場合(ステップS212 YES)、CPU30は食器IDとのリンク確認処理を実行する(ステップS213)。具体的には、CPU30は読み取った食器IDとその食器の種類を表示部34に表示させる。具体的には、例えば、CPU30は画面167を表示部34に表示させる。画面167には、食器IDが「12345」で、食器の種類が「100円食器」であることが示されている。
画面167が表示されている状態でENTキーが押された場合、CPU30は、例えば、表示部34の画面を画面168へ遷移させる。画面168には「ID=12345、100円食器 よろしいですか」という確認を問うメッセージの一例が示されている。また、画面168には「YES」ボタンと「NO」ボタンが表示されている。ここで、画面168に表示されている「NO」ボタンが押された場合、CPU30は、例えば、表示部34の画面を画面166へ遷移させる。一方、画面168に表示されている「YES」ボタンが押された場合、CPU30は、例えば、表示部34の画面を画面169へ遷移させる。画面169には、無線転送中という文字が示されている。
ステップS213で食器IDとのリンク確認処理が終了した場合(例えば、画面168で「YES」ボタンが押された場合)、CPU30は注文データを生成する(ステップS214)。そして、CPU30は、生成した注文データを無線制御部37から飲食データ管理コントローラ1へ送信させる(ステップS215)。以上で、本フローチャートの処理を終了する。
以上、図16によれば、CPU30は、注文IDと食器IDとを関連付けた注文データを生成することができる。
なお、金額入力、サブメニュー入力(選択)、数量入力の順番は、この通りでなくてもよい。また、数量が複数の場合には一つ一つに別のサブメニューを選択できるようにしてもよい。
図17Aは、ハンディターミナル3におけるお勘定時の画面遷移の一例である。同図の機能選択画面171には、「注文入力」ボタンと「食器カウント」ボタンが表示されている。店員は、「食器カウント」ボタンを押して「食器カウント」を選択すると、それに応じてCPU30は、表示部34の画面を画面172へ遷移させる。
画面172には、テーブルNo、人数及び客層が空欄状態で示されている。ここで、画面172において、「テーブルNo=」に向かって右隣に示された黒四角が現在の入力位置を示している。このように、CPU30は、顧客情報の個々の情報を一つ一つガイダンスしながら入力を促す。なお、CPU30は、高度なGUI(Graphical User Interface)を使用して入力補助をしても良い。
画面172において、店員が顧客情報の入力を完了し、ENTキーを押下すると、それに応じてCPU30は表示部34の画面を画面173へ遷移させる。画面173において、カウント0枚であることが示されている。画面173は、まだ食器6のID付き無線タグ61を1枚も読み取っていない状態である。この状態で食器6のID付き無線タグ61を読むたびに、CPU30は、個数カウントを1ずつ増加させて表示する。CPU30は、読み取った事を示すために読み取る毎に、音声出力部39から音(例えば、ブザー音)を出力する。
なお、CPU30は、食器の種類と読み取った食器の個数とを表示させるようにしてもよい。例えば、CPU30は、「100円食器が5個、200円食器が2個、500円食器が0個」のように表示させるようにしてもよい。これにより、店員は、読み取った食器の種類を即座に判定することができる。
図17Bは、本実施形態に係るデータ管理システムのお勘定時のシーケンスの一例を示す図である。この図において、ハンディターミナル3は、図17Aの画面172の例にように、テーブルNoなどの入力を受け付け、受け付けたテーブルテーブルNoなどの情報を保持する(T301)。次に、ハンディターミナル3は、テーブルの上にある全ての食器6のID付き無線タグ61から食器IDと食器の種類を読み取る(T302)。ここで、CPU30は、食器6のID付き無線タグ61からの読み取り時に、同じ食器IDのデータが複数回読まれても、2重に食器カウントデータを生成しないようにする。
次に、ハンディターミナル3は、読み取った食器IDと食器の種類とを含む食器カウントデータ(図12参照)を飲食データ管理コントローラへ送信する。
飲食データ管理コントローラ1のCPU10は、会計IDを生成する(T304)。ここで、会計IDは、他の未会計データと一致しない値である。次に、CPU10は、会計データを生成し、会計データ用のメモリを確保する(T305)。次に、CPU10は、会計データの顧客情報に値を入れる(T306)。具体的には、例えば、CPU10は、ハンディターミナル3から送信された食器カウントデータ(図12)を受信し、受信した食器カウントデータに含まれる顧客情報を会計データ(図5参照)の顧客情報にコピーする。
次に、CPU10は、ハンディターミナル3から送信された食器カウントデータ(図12参照)から会計データ(図5参照)の食器カウントデータを作成する(T307)。会計データの食器カウントデータ作成の処理の詳細は、後述する図19で説明する。
次に、CPU10は、ハンディターミナル3から送信された食器カウントデータ(図12参照)と、注文データ保持部15が保持する注文アイテムデータ(図4参照)とに基づいて、会計データ保持部16が保持する注文データ集合(図5参照)を作成する(T308)。具体的には、例えば、CPU10は、ハンディターミナル3から送信された食器カウントデータに含まれる食器IDがリンク食器IDである注文IDを、注文データ保持部15が保持する注文アイテムデータ(図4参照)から抽出する。そして、CPU10は、抽出した注文IDを、会計データ保持部16が保持する注文データ集合(図5参照)に加える。注文データ作成の処理の詳細は、後述する図20で説明する。
以上の処理によって、会計データ保持部16が保持する会計データ(図5参照)のうち会計金額と会計フラグを除く部分は値が入っている。
次に、CPU10は、会計金額を算出する(T309)。会計金額の算出処理の詳細は、後述する図21で説明する。次に、CPU10は、会計フラグを0(未会計)にする(T310)。次に、CPU10は、会計IDと会計金額と注文データ等をハンディターミナル3へ送信する(T311)。なお、CPU10は、少なくとも会計IDと会計金額をハンディターミナル3へ送信すればよい。
次に、ハンディターミナル3のCPU30は、成功した旨を表示する(T312)。次に、ハンディターミナル3のCPU30は、携帯用プリンタ7に会計IDをバーコード表示と数字の両方で印字させ、合計金額及びテーブルNoなどを印字させる(T313)。そして、店員は、携帯用プリンタ7で印字された会計伝票を顧客に渡し、顧客はその伝票をPOSレジスタ8まで持っていく。POSレジスタ8は、例えば、この伝票に基づいて、会計処理する。以上で、本シーケンスの処理を終了する。
以上、図17Bに示すように、飲食データ管理コントローラ1のCPU10は、ハンディターミナル3から送信された食器カウントデータに含まれる食器の種類から、各種類の食器の個数を計数した食器カウントデータを生成する。これにより、飲食データ管理コントローラ1のCPU10は、食器の種類とそれぞれの食器の個数とから、全ての食器での料理の合計金額を算出することができる。
また、CPU10は、ハンディターミナル3から送信された食器カウントデータに含まれる食器IDがリンク食器IDである注文IDを、注文データ保持部15が保持する注文アイテムデータ(図4参照)から抽出する。そして、CPU10は、抽出した注文IDを、会計データ保持部16が保持する注文データ集合(図5参照)に加える。これにより、飲食データ管理コントローラ1のCPU10は、特別注文の注文ID毎に注文IDに対応する変動金額と数量を乗算し、乗算後の値を合計した特別注文の合計金額を算出することができる。そして、飲食データ管理コントローラ1のCPU10は、食器での料理の合計金額と特別注文の合計金額とを加算することにより、最終的な会計金額を算出することができる。
なお、携帯用プリンタ7は少なくとも会計ID及び会計金額を印字するようにすればよい。この時、携帯用プリンタ7は会計IDをバーコード表示と数字の両方で印字したが、会計IDをバーコード表示または数字のいずれか一つだけで印字してもよい。ハンディターミナル3は携帯用プリンタ7に、更にテーブルNoなどの情報を印字させてもよい。
また、ハンディターミナル3は携帯用プリンタ7に、食器の種類、個数又は特別注文の内容を印字させてもよい。この場合、T311において、CPU10は、会計IDと会計金額とともに、食器の種類、個数又は特別注文の内容を示す飲食データをハンディターミナル3へ送信すればよい。
図18は、図17BのT302における食器スキャンの処理の一例を示すフローチャートである。まず、CPU30は、変数Countに0を代入する(ステップS401)。次に、CPU30は、変数Countが示すカウント数を表示部34に表示する(ステップS402)。次に、CPU30は、終了キーが押されたか否か判定する(ステップS403)。
終了キーが押された場合(ステップS403 YES)、CPU30は、食器スキャンデータを確定し(ステップS404)、本処理を終了する。終了キーが押されていない場合(ステップS403 NO)、CPU30は、キャンセルキーが押されたか否か判定する(ステップS405)。キャンセルキーが押された場合(ステップS405 YES)、CPU30は食器スキャンデータを破棄する(ステップS406)。キャンセルキーが押されていない場合(ステップS405 NO)、CPU30は、無線タグ−R/W38が食器6のID付き無線タグ61から食器IDと食器の種類等を読み取ったか否か判定する(ステップS407)。
無線タグ−R/W38が食器6のID付き無線タグ61から食器IDと食器の種類等を読み取っていない場合(ステップS407 NO)、CPU30はステップS403の処理に戻る。一方、無線タグ−R/W38が食器6のID付き無線タグ61から食器IDと食器の種類等を読み取った場合(ステップS407 YES)、CPU30は、読み取った食器IDが既読か否か判定する(ステップS408)。
読み取った食器IDが既読の場合(ステップS408 YES)、CPU30はステップS403の処理に戻る。一方、読み取った食器IDが既読でない場合(ステップS408 NO)、CPU30は、食器カウントデータ保持部323が保持する食器スキャンデータを更新する(ステップS409)。次に、CPU30は音声出力部39からブザー音を出力させ(ステップS410)、ステップS402の処理に戻る。以上で、本フローチャートの処理を終了する。
以上、CPU30は、読み取った食器IDが既読か否か判定し、既読でない場合のみ食器スキャンデータを更新するので、食器IDが重複して食器スキャンデータに記憶されるのを防ぐことができる。
図19は、図17BのT307における食器カウントデータの作成の処理の一例を示すフローチャートである。同図は、図12のハンディターミナル3から入力された食器カウントデータに含まれる食器スキャンデータにn枚分のデータがあるとした場合のフローチャートである。
まず、飲食データ管理コントローラ1のCPU10は、食器カウントデータ保持部323が保持する食器カウントデータを初期化する(ステップS501)。具体的には、例えば、飲食データ管理コントローラ1のCPU10は、食器カウントデータに含まれるa、b、c、…、w、x円食器までの24種類の各食器の個数を0円に初期化する。ここで、本実施形態では、食器の種類を一例として24種類とするが、この数に限ったものではない。
次に、CPU10は、インデックスiを0に初期化する(ステップS502)。次に、CPU10は、インデックスiがn以上であるか否か判定する(ステップS503)。インデックスiがn以上である場合(ステップS503 YES)、CPU10はその処理を終了する。一方、インデックスiがn未満である場合(ステップS503 NO)、ハンディターミナル3から入力された食器カウントデータから、食器IDがID(i)の食器の種類を読み出す(ステップS504)。
次に、CPU10は、読み出した食器の種類がa円の食器であるか否か判定する(ステップS505)。読み出した食器の種類がa円の食器である場合(ステップS505 YES)、CPU10は、食器カウントデータのa円の食器の個数を1増やし(ステップS506)、ステップS511の処理へ遷移する。
一方、読み出した食器の種類がa円の食器でない場合(ステップS505 NO)、CPU10は、読み出した食器の種類がb円の食器であるか否か判定する(ステップS507)。読み出した食器の種類がb円の食器である場合(ステップS507 YES)、CPU10は、食器カウントデータのb円の食器の個数を1増やし(ステップS506)、ステップS511の処理へ遷移する。一方、読み出した食器の種類がb円の食器でない場合(ステップS507 NO)、CPU10は、同様の判定をc円の食器からw円の食器まで行う。
次に、ステップS509において、CPU10は、読み出した食器の種類がx円の食器であるか否か判定する。読み出した食器の種類がx円の食器である場合(ステップS509 YES)、CPU10は、食器カウントデータのx円の食器の個数を1増やし(ステップS510)、ステップS511の処理へ遷移する。一方、読み出した食器の種類がx円の食器でない場合(ステップS509 NO)、食器の種類が不明であり、CPU10はステップS511の処理へ遷移する。次に、ステップS511において、CPU10はインデックスiを1増やし、ステップS503の処理に戻る。
図20は、図17BのT308における会計データの注文データ集合の作成処理の一例を示すフローチャートである。同図は、ハンディターミナル3から入力された食器カウントデータに含まれる食器スキャンデータ(図12参照)にn枚分のデータがあるとした場合のフローチャートである。飲食データ管理コントローラ1の注文データ保持部15には既に図4に示す注文アイテムデータがm件蓄積されているとする。本フローチャートの処理は、CPU10が、図4のリンク食器IDと図12の食器ID(i)の比較を行い、一致したら図4の注文データの情報を図5の注文データ集合にコピーする処理である。
まず、CPU10は、インデックスiを0に初期化する(ステップS601)。ここで、インデックスiは、ハンディターミナル3から入力された食器カウントデータに含まれる食器スキャンデータ(図12参照)内を検索するためのインデックスである。次に、CPU10は、インデックスiがn以上であるか否か判定する(ステップS602)。インデックスiがn以上である場合(ステップS602 YES)、CPU10は、本フローチャートの処理を終了する。一方、インデックスiがn未満である場合(ステップS602 NO)、CPU10は、インデックスjを0に初期化する(ステップS603)。ここで、インデックスjは、注文データ集合(図5参照)の検索用インデックスである。
次に、CPU10は、インデックスjがm以上であるか否か判定する(ステップS604)。インデックスjがm以上である場合(ステップS604 YES)、CPU10は、インデックスiを1増やし(ステップS605)、ステップS602の処理に遷移する。
一方、インデックスjがm未満である場合(ステップS604 NO)、CPU10は、注文データ(j)の会計フラグが1であるか否か判定する(ステップS606)。注文データ(j)の会計フラグが1である場合、すなわち会計済みの場合(ステップS606 YES)、CPU10はインデックスjを1増やし(ステップS607)、ステップS604の処理に戻る。
一方、注文データ(j)の会計フラグが0である場合、すなわち未会計の場合(ステップS606 YES)、CPU10は注文データ保持部15が保持する注文データ(j)のリンク食器IDと食器スキャンデータの食器ID(i)とが一致するか否か判定する(ステップS608)。注文データ(j)のリンク食器IDと食器スキャンデータの食器ID(i)とが不一致の場合(ステップS608 NO)、CPU10はインデックスjを1増やし(ステップS607)、ステップS604の処理に戻る。
一方、注文データ(j)のリンク食器IDと食器スキャンデータの食器ID(i)とが一致する場合(ステップS608 YES)、CPU10は、会計データ保持部16が保持する会計データの注文データ集合(図5参照)に、注文データ保持部15が保持する注文データ(j)の情報(図4参照)に値を入れる。具体的には、CPU10は注文データ集合(図5参照)に含まれる注文ID、メニューNo、数量、変動金額に、注文データ(j)内の対応する変数(図4参照)の値を入れる。そして、CPU10はステップS602の処理に戻る。以上で、本フローチャートの処理を終了する。
以上、図20によれば、飲食データ管理コントローラ1のCPU10は、注文データ保持部15が保持する注文データ(j)のリンク食器IDと食器スキャンデータの食器ID(i)とが一致するか否か判定する。そして、CPU10は、一致する場合、会計データ保持部16が保持する会計データの注文データ集合(図5参照)の各変数に、注文データ保持部15が保持する注文データ(j)内の対応する変数(図4参照)の値を入れる。これにより、CPU10は、注文データに特別注文のデータを含めることができるので、会計金額の中に特別注文の金額を含めることができる。
図21Aは、図17BのT309における会計金額の算出処理の一例を示すフローチャートである。本フローチャートでは、図5の会計データのうち、会計金額及び会計フラグを除く情報に値が入っていることを前提とする。また、図5の会計データに、食器カウントデータがn件、注文データがm件あるとした場合を想定する。
まず、ステップS701において、CPU10は、会計金額Sとインデックスiを0に初期化する。会計金額Sは、顧客の会計金額である。インデックスiは、食器カウントデータ(図5参照)を検索する際のインデックスである。
次に、CPU10は、食器カウントデータ(i)毎の金額P(i)を算出する。ここで、金額P(i)は、食器の種類が示す一枚あたりの金額に、数量を乗じた金額である。具体的には、例えば、ある食器カウントデータ(i)が200円食器が3枚なら、CPU10は、200に3を乗じた600を金額P(i)として算出する。
次に、ステップS703において、CPU10は、会計金額Sに、現在の会計金額Sと金額P(i)の和を代入する。次に、ステップS704において、CPU10は、インデックスiを1増加させる。次に、ステップS705において、インデックスiがn以上であるか否か判定する。インデックスiがn未満である場合(ステップS705 NO)、CPU10は、ステップS702の処理に戻る。一方、インデックスiがn以上である場合(ステップS705 YES)、CPU10は、ステップS706の処理へ遷移する。
次に、ステップS706において、CPU10は、インデックスjを初期化する。ここで、インデックスjは、注文データ集合(図5参照)を検索する際のインデックスである。次に、ステップS707において、CPU10は、注文データ(j)毎の金額Q(j)を算出する。ここで、金額Q(j)は、1注文あたりの金額に、数量を乗じた金額である。この処理の詳細は、後述する図21Bで説明する。
次に、ステップS708において、CPU10は、会計金額Sに、現在の会計金額Sと金額Q(j)の和を代入する。次に、ステップS709において、CPU10は、インデックスjを1増加させる。次に、ステップS710において、インデックスjがm以上であるか否か判定する。インデックスjがm未満である場合(ステップS710 NO)、CPU10は、ステップS707の処理に戻る。一方、インデックスjがm以上である場合(ステップS710 YES)、CPU10は、本フローチャートの処理を終了する。
以上、図21Aによれば、CPU10は、食器カウントデータを参照して、顧客が取った食器分の金額を算出することができる。また、CPU10は、注文データを参照して、顧客が注文した分の金額を算出することができる。そして、CPU10は、顧客が取った食器分の金額と顧客が注文した分の金額との合計金額である会計金額を算出することができる。
図21Bは、図21AのステップS707における注文データの金額算出処理の一例を示すフローチャートである。まず、ステップS801において、CPU10は、会計データの注文ID(j)のメニューNoを抽出する。次に、ステップS802において、CPU10は、メニューマスタにおいて、当該メニューNoの金額オープンフラグを抽出する。次に、ステップS803において、CPU10は、抽出した金額オープンフラグが1か否か判定する。
抽出した金額オープンフラグが1である場合(ステップS803 YES)、そのメニューの金額Mを変動金額に設定し(ステップS804)、ステップS806の処理へ遷移する。一方、抽出した金額オープンフラグが0である場合(ステップS803 NO)、CPU10は、メニューマスタ(図6参照)を参照してそのメニューの金額MをそのメニューNoに対応する金額(メニューマスタ上の金額)に設定し(ステップS805)、ステップS806の処理へ遷移する。
次に、ステップS806において、CPU10は、メニューの金額Mに数量を乗算して得られる金額を注文データ(j)の金額Q(j)として算出する。以上で、本フローチャートの処理を終了する。
図22は、本実施形態に係る携帯用プリンタ7が印字する会計伝票の一例である。同図の会計伝票220において、領域221に店舗ロゴである「○○カフェテリア」が印字され、領域222にテーブルNoが「5」であることが印字され、領域223において合計金額が「4,380円」であることが印字されている。また、領域224において、会計IDをバーコード表示したバーコードが印字されている。また、領域225において、会計IDが数字で「12345」と印字されている。
なお、携帯用プリンタ7が合計金額、会計ID、テーブルNo以外の情報を印字する場合、図17BのT311において、飲食管理データ装置1がハンディターミナル3に送信する情報に、その情報を含ませれば容易に実現できる。
図23は、本実施形態に係るPOSレジスタ8による会計処理のシーケンスの一例を示す図である。本シーケンスでは、図22に示した会計伝票を顧客がPOSレジスタ8に持参したことを前提とする。
まず、T901において、POSレジスタ8のバーコードリーダーは、バーコード表示された会計IDを読み込み会計IDへ変換する。なお、POSレジスタ8は、POSレジスタ8が備えるキーボードから会計IDの入力を受け付けてもよい。
次に、T902において、POSレジスタ8は、その会計IDを飲食データ管理コントローラ1へ送信するとともに会計を要求する。
次に、T903において、飲食データ管理コントローラ1は、POSレジスタ8から受信した会計IDをキーにして会計データ(図5参照)を検索する。
次に、T904において、飲食データ管理コントローラ1は、受信した会計IDに該当する会計データが抽出されたか否か判定する。受信した会計IDに該当する会計データが抽出されなかった場合(T904 NO)、飲食データ管理コントローラ1は、会計IDがエラーである旨(以下、会計IDエラーともいう)をPOSレジスタ8へ送信する(T905)。
次に、T906において、POSレジスタ8は、飲食データ管理コントローラ1から会計IDエラーを受信すると、エラーを表示する。次に、T907において、POSレジスタ8は、再入力を促す画面を表示する。
一方、T904において、受信した会計IDに該当する会計データが抽出された場合(T904 YES)、その抽出された会計データから合計金額を抽出する(T908)。次に、T909において、飲食データ管理コントローラ1は、抽出した合計金額をPOSレジスタ8へ送信する(T909)。
次に、T910において、POSレジスタ8は、飲食データ管理コントローラ1から受信した合計金額を表示し、清算処理する。この過程で、店員は、顧客と金銭の授受を行う。次に、T911において、POSレジスタ8は、清算処理の完了後に、会計完了メッセージを飲食データ管理コントローラ1へ送信する。
次に、T912において、飲食データ管理コントローラ1は、POSレジスタ8から会計完了メッセージを受信すると当該会計データ(図5参照)の会計フラグを1(ここで、1は会計済みを意味する)に設定する。次に、T913において、飲食データ管理コントローラ1は、当該会計データ(図5参照)に含まれる注文IDの注文データ(図4参照)内の会計フラグを1(ここで、1は会計済みを意味する)に設定する。以上で、本シーケンスの処理を終了する
以上、図23の処理によれば、POSレジスタ8は、バーコードを読み取って会計IDへ変換し、変換により得られた会計IDを飲食データ管理コントローラ1へ送信する。飲食データ管理コントローラ1のCPU10は、会計データ保持部16が保持する会計データ(図5参照)において、POSレジスタ8から受信した会計IDに対応する会計フラグを1、すなわち会計済みにする。また、飲食データ管理コントローラ1のCPU10は、その会計データ(図5参照)に含まれる注文IDの注文データ(図4参照)内の会計フラグを1、すなわち会計済みにする。これにより、飲食データ管理コントローラ1は、会計ID毎及び注文ID毎に、会計が済んだか否かを管理することができる。
続いて、注文IDと食器IDとの関連付け(リンク)を変更する処理について説明する。図24Aは、注文IDと食器IDとのリンクを変更する際のハンディターミナル3の画面遷移の一例を示す図である。前提として、図17BのT311において、ハンディターミナル3は、飲食データ管理コントローラ1から会計ID(a)、会計金額、注文ID(1)及び注文ID(2)の情報を受信したものとする。
同図の画面241において、テーブルNoが「123」で、合計金額が「14,890円」で、注文ID(1)の注文データが「盛り合わせ」で数量が「1」で価格が「3,000」円であること、注文ID(2)の注文データが「カニ味噌汁」で数量が「2」で価格が「1,500」円であることが示されている。ここで、例えば、店員は、この画面241を参照して、既に注文した注文品に関する情報(例えば、盛り合わせとカニ味噌汁とを注文していること)を顧客に提示する。
例えば、顧客が「盛り合わせ」を「隣のテーブルの会計にして欲しい」といった場合、店員は、画面241において、「盛り合わせ」が表示された画面領域をタッチして選択する。CPU30は、タッチされた位置を示す位置信号をタッチパネル35から受け取ると、受け取った位置信号から「盛り合わせ」が表示された画面領域がタッチされたと判定し、表示部33の画面を画面242へ遷移させる。画面242において、「盛り合わせ 1 3,000」が四角で囲まれている。この画面242が表示されている状態で、店員は、キーボート36上の「再リンク」を押下する。
CPU30は、キーボート36から「再リンク」のキー信号を受け取ると、受け取ったキー信号から「再リンク」が押下されたと判定し、表示部33の画面を画面243へ遷移させる。画面243において、「盛り合わせ 1 3,000」が四角で囲まれ、「再リンクする食器を選択し、ハンディをかざしてください」というメッセージが表示されている。また、食器IDが空欄状態で示されている。
店員が、画面243の指示に従って、ハンディターミナル3を隣の人の食器にかざす。ハンディターミナル3は、その隣の人の食器6のID付き無線タグ61から、食器IDと食器の種類等を読み取る。そして、ハンディターミナル3は、読み取った食器IDと食器の種類を表示部33の画面に表示させる。その画面の例が画面244である。画面244は、画面243に比べて、読み取った食器IDが「987654」と表示され、読み取った食器の種類が「200円食器」と表示されている点が異なっている。
画面244が表示されている状態で、店員はキーボート36上の「ENTキー」を押下する。CPU30は、キーボート36から「ENTキー」のキー信号を受け取り、受け取ったキー信号から「ENTキー」が押されたと判定し、表示部33の画面を画面245へ遷移させる。画面245は、画面244に比べて、「再リンクする食器を選択しハンディをかざして下さい」とのメッセージがなくなり、「よろしいですか」というメッセージとその下に「YES」及び「NO」が表示されている。
この画面245が表示されている状態で、店員が「YES」が表示された画面領域をタッチする。CPU30は、タッチされた位置を示す位置信号をタッチパネル35から受け取り、受け取った位置信号からYES」が表示された画面領域がタッチされたと判定し、注文IDと食器IDの新たな組み合わせを飲食データ管理コントローラ1へ送信する。
飲食データ管理コントローラ1のCPU10は、ハンディターミナル3から注文IDと食器IDを受信すると、受信した注文IDで注文データ保持部16が保持する注文データ(図4参照)内を検索する。飲食データ管理コントローラ1のCPU10は、受信した注文IDと同一の注文IDを有する注文データに含まれるリンク食器IDを、受信した食器IDで更新する。次に、飲食データ管理コントローラ1のCPU10は、更新された注文データに基づいて、会計データを更新し、会計データに基づいて会計金額を再計算する。飲食データ管理コントローラ1のCPU10は、再計算により得られた会計金額と、会計IDと、注文データ等をハンディターミナル3へ送信する。
ハンディターミナル3のCPU30は、飲食データ管理コントローラ1から会計金額と、会計IDと、注文データ等を受信した場合、表示部33の画面を画面246へ遷移させる。注文ID(1)の注文データが「盛り合わせ」が隣の人の会計に含まれることになったので、画面246では、会計金額が14,890円から3,000円引かれた11,890円が表示されている。また、注文ID(1)の注文データである「盛り合わせ」が隣の人の会計に含まれることになったので、画面241で表示された「盛り合わせ」の注文データが画面246では表示されていない。
この画面246が表示されている状態で、再び注文IDと食器IDとのリンクを変更したい場合、店員は、画面246に表示された「カニ味噌汁」の画面領域をタッチして選択すればよい。一方、注文IDと食器IDとのリンクの変更処理を完了するならば、店員は、例えばキーボード36で「終了」キーを押下する。ハンディターミナル3のCPU30は、「終了」キーを押下された旨の情報を受けると、携帯用プリンタ7への印字処理をする。
図24Bは、注文IDと食器IDとのリンクを変更する処理のシーケンスの一例を示す図である。同図のT1101〜T1111の処理は、図17BのT301〜T311の処理と同一であるので、その説明を省略する。
次に、T1012において、ハンディターミナル3のCPU30は、注文IDと食器IDとのリンクを変更する。リンクの変更処理の一例は、図24Aに示したので、その説明を省略する。
次に、T1013において、ハンディターミナル3のCPU30は、注文IDとその注文IDに新たにリンクさせる新しい食器IDを飲食データ管理コントローラ1へ送信する。
次に、T1014において、飲食データ管理コントローラ1は、注文データを更新する。次に、T1015において、飲食データ管理コントローラ1は、会計金額を再計算する。すなわち、飲食データ管理コントローラ1は、図21Bの処理を再度実行する。
次に、T1015において、飲食データ管理コントローラ1は、会計ID、再計算により得られた会計金額、及び注文データ等をハンディターミナル3へ送信する。
以下、データ管理システム9は、リンクを変更したい注文分だけ、T1012〜T1016の処理を繰り返す。以上で、本シーケンスの処理を終了する。
以上、図24Aと図24Bによれば、ハンディターミナル3の入力部34は、支払いをする支払い顧客の変更の対象となる特別注文の入力を受け付ける。そして、ハンディターミナル3の無線タグ−R/W部(読取部)38は、変更する支払い顧客に属する食器が備える非接触IDタグから食器IDを読み取る。そして、ハンディターミナル3は、入力部34が受け付けた特別注文の注文IDと無線タグ−R/W部(読取部)38が読み取った食器IDとを飲食データ管理コントローラ1へ送信する。
飲食データ管理コントローラ1は、ハンディターミナル3から送信された注文IDと同一の注文IDを記憶部14から抽出し、抽出した注文IDにハンディターミナル3から送信された食器IDを関連付けた注文データを記憶部14に記憶させ、注文データに基づいて、会計金額を算出する。
これにより、飲食データ管理コントローラ1は、その注文品の注文IDと読み取った食器IDとを新たに関連付けることができる。そのため、飲食データ管理コントローラ1は、その注文品についての金額を会計金額に含まないように、会計金額を再計算することができる。
続いて、注文品を割り勘するときの処理について説明する。図4の注文データを拡張する事によって割り勘に容易に対応する事ができる。
図25Aは、割り勘処理のときの、飲食データ管理コントローラ1内の注文データの構成と、ハンディターミナル3内の注文データの構成である。データ構成251は、割り勘処理のときの、飲食データ管理コントローラ1内の注文データの構成である。データ構成251は、図4の注文データのリンク情報を割り勘処理のために拡張したものである。データ構成251は、一つの注文品に対して複数のリンク食器IDを保持できるように、リンク情報には、リンク食器ID(1)、…、リンク食器ID(w)が格納されている(wは正の整数)。
データ構成252は、割り勘処理のときの、ハンディターミナル3内の注文データの構成である。データ構成252は、図11の注文データのリンク情報を割り勘処理のために拡張したものである。データ構成252は、一つの注文品に対して複数のリンク食器IDを保持できるように、リンク情報には、リンク食器ID(1)、…、リンク食器ID(w)が格納されている(wは正の整数)。
図25Bは、注文発生時に割り勘が決定している場合のハンディターミナル3の画面遷移の一例である。画面253は、図16Bの注文入力時の画面166を、複数の食器IDを入力できるように食器IDの表示欄を複数設けたものである。画面253には、「リンクする食器を選択しハンディをかざしてください」という指示が表示されている。また、IDが空欄状態で縦に三つ並んでいる。
画面253の状態で、ハンディターミナル3を二つの食器にかざして、無線タグ−R/W部38がその二つの食器6のID付き無線タグ61からそれぞれ食器IDと食器の種類を読み取った場合、CPU30は、無線タグ−R/W部38から読み取った食器IDと食器の種類をそれぞれ受け取る。そして、CPU30は、受け取った食器IDと食器の種類をそれぞれ表示部34に表示させる。画面254は、そのときの画面の一例である。画面254において、一つの食器が、食器IDが「123456」で食器の種類が「100円食器」であること、もう一つの食器が、食器IDが「987654」で食器の種類が「200円食器」であることが示されている。
画面254の状態で、ハンディターミナル3のENTキーが店員によって押された場合、CPU30はENTキーのキー信号をキーボード35から受け取る。そして、CPU30はキーボード35から受け取ったキー信号からENTキーが押されたと判定し、表示部34の画面を画面255へ切り替える。画面255には、食器IDと食器の種類との組と、「よろしいですか?」という確認のメッセージと、「YES」と、「NO」とが表示されている。
「YES」と表示された画面領域が店員によってタッチされて選択されると、CPU30はタッチされた位置を示す位置信号をタッチパネル35から受け取る。そしてCPU30は、受け取った位置信号から「YES」と表示された画面領域がタッチされたと判定し、図25Aのデータ構成252で注文データを生成する。すなわち、CPU30は、一つの注文データ中に、上記二つのリンク食器IDがある注文データを生成する。そして、CPU30は、生成した注文データを無線制御部37から飲食データ管理コントローラ1へ送信させる。
飲食データ管理コントローラ1の通信制御部13は、ハンディターミナル3から送信された注文データを受信し、受信した注文データをCPU10へ出力する。CPU10は、通信制御部13から入力された注文データを用いて、図25Aのデータ構成251で注文データを生成する。すなわち、CPU10は、一つの注文データ中に、上記二つのリンク食器IDがある注文データを生成する。そして、CPU10は、生成した注文データを注文データ保持部15に記憶させる。
図25Cは、飲食データ管理コントローラ1の注文データ集合の作成処理の一例を示すフローチャートである。図25CのS1101〜S1108の処理は、図20のS601〜S608の処理と同一であるので、その説明を省略する。
次に、ステップS1109において、飲食データ管理コントローラ1のCPU10は、会計データ(図5参照)の注文データ集合の各変数に、注文データ(j)の対応する変数の値に基づいて値を入れる。
具体的には、CPU10は、注文データ集合の注文IDを注文データ(j)の注文IDで上書きし、注文データ集合のメニューNoを注文データ(j)のメニューNoで上書きする。また、CPU10は、注文データ集合の数量を、注文データ集合の現在の数量とリンク情報の数の逆数(1/C)との和で上書きする。ここで、Cはリンク情報の数である。これは、数量をリンク情報の数の逆数(1/C)として現在の数量に順次加算していく処理である。また、CPU10は、注文データ集合の変動金額を注文データ(j)の変動金額で上書きする。
そして、CPU10は、ステップS1107の処理へ遷移する。これは、一つの注文IDが同じテーブルの複数の食器にリンクされている場合を考慮したものである。
次に、注文IDが1の注文に対して、顧客Aの食器IDA−1及び食器IDA−2とリンクされ、顧客Bの食器IDB−1ともリンクされている場合を例に、割り勘時の処理の一例を説明する。店員は、ハンディターミナル3を操作して、ハンディターミナル3に顧客Aが選択した全ての食器6のID付き無線タグ61から情報を読み取らせる。ここで、顧客Aが選択した食器は、例えば、顧客Aが食した食器又は顧客Aが取った食器である。ハンディターミナル3は、読み取ることにより得られた食器スキャンデータを飲食データ管理コントローラ1へ送信する。
飲食データ管理コントローラ1は、図25Cの処理を行うことによって、会計データに含まれる注文IDが1の数量を2/3に設定する。そして、飲食データ管理コントローラ1は、この会計データに基づいて、顧客Aが負担する分の会計金額を算出する。そして、飲食データ管理コントローラ1は、算出した会計金額、会計ID及び注文データをハンディターミナル3へ送信する。この会計金額は、顧客Aが選択した食器の料理にかかる金額と、注文IDが1の注文の2/3の金額とを合計した金額である。ハンディターミナル3は、飲食データ管理コントローラ1から受信した会計金額及び会計IDを携帯用プリンタ7に印字させる。店員は、顧客Aに印字された会計伝票を渡す。
次に、同様にして、ハンディターミナル3は、顧客Bが選択した全ての食器6のID付き無線タグ61から食器IDと食器の種類等を読み取り、ハンディターミナル3及び飲食データ管理コントローラ1は、上記と同様の処理を行う。
これにより、顧客Aは注文IDが1の注文に対して、その注文の2/3の金額を負担する。一方で、顧客Bは注文IDが1の注文に対して、その注文の1/3の金額を負担する。このように、飲食データ管理コントローラ1は、リンクされた食器の合計に対する各人がリンクされている食器の個数を、負担する金額割合とすることにより、よりきめの細かい金額の分担が可能とする。また、顧客Aは、この会計伝票で清算することにより、選択した食器の料理にかかる金額と、注文IDが1の注文の2/3の金額とを合計した会計金額のみを支払うことができる。これにより、二つのテーブルに属する個々の顧客毎に会計を行うことができる。
なお、お勘定のときに割り勘を顧客から指示された場合についても、データ管理システム9は、図24のリンクの変更と同様の処理を行えば実現できる。その際には、図25Aに示すように、飲食データ管理コントローラ1は、リンク情報を複数のリンク食器IDから構成した注文データを生成し、生成した注文データに基づいて会計データを生成する。そして、飲食データ管理コントローラ1は、生成した会計データに基づいて会計金額を再計算すればよい。
続いて、注文した後に顧客から割り勘が指示された時の処理について説明する。図26Aは、注文した後に割り勘処理する場合のハンディターミナル3の画面遷移の一例である。図17BのシーケンスのT311において、ハンディターミナル3が会計ID(a)、会計金額、注文ID(1)及び注文ID(2)の情報を受信した場合を前提にして説明する。
まず、画面261には、テーブルNoと会計金額と、注文品として「盛り合わせ」が数量「1」で価格が「3,000」円であること、「カニ味噌汁」が数量「2」で価格が「1,500」円であることが示されている。店員は、この画面261を参照して、これらの注文品を顧客に提示する。この場合に、顧客が「盛り合わせ」を「隣の人と割り勘にして欲しい」と言った場合、店員は、画面261内の「盛り合わせ」の画面領域をタッチすることにより選択する。
「盛り合わせ」が表示された画面領域がタッチされると、CPU30はタッチパネル35からタッチされた位置を示す位置信号を受け取る。そして、CPU30は、受け取った位置信号から「盛り合わせ」が表示された画面領域がタッチされたと判定し、表示部33の画面を画面262へ切り替える。画面262において、「盛り合わせ 1 3,000」が四角で囲まれている。
この画面262が表示された状態で、店員がキーボード36から「割り勘」ボタンを押下すると、CPU30は、キーボード36から「割り勘」ボタンのキー信号を受け取る。そして、CPU30は、受け取ったキー信号から割り勘ボタンが押されたと判定し、表示部33の画面を画面263へ切り替える。
画面263には、四角で囲まれた「盛り合わせ 1 3,000」という表示と、「割り勘をする食器を選択しハンディをかざしてください」というメッセージと空欄状態のIDとが示されている。画面263が表示されている状態で、店員により操作により、ハンディターミナル3の無線タグ−R/W部38は隣の人の食器6のID付き無線タグ61から食器ID及び食器の種類を読み取る。
CPU30は、無線タグ−R/W部38が読み取った食器のIDと食器の種類を受け取ると、表示部33にその食器のIDと食器の種類を表示させる。そのときの画面の一例が画面264である。画面264は、画面263と比べて、ハンディターミナル3が読み取った食器IDと食器の種類とが表示されている点が異なる。
画面264が表示されている状態で、店員がキーボード36から「ENTキー」を押下すると、CPU30は、キーボード36からENTキーのキー信号を受け取る。そして、CPU30は、受け取ったキー信号からENTキーが押されたと判定し、表示部33の画面を画面265へ切り替える。
画面265には、四角で囲まれた「盛り合わせ 1 3,000」という表示に加えて、「ID= 987654 200円食器と割り勘にします。よろしいですか」というメッセージと「YES」と「NO」とが表示されている。
画面265が表示されている状態で、店員が画面265に含まれる「YES」が表示された表示領域をタッチして選択すると、CPU30は、タッチされた位置を示す位置信号を受け取る。そして、CPU30は、受け取った位置信号から「YES」が表示された表示領域が選択されたと判定し、盛り合わせの注文IDと読み取った食器IDとを飲食データ管理コントローラ1へ送信する。
飲食データ管理コントローラ1は、この盛り合わせの注文IDと読み取った食器IDとを受信すると、注文データ保持部15が保持する注文データ(図4参照)内をこの注文IDで検索し、この注文IDと同一の注文IDを有する注文データのリンク情報にこの食器IDを追加する。これにより、リンク情報は二つのリンク食器IDを含むことになる。
次に、飲食データ管理コントローラ1のCPU10は、図25Cと同様の処理で、会計データの生成を行う。次に、飲食データ管理コントローラ1のCPU10は、生成した会計データに基づいて、会計金額を再計算する。次に、飲食データ管理コントローラ1は、再計算により得られた会計金額を会計ID及び注文データとともにハンディターミナル3へ送信する。
これにより、ハンディターミナル3は、例えば、画面266のように再計算された結果を表示部33に表示する。画面266は、画面261と比べて、合計金額が14,890円から13,890円に盛り合わせの半額である1500円だけ減額され、盛り合わせの数量が1から1/2になり、盛り合わせの価格が3000円から1500円になっている。
ここで、再び割り勘やリンクの変更をしたければ、店員はメニューを選択すればよいし、店員は処理を完了するならば、例えば「終了」キーを押下する。「終了」キーが押下された場合、CPU30は、次の処理(携帯用プリンタ7への印字処理)を実行する。
図26Bは、注文した後に割り勘処理する場合の処理の一例を示すシーケンスである。図26BのT1201〜T1211の処理は、図17BのT301〜T311の処理と同一であるので、その説明を省略する。
次に、T1212において、顧客の割り勘の指示に従って、店員はハンディターミナル3を操作して割り勘の対象となる注文を選択する。そして、ハンディターミナル3のCPU30は、飲食データ管理コントローラ1から受信した注文データから、店員による操作により選択された注文の注文IDを取得する。そして、店員は割り勘に対象となる注文に対して、新たに支払いを分担する顧客に属する食器6にハンディターミナル3をかざす。その際、ハンディターミナル3の無線タグ−R/W部38は、その食器6のID付き無線タグ61から食器IDを読み取る。そして、ハンディターミナル3のCPU30は、読み取ったID付き無線タグ61の食器IDを無線タグ−R/W部38から追加食器IDとして取得する。
次に、T1213において、ハンディターミナル3のCPU30は、取得した注文IDと追加食器IDとを無線制御部38から飲食データ管理コントローラ1へ送信させる。
次に、T1214において、飲食データ管理コントローラ1のCPU10は、ハンディターミナル3から注文IDと追加食器IDを受信すると、注文IDと追加食器IDとに基づいて、注文データを更新する。
次に、T1215において、飲食データ管理コントローラ1のCPU10は、更新された注文データに基づいて、会計金額を再計算する。
次に、T1215において、飲食データ管理コントローラ1のCPU10は、通信制御部14から再計算により得られた合計金額を会計ID及び注文データとともにハンディターミナル3へ送信させる。
以下、データ管理システム9は、割り勘を変更したい注文分だけ、T1212〜T1216の処理を繰り返す。以上で、本シーケンスの処理を終了する。
以上、図26Aと図26Bによれば、ハンディターミナル3の入力部34は、割り勘の対象となる特別注文の入力を受け付ける。また、ハンディターミナル3の無線タグ−R/W部(読取部)38は、該割り勘する顧客の食器が備える非接触IDタグから食器IDを読み取る。そして、ハンディターミナル3は、入力部34が受け付けた特別注文の注文識別情報と無線タグ−R/W部(読取部)38が読み取った食器IDとを飲食データ管理コントローラ1へ送信する。
飲食データ管理コントローラ1は、ハンディターミナル3から送信された注文識別情報と同一の注文識別情報を記憶部14から抽出し、抽出した注文識別情報にハンディターミナル3から送信された食器IDを関連付けた注文データを記憶部14に記憶させ、注文データに基づいて、会計金額を算出する。
このように、ある注文品を割り勘にする場合、飲食データ管理コントローラ1は、その注文品の注文IDと新たにハンディターミナル3が読み取った食器IDとを更に関連付ける。そのため、飲食データ管理コントローラ1は、その注文品についての金額を新たに関連付けた食器IDの食器を食した顧客に半額負担させることができるので、その注文品を割り勘で支払うことができる。
以上、本実施形態のデータ管理システム9によれば、お勘定のときに、特別注文した食器も含めてハンディターミナルが食器6に付けられたID付き無線タグ61の情報を読み取るので、特別注文した食器の価格も合計金額に含めることができる。これにより、追加で注文した場合に、特別注文は料理が載った食器を取ってくるだけでよいので、追加で料理が載った食器を持って来るたびに会計する必要がないので、利用者の手間を省くことができる。
また、本実施形態のデータ管理システム9によれば、特別注文等があっても、POSレジスタ8に行く前に、ハンディターミナル3を持つ従業員を呼んで、ハンディターミナル3から特別注文が可能であるため、POSレジスタ8で煩雑になることを防ぐので、POSレジスタ8における清算処理で時間がかかることを防ぐことができる。その結果、データ管理システム9は、POSレジスタ8における顧客の待ち時間を短縮することができる。
また、本実施形態のデータ管理システム9によれば、特別注文を特定して、新たに別の顧客に属する食器6のID付き無線タグ61から食器IDを読み取ることにより、特別注文の注文IDと関連付けられた食器IDを別の顧客に属する食器の食器IDに変更することができる。これにより、その特別注文の代金を、その別の顧客が払うことができる。また、特別注文毎に、その代金を払う顧客を切り替えることができるので、柔軟に会計を変更することができる。
また、本実施形態のデータ管理システム9によれば、特別注文を特定して、複数の顧客に属する食器6のID付き無線タグ61から食器IDを読み取ることにより、複数の顧客が特別注文の注文IDと複数の顧客に属する食器の食器IDとを関連付けることができる。これにより、その特別注文の代金を、その複数の顧客が割り勘で払うことができる。また、特別注文毎に、割り勘するか否か選択することができるので、柔軟に会計を変更することができる。
なお、本実施形態に係るID付き無線タグ61は、食器の種類(例えば、100円食器)を保持したが、これに限らず、その食器に盛られる料理の金額(例えば、100円)を保持してもよい。
また、本実施形態では、一例としてID付き無線タグ61が取り付けられた食器6について説明したが、これに限らず、食器(例えば、カップ)でもよい。その場合、食器にID付き無線タグ61が取り付けられ、ID付き無線タグ61は、その食器を識別する固有の識別情報(食器識別情報)と、食器の種類あるいは食器に盛られる料理の金額を保持してもよい。
また、複数の装置を備えるシステムが、本実施形態の飲食データ管理コントローラ1の各処理を、それらの複数の装置で分散して処理してもよい。なお、複数の装置を備えるシステムが、本実施形態のハンディターミナル3の各処理を、それらの複数の装置で分散して処理してもよい。
また、本実施形態の飲食データ管理コントローラ1及びハンディターミナル3の各処理を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、当該記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、飲食データ管理コントローラ1及びハンディターミナル3に係る上述した種々の処理を行ってもよい。
なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
以上、本発明の実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。