仕訳を度外視で入金処理

脱・仕訳大統一理論の理想としては、販売管理側では、受注・出荷・売上・請求・入金・発注・入荷・仕入・支払などなど、それぞれに特化したデータモデルで全部コントロールして、仕訳は月次会計締め処理などで、それぞれのデータからサマリーでバッチでどーんと起こすと云う形を取りたい。

ただ、前の入金業務の例に書いた案件では、取引先からの入金は実際の入金額が全て商品代金であるとは限らず、未収入金もしくは立替金に対する入金の場合もあると云う要件から、もう入金情報のエントリーでリアルタイムで仕訳起こしちゃった方が早いし確実だぜってんで、仕訳データ同時生成と相成った訳である。

が、他のもうちょっと小さ目の案件だと、殆どそんな事は無い。請求されたら素直にその分入金が通常、時々前受金や一部入金が発生する程度である。

そんな訳で、未収入金と立替金に対する入金は当案件では対象外ですと確認した後、もう一回入金テーブルを考えてみよう。

現金での入金

繰り返すが、現金とは現金にあらず、殆どが当座預金勘定であって、この場合の現金とは手形じゃないよくらいの意味でしかない。

で、前に書いた入金テーブルの項目はこうだ。

  • 入金ID
  • 得意先ID
  • 入金日
  • 入金区分(現金・手形・債務振替のどれか)
  • 金額(実際に消し込みに使う金額、即ち仮受金)

あ、因みにここでは過入金も何でも全部仮受金で受ける方式を採用。話ややこしくなるし。

さて、3/20締め請求1200円に対して、4/1に1000円、当座預金に入金がありました、と。残りの200円は後で登場します。

 ID  得意先 入金日 区分  金額
 --- ------ ------ ----- ------
 001 1234   04/01  現金  1000円

簡単ですな。

だがしかし、ここで忘れちゃならねぇのが、手数料ですよ手数料。いくら仕訳を排除したからと云っても、月次会計締めの時点で受取手数料分とそれにかかる消費税を把握出来なくては遺憾。

項目追加だな。

  • 入金ID
  • 得意先ID
  • 入金日
  • 入金区分(現金・手形・債務振替のどれか)
  • 金額(実際に消し込みに使う金額、即ち仮受金)
  • 手数料
  • 税コード

消費税金額は項目として設けない。どうせ受注だの発注だのでも税コード使うし、仕訳にも必要となるのが一般的(多分)なので、それを使わせて貰おうじゃないか。

話はずれるが、税コードの考え方はお客様ルールや採用した会計パッケージによりけりだと思うものの、こんな感じじゃないっすかね。

  • 対象外
  • 売上外税
  • 売上内税
  • 売上非課税
  • 仕入外税
  • 仕入内税
  • 仕入非課税

売上と仕入で分けない場合もあると思う。あと注意は対象外と非課税と別になっている所。これは、仕訳などで必要になってくるんだけど、売掛金とか買掛金とかそもそもが課税対象外である勘定の場合と、売上・仕入などの課税対象なんだけどあえて非課税とする場合と、明確に分けておかないと怒られちゃう事があるからである。

話を戻して、振込み手数料200円、外税10円とする。

 ID  得意先 入金日 区分  金額    手数料   税コード
 --- ------ ------ ----- ------ ------- --------
 001 1234   04/01  現金  1000円   200円  売外

売上外税なのは、受取手数料は収益勘定になるので、消費税は仮受消費税となるため。収益側を意味する売上外税が入るべき、だと。仕訳自体は手数料も消費税も正残側じゃない方(借方)に作るから、実質損失なんだけど。

出来たぞー。

手形での入金

こっちは手数料関係ないから、素直に行こう。次の得意先は4444様とする。ヨン様の4倍偉い取引先である。俺は六様なので1.5倍である。3/20締め2000円に対し、4/15に1700円手形で入って来ましたよ、と。

 ID  得意先 入金日 区分  金額    手数料   税コード
 --- ------ ------ ----- ------ ------- --------
 002 4444   04/15  手形  1700円         

