お客さんとこの受発注システムを作ってて、いよいよ最後のテストフェーズに入った時の話です。
「ねぇ、これ請求書に売上がのってないんだけど」
お客さんのところで導入前のプログラム検証を行ってもらっていたところ、そんな電話がかかってきました。受発注システムで売上に漏れがあるとなっちゃ大事件。こりゃまずい!と、慌てて確認することになりました。
幸い、試験環境自体はこっちにもあるので、とりあえずは問題の起きたとされるデータを送ってもらうことに。これで解明できないとなれば、当然先方にお邪魔して…ということになりますが、さてさてどうなりますか。
お客さんから送ってもらったデータで検証したところ、答えはあっさりと見つかりました。
「9月の売上」として登録されてるんだけど、9月分の請求書にのってこないとされているデータ。確かにこちらの環境で試してみても、その通りに出てきます。
それで「なんでだろう?」とレコードを見てみたら、なんと請求日フィールドが空っぽになっちゃってる。請求書を作る際には、「請求日がこの日付範囲に該当するレコードをひっぱってこい」って案配にデータを抜き出してきてるので、ここが空っぽだと当然そこには含まれてこないのです。
「ああ、これが原因か。そりゃこうなるわ」
とはいえ売上日にはしっかり日付が入っているので、それが請求書にのっかってこないとなると、確かにこれはまずそうです。
「うーん、請求日が入ってないデータってのも有り得るんだ。んじゃどうしようかなぁ」
見たところ、売上日フィールドには、いつも請求日フィールドと同じ日付が入っている様子。だったらそもそもこれは、売上日の方で処理すべきもんだったんじゃないの?
そう思った私は、ちょちょちょいっと集計対象を「売上日基準」に書き換えたのでした。
あー、これはありそうな話ですね。