消費税 24

ユーザスクリプトは、「#---」で挟まれた部分です(「#」以降は、Rubyではコメントとして処理されます)
スクリプト先頭の番号(1:など)は、説明のためのもので、実際には記述しません
ここでは、消費税に係わるスクリプトを例示します
想定する処理の流れを以下に示します
(1)仕訳ファイルから消費税の税抜処理を行う範囲の仕訳を切り出します→(2)切り出された仕訳(分離ファイル)について消費税額を計算する→(3)仕訳金額を税抜後の金額に変換する→(4)税抜仕訳を自動生成させる→(5)分離ファイルを仕訳ファイルに結合する
ここでは、(2)〜(4)で利用するスクリプトを紹介します

1.設定項目など


〔1〕仕訳ファイル
仕訳ファイルには以下のタグ(フィールド)が必要です
------------------------------------------------------
1:消費税Code...J_DX,J_CX,J_XX
2:消費税額...J_DTax,J_CTax,J_XTax
3:シャドウタグ(税込金額退避用)...J_DAmtS,J_CAmtS,J_XAmtS
4.税抜計算フラグ...J_FlgX

5:仕訳識別フラグ...J_FlgJ
------------------------------------------------------

仕訳作成時は、上記のタグにはゼロをセットします
「Set7JX12XJ_RYA」スクリプトを利用すれば、仕訳ファイルの科目Codeから自動的に消費税Codeを取得し消費税Code欄にセットできます
自動セットには幾つかの条件がある(例えば消費税Code欄がゼロであることなど)ので確認しておいて下さい


〔2〕科目マスタ
科目マスタには以下の消費税Codeタグが必要です、必須ではありませんが
科目Codeに消費税Codeを紐付けておくと、上述のように仕訳作成が楽になります
------------------------------------------------------
MA_XCodeD
MA_XCodeC
------------------------------------------------------

〔3〕基本マスタ

基本マスタ(XK_hhhh)に消費税計算の端数処理を指定するタグ(K_XFractions)があるので計算方法を指定します


2.消費税処理のユーザスクリプト


#------------------------------------
0:# -*- encoding: Windows-31J -*-
1:require "t1"
2:
Cal7JTax12XJQ(1)
3:
Sav7GAmt12XJQ(1)
4:
Cal7NAmt12XJQ(1)
5:
MkJ7Tax12XJQ(1)
6_1:
Set12XJQ_Match("J_DA","1142","J_U_DAName","仮払消費税",1)
Set12XJQ_Match("J_CA","1142","J_U_CAName","仮払消費税",1)
Set12XJQ_Match("J_CA","2172","J_U_CAName","仮受消費税",1)
Set12XJQ_Match("J_DA","2172","J_U_DAName","仮受消費税",1)
6_2:
Set12XJQ_Match("J_XA","1142","J_U_XAName","仮払消費税",1)
Set12XJQ_Match("J_XA","2172","J_U_XAName","仮受消費税",1)

#-----------------------------------------
0:スクリプトのパラメタに日本語を使うときはこのマジックコメントが必要になります
1:「展開一番」のスクリプトを利用するためのおまじない
2:仕訳抽出ファイルの仕訳各行について消費税額を計算する
計算対象とするファイルはスクリプトの引数で指定、「1」は仕訳抽出ファイル、以下同様
3:税込金額を使用する帳票のために税込金額(仕訳金額)を税抜金額に置き換える前に税込金額をシャドウタグに保存します
4:税込金額(仕訳金額)を税抜金額に置き換えます
5:税抜仕訳を生成します
6_1:仕訳ファイルの科目Codeと科目名を一致させます(二科目仕訳で運用のとき)
「展開一番」の仕訳ファイルの定義タグには「勘定科目名」がありません
勘定科目名を利用するときは、ユーザ定義タグを利用します(ここでは "J_U_DAName" がユーザ定義タグになります)
消費税の税抜処理では、税抜処理の対象となる仕訳を複写し、その後必要な箇所を書き換えて税抜仕訳を生成しています
例えば、科目Codeを消費税Codeに、仕訳金額を消費税額に置き換えるなど
ユーザ定義タグはユーザが自由に設定できるので、上記の方法で税抜仕訳を生成すると、科目Codeと科目名に不整合が発生します
税抜仕訳の科目Codeは消費税Code(仮払消費税のCodeなど)になっているのに、科目名欄は元の仕訳の科目名となっています
科目Codeと科目名を一致させるスクリプトが「Set12XJQ_Match」です
"J_DA"(借方科目Code)が「1142」であれば、"J_U_DAName"「ユーザ定義の借方科目名」を「仮払消費税」に置き換えます
二科目仕訳で運用するときは四つ、一科目仕訳で運用するときは二つ、スクリプトが必要になります
6_2:上に同じ(一科目仕訳で運用のとき)


3.説例(一科目仕訳の場合)
〔1〕テストデータ(仕訳抽出ファイル:WXJ_2220.txt)は以下の通りです



仕訳定義ファイルは以下の通りです
したがって、仕訳ファイルの10番目が消費税コードになります(200:課税仕入)




〔2〕ユーザスクリプトは以下のとおりです
「#」以降はコメントと扱われるので記載は省略できます
ユーザスクリプト(テキストファイル)名は「US.rb」としています
#--------------------------------------------------------------------------------------------
#消費税の税抜処理(一科目仕訳)
#消費税額の計算、税込金額の退避、税抜金額の計算、税抜仕訳の作成、科目コードと科目名の整合処理

require "t1.rb"

Cal7JTax12XJQ(1)
Sav7GAmt12XJQ(1)
Cal7NAmt12XJQ(1)
MkJ7Tax12XJQ(1)

Set12XJQ_Match("J_XA","1160","J_U_XAName","仮払消費税",1)
Set12XJQ_Match("J_XA","2410","J_U_XAName","仮受消費税",1)
#--------------------------------------------------------------------------------------------


〔3〕コマンドライン(Windows PowerShell)から上記ユーザスクリプトを実行した画面です




〔4〕税抜処理の結果は以下のようになりました




3.説例(二科目仕訳の場合)
〔1〕テストデータ(仕訳抽出ファイル:WXJ_2220.txt)は以下の通りです



仕訳定義ファイルは以下の通りです
したがって、仕訳ファイルの7番目/12番目が消費税コードになります(100:課税売上、200:課税仕入)




〔2〕ユーザスクリプトは以下のとおりです
一科目仕訳で運用する場合と比較すると、科目Codeと科目名の整合を取るスクリプトの記述が多くなります
ユーザスクリプト(テキストファイル)名は「US.rb」としています
#--------------------------------------------------------------------------------------------

# -*- encoding: Windows-31J -*-
require "t1.rb"

Cal7JTax12XJQ(1)
Sav7GAmt12XJQ(1)
Cal7NAmt12XJQ(1)
MkJ7Tax12XJQ(1)

Set12XJQ_Match("J_DA","1142","J_U_DAName","仮払消費税",1)
Set12XJQ_Match("J_DA","2172","J_U_DAName","仮受消費税",1)
Set12XJQ_Match("J_DA","0","J_U_DAName","0",1)
Set12XJQ_Match("J_CA","1142","J_U_CAName","仮払消費税",1)
Set12XJQ_Match("J_CA","2172","J_U_CAName","仮受消費税",1)
Set12XJQ_Match("J_CA","0","J_U_CAName","0",1)
#--------------------------------------------------------------------------------------------


〔3〕コマンドライン(Windows PowerShell)から上記ユーザスクリプトを実行した画面です




〔4〕税抜処理の結果は以下のようになりました




Last Update 2021/10/09