うーん、死に項目が出来てしまった。これは気持ち悪いので、手数料と税コードのデフォルト値を0、対象外と定義しておこう。

 ID  得意先 入金日 区分  金額    手数料   税コード
 --- ------ ------ ----- ------ ------- --------
 002 4444   04/15  手形  1700円     0円  対象外

実質死んでる項目には変わらないけど、これでアプリ側の負担は減るわな。うーん、でもなー、まあいいや。

さて、手形なので同時に手形テーブルも作らないといかんいかん。項目はこうだったな。

  • 受取手形ID
  • 記載番号
  • 入金ID
  • 発行元得意先ID
  • 決済日
  • 金額
  • ステータス

決済は2ヶ月後、発行元も同じ所って事にする。

 ID  記載番号 入金ID 発行元 決済日  金額   Stat
 --- -------- ------ ------ -----  ------ ----
 001 AA001    002    4444   06/15  1700円  未決

こっから先は手形管理業務にお任せ、後は野となれヤマト糊だ。

余談だけど、ヤマト糊とかフエキ糊って、火傷した時にすぐに塗ると効くらしい。うちのおとんはすぐに塗ったので跡も残らなかったそうな。火傷しそうな事やってる人は手元に用意して置こう。

これで入金処理自体は完了、ですな。キャンセルとか考え始めるとまたアレですが。

仕訳を作るど

さて、月次会計締めもついでにやってしまおう。

上の入金どもを蓄積して、月次会計締めでサマリーしてごーんと仕訳を作ればいいんだが。サマリー単位として得意先を含めるか否かはそれこそお客様ルールや会計パッケージによると思う。

ただ、得意先毎の債権残や与信管理は、販売管理システム側で出来る(予定)だし、会計システムの目的は基本的にBSやPLを出す事な訳で、得意先は複数まとめちゃっていいと思うんだけど。これは入金に限らず。計上日は取り敢えず月じゃなくて日でやろうか。税コードはサマリー単位に入れるだろうな。

取り敢えず、こんな感じで4月の入金がありました、と。

 ID  得意先 入金日 区分  金額    手数料   税コード
 --- ------ ------ ----- ------ ------- --------
 001 1234   04/01  現金  1000円   200円  売外
 002 4444   04/15  手形  1700円     0円  対象外
 003 1234   04/15  現金   200円   200円  売外   ←入金しそこねたのが後日入った
 004 4444   04/15  現金   300円   210円  売内   ←これまた後日、しかも同日現金でしかも内税
 005 5555   04/15  現金  2000円   200円  売外   ←どさくさにまぎれて新たな得意先登場

こんなんあるかいっ!でもやるんだよ。

さて、5/4くらいになりました。あっ、休日か、連休明け、5/6になり、4月の会計を締めましょうかって事になりました、と。

さあサマリーしてみよう、ってちょっと待った。消費税の算定はサマリー前にやらんとダメじゃないか。サマリー金額に対して算定したら端数が出る。何か書きながら考えてるなあ。これがアジャイルって奴か←泥縄とアジャイルは違います。

どうしよう、結局サマリー前にテンポラリーに税金額を導出せんと遺憾のか。導出項目として税金額を追加するか。モデリング哲学上、斯様な導出項目が許容出来ぬ場合は、税額算定用ユーザー定義関数作ってビューでもかませておくんなせえと云う事で。

俺は導出項目イケイケドンドン派で今まで来たんだけど、WEB+DBプレスのバックナンバーのはぶさんの記事読んで、ちょっと色々考えてしまって、うーん。まあいい。

  • 入金ID
  • 得意先ID
  • 入金日
  • 入金区分(現金・手形・債務振替のどれか)
  • 金額(実際に消し込みに使う金額、即ち仮受金)
  • 手数料
  • 税コード
  • 手数料税額 ←追加しました
 ID  得意先 入金日 区分  金額    手数料   税コード 税額
 --- ------ ------ ----- ------ ------- -------- -----
 001 1234   04/01  現金  1000円   200円  売外     10円
 002 4444   04/15  手形  1700円     0円  対象外    0円
 003 1234   04/15  現金   200円   200円  売外     10円
 004 4444   04/15  現金   300円   210円  売内     10円
 005 5555   04/15  現金  2000円   200円  売外     10円

さてやるか。取り敢えず、入金日、区分、税コードでサマリーしる。

