標準POS

◆構成プログラム

機能的にミニマムで作成してるのでプログラム的にはこれだけ。プロジェクトファイル1、画面が大小取り混ぜて17、コードのみが3(プログラムの行数は3万行を少し超える程度(OPOS系の定義ファイル込みなので実際はさらに小さい)(画面デザイン除く))

まずはPOSキーのイメージから。。こちらのPOSキーを押下することで該当する機能を呼び出し、様々な操作が可能となる。POSキーのキートップの配置は、各社・各店舗独自が当たり前で汎用性はない

次に画面の紹介です。こちらは休止画面です。POSの電源投入直後やPOSを使用しない休止モードの場合にこの画面が表示されます。画面左上の三線のアイコンをタッチするか、POSキーのメニューキーを押下するとメニュー画面が表示されます。

休止画面やPOSキーのメニューキー押下で起動されるメニュー画面です。各ボタンをタッチすると該当の機能が利用できます。

  • 「開設」・・・営業開始時POS使用に先立ち開設処理を行います。
  • 「登録」・・・売上画面に遷移します。開設処理が行われていないと使用できません。
  • 「点検」・・・営業中に定期的にレジ内の現金・金券の確認に使用します。
  • 「精算」・・・営業終了後POSからの現金・金券回収前に精算処理を行います。
  • 「休止」・・・POSの使用を中止したりPOSから離れる場合、POSを休止モードにします。
  • 「練習」・・・POS操作の練習機能です。練習モード中は現金の取扱いや売上・ジャーナルデータの本番登録は不可となります。
  • 「ジャーナル」・・・返品時やお客さんからの問合せなど過去の売上げに関するジャーナルデータの参照が可能です。
  • 「電源OFF」・・・POSの利用終了時電源を落とす場合に使用します。

メニュー画面から遷移、POS使用開始時に利用する開設画面です。営業開始時点の自動釣銭機の現金は自動取得、キャッシュドロアなどの現金・金券などの登録は手入力で行います。「実行」ボタンをタッチするか、POSキーの「預り/現計」キーの押下で開設時時点のデータが登録されます。

メニュー画面から遷移する売上画面です。売上画面には2種類あり、1つはプリセットデータを元に画面で表示されたプリセット商品のボタンをタッチして売上登録を行うものと、明細単位に商品バーコードをスキャンして売上登録を行う画面が存在します。こちらはプリセット売上画面です。

画面に事前にマスタ登録されたプリセットボタンが表示されます。(複数部門で区切られて複数のプリセット情報が登録可能)表示されたプリセットボタンをタッチすると売上計上され、画面下部の小計などが計算されます。プリセットボタンの複数タッチで売上個数が加算されます。

また当画面と2つ目画面の明細単位の売上画面の内容は常にリンクしており、タッチされた内容で売上明細が計上されます。

次にこちらが明細単位で売上登録を行う画面です。この画面ではハンディスキャナや固定スキャナでの商品バーコード(JANコード)の読込み、商品コードの手入力等で商品データを明細に読込み、売上計上を行っていきます。明細単品の消費税や値引・割引の取得・設定、売価の計算などが行われます。また単品に対しての値引・割引、小計後の小計値引・小計割引など可能となっています。

売上画面の共通機能)

2つの売上画面では共通して以下の機能を実装しています。

  • 会員管理機能・・・プリペイドカードの会員カードをスキャナで読込み、売上登録時会員クラスによる割引率の請求金額への適用、会員の売上履歴の登録、ポイントの累積、累積ポイントによるクラス更新などが可能
  • 明細単位で計上された小計に対し、事前に設定された値引・割引の自動適用が可能。またPOSキーからの小計値引、小計割引の入力やPOSキーに事前登録された小計値引額、小計割引率の適用が可能
  • 現金、他方法での支払が可能(現金/クレジット払(非連携)/ポイント払/社内クーポン、については当画面で完結、クレジット連携の支払いについてはクレジット支払画面で対応)
  • NON-PLU商品の登録機能
  • 小計後の自動釣銭機との取引終了までの連携機能
  • レジ利用者(責任者)の登録機能
  • POSキーからの入金/出金/両替機能の呼び出し機能
  • ストコン、クラウド、レシートプリンタ、自動釣銭機との接続状態の監視機能
  • 自動釣銭機内の金券数/硬貨数の定期確認で下限値未満の場合の警告機能
  • 自動割引(PLU割引/タイムプライス/部門割引(会員/非会員で区別あり))
  • 自動値引(バンドル品値引/ペア値引)
  • その他(売上訂正、返品、レジマイ、取引保留、レシート再発行、レジ袋販売、釣銭機更新、、)・・・

売上画面で小計後にクレジット決済を含む場合に遷移するクレジット取引画面です。CAT端末接続済であれば決済会社と通信を行いクレジット/キャッシュレスでの売上登録が可能です。当画面で「確定」後は売上画面に戻り「預り/現計」で売上取引がすべて登録されます。

NON-PLU商品の登録画面です。売上明細画面でNON-PLU商品がスキャンされた場合、当画面で商品単価を入力し売上処理を継続できます。

その他画面を列挙・説明します。

レジ保留画面です。保留機関は当日のみとなります。3件までの保留情報が登録可能です。

返品登録画面です。返品希望のお客さんのレシートのバーコードをスキャンし売上返品を行います。

レジマイナス画面です。誤って登録した取引の訂正に使用します。レジマイ対象のレシートのバーコードをスキャンしレジマイナスを行います。

入出金保守画面です。自動釣銭機への入金/出金を行う際使用します。入金は自動釣銭機に入れた金額が表示されそのまま入金する場合は「預り/現計」、出金の場合は金種ごとの出金枚数を入力し「預り/現計」で出金が可能です。

ジャーナル検索画面です。終了した取引の内容を確認するために使用します。各種抽出条件を指定して過去取引の検索・抽出が可能です。

両替画面です。POSキーで「両替」キー押下後、両替金額を自動釣銭機から入金、両替金額に出金の金種を指定し「預り/現計」で両替が可能です。両替元と両替後の金額が合致しなければ両替はできません。

レジ点検画面です。レジ責任者変更時や一定時間でレジのお金を点検する際使用します。開設時または前回点検時を基点に、+売上金額の合計+入金額-出金額で違算が発生していないことを確認します。自動釣銭機は自動計算ですが、キャッシュドロアの残額は点検時の金種ごと枚数を手入力します。

レジ精算画面です。画面構成は点検画面と同内容です。営業終了後、自動釣銭機+キャッドロア内の現金、金券を確認(キャッシュドロアはマニュアル確認)、違算が発生していないことを確認します。

レシート印字画面です。レシート印字中のみ表示が行われます。

電源断画面です。メニュー画面から「電源OFF」を選択した場合に表示されます。このままPOSの電源が切れます。

使用しているデータベースについて

使用DBはMySQLです。テーブル数は27テーブル、内訳はマスタ23、トランザクション4です。あまり大したテーブル数ではないですね・・

ただ、商品のJANコードスキャン時等の高速性追求のためインデックスはかなり念入りに張りました。最初プログラムが組み上がって何も対応してないとき、ハンディスキャナを商品のバーコードに当てると1~2秒しないと商品マスタからデータが参照できませんでした。

この遅さは0コンマ数秒の世界に生きるスーパーのレジ打ちの達人から見たら致命的な弱点です!頑張ってインデックス張って何とか0コンマの世界に届きましたが内心ヒヤヒヤでした。