確定申告書(第一表・第二表)まわりのモデルを作り始めた。前回までは様式PDFに数字を重ねて出す「印字」の部分だけを作っていて、肝心の「その数字をどこから持ってくるか」がまだなかった。今回はそこに手を付けた回。
何を作ったか
TaxReturnモデルを起点に、申告書の各セクションに対応するモデルを一通り追加した。
- 所得の内訳(給与・雑所得などの証憑単位のデータ)
- 社会保険料等に係る控除
- 配偶者控除・扶養控除の対象者情報
- 医療費控除の明細書
どれも「申告書のこの欄に対応するデータを、ユーザーが入力して保存できる」ところまで。社会保険料の控除については、証明書の記載事項に相当するPDFの出力機能も一緒に作った。
世帯主の氏名など、他人の個人情報が混ざる項目は暗号化して保存するようにしてある。
できていないこと
一番大事なところを書いておくと、控除額や所得税額の自動計算(computed)にはまだ手を付けていない。今回作ったのはあくまで入力データの保存までで、そこから「配偶者控除はいくらになるか」「医療費控除の対象額はいくらか」を計算する部分は空っぽ。
この手の控除は条件の組み合わせが多く、検証が大変だから。配偶者控除だけでも、本人の所得金額・配偶者の所得金額・年齢・障害の有無などで控除額が段階的に変わる。医療費控除も同様に、複数の条件分岐がある。ここを検算込みでちゃんと作ろうとすると腰を据える必要があり、今回は見送って、まずデータの受け皿を先に固めることにした。
なので今の状態は、申告書の下書きをするための「保存はできるが計算はしてくれない」段階。実用に耐える機能にはまだ足りていない。
とはいえ実際の申告作業自体は、控除額の計算を含めてe-taxの「確定申告書作成コーナー」に任せてしまえば足りる。このアプリで計算まで面倒を見る必然性は薄く、あくまで自分の帳簿の延長として申告書の下書きを持てると便利、くらいの位置づけで進めている。
そういう事情もあって、このあたりの作業はまだmasterにはマージせず、tax-returnブランチに置いたままにしている。
次
保存したデータから実際に控除額を計算するところと、そこまで含めて申告書PDFに流し込むところが残っている。ここは前回のPDF重ね出力と違って、間違っていても一見それらしく動いてしまう類のロジックなので、自分でコードを読んで納得しながら進めることになりそう。