SELECT
  入金日,
  入金区分,
  SUM(金額),
  SUM(手数料),
  税コード,
  SUM(手数料税額)
FROM 入金テーブル
WHERE 入金日 BETWEEN 04/01 AND 04/30
GROUP BY
  入金日,
  入金区分,
  税コード

日付型とか、適当なSQLだなあ。結果。

 入金日 区分  金額    手数料   税コード 税額
 ------ ----- ------ ------- -------- -----
 04/01  現金  1000円   200円  売外     10円
 04/15  手形  1700円     0円  対象外    0円
 04/15  現金  2200円   400円  売外     20円
 04/15  現金   300円   210円  売内     10円

1行しか減ってない・・・まあエキザンポーだからエキザンポー。

この段階で入力された手数料金額から税抜き金額を求めねばなるまい。外税の場合は手数料そのままでいい、内税の場合は手数料から税額引いてやらねばならん。

あと、現金入金で手数料がある場合、入金額から手数料の税込金額を引いてやるのも忘れちゃいけない。

めんどいのでもう仕訳をつくるど。いい加減複式表記はやめて、ちゃんと仕訳データそのものとして書いてみよう。仕訳テーブルの項目を考える。

ここで、見出し・明細方式を取りそうなもんなんだけど、今までやって来た案件で、仕訳に限って見出し・明細方式ってやったことない。みんな伝票番号や計上日は正規化せずに明細ごとに持つ形だった。何故だかは不明なんだが、どっちが良いかは後で考えるとして過去案件に則ってやってみる。

  • 伝票番号(MMDDXXXとする)
  • 行番号
  • 計上日
  • 貸借
  • 勘定(本当は細目もあるけどここでは度外視)
  • 金額
  • 税コード

って感じでやってみよう。複合キーはイヤンとか今は無し無し!上から順にゴーだ。

 伝票番号 行 計上日 貸借 勘定         金額     税CD
 -------- -- ------ ---- ----------- ------- ------
 0401001   1 04/01  D    当座預金      790円  対象外
 0401001   2 04/01  D    受取手数料    200円  売外
 0401001   3 04/01  D    仮受消費税     10円  対象外
 0401001   4 04/01  C    仮受金       1000円  対象外

 0415001   1 04/15  D    受取手形     1700円  対象外
 0415001   2 04/15  C    仮受金       1700円  対象外

 0415002   1 04/15  D    当座預金     1780円  対象外
 0415002   2 04/15  D    受取手数料    400円  売外
 0415002   3 04/15  D    仮受消費税     20円  対象外
 0415002   4 04/15  C    仮受金       2200円  対象外

 0415003   1 04/15  D    当座預金       90円  対象外
 0415003   2 04/15  D    受取手数料    200円  売内
 0415003   3 04/15  D    仮受消費税     10円  対象外
 0415003   4 04/15  C    仮受金        300円  対象外

出来たぞー。

うーん、仕訳に税コードって本当に要るのかなあ。不要ならもっと効率よくサマリー出来る。今までの案件では会計パッケージ側で税コードを持っていたで、それが当たり前だと思ってたんだけど、どうなんだろう。何せ経験がアレだもんで。

パッケージによっては、こっちからつなげる時には消費税仕訳は渡さないでコードだけ渡すってのもあった。

で、だ。すんなり行ったようだが実は話はこんなに単純では無い。何故なら、まだ消し込みの事考えてないからだー。

消し込みは消し込みで別にデータをひっ掴まえて、仮受金/売掛金と云う仕訳を作るって手もあるが、消し込まれた分は最初から入金や売上から仕訳作る時に一緒にしちゃって残だけ作ればいいじゃんって話しもある。でも問題あるかも。仮受金が正残側にマイナス金額で出来ちゃう場合も有り得るのはいやだなあとか。

なんか入金云々じゃなくて、結局仕訳の話、月次会計締めコーナーになっちゃったな。これはこれとして、売上やら仕入やら債務振替入金やら仮受金返金やらのイレギュラー業務まで考えた上で、後で改めて月次会計締めシミュレーションをやってみねばなるまい。

大体が計画性に欠けるんだよ。机の上とか散らかってるし。