売上原価の集計作業(プロジェクト別原価計算) 120

(1)プロジェクト別原価計算による売上原価の集計に必要なファイルは以下のとおりです(註)
1.科目マスタ(YA_cc.txt)、科目定義ファイル(DA_cc.txt)
2.消費税マスタ(YX_cc.txt)、消費税定義ファイル(DX_cc.txt)
3.仕訳ファイル(XJ_hhhh.txt)、仕訳定義ファイル(DJ_hhhh.txt)
4.プロファイル(t1_Profile.txt)
5.基本マスタ(XK_hhhh.txt)
6.プロジェクトファイル(CstPrj_hhhh.txt)
7.部門マスタ(CstDiv_hhhh.txt)
8.配賦基準ファイル(CstAlc_n_hhhh.txt)
(註) cc には類型番号が、hhhh には法人番号が、n には「7.部門マスタ」に設定した部門Code(任意の数字)が入ります

(2)マスタ/ファイルの作成
1.〜4.のマスタ/ファイルの作成は省略します

5.基本マスタの作成例を以下に記載します(註)
-------------------------
K_Name,Costing_Co
K_BusinessYear,2021
K_SYMD,20210401
K_EYMD,20220331
K_XFractions,0
K_YA,83
K_YX,83
K_CUnit,1000
K_CFractions,0
K_CEle0,G0
K_CEle1,G1
K_CEle2,G2
K_CEle3,G3
K_CEle4,G4
K_CEle5,G5
K_CEle6,G6
K_CEle7,G7
--------------------------------
(註)10行目以降の「K_CEle0,G0」は、プロジェクトファイルで工事進行基準による売上高の計算を行うときに必要となる設定です
したがって登録は必要ありません、「K_CFractions」等のタグ名の内容については「基本マスタの作成 1030_40」を参考にして下さい

6.プロジェクトファイルの作成
プロジェクトファイルは、各行に Code、プロジェクト名称、取引先、ステイタスフラグ、金額フィールド(最大27個)を持つテキストファイルです
テキストエディタを使って最初の三項目を登録します、ファイル名は「
Cst_Prj_hhhh.txt」とします
金額フィールドを幾つ利用するかはユーザが決めることになります
C_AddZeroN_Prj」スクリプトを利用すると、プロファイル各行の末尾に指定した数のゼロを追加することができます
ここでは、金額欄を18個使用することにして「C_AddZeroN_Prj(19)」を実行します(ステイタスフラグ欄を追加してゼロの数は19個)
作成したプロジェクトファイルは以下のようになります(註)

.....以下省略

(註)作成したプロジェクトファイルの各列の並びを揃えるためCSVエディタで表示しています(以下も同様です)
ユーザが作成するのは各行3列目までで、4列目以降のゼロはスクリプト「C_AddZeroN_Prj(19)」)が追加しています
一行目の列名は参考のため追加したものです、M0〜G0 はプロジェクトファイルの既定のタグ名であり、以後これを利用して原価データの保存場所等を指定します
なお、一行目行頭の「#」は以下がコメントであることを示し、スクリプトの実行には影響しません

7.部門マスタの作成
部門Codeと部門名からなるテキストファイルです、ファイル名は「
CstDiv_hhhh.txt」です
-----------------------
600,製造1部
700,製造2部
800,製造管理部
-----------------------

8.配賦基準ファイルの作成
プロジェクトCodeと配賦基準からなるテキストファイルです、ファイル名は「
CstAlc_n_hhhh.txt」です
部門ごとに作成します(上記 n が部門Codeになります)
-----------------------
CstAlc_600_hhhh.txt
-----------------------
61210,600
61220,276
61230,800
...
-----------------------
CstAlc_700_hhhh.txt
-----------------------
71420,1850
71430,1900
...
-----------------------
CstAlc_800_hhhh.txt
-----------------------
8600,7536
8700,7002
-----------------------


(3)アクセプトファイルの作成
仕訳が税込で作成されているときは税抜処理を先に済ませておきます
消費税処理の説明はここでは省略しますが、参考までに関連するスクリプトだけを以下に紹介します(註1)
(a)Cal7JTax12XJQ(0).....消費税額を計算する
(b)Sav7GAmt12XJQ(0).....税込金額を所定のタグに退避する
(c)Cal7NAmt12XJQ(0).....税込金額を税抜金額にする
(d)MkJ7Tax12XJQ(0).....税抜仕訳を作成する
(e)Set12XJQ_Match(0,"J_DA","1110","J=U_DAName","仮払消費税").....借方科目Codeが1110なら借方科目名に「仮払消費税」をセットする
(f)Set12XJQ_Match(0,"J_DA","2060","J=U_DAName","仮受消費税")
(g)Set12XJQ_Match(0,"J_CA","1110","J=U_CAName","仮払消費税")
(h)Set12XJQ_Match(0,"J_CA","2060","J=U_CAName","仮受消費税")
(註1)二科目仕訳の仕訳ファイルを対象にし、ユーザ定義の勘定科目名を利用しているケースです

仕訳ファイルから原価計算期間の仕訳を抽出し仕訳抽出ファイルを作成し、仕訳抽出ファイルからアクセプトファイルを作成します
アクセプトファイルは、仕訳データにプロジェクトCodeまたは部門Codeを持つ仕訳から作成されます
「C_SelWXJ_MkFApt(1110,2060)」(引数は仮払消費税Code/仮受消費税Code)を実行すると以下のファイル「CstApt_hhhh.txt」が作成されます(註)

.....以下省略
(註)各列のデータは、プロジェクトCodeまたは部門Code、会計日、伝票番号、科目Code、金額

次ぎに、アクセプトファイルのデータを、Code別に合計します
プロジェクトCode及び部門Code別の合計を計算するときは「
C_SumApt_MkFAptPD」スクリプトを実行して「Cst_AptPD_hhhh.txt」ファイル(上)を作成します
科目Code別の合計を計算するときは「
C_SumApt_MkFAptAC」スクリプトを実行して「Cst_AptAC_hhhh.txt」ファイル(下)を作成します(註)

.....以下省略

.....以下省略
(註)アクセプトファイルの科目Code別合計ファイルは、原価費目の仕掛品勘定への振替仕訳に利用します
例えば、科目Code 5610 は「製_材料費」なので、1070 仕掛品/5610 製_材料費 635,000 の仕訳を作成します
当月発生原価を残しておきたいときは、合計額で 仕掛品/仕掛品原価見返 の仕訳を作成します
なお、科目Code別合計ファイルの合計額は、「展開一番」の「グリッドシート」を利用するか、「表計算ソフトウェア」を利用します
「グリッドシート(GS)」を利用するときのスクリプトは以下のようになります(パラメタの解説は省略)
(a)GS_MkF(83,"v",15,2).....15行2列の縦展開用のGSを作成、識別番号を83とする
(b)GS_vPst("CstAptAC",0,5610,5742,1,83,0,1).....「CstAptAC_hhhh.txt」ファイルのデータをGS83に縦展開する
(c)GS_vSum(83,1,0,11,12).....GS83の原価データの1行目から12行目を合計して結果を13行目にセットする

(4)直課原価ファイルと部門原価ファイルの作成
「C_RefAptPD_MkFCstPreX()」スクリプトを実行すると、「Cst_AptPD_hhhh.txt」ファイルから
直課原価ファイル(「CstPrjPre_hhhh.txt」)(上)と部門原価ファイル(「
CstDivPre_hhhh.txt」)(下)が作成されます

.....以下省略

.....以下省略

(5)直課原価ファイルの金額をプロジェクトへ直課する
C_RefPrjPre_SetPrj("M1")」スクリプトを実行すると、直課原価ファイルの金額をプロジェクトに直課できます
直課原価をプロジェクトファイルのどの列にセットするかはパラメタで指定できます、ここでは当該プロジェクトの「M1」の位置、すなわち六番目の列になります

(6)部門原価ファイルの金額をプロジェクトへ配賦する
C_RefDivPre_SetPrj("M2")」スクリプトを実行すると、部門原価ファイルの金額をプロジェクトに配賦できます
配賦基準ファイルが部門の数だけ必要になります(この例では三つ必要)

■部門原価の各プロジェクトへの配賦は、その部門のプロジェクトの配賦基準の合計に対する当該プロジェクトの配賦基準の割合によります

例えば、プロジェクトα、β、γ、δがあり、それぞれの配賦基準が110、210、310、310 であったとします
部門原価が987であったとすれば、プロジェクトαには116が配賦されます(987÷(110+210+310+310)×110=115.5)
配賦計算で生じる端数の扱いは以下のとおりです
1.小数点以下は四捨五入する
2.四捨五入による差異(各プロジェクトの合計と部門原価の差異)は配賦基準が最も大きいプロジェクトが負担する
3.配賦基準が最も大きいプロジェクトが複数あるときはその中でプロジェクトCodeが最も小さいプロジェクトが負担する
------------------------------------------------------------------------------------------------------------
1.で計算すると、α=116(115.5),β=221(220.5),γ=326(325.5),δ=326(325.5)
配賦額合計=116+221+326+326=989
部門原価との差額=987-989=-2
2.と3.により配賦基準が最大のプロジェクトでプロジェクトCodeが最小のγが差額-2を負担する
よって、各プロジェクトの負担額は、116,221,324,326 と計算されます


■一つのプロジェクトを複数の部門に登録し、各部門原価を当該部門の配賦基準で負担させることができます
例えば、プロジェクトεで、調査とレポート作成までを部門Rで、印刷製本を部門Pで行うときは、各部門の配賦基準ファイルにεを登録します
プロジェクトファイルのεには部門Rと部門Pのそれぞれの配賦基準で計算された配賦額の合計がセットされます
なお「C_VerifyDivAlcAmt()」スクリプトで、合計額の部門別明細をリストファイル(ZList_hhhh.txt)に出力し検証することができます


設例

C_RefDivPre_SetPrj("M2")」スクリプトを実行すると、プロジェクトファイルは以下のようになります
プロジェクトCode6120のM2のタグに配賦原価2,663,424がセットされます

〔CstPrj_hhhh.txt〕
#PrjCode,名称,取引先,Sフラグ,M0,M1,M2
61210,外交青書基本調査,外務省経済局,1,0,0,2663424
61220,経済財政白書調査,内閣府,1,0,0,687265

「C_VerifyDivAlcAmt()」スクリプトを実行すると以下のリストファイルが作成されます
〔ZList_hhhh.txt〕
---------------------------------------------
C_VerifyDivAlcAmt の実行結果
Start 2021/05/24 08:42:51
---------------------------------------------
61210,600,1490924.4426,1490924
61220,276,685825.243596,685825
61230,800,1987899.2568,1987899
62320,200,496974.8142,496975
.....以下省略
---------------------------------------------
[600]DivTotalCost..18726011
---------------------------------------------
61210,600,1169907.9714,1169908
71420,1850,3607216.24515,3607216
.....以下省略
---------------------------------------------
[700]DivTotalCost..14822734
---------------------------------------------
61210,900,2592.4833,2592
61220,500,1440.2685,1440
.....以下省略
---------------------------------------------
[800]DivTotalCost..45910
---------------------------------------------


プロジェクトCode6120は三つの部門に登録されています

それぞれの配賦額を合計すると 1,490,924+1,169,908+2,592=2,663,424 となります

(7)プロジェクトの終了処理と繰越処理
(5)(6)により、(プロジェクトファイルの)各プロジェクトの「M1」タグに直課原価が、「M2」タグには原価部門の配賦原価が記録されました
ここで、完成したプロジェクトがあれば仕掛品から売上原価への振替処理が必要になります
完成したプロジェクトのSF(StatusFlag)を「8」にして−ユーザの手作業になります−、「C_OpePrj_8Fin
("M1","M2")」スクリプトを実行します
上記スクリプトでは、完成プロジェクトの原価とする範囲のタグ名をパラメタに渡します、この例では「M1」〜「M2」の合計が売上原価となります
スクリプトの実行結果はリストファイルに出力されるので、仕掛品から売上原価への振替仕訳を起票します

この時点でプロジェクトファイルのSF(StatusFlag)
は「8」から「9」に変更されます

------------------------------------------------------------
終了プロジェクト一覧 20210603 10:23
------------------------------------------------------------
PrjCode,PrjName,Client,〔Cost〕
------------------------------------------------------------
61210,外交青書基本調査,外務省経済局,〔 5,663,424〕
61220,経済財政白書調査,内閣府,〔 687,265〕
63190,XXシステム再構築業務支援,八分銀行,〔 1,990,319〕
------------------------------------------------------------
処理件数... 3 件 合計〔売上原価振替額)...8,341,008 円
------------------------------------------------------------

次ぎに「C_OpePrj_9Del()」スクリプトを実行します
SF(StatusFlag)が「9」のプロジェクトがプロジェクトファイルから削除され、残りのプロジェクトのSF(StatusFlag)に「1」がセットされます
最後に「C_OpePrj_1CF("M1","M2")」スクリプトを実行します
このスクリプトは仕掛品の次月繰越処理を行います
範囲指定タグ(ここでは「M1」〜「M2」)を合計し結果を「M0」タグにセットするとともに、当該範囲指定タグをゼロにします











Last Update 2021/06/04