請求書上で消し込みをシミュレートする訳・補遺

実際にデータとして売掛金が消し込まれてなくても、請求書を出力した時点でその請求期間内の入金を乗せて、擬似的に消し込みを行って結果を表示しなきゃいけない、と前に書いたけど理由が不十分だった。

消し込み忘れて請求書出力、とか、一旦残を確認してから消し込みしたい、とかそんな理由だけじゃなくて、決定的な理由は、前受した入金に関してだ。そうそう、忘れてた忘れてた。いちようメモっておく。

  1. 3月に請求データを作りました。
  2. 請求書を受け取った得意先が請求書通りに入金してくれました。
  3. 3月分の請求済売掛金に対してその入金を使って消し込みました。
  4. 4月にも売上がありました。
  5. 4月の請求書を出したらさっきの入金が乗って、前月残が綺麗に消えました。
  6. 4月分の売掛金が綺麗に残りました。

これなら問題ない。次の例の場合はどうなるか。

  1. 3月に請求データを作りました。残は1000円です。
  2. 請求書を受け取った得意先が1200円入金してくれました。
  3. 3月分の請求済売掛金に対してその入金を使って消し込みました。
  4. 4月にも売上がありました。売掛金は1000円です。
  5. 4月の請求書を出したらさっきの入金が乗って、前月残1000円が綺麗に消えました。
  6. 4月分の売掛金1000円も勿論記載されています。
  7. 4月分の売掛金の内、まだ消し込まれてない入金200円分が消えて、当月残は800円です。

と、こうならなきゃいけない。

だがしかし、擬似的に消し込みでなく、実際にデータとして登録された消し込みデータだけを表示すると、最後の200円はどうやっても消えない。何故か。請求書を作らないと、消し込み出来ないからなのだー。

4月の請求データを作ろうって時に、それに対して消し込みは出来ない。でも得意先は4月分も見越して前受金を払ってるから、4月請求残は800円である事を期待している。

じゃあ請求データ作らなくても、売上計上されてりゃ消し込める様にすればいいじゃん。勿論対象は、以前考えた請求対象フラグが立ってるもののみ、で。ほんで、消し込んでから請求データを作ればいい。

てな風に簡単には行かない。基本的に得意先はどれだけ商品を買ったかを請求書で判断し、それに対して入金してくれる。殆どのケースは請求書通りの金額が入金される。

消し込みを行うとき、得意先によってはけっこうな件数の売上を、請求と云う単位でまとめて取り回せないととてもじゃないがやってられない。請求単位での一括消し込みなんて技も出来ない。数百件の売上明細行のチェックボックスをえっちらおっちらつけて、色んな組み合わせを考えて、よし、これで入金額と一致した、ふーやっと終わった、消し込みボタンぽちっとな、なんて可哀想だし、要件とかけ離れ過ぎる。

追記
大体が、請求対象フラグは赤黒切ったりで時々刻々と複雑に(そうでもないか)変化する事は前に見たので、またぞろ消し込み済みの元伝はどうとかロック機構を考えなきゃいけない。却下却下!
さらに追記
それ以前に、売上単位の消費税と、請求書上で売上を合算した時の消費税の誤差の問題がある。得意先が入金してくる金額は勿論後者に対してである。却下却下!大却下!

そんな訳で、消し込みは請求データ作らないと(もっと厳しく実際に印刷しないと、って場合もある)やっちゃダメ、絶対、ってのがよい。

大体画面構成からして、恐らく消し込み対象って事で請求の一覧を表示する事になるので、請求しなきゃ画面にすら出て来ないはずだ。

そんな訳で、請求書に表示する消し込み情報は、メモリ上でえっちらおっちらやりましょうって話になるのだった。で、これを仕訳大統一理論でやろうとして、本番稼動直前に破綻していやー大変だった事よ。急遽入金テーブルをしつらえた訳だ。

これね、結構厚い厚い処理なのでここでパパパとは書けない。トライ・アンド・エラーでぐっちょんぐっちょんになったソース、涙無くしては見れない。これを次の案件では綺麗にしたいなあと思う。