Published Date : 2020年12月19日15:12

Pythonを使用した税金計算(日本の個人事業主)【Part 4】
Tax Calculation Using Python (Japanese Sole proprietor)【Part 4】


This blog has an English translation


YouTubeにアップした動画の説明記事です。

This is a blog post about a video I uploaded to YouTube.

細かい部分は動画を参考にしてください。

Please refer to the video for details.


目次

Table of Contents




① 動画の説明
① Video Description



警告:

今回説明する給与所得者と個人事業主等の所得税及び住民税を計算するアプリは、あくまで簡易的なお遊び用のアプリです。

正確な数値、計算方法は各自で調べて下さい。

このアプリは大雑把に大体の見積りを計算して楽しむ為のアプリです。

決して従業員の年末調整や個人の確定申告等に使用しないでください。

さらに、税金の計算方法は変更される場合があり、控除についても同様です。

また、控除や税金の計算方法が間違っている可能性もありますので、

あまり信用せずに、各自で調べてから実験してみてください。

このアプリを使って何かしらの損害が発生したとしても、私は一切の責任を負いません。

Warning:

​The app I'm going to show you for calculating income and residence taxes for salaried workers and Individual employers, etc. is just a simple application for playing.

​Please check the exact number and calculation method by yourself.

​This app is used to calculate rough estimates and enjoy them.

​Do not use for year-end adjustment of employees or for individual tax return.

In addition, the method of calculating taxes and deductions may change.

Also, there is a possibility that the deduction and tax calculation methods are incorrect.

Don't trust it too much, and test it yourself.

​I will not be liable for any damage caused by using this app.

それでは個人事業主用の税金計算アプリを作成していきましょう。

Then, let's create a tax calculation application for a sole proprietor.

給与所得者のアプリと同じフォルダ、ファイルを作成していきます。

You create the same folder and file as the application of the salaried worker.

dataフォルダをmanage.pyがあるフォルダに移動させます。

Move the data folder to the folder where manage.py is located.

data/
    保険料.csv
static/
    bootstrap-4.5.3-dist/ 
        css/
            ---------
        js/
            ---------
    spjs/
        ---------
    swjs/
        ---------
taxCalc/
   front/
       ---------
   salariedWorker/
       ---------
   soloProprietor/
       ---------
templates/
    salariedWorker/
       ---------
   soloProprietor/
       ---------
db.sqlite3
manage.py

settings.pyに、dataフォルダ内の各ファイルへのパスを書き、それらをどこでも参照できるように変数として定義します。

In settings.py, write the path to each file in the data folder and define them as variables so that they can be referenced anywhere.

dataフォルダ内に東京23区の名前がリスト化されたテキストファイルと、それぞれの区の国民健康保険料の税率をまとめたCSVファイルを格納します。

A text file listing the names of the 23 wards of Tokyo and a CSV file summarizing the tax rates of the national health insurance premiums of each ward are stored in the data folder.

data/
    sp健康保険料.csv
    保険料.csv
    東京23区.txt
static/
    bootstrap-4.5.3-dist/ 
        css/
            ---------
        js/
            ---------
    spjs/
        ---------
    swjs/
        ---------
taxCalc/
    front/
        ---------
    salariedWorker/
        ---------
    soloProprietor/
        ---------
templates/
    salariedWorker/
        ---------
    soloProprietor/
        ---------
db.sqlite3
manage.py

各アプリケーションのviews.pyにそれらのパスが入った変数をsettings.pyからインポートします。

Import variables from settings.py that contain these paths in each application's views.py.

給与所得者用の税金計算アプリのviews.pyとurls.pyとtaxCalc.py、そしてJQueryファイルの内容を編集します。

Edit the views.py, urls.py, taxCalc.py, and JQuery files for the tax calculation app for salaried workers.

index.htmlに個人事業主用の税金計算アプリのJSフォルダへのパスを書きます。

Write the path to the JS folder of the tax calculation application for the individual business owner on index.html.

個人事業主用の税金計算アプリのapplication.htmlに、HTMLを書いていきます。

Write HTML on application.html of the tax calculation application for individual business owners.

給与所得者用の税金計算アプリのHTMLと内容はほぼ変わりません。

The HTML content of the tax calculation application for salaried workers is almost the same.

細かいところは動画を参考にしてください。

Please refer to the video for details.

selectタグを利用して、23区内のどこに住んでるかを選択できるようにします。

The select tag allows you to select where you live within the 23 wards.

後は、ひたすらtableタグにinputタグを付け足していくだけです。

All you have to do is add the input tag to the table tag.

一つだけ気を付ける点はinputタグ等に付けるIDです。

One thing to be aware of is the ID to be attached to the input tag, etc.

これらのIDは給与所得者用の税金計算アプリのHTMLとは違わなければなりません。

These IDs must be different from the HTML in the tax calculation app for salaried workers.

何故なら、これらの二つのアプリのページは、Jinja2のブロックコンテンツを利用して同じindexページを継承し、共有しているので、同じIDだと不具合が生じます。

Because the pages of these two apps use Jinja2 block content to inherit and share the same index page, the same ID will cause a problem.

後はいつも通りJQueryを利用してAJAXで値の更新ができるように、二つのJSスクリプトファイルを作成します。

Now create two JS script files so you can use JQuery to update values in AJAX as usual.

JSファイルの作成が終わったらurls.pyを編集します。

When you have finished creating the JS file, edit urls.py.

taxCalc/taxCalc/salariedWorker/urls.py
urlpatterns = [
    path('salaried-worker-app', views.application, name='salaried-worker-app'),
    path('calculate-social-insurance-sw', views.calculate_si,
            name='calculate-social-insurance-sw'),
    path('calculate-tax-sw', views.calculate_tax,
            name='calculate-salaried-workers-tax'),
]
taxCalc/taxCalc/soloProprietor/urls.py
urlpatterns = [
    path('solo-proprietor-app', views.application, name='solo-proprietor-app'),
    path('calculate-social-insurance-sp', views.calculate_nhip,
         name='calculate-social-insurance-sp'),
    path('calculate-tax-sp', views.calculate_tax,
         name='calculate-solo-proprietor-tax'),
]


以上です。お疲れ様です。

That's all. Thank you for your hard work.