紹介するレジ機能 その20:レジって売上を立てる時より返品する時の方が処理は大変なんだよね。
今まで当たり前だと思っていた返品機能がここまで大変だと思っていなかった。
不正などのリスクヘッジを考慮するとソースコードが無限になりそうで頭がパンクしそうな柳瀬だった。
店に戻った柳瀬とリンリン。
レジ機能で必ず必要となる返品機能をつけ忘れていた。
柳瀬は慌てて人間界から持ってきたレジを操作しつつソースコードを確認し始めた。
「一度取引を立てて、その取引を返品したソースコードを参考にスイレジに機能を搭載しよう」
「ただ売り上げた数字をマイナスするだけだし、簡単だろう」
簡単なレジなら返金処理は簡単だった。
なぜならマイナス金額を計上すればそれで終わりだ。
売上金に対して返金を差し引いた金額がその日の売上金になる。
しかし柳瀬の持っているレジはそう甘くなかった…。
お客さんにお釣りを渡すのに準備する【準備金】
お客さんから売り上げた【売上金】
お客さんから事前にお金を頂き商品を取置く【前受金】
などなどレジに入っているお金で消耗品を購入する時に使用する【入金】【出金】の機能もある。
レジの中には複数の科目で管理されている。
更に、返品処理は『いつ』『どの商品が』『支払方法は』などなど返品するにも購入した時の会計情報と紐付けないといくらでも不正が出来てしまう。
そのため、ただ商品を受け取って、お金を返すだけのオペレーションではあるが、開発からするとかなりの機能が必要になるのだ。
その仕事量を初めて理解した柳瀬は驚愕した。
「なんじゃこりゃ〜」
「もの凄いソースコードが流れてくる」
「頭割れる…」
まず返品するソースコードに対して会計をした時のソースコードが足りなすぎて対応が出来なかった。
そのため、返品のソースコードを全部並べて足りないものを当てはめていった。
「まず返品になった場合、売上取引と返品取引を紐づけないとダメだから取引IDを作ろう」
【transactionHeadId:取引をするたびにIDを付与する】
「更にいつ・何時に取引したか時間をメモさせよう」
【transactionDateTime:取引日時をたてる】
「取引をたてるのはいいけど『売上』か『返品』か区別させる」
【transactionDetailDivision:取引明細を識別する区分】
「よしよし!ここまで出来た!!」
このソースコードを売上データに追加することで、より詳しい売上データが上がってくる。
取引するたびに取引グループを自動で作成できるようになった。
これで取引されたデータを管理することが可能となった。
その管理とは『売上データの検索』と『売上データの仕分け』ができるようになった。
データを検索と仕分けができれば『売上分析』が可能となる。
売上分析とは、どの商品がどれだけ売れたか?
更に取引日時を追加したので、期間を指定するとその期間の間に売れた商品を割り出すことができる。
取引明細を識別する区=取引区分も設けているので、『売上がいくら』『返品がいくら』と簡単に仕分けできる。
ここまでできる範囲が広がり、素晴らしい動きを見せていた柳瀬だったが、返金処理が思ったより複雑だったので頭がパンクしていた。
「あの〜リンリンさん〜助けてください」
「頭使いすぎてふらふらです」
「魔力かなにかで回復出来ませんか?」
そうってリンリンは回復系の魔力を放出すべく専用の衣装に着替え始めた。
「それでは回復系の魔力を注ぎますよ〜」
「ほほほ〜い、ほほほ〜い、ほほほいのほい」
リンリンは手を上下に動かしながら腰を振って歌い始めた。
すると柳瀬の体調がどんどん良くなってきた。
「あれ?なんだかどんどん元気になっていくぞ」
「けどリンリンさんのダンスと衣装がきもち悪いのは気のせいか?」




