紙手形が無くなって、「でんさい」に切り替わる。
「でんさい」では開示データがダウンロードできるので、開示データを使えば顛末帳を作成できるのではないかと思いやってみた。
うまくいけば、法定保存帳簿である手形帳を無くせるし、そのデータから入金伝票を作成できる。
今は入金伝票から手形データを作成、顛末帳を作成している。「でんさい」ではその逆を目指す。
(以下は開示データの債権者情報、保証人情報を利用して顛末帳を作成する場合で、「配信2」になります。電子データの仕訳では勘定科目は「電子記録債権」「電子記録債務」を使うようになっていますが、貸倒引当金の計算をする時、譲渡分(裏書分、保証人情報に表示される)について集計しなければならないので、従来通り、「受取手形」「裏書手形」「割引手形」で仕訳することにしました。)
支払手形は管理が簡単なので、既に紙の手形帳は作ってないが、受取手形については裏書や割引することがあるので、従来通り紙の手形帳で記録している。
「でんさい」の開示データを紙の手形帳に記帳しようとすると、分割譲渡した時、記帳が難しい。入金順に手形番号を採番して記帳していて行が空いてない。
そんなこともあって、開示データから顛末帳を作りたい。
「でんさい」の場合、紙手形と違って分割譲渡できる。分割譲渡した明細については新たに記録番号が採番される。これで集計作業が難しくなる。
支払手形の「でんさい」の開示データを見ると、支払先で譲渡した時、支払先が保証人として表示されるので、受取手形を譲渡した場合、開示データに上流下流側全ての保証人情報が表示されるのだと思っていた。
実際のところよくわからないのだが、譲渡された「でんさい」の債権者情報として遡及保証人は自分より上流側だけ表示される。(紙手形を裏書する場合、裏書する時に見える裏書人に相当する保証人情報だけ)
保証人情報では譲渡した自社が保証人になった明細が表示され(これが表示される最後の保証人情報)、譲渡先でさらに譲渡した場合の保証人情報は開示されない。債務者情報(支払手形)では発生日以降、譲渡された保証人情報の全てが表示される(?)。また、譲渡先で分割譲渡して子記録番号が発生した場合、その子記録番号は表示されない。あくまで自社で譲渡した時の記録番号だけ開示される。
譲渡された「でんさい」をさらに、譲渡した場合、顛末としては得意先から裏書手形が入金され、さらにその「でんさい」を裏書払いした記録が必要になる。裏書した後だと、債権者情報にはその「でんさい」は含まれない。保証人情報に得意先と自社が表示される(?)。
例えば、月中に譲渡された「でんさい」を月末に譲渡して、譲渡後、開示データを取り込んで顛末帳をつくろうとすると、入金された時(債権者だった時)の「でんさい」情報が含まれないので、入金処理は保証人情報から実行することになる。入金日は得意先から譲渡された「保証記録年月日」。自社が債権者である開示データが必要なら、譲渡する前に開示データを取り込んでおかなければならない。なので、開示データを照会した日によって、その記録番号の「でんさい」は債権者情報にも含まれる場合もあるし、保証人情報にも含まれる場合もある。取り込んだ開示データで、入金金額の合計を計算する時は、片方だけで集計しなければならない。
分割した場合、子記録番号の開示データ(保証人情報)に親記録番号が含まれない。
(親記録番号の債権金額は残額になる)
顛末ではこの金額で入金した「でんさい」を、この日に分割譲渡した、という記録が必要だ。
「でんさい」の流れを見れば、親記録番号は大体察しが付くのだが、開示データに含まれないので、プログラムで紐付するのが難しい。結局、分割する時に「依頼人 Ref.No.」に親記録番号を記入して、それを参照することにした。
この場合も入金金額の集計時、親記録番号の金額(全額と残高の記録があり)と子記録番号の金額を重複して集計しないようにしなければならない。
顛末帳から集計するのはなかなか難しい。
保証人情報をテーブルに保存するのがまた難しい。配信2では保証人情報は債権情報に続けて、1レコード当たり最大3件表示される。4件以上保証人情報がある場合は続けて次のレコードに表示される。この保証人レコードには記録番号が含まれない。含まれるのは連続する保証人レコードの数、そのシーケンス番号、1レコードに含まれる保証人数(01~03)だけ。
この形だと、そのレコードだけ見た時、どの記録番号の保証人情報かわからない。保証人情報が記録されたレコードの直前の債権情報の保証人情報ということなのだ。
データベースのテーブルにデータを追加する時、順番を考慮することあまりない。保証人情報については読み込み順が重要になる。
債権者情報と保証人情報はデータ構造が違うので、テーブルを分けている。
結局、ダウンロードしてきた開示データの1回目の読込み時、債権情報に行番を付け、2回目の読込み時、保証人情報にその債権情報の行番を保証人情報に追加することにした。(ヘッダーレコード、債権情報、保証人情報、トレーラレコード、それぞれレコード構造が違うので4回、読込んでいる)
顛末帳を作る時には、ダウンロードしてきたファイル名とこの行番でjoinする。
また、開示情報を見ていて驚いたのは、タイミングによっては債権者情報に他社の情報が含まれる時がある。
発生記録請求をした時から実際に実行されるまでの間、債権が移動していないのに、債権情報にその明細が表示される。
なので、取込み時、他社の債権は無視する。
こんな風に顛末帳を作って、月末に裏書手形、割引手形の期限を迎えた金額を集計する。重複しないで計算できるかこれから確認。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
「でんさい」のテーブル構造が複雑なので、viewを作って対応するのだが、
create viewのクエリーを作るのは正直言って手に余る。
こんな時はGeminiさんに教えを乞う。
複雑なクエリーも説明付きで教えてくれる。そのまま使ってcreate viewする。
便利な時代になったもんだ。
もう直ぐ65歳で仕事納めも間近なのだが、もう少し若い時からこんな環境でプログラミングしてみたかった。