javasrc/sql
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#highlighter(MySQL,number){{
CREATE OR REPLACE PACKAGE BODY CPA_COS_ALLOC_PRNT_RE
/********************************************************...
<Synopsis>
原価帳票情報作成パッケージ
<Remarks>
指定した計算タイプ、年月などの原価計算結果から原価帳票...
下記原価帳票に対する情報を作成する。
原価計算表
入庫明細表
*********************************************************...
IS
PROCEDURE PRE_CREATE_PRNT_DAT
/********************************************************...
<Synopsis>
帳票出力前処理
<Remarks>
<Arguments>
<ReturnValue>
*********************************************************...
IS
--ローカル変数
-- 画面パラメータ情報取得リスト
lisCOS_GW_GENKA_HIS tCOS_GW_GENKA_HIS;
-- 画面パラメータ情報行情報
vCOS_GW_GENKA_HIS COS_GW_GENKA_HIS%ROWTYPE;
-- カーソル変数
CURSOR curSTD_CAMPAIN(
p$STD_CAMPAIGN_NO IN VARCHAR2
)
IS
SELECT DISTINCT CALC_NO, YM
FROM GT_ALEVEL0
WHERE 0 = 0
AND SEG2 = p$STD_CAMPAIGN_NO
ORDER BY YM;
vcurSTD_CAMPAIN curSTD_CAMPAIN%ROWTYPE;
BEGIN
-- 品郡展開情報クリア処理
DELETE FROM COS_GW_ATENKAI;
-- キャンペーンNOから原価計算NO変換処理
SELECT *
BULK COLLECT INTO lisCOS_GW_GENKA_HIS
FROM COS_GW_GENKA_HIS
WHERE STD_CAMPAIGN_NO IS NOT NULL;
IF lisCOS_GW_GENKA_HIS.COUNT > 0 THEN
OPEN curSTD_CAMPAIN(lisCOS_GW_GENKA_HIS(1).STD_CAMPAIGN...
LOOP
FETCH curSTD_CAMPAIN INTO vcurSTD_CAMPAIN;
IF curSTD_CAMPAIN%NOTFOUND THEN
IF curSTD_CAMPAIN%ROWCOUNT > 0 THEN
NULL;
END IF;
CLOSE curSTD_CAMPAIN;
EXIT;
END IF;
IF curSTD_CAMPAIN%ROWCOUNT = 1 THEN
UPDATE COS_GW_GENKA_HIS SET CALC_NO = vcurSTD_CAMPAI...
ELSE
INSERT INTO COS_GW_GENKA_HIS(CALC_NO, STD_TERM) VALU...
END IF;
END LOOP;
END IF;
EXCEPTION
WHEN OTHERS THEN
WPA_LOG.P_PRINTF('CBD0029E', SQLERRM) ;
DBMS_OUTPUT.PUT_LINE('エラー' ||sqlerrm);
ROLLBACK;
END PRE_CREATE_PRNT_DAT;
PROCEDURE CREATE_CTG_ITM_LIST(
p$lisCOS_GW_GENKA_HIS IN OUT tCOS_GW_GENKA_HIS
)
/********************************************************...
<Synopsis>
品郡単位の展開情報リストを作成する
<Remarks>
<Arguments>
<ReturnValue>
*********************************************************...
IS
p$OPEN_INDEX INTEGER := 1; -- リスト用イ...
p$NO_OPEN_INDEX INTEGER := 1; -- リスト用イ...
p$NO_OPEN_GRP_FLG BOOLEAN := FALSE; -- レベル0展...
p$BEF_REC_GRP GT_ATENKAI.REC_GRP%TYPE; -- 前レコード...
p$LVL GT_ATENKAI.LVL%TYPE; -- 展...
p$NON_OPEN_FLG BOOLEAN := FALSE; -- 展開不要FL...
p$CHK_TYP NUMBER := 1; -- チェック区分
-- 展開品目要用リスト
TYPE tOPEN_CALC_LIST IS TABLE OF BINARY_INTEGER INDEX B...
lisOPEN_CALC_LIST tOPEN_CALC_LIST; -- レベル0用...
-- 画面パラメータ情報取得リスト
TYPE tCOS_GW_GENKA_HIS IS TABLE OF COS_GW_GENKA_HIS%ROW...
vCOS_GW_GENKA_HIS COS_GW_GENKA_HIS%ROWTYPE;
-- 原価計算展開情報リスト
TYPE tGT_ATENKAI IS TABLE OF GT_ATENKAI%ROWTYPE;
lisGT_ATENKAI1 tGT_ATENKAI; -- ...
lisGT_ATENKAI0 tGT_ATENKAI; -- ...
lisGT_ATENKAI_OPEN tGT_ATENKAI := tGT_ATENKAI(); -- ...
-- 品目展開不要リスト
TYPE tNO_OPEN_REC_GRP IS TABLE OF BINARY_INTEGER INDEX ...
lisNO_OPEN_REC_GRP tNO_OPEN_REC_GRP; -- ...
-- EXCEPTION情報
MST_CHK_EXCEPTION EXCEPTION;
CURSOR curSTD_CTG_CD(
p$CALC_NO IN GT_AGENKA.CALC_NO%TYPE
)
IS
SELECT T1.YM AS TERM, T1.ITM_CD P_ITM_CD, T2.ITM_CD C_I...
FROM GT_ALEVEL0 T1
LEFT OUTER JOIN GT_ATENKAI T2 ON (T1.CALC_NO = T2.CAL...
WHERE T1.REC_TYP = '0'
AND T1.CALC_NO = p$CALC_NO;
BEGIN
-- 実行ワークからデータ取得
SELECT *
BULK COLLECT INTO p$lisCOS_GW_GENKA_HIS
FROM COS_GW_GENKA_HIS
ORDER BY STD_CAMPAIGN_NO NULLS LAST;
-- 展開情報ワーク作成
FOR i IN 1..p$lisCOS_GW_GENKA_HIS.COUNT LOOP
FOR vcurSTD_CTG_CD IN curSTD_CTG_CD(p$lisCOS_GW_GENKA_...
-- 品郡の存在チェック
p$CHK_TYP := CHK_HINGUN_CD(vcurSTD_CTG_CD.TERM, vcurS...
IF p$CHK_TYP = 2 THEN
WPA_LOG.P_PRINTF('COS7508W', TO_CHAR(vcurSTD_CTG_CD....
RAISE MST_CHK_EXCEPTION;
END IF;
IF p$CHK_TYP = 0 THEN
WPA_LOG.P_PRINTF('COS7509W', TO_CHAR(vcurSTD_CTG_CD....
RAISE MST_CHK_EXCEPTION;
END IF;
p$CHK_TYP := CHK_HINGUN_CD(vcurSTD_CTG_CD.TERM, vcurS...
IF p$CHK_TYP = 2 THEN
WPA_LOG.P_PRINTF('COS7508W', TO_CHAR(vcurSTD_CTG_CD....
RAISE MST_CHK_EXCEPTION;
END IF;
IF p$CHK_TYP = 0 THEN
WPA_LOG.P_PRINTF('COS7509W', TO_CHAR(vcurSTD_CTG_CD....
RAISE MST_CHK_EXCEPTION;
END IF;
END LOOP;
-- 展開情報からデータを取得
SELECT *
BULK COLLECT INTO lisGT_ATENKAI1
FROM GT_ATENKAI T1
WHERE 0 = 0
AND T1.CALC_NO = p$lisCOS_GW_GENKA_HIS(i).CALC_NO
AND T1.LVL > 0
ORDER BY T1.REC_GRP DESC, T1.REC_NO ASC;
-- 展開処理ループ
FOR n IN 1..lisGT_ATENKAI1.COUNT LOOP
IF n > 1 THEN
-- 前レコードの親品郡と同じでない場合、移行の展開を...
IF p$BEF_REC_GRP <> lisGT_ATENKAI1(n).REC_GRP THEN
p$NON_OPEN_FLG := FALSE;
p$BEF_REC_GRP := lisGT_ATENKAI1(n).REC_GRP;
END IF;
ELSE
p$BEF_REC_GRP := lisGT_ATENKAI1(n).REC_GRP;
END IF;
-- 展開対象かどうか
IF p$NON_OPEN_FLG THEN
-- 展開不要になったレベル以下の場合は、展開対象
IF p$LVL >= lisGT_ATENKAI1(n).LVL THEN
p$NON_OPEN_FLG := FALSE;
-- 展開可否チェック
IF IS_OPEN_TREE(lisGT_ATENKAI1(n).CALC_NO,lisGT_ATE...
lisOPEN_CALC_LIST(lisGT_ATENKAI1(n).ITM_CD) := lis...
ELSE
p$LVL := lisGT_ATENKAI1(n).LVL;
p$NON_OPEN_FLG := TRUE;
END IF;
lisGT_ATENKAI_OPEN.EXTEND;
lisGT_ATENKAI_OPEN(p$OPEN_INDEX) := lisGT_ATENKAI1(...
p$OPEN_INDEX := p$OPEN_INDEX + 1;
END IF;
ELSE
-- 展開可否チェック
IF IS_OPEN_TREE(lisGT_ATENKAI1(n).CALC_NO,lisGT_ATEN...
lisOPEN_CALC_LIST(lisGT_ATENKAI1(n).ITM_CD) := lisG...
ELSE
p$LVL := lisGT_ATENKAI1(n).LVL;
p$NON_OPEN_FLG := TRUE;
END IF;
lisGT_ATENKAI_OPEN.EXTEND;
lisGT_ATENKAI_OPEN(p$OPEN_INDEX) := lisGT_ATENKAI1(n);
p$OPEN_INDEX := p$OPEN_INDEX + 1;
END IF;
END LOOP;
-- レベル0展開情報からデータを取得
SELECT *
BULK COLLECT INTO lisGT_ATENKAI0
FROM GT_ATENKAI T1
WHERE 0 = 0
AND T1.CALC_NO = p$lisCOS_GW_GENKA_HIS(i).CALC_NO
AND T1.LVL = 0
ORDER BY T1.REC_GRP ASC, T1.REC_NO ASC;
-- 0展開処理ループ
FOR n IN 1..lisGT_ATENKAI0.COUNT LOOP
BEGIN
IF lisOPEN_CALC_LIST(lisGT_ATENKAI0(n).ITM_CD) > 0 T...
lisNO_OPEN_REC_GRP(p$NO_OPEN_INDEX) := lisGT_ATENKA...
p$NO_OPEN_INDEX :=p$NO_OPEN_INDEX+1;
CONTINUE;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('展開対象:' || lisGT_ATENKAI0(...
END;
lisGT_ATENKAI_OPEN.EXTEND;
lisGT_ATENKAI_OPEN(p$OPEN_INDEX) := lisGT_ATENKAI0(n);
p$OPEN_INDEX := p$OPEN_INDEX + 1;
END LOOP;
IF lisGT_ATENKAI_OPEN.COUNT > 0 THEN
-- 登録
FOR IDX IN lisGT_ATENKAI_OPEN.FIRST..lisGT_ATEN...
p$NO_OPEN_GRP_FLG := FALSE;
FOR x IN 1..lisNO_OPEN_REC_GRP.COUNT LOOP
IF lisGT_ATENKAI_OPEN(IDX).REC_GRP = lisNO_OPEN_REC...
p$NO_OPEN_GRP_FLG := TRUE;
EXIT;
END IF;
END LOOP;
IF p$NO_OPEN_GRP_FLG THEN
CONTINUE;
END IF;
INSERT INTO COS_GW_ATENKAI
VALUES(lisGT_ATENKAI_OPEN(IDX).CALC_NO
, lisGT_ATENKAI_OPEN(IDX).REC_NO
, lisGT_ATENKAI_OPEN(IDX).REC_GRP
, lisGT_ATENKAI_OPEN(IDX).LVL);
END LOOP;
lisGT_ATENKAI_OPEN.DELETE;
p$OPEN_INDEX := 1;
lisNO_OPEN_REC_GRP.DELETE;
p$NO_OPEN_INDEX := 1;
END IF;
END LOOP;
-- 展開処理終了
EXCEPTION
WHEN MST_CHK_EXCEPTION THEN
ROLLBACK;
WHEN OTHERS THEN
WPA_LOG.P_PRINTF('CBD0029E', SQLERRM) ;
DBMS_OUTPUT.PUT_LINE('エラー' ||sqlerrm);
ROLLBACK;
END CREATE_CTG_ITM_LIST;
PROCEDURE CREATE_PRNT_DAT( -- 帳票出力処理
p$RC OUT VARCHAR2,
p$PRNT_NO OUT VARCHAR2
)
/********************************************************...
<Synopsis>
帳票出力処理
<Remarks>
<Arguments>
<ReturnValue>
*********************************************************...
IS
--ローカル変数
-- 品郡情報取得用リスト
TYPE tr_CTG_CD IS RECORD (
CTG_CD GM_HINGUNKS.P_CTG_CD%TYPE,
MNG_DPT_CD COS_GT_GENKA.MNG_DPT_CD%TYPE
);
TYPE tCTG_CD IS TABLE OF tr_CTG_CD INDEX BY BINARY_INTE...
lisCTG_CD tCTG_CD;
lisCOS_GW_GENKA_HIS tCOS_GW_GENKA_HIS;
-- ロジック用
p$HIS_SEQ INTEGER := 1;
p$ST_YM DATE; -- ...
p$END_YM DATE; -- ...
p$PRE_SEQ COS_GT_GENKA.SEQ%TYPE := 0;
-- カーソル情報
CURSOR curSTD_CTG_CD(
p$CALC_NO IN GT_AGENKA.CALC_NO%TYPE
)
IS
SELECT T1.YM AS TERM, T1.ITM_CD P_ITM_CD, T2.ITM_CD C_IT...
FROM GT_ALEVEL0 T1
LEFT OUTER JOIN GT_ATENKAI T2 ON (T1.CALC_NO = T2.CALC_...
WHERE T1.REC_TYP = '0'
AND T1.CALC_NO = p$CALC_NO;
vcurSTD_CTG_CD curSTD_CTG_CD%ROWTYPE;
BEGIN
WPA_LOG.P_SET_PNAME(c$project_nm);
WPA_LOG.P_PRINTF('WCS0002I', c$project_cd) ;
-- WPA_LOG.P_PRINTF('WCS0002I', '前処理開始') ;
-- 前処理
PRE_CREATE_PRNT_DAT();
-- WPA_LOG.P_PRINTF('WCS0002I', '前処理終了') ;
-- 開始年月
SELECT MIN(STD_TERM)
INTO p$ST_YM
FROM COS_GW_GENKA_HIS
WHERE 0 = 0;
-- 終了年月
SELECT MAX(STD_TERM)
INTO p$END_YM
FROM COS_GW_GENKA_HIS;
-- WPA_LOG.P_PRINTF('WCS0002I', '展開処理開始') ;
-- 展開ロジック
CREATE_CTG_ITM_LIST(lisCOS_GW_GENKA_HIS);
-- WPA_LOG.P_PRINTF('WCS0002I', '展開処理終了') ;
-- 発番処理
CP_GET_COUNTER_NUMBER('COS', g$PRINT_NO);
-- 対象品郡を取得
SELECT M1.P_CTG_CD, T1.MNG_DPT_CD
BULK COLLECT INTO lisCTG_CD
FROM GT_ALEVEL0 T1
LEFT OUTER JOIN GT_ATENKAI T2 ON (T1.CALC_NO = T2.CALC...
LEFT OUTER JOIN GM_HINGUNKS M1 ON (T2.ITM_CD = M1.C_CTG...
INNER JOIN COS_GW_GENKA_HIS W1 ON (W1.CALC_NO = T1.CALC...
WHERE 0 = 0
AND (M1.P_CTG_CD LIKE 'RS%' OR M1.P_CTG_CD LIKE 'RC%')
GROUP BY M1.P_CTG_CD, T1.MNG_DPT_CD
ORDER BY M1.P_CTG_CD DESC, T1.MNG_DPT_CD;
-- 品郡単位にループ
FOR IDX IN 1..lisCTG_CD.COUNT LOOP
-- 原価計算表作成処理実行前のシーケンスを保持
p$PRE_SEQ := g$SEQ;
g$SEQ := g$SEQ + 1;
g$MNG_DPT_CD := lisCTG_CD(IDX).MNG_DPT_CD;
-- WPA_LOG.P_PRINTF('WCS0002I', '原価計算表作成開始') ;
-- 原価計算表を作成
p$RC := EXEC_GENKA_PRNT(lisCTG_CD(IDX).CTG_CD);
-- WPA_LOG.P_PRINTF('WCS0002I', '原価計算表作成終了') ;
-- 原価計算表が1件でも存在した場合、ヘッダを追加する。
IF p$RC = '1' THEN
INSERT INTO COS_GT_GENKA(
PRNT_NO
,SEQ
,MNG_DPT_CD
,CTG_GRP_CD
,CTG_GRP_NM
,PAR_CTG_CD
,PAR_CTG_NM
,CTG1
,CTG2
,CTG3
)
SELECT
PRNT_NO
,p$PRE_SEQ
,MNG_DPT_CD
,CTG_GRP_CD
,CTG_GRP_NM
,PAR_CTG_CD
,PAR_CTG_NM
,'9'
,'0'
,'0'
FROM COS_GT_GENKA
WHERE PRNT_NO = g$PRINT_NO
AND SEQ = (g$SEQ-1)
AND ROWNUM = '1';
END IF;
-- 生産@コスト以降を一括更新
UPDATE COS_GT_GENKA
SET
VAR_COST = DECODE(g$vCOS_GT_ATENKAI_UPD.PROD_QTY,0,0,...
,FIX_COST = DECODE(g$vCOS_GT_ATENKAI_UPD.PROD_QTY,0,0...
,TOTL_COST = NVL(VAR_AMT,0) + NVL(FIX_AMT,0)
,TOTL_AMT = DECODE((VAR_NUM + FIX_NUM),0,0, (VAR_AMT+...
,PROD_COST = DECODE(g$vCOS_GT_ATENKAI_UPD.PROD_QTY,0,...
,ORG_UPRI = DECODE(g$vCOS_GT_ATENKAI_UPD.PROD_QTY,0,...
,IN_QTY = g$vCOS_GT_ATENKAI_UPD.IN_QTY
,PROD_QTY = g$vCOS_GT_ATENKAI_UPD.PROD_QTY
,SLS_AMT = g$vCOS_GT_ATENKAI_UPD.SLS_AMT
,SLS_COST = g$vCOS_GT_ATENKAI_UPD.SLS_COST
,SEL_EXP = g$vCOS_GT_ATENKAI_UPD.SEL_EXP
,ADM_EXP = g$vCOS_GT_ATENKAI_UPD.ADM_EXP
,SLS_VAR_AMT = g$vCOS_GT_ATENKAI_UPD.SLS_VAR_AMT
,VAR_TTL = g$vCOS_GT_ATENKAI_UPD.VAR_TTL
,FIX_TTL = g$vCOS_GT_ATENKAI_UPD.FIX_TTL
,RATIO = (g$vCOS_GT_ATENKAI_UPD.FIX_TTL + g$vCO...
WHERE 0=0
AND PRNT_NO = g$PRINT_NO
AND PAR_CTG_CD = lisCTG_CD(IDX).CTG_CD
AND CTG1 <> 8
AND MNG_DPT_CD = lisCTG_CD(IDX).MNG_DPT_CD;
-- 金額関連の不要な項目を一括で0に更新する。
UPDATE COS_GT_GENKA
SET VAR_COST = 0
,FIX_COST = 0
,TOTL_COST = 0
,PROD_COST = 0
WHERE 0=0
AND PRNT_NO = g$PRINT_NO
AND PAR_CTG_CD = lisCTG_CD(IDX).CTG_CD
AND MNG_DPT_CD = lisCTG_CD(IDX).MNG_DPT_CD
AND PRNT_ITM_NM IN ('売上金額','売上原価','*売上総利益...
-- 更新リスト
g$vCOS_GT_ATENKAI_UPD := NULL;
END LOOP;
-- WPA_LOG.P_PRINTF('WCS0002I', '原価計算表(その他)作...
-- 原価計算表(その他)作成
GENKA_ANOTHER_PRNT(g$PRINT_NO, g$SEQ);
-- WPA_LOG.P_PRINTF('WCS0002I', '原価計算表(その他)作...
-- WPA_LOG.P_PRINTF('WCS0002I', '入庫予定作成開始') ;
-- 入庫情報作成
CREATE_MEISAI_DAT(p$ST_YM, p$END_YM, g$PRINT_NO, g$SEQ);
-- WPA_LOG.P_PRINTF('WCS0002I', '入庫予定作成終了') ;
-- WPA_LOG.P_PRINTF('WCS0002I', '履歴作成開始') ;
-- 履歴テーブル作成
FOR i IN 1..lisCOS_GW_GENKA_HIS.COUNT LOOP
IF lisCOS_GW_GENKA_HIS(i).STD_CAMPAIGN_NO IS NOT NULL ...
INSERT INTO COS_GT_GENKA_HIS(PRNT_NO,PRNT_SEQ, REC_TY...
VALUES(g$PRINT_NO, p$HIS_SEQ ,'0', NULL, '*', lisCOS_...
EXIT;
ELSE
INSERT INTO COS_GT_GENKA_HIS(PRNT_NO,PRNT_SEQ, REC_T...
VALUES(g$PRINT_NO,p$HIS_SEQ, '0', lisCOS_GW_GENKA_HIS...
END IF;
p$HIS_SEQ := p$HIS_SEQ + 1;
END LOOP;
-- WPA_LOG.P_PRINTF('WCS0002I', '履歴作成終了') ;
p$RC := '0';
p$PRNT_NO := NVL(g$PRINT_NO, 0);
EXCEPTION
WHEN OTHERS THEN
p$RC := '9';
WPA_LOG.P_PRINTF('CBD0029E', SQLERRM) ;
DBMS_OUTPUT.PUT_LINE('エラー' ||sqlerrm);
ROLLBACK;
END CREATE_PRNT_DAT;
FUNCTION IS_OPEN_TREE (
p$CALC_NO IN GT_ATENKAI.CALC_NO%TYPE,
p$REC_NO IN GT_ATENKAI.REC_NO%TYPE,
p$REC_GRP IN GT_ATENKAI.REC_GRP%TYPE,
p$LVL IN GT_ATENKAI.LVL%TYPE
) RETURN BOOLEAN -- 展開するかどうか
/********************************************************...
<Synopsis>
展開するかどうか
<Remarks>
<Arguments>
<Item> VARCHAR2
<ReturnValue>
BOOLEAN
*********************************************************...
IS
p$SRC_CTG_CD GM_HINGUNKS.P_CTG_CD%TYPE;
p$DEST_CTG_CD GM_HINGUNKS.P_CTG_CD%TYPE;
BEGIN
SELECT M1.P_CTG_CD
INTO p$SRC_CTG_CD
FROM GT_ATENKAI T1
LEFT OUTER JOIN GM_HINGUNKS M1 ON (T1.ITM_CD = M1.C_CTG...
WHERE 0 = 0
AND T1.CALC_NO = p$CALC_NO
AND T1.REC_NO = p$REC_NO;
SELECT M1.P_CTG_CD
INTO p$DEST_CTG_CD
FROM GT_ATENKAI T1
LEFT OUTER JOIN GM_HINGUNKS M1 ON (T1.ITM_CD = M1.C_CTG...
WHERE 0 = 0
AND T1.CALC_NO = p$CALC_NO
AND T1.REC_GRP = p$REC_GRP
AND T1.LVL = (p$LVL - 1)
AND T1.REC_TYP = '0'
AND T1.REC_NO = ( SELECT MAX(T2.REC_NO)
FROM GT_ATENKAI T2
WHERE 0 = 0
AND T2.CALC_NO = T1.CALC_NO
AND T2.REC_GRP = T1.REC_GRP
AND T2.LVL = (p$LVL -1 )
AND T2.REC_TYP = '0'
AND T2.REC_NO < p$REC_NO
)
;
IF p$SRC_CTG_CD = p$DEST_CTG_CD THEN
RETURN TRUE;
END IF;
RETURN FALSE;
END IS_OPEN_TREE;
PROCEDURE SET_GENKA_OUT_LIST(
p$PRNT_SORT IN OUT NUMBER
,p$COS_GT_GENKA IN OUT COS_GT_GENKA%ROWTYPE
,p$lisCOS_GT_GENKA IN OUT tCOS_GT_GENKA
)
IS
BEGIN
p$COS_GT_GENKA.SEQ := g$SEQ;
p$COS_GT_GENKA.PRNT_NO := g$PRINT_NO;
p$lisCOS_GT_GENKA.EXTEND;
p$COS_GT_GENKA.PRINT_SORT := p$...
p$lisCOS_GT_GENKA(p$lisCOS_GT_GENKA.COUNT) := p$COS_GT_...
p$COS_GT_GENKA := NULL;
p$PRNT_SORT := p$PRNT_SORT + 1;
g$SEQ := g$SEQ + 1;
END SET_GENKA_OUT_LIST;
PROCEDURE CALC_SIKAKARI(
p$TYP IN VARCHAR2
,p$REC_GRP IN GT_ALEVEL0.REC_TYP%TYPE
,p$P_CTG_CD IN GM_HINGUN.CTG_CD%TYPE
,p$lisCOS_GT_GENKA IN OUT tCOS_GT_GENKA
,p$curALEVEL0_OPT_FLG IN OUT BOOLEAN
)
/********************************************************...
<Synopsis>
系内仕掛品の集計を行う。
<Remarks>
<Arguments>
p$FIX_TYP:固定費FLG
p$REC_GRP:レコードグループ
p$P_CTG_CD:親品郡
<Item> VARCHAR2
<ReturnValue>
*********************************************************...
IS
c$H_MONTH_BEFORE CONSTANT COS_GT_GENKA.PRNT_IT...
c$H_MONTH_AFTER CONSTANT COS_GT_GENKA.PRNT_IT...
c$K_MONTH_BEFORE CONSTANT COS_GT_GENKA.PRNT_IT...
c$K_MONTH_AFTER CONSTANT COS_GT_GENKA.PRNT_IT...
l$PRNT_ITM_NM COS_GT_GENKA.PRNT_IT...
l$PRNT_SORT NUMBER;
BEGIN
IF p$TYP = '1' THEN
IF p$REC_GRP = 'P' THEN
l$PRNT_ITM_NM := c$H_MONTH_BEFORE;
END IF;
IF p$REC_GRP = 'Q' THEN
l$PRNT_ITM_NM := c$H_MONTH_AFTER;
END IF;
END IF;
IF p$TYP = '0' THEN
IF p$REC_GRP = 'P' THEN
l$PRNT_ITM_NM := c$K_MONTH_BEFORE;
END IF;
IF p$REC_GRP = 'Q' THEN
l$PRNT_ITM_NM := c$K_MONTH_AFTER;
END IF;
END IF;
-- 系内仕掛品明細
OPEN curALEVEL0_OPT(p$TYP,p$REC_GRP,p$P_CTG_CD);
LOOP
FETCH curALEVEL0_OPT INTO vcurALEVEL0_OPT;
IF curALEVEL0_OPT%NOTFOUND THEN
IF curALEVEL0_OPT%ROWCOUNT > 0 THEN
g$vCOS_GT_GENKA_ALEVEL0_OPT.PRNT_ITM_NM := l$PR...
l$PRNT_SORT := p$lisCOS_GT_GENKA.COUNT;
SET_GENKA_OUT_LIST(l$PRNT_SORT,g$vC...
p$curALEVEL0_OPT_FLG := TRUE;
vcurALEVEL0_OPT := NULL;
END IF;
CLOSE curALEVEL0_OPT;
EXIT;
END IF;
g$vCOS_GT_GENKA_ALEVEL0_OPT := EXPNS_SUM(g$vCOS_GT_...
g$vCOS_GT_GENKA_ALVL0_OPT_SUM := EXPNS_SUM(g$vCOS_GT_...
g$vCOS_GT_GENKA_PP_SUM := EXPNS_SUM(g$vCOS_GT_...
g$vCOS_GT_GENKA_PROD_SUM := EXPNS_SUM(g$vCOS_GT_...
END LOOP;
END CALC_SIKAKARI;
FUNCTION EXEC_GENKA_PRNT(
p$P_CTG_CD IN GM_HINGUN.CTG_CD%TYPE
)
RETURN VARCHAR2 -- 原価帳票表情報作成
/********************************************************...
<Synopsis>
原価帳票情報作成
<Remarks>
<Arguments>
<Item> VARCHAR2
<ReturnValue>
文字値:9(エラー)、0(対象件数0)、1(正常...
*********************************************************...
IS
lc$MAIN_SOZAI CONSTANT COS_GT_GENKA.PRNT_ITM_...
lc$PACK_SOZAI CONSTANT COS_GT_GENKA.PRNT_ITM_...
lc$KEINAI_HIREI CONSTANT COS_GT_GENKA.PRNT_ITM_NM...
lc$KEINAI_KOTEI CONSTANT COS_GT_GENKA.PRNT_ITM...
lc$HIREI CONSTANT COS_GT_GENKA.PRNT_ITM_N...
lc$KOTEI CONSTANT COS_GT_GENKA.PRNT_ITM_N...
lc$PROD_AMT CONSTANT COS_GT_GENKA.PRNT_ITM_NM...
lc$PROD_AMT_DRT CONSTANT COS_GT_GENKA.PRNT_ITM...
lc$PROD_AMT_INDRT CONSTANT COS_GT_GENKA.PRNT_IT...
lisCOS_GT_GENKA tCOS_GT_GENKA := tCOS_GT_GENKA(); ...
lisCOS_GT_GENKA_ITM tCOS_GT_GENKA := tCOS_GT_GENKA(); ...
vcurCTG_GENKA_SUM curCTG_GENKA%ROWTYPE;
vcurCTG_GENKA_UNIT_NM curCTG_GENKA%ROWTYPE;
l$PRNT_SORT NUMBER;
p$MST_RMRKS GM_HIMOKU.MST_RMRKS%TYPE := NULL;
p$EXPNS_CD GM_HIMOKU.EXPNS_CD%TYPE := NULL;
p$C_CTG_CD GM_HINGUNKS.P_CTG_CD%TYPE := NU...
p$C_CTG_NM GM_HINGUN.CTG_NM%TYPE := NULL;
p$LVL GT_ATENKAI.LVL%TYPE := NULL;
p$ITEM_CTG_NM CM_ITEM_CTG.ITEM_CTG_NM%TYPE :=...
p$RC_CD VARCHAR(1) := NULL;
p$OTHR_RC_CD VARCHAR(1) := NULL;
p$PP_FLG CHAR(1);
p$SYSTEM_PRNT_SORT SC_SYSTEM.NMC%TYPE := 0;
p$GENKA_INDEX NUMBER := 1;
p$STR_POS NUMBER := 0;
p$curALEVEL0_OPT_FLG BOOLEAN := FALSE;
p$cur_OPEN_CNT_FLG BOOLEAN := FALSE;
p$PACK_EXPNS_FIX_FLG BOOLEAN := TRUE;
p$HIMOKU_NUM NUMBER := 0;
p$HEADER_FLG BOOLEAN := TRUE;
p$NOT_HIMOKU BOOLEAN := TRUE;
p$REC_NO GT_ATENKAI.REC_NO%TYPE := NULL;
p$PRE_SEQ COS_GT_GENKA.SEQ%TYPE := 0;
BEGIN
-- 出力対象の固定費単位まで取得
SELECT NVL(NMC,0)
INTO p$SYSTEM_PRNT_SORT
FROM SC_SYSTEM
WHERE TYP = 'COS'
AND CD = 'PONT_ORD';
-- 対象費目
SELECT SORT_NUM
INTO p$HIMOKU_NUM
FROM (
SELECT SORT_NUM,ROWNUM NUM
FROM (
SELECT DISTINCT MAX(PRINT_SORT) OVER(PARTITION BY MST...
FROM GM_HIMOKU
WHERE 0 = 0
ORDER BY SORT_NUM ASC
)
WHERE 0 = 0
)
WHERE NUM = '2';
-- 品郡単位にサマリー
OPEN curCTG_GENKA_ITM(p$P_CTG_CD);
LOOP
FETCH curCTG_GENKA_ITM INTO vcurCTG_GENKA_ITM;
IF curCTG_GENKA_ITM%NOTFOUND THEN
IF curCTG_GENKA_ITM%ROWCOUNT > 0 THEN
IF g$vCOS_GT_GENKA_ITM.PRNT_ITM_NM = '<主要材料>' ...
IF vcurCTG_GENKA_UNIT_NM.UNIT_WT > 0 THEN
g$vCOS_GT_GENKA_ITM.UNIT_NM := p$UNIT_NM;
ELSE
g$vCOS_GT_GENKA_ITM.UNIT_NM := vcurCTG_GENKA_UNIT_...
END IF;
vcurCTG_GENKA_UNIT_NM := NULL;
g$vCOS_GT_GENKA_ITM.SEQ := g$SEQ;
g$vCOS_GT_GENKA_ITM.PRNT_ITM_NM := g$vCOS_GT_GENKA_...
lisCOS_GT_GENKA.EXTEND;
g$vCOS_GT_GENKA_ITM.PRINT_SORT := lisCOS_GT_GENKA.C...
lisCOS_GT_GENKA(lisCOS_GT_GENKA.COUNT) := g$vCOS_GT...
g$SEQ := g$SEQ + 1;
g$vCOS_GT_GENKA_ITM := NULL;
p$C_CTG_CD := vcurCTG_GENKA_ITM.CHD_CTG_CD;
p$ITEM_CTG_NM := vcurCTG_GENKA_ITM.PRNT_ITM_NM;
END IF;
IF g$vCOS_GT_GENKA_ITM.PRNT_ITM_NM = '<包装材料>' ...
IF vcurCTG_GENKA_UNIT_NM.UNIT_WT > 0 THEN
g$vCOS_GT_GENKA_ITM.UNIT_NM := p$UNIT_NM;
ELSE
g$vCOS_GT_GENKA_ITM.UNIT_NM := vcurCTG_GENKA_UNIT_...
END IF;
vcurCTG_GENKA_UNIT_NM := NULL;
lisCOS_GT_GENKA_ITM.EXTEND;
lisCOS_GT_GENKA_ITM(lisCOS_GT_GENKA_ITM.COUNT) := g...
g$vCOS_GT_GENKA_ITM := NULL;
END IF;
IF lisCOS_GT_GENKA_ITM.COUNT > 0 THEN
lisCOS_GT_GENKA_ITM.EXTEND;
g$vCOS_GT_GENKA_ITM_SUM.PRNT_ITM_NM := '<包装材料...
g$vCOS_GT_GENKA_ITM_SUM.UNIT_NM := NULL;
lisCOS_GT_GENKA_ITM(lisCOS_GT_GENKA_ITM.COUNT) := g...
END IF;
END IF;
CLOSE curCTG_GENKA_ITM;
EXIT;
END IF;
IF g$vCOS_GT_GENKA_ITM.PRNT_ITM_NM <> '<包装材料>' A...
CONTINUE;
END IF;
IF p$C_CTG_CD IS NULL THEN
p$C_CTG_CD := vcurCTG_GENKA_ITM.CHD_CTG_CD;
p$ITEM_CTG_NM := vcurCTG_GENKA_ITM.PRNT_ITM_NM;
p$LVL := vcurCTG_GENKA_ITM.LVL;
p$C_CTG_NM := vcurCTG_GENKA_ITM.CHD_CTG_NM;
END IF;
IF p$LVL < vcurCTG_GENKA_ITM.LVL THEN
vcurCTG_GENKA_ITM.CHD_CTG_CD := p$C_CTG_CD;
vcurCTG_GENKA_ITM.CHD_CTG_NM := p$C_CTG_NM;
ELSE
p$LVL := vcurCTG_GENKA_ITM.LVL;
END IF;
IF vcurCTG_GENKA_ITM.REC_NO = p$REC_NO THEN
vcurCTG_GENKA_ITM.VAR_NUM := 0;
vcurCTG_GENKA_ITM.FIX_NUM := 0;
END IF;
IF vcurCTG_GENKA_UNIT_NM.UNIT_NM IS NULL THEN
vcurCTG_GENKA_UNIT_NM.UNIT_NM := vcurCTG_GENKA_ITM.UN...
vcurCTG_GENKA_UNIT_NM.UNIT_CD := vcurCTG_GENKA_ITM.UN...
vcurCTG_GENKA_UNIT_NM.UNIT_WT := vcurCTG_GENKA_ITM.UN...
END IF;
IF vcurCTG_GENKA_ITM.CHD_CTG_CD = p$C_CTG_CD AND vcurC...
g$vCOS_GT_GENKA_ITM := EXPNS_SUM(g$vCOS_GT_GENKA_ITM...
IF g$vCOS_GT_GENKA_ITM.PRNT_ITM_NM = '<包装材料>' T...
g$vCOS_GT_GENKA_ITM_SUM := EXPNS_SUM(g$vCOS_GT_GEN...
END IF;
IF g$vCOS_GT_GENKA_ITM.PRNT_ITM_NM = '<主要材料>' T...
g$vCOS_GT_GENKA_EXPNS_GRP := EXPNS_SUM(g$vCOS_GT_GEN...
END IF;
ELSE
IF g$vCOS_GT_GENKA_ITM.PRNT_ITM_NM = '<主要材料>' T...
g$vCOS_GT_GENKA_ITM.SEQ := g$SEQ;
g$vCOS_GT_GENKA_ITM.PRNT_ITM_NM := g$vCOS_GT_GENKA_I...
g$vCOS_GT_GENKA_ITM.EXPNS_CD := NULL;
IF vcurCTG_GENKA_UNIT_NM.UNIT_WT > 0 THEN
g$vCOS_GT_GENKA_ITM.UNIT_NM := p$UNIT_NM;
ELSE
g$vCOS_GT_GENKA_ITM.UNIT_NM := vcurCTG_GENKA_UNIT_N...
END IF;
vcurCTG_GENKA_UNIT_NM := NULL;
lisCOS_GT_GENKA.EXTEND;
g$vCOS_GT_GENKA_ITM.PRINT_SORT := lisCOS_GT_GENKA.CO...
lisCOS_GT_GENKA(lisCOS_GT_GENKA.COUNT) := g$vCOS_GT_...
g$SEQ := g$SEQ + 1;
g$vCOS_GT_GENKA_ITM := NULL;
p$C_CTG_CD := vcurCTG_GENKA_ITM.CHD_CTG_CD;
p$C_CTG_NM := vcurCTG_GENKA_ITM.CHD_CTG_NM;
p$ITEM_CTG_NM := vcurCTG_GENKA_ITM.PRNT_ITM_NM;
END IF;
IF g$vCOS_GT_GENKA_ITM.PRNT_ITM_NM = '<包装材料>' T...
IF vcurCTG_GENKA_UNIT_NM.UNIT_WT > 0 THEN
g$vCOS_GT_GENKA_ITM.UNIT_NM := p$UNIT_NM;
ELSE
g$vCOS_GT_GENKA_ITM.UNIT_NM := vcurCTG_GENKA_UNIT_N...
END IF;
vcurCTG_GENKA_UNIT_NM := NULL;
lisCOS_GT_GENKA_ITM.EXTEND;
lisCOS_GT_GENKA_ITM(lisCOS_GT_GENKA_ITM.COUNT) := g$...
p$C_CTG_CD := vcurCTG_GENKA_ITM.CHD_CTG_CD;
p$C_CTG_NM := vcurCTG_GENKA_ITM.CHD_CTG_NM;
p$ITEM_CTG_NM := vcurCTG_GENKA_ITM.PRNT_ITM_NM;
g$vCOS_GT_GENKA_ITM := NULL;
END IF;
IF vcurCTG_GENKA_ITM.PRNT_ITM_NM = '<包装材料>' THEN
g$vCOS_GT_GENKA_ITM_SUM := EXPNS_SUM(g$vCOS_GT_GEN...
END IF;
IF vcurCTG_GENKA_ITM.PRNT_ITM_NM = '<主要材料>' THEN
g$vCOS_GT_GENKA_EXPNS_GRP := EXPNS_SUM(g$vCOS_GT_GEN...
END IF;
g$vCOS_GT_GENKA_ITM := EXPNS_SUM(g$vCOS_GT_GENKA_IT...
END IF;
IF (vcurCTG_GENKA_UNIT_NM.UNIT_CD IS NULL) OR (vcurCTG...
vcurCTG_GENKA_UNIT_NM.UNIT_NM := vcurCTG_GENKA_ITM.UN...
vcurCTG_GENKA_UNIT_NM.UNIT_CD := vcurCTG_GENKA_ITM.UN...
END IF;
vcurCTG_GENKA_UNIT_NM.UNIT_WT := NVL(vcurCTG_GENKA_UNI...
g$vCOS_GT_GENKA_PP_SUM := EXPNS_SUM(g$vCOS_GT_GENKA_PP...
g$vCOS_GT_GENKA_PROD_SUM := EXPNS_SUM(g$vCOS_GT...
p$REC_NO := vcurCTG_GENKA_ITM.REC_NO;
END LOOP;
-- WPA_LOG.P_PRINTF('WCS0002I','費目出力開始:' || p$P_CT...
OPEN curCTG_GENKA(p$P_CTG_CD);
LOOP
FETCH curCTG_GENKA INTO vcurCTG_GENKA;
IF curCTG_GENKA%NOTFOUND THEN
IF curCTG_GENKA%ROWCOUNT > 0 THEN
-- 最終行処理
-- 費目追加
g$vCOS_GT_GENKA_EXPNS.PRNT_NO := g$PRINT_NO;
IF p$NOT_HIMOKU = FALSE THEN
l$PRNT_SORT := lisCOS_GT_GENKA.COUNT;
SET_GENKA_OUT_LIST(l$PRNT_SORT,...
p$EXPNS_CD := vcurCTG_GENKA.EXPNS_CD;
-- 費目G追加
g$vCOS_GT_GENKA_EXPNS_GRP.CHD_CTG_CD := NULL;
g$vCOS_GT_GENKA_EXPNS_GRP.CHD_CTG_NM := NULL;
g$vCOS_GT_GENKA_EXPNS_GRP.EXPNS_CD := NULL;
g$vCOS_GT_GENKA_EXPNS_GRP.PRNT_ITM_NM := p$MST...
g$vCOS_GT_GENKA_EXPNS_GRP.CTG1 := 1;
l$PRNT_SORT := lisCOS_GT_GENKA.COUNT;
SET_GENKA_OUT_LIST(l$PRNT_SORT,...
ELSE
-- 費目G追加
IF g$vCOS_GT_GENKA_EXPNS_GRP.PRNT_NO IS NOT NULL THEN
g$vCOS_GT_GENKA_EXPNS_GRP.CHD_CTG_CD := NULL;
g$vCOS_GT_GENKA_EXPNS_GRP.CHD_CTG_NM := NULL;
g$vCOS_GT_GENKA_EXPNS_GRP.UNIT_NM := NULL;
g$vCOS_GT_GENKA_EXPNS_GRP.EXPNS_CD := NULL;
g$vCOS_GT_GENKA_EXPNS_GRP.CTG1 := 1;
l$PRNT_SORT := lisCOS_GT_GENKA.COUNT;
SET_GENKA_OUT_LIST(l$PRNT...
p$MST_RMRKS := vcurCTG_GENKA.MST_RMRKS;
END IF;
FOR x IN 1..lisCOS_GT_GENKA_ITM.COUNT LOOP
lisCOS_GT_GENKA_ITM(x).EXPNS_CD := NULL;
IF lisCOS_GT_GENKA_ITM.COUNT <> x THEN
lisCOS_GT_GENKA_ITM(x).PRNT_ITM_NM := lisCO...
lisCOS_GT_GENKA_ITM(x).CTG1 := 0;
ELSE
lisCOS_GT_GENKA_ITM(x).CTG1 := 1;
lisCOS_GT_GENKA_ITM(x).CHD_CTG_CD := NULL;
lisCOS_GT_GENKA_ITM(x).CHD_CTG_NM := NULL;
END IF;
l$PRNT_SORT := lisCOS_GT_GENKA.COUNT;
SET_GENKA_OUT_LIST(l$PRNT...
p$MST_RMRKS := vcurCTG_GENKA.MST_RMRKS;
END LOOP;
-- 系内仕掛品明細(比例費前月)
CALC_SIKAKARI('1','P',p$P_CTG_...
-- 系内仕掛品明細(比例費当月)
CALC_SIKAKARI('1','Q',p$P_CTG_CD,lisCOS_GT_GENKA,p$...
IF p$curALEVEL0_OPT_FLG THEN
-- 系内仕掛品 その他比例費
g$vCOS_GT_GENKA_ALVL0_OPT_SUM.SEQ := g$SEQ;
g$vCOS_GT_GENKA_ALVL0_OPT_SUM.PRNT_NO := g$PRINT_NO;
g$vCOS_GT_GENKA_ALVL0_OPT_SUM.PRNT_ITM_NM := ...
g$vCOS_GT_GENKA_ALVL0_OPT_SUM.CTG1 := 1;
l$PRNT_SORT := lisCOS_GT_GENKA.COUNT;
SET_GENKA_OUT_LIST(l$PRNT...
p$curALEVEL0_OPT_FLG := FALSE;
END IF;
-- 比例サマリー
g$vCOS_GT_GENKA_PP_SUM.EXPNS_CD := NULL;
g$vCOS_GT_GENKA_PP_SUM.PRNT_ITM_NM := lc$HIREI;
g$vCOS_GT_GENKA_PP_SUM.CTG1 := 2;
l$PRNT_SORT := lisCOS_GT_GENKA.COUNT;
SET_GENKA_OUT_LIST(l$PRNT_SORT...
p$PP_FLG := vcurCTG_GENKA.PP_FLG;
p$SYSTEM_PRNT_SORT := 999999999;
END IF;
-- 系内仕掛品明細(固定費前月)
CALC_SIKAKARI('0','P',p$P_CTG_CD,l...
-- 系内仕掛品明細(固定費当月)
CALC_SIKAKARI('0','Q',p$P_CTG_CD,l...
-- <系内仕掛品 その他固定費>
IF p$curALEVEL0_OPT_FLG THEN
g$vCOS_GT_GENKA_ALVL0_OPT_SUM.PRNT_ITM_NM := ...
g$vCOS_GT_GENKA_ALVL0_OPT_SUM.CTG1 := '1';
l$PRNT_SORT := lisCOS_GT_GENKA.COUNT;
SET_GENKA_OUT_LIST(l$PRNT_SORT...
p$curALEVEL0_OPT_FLG := FALSE;
END IF;
IF g$vCOS_GT_GENKA_PP_SUM.PRNT_NO IS NOT NULL THEN
-- 固定費追加
g$vCOS_GT_GENKA_PP_SUM.EXPNS_CD := NULL;
g$vCOS_GT_GENKA_PP_SUM.PRNT_ITM_NM := lc$KOTEI;
g$vCOS_GT_GENKA_PP_SUM.CTG1 := 2;
l$PRNT_SORT := lisCOS_GT_GENKA.COUNT;
SET_GENKA_OUT_LIST(l$PRNT_SORT...
END IF;
-- 生産金額(部門計)
g$vCOS_GT_GENKA_PROD_SUM.EXPNS_CD := NULL;
g$vCOS_GT_GENKA_PROD_SUM.PRNT_ITM_NM := lc$PRO...
g$vCOS_GT_GENKA_PROD_SUM.CTG1 := 2;
-- セットするRowがクリアされるため...
g$vCOS_GT_GENKA_DIRECT_SUM := EXPNS_MINUS(g$vCOS_GT_...
l$PRNT_SORT := lisCOS_GT_GENKA.COUNT;
-- 最後の更新用設定
g$vCOS_GT_ATENKAI_UPD.VAR_TTL := g$vCOS_GT_GENKA_PRO...
g$vCOS_GT_ATENKAI_UPD.FIX_TTL := g$vCOS_GT_GENKA_PRO...
SET_GENKA_OUT_LIST(l$PRNT_SORT, g$...
-- 内 製造直接費
g$vCOS_GT_GENKA_DIRECT_SUM.EXPNS_CD := NULL;
g$vCOS_GT_GENKA_DIRECT_SUM.PRNT_ITM_NM := lc$P...
g$vCOS_GT_GENKA_DIRECT_SUM.CTG1 := 3;
l$PRNT_SORT := lisCOS_GT_GENKA.COUNT;
SET_GENKA_OUT_LIST(l$PRNT_SORT, g$...
-- 内 製造間接費
IF g$vCOS_GT_GENKA_INDIRECT_SUM.PRNT_NO IS NOT NULL ...
g$vCOS_GT_GENKA_INDIRECT_SUM.EXPNS_CD := N...
g$vCOS_GT_GENKA_INDIRECT_SUM.PRNT_ITM_NM := l...
g$vCOS_GT_GENKA_INDIRECT_SUM.CTG1 := 3;
l$PRNT_SORT := lisCOS_GT_GENKA.COUNT;
SET_GENKA_OUT_LIST(l$PRNT_SORT...
END IF;
END IF;
CLOSE curCTG_GENKA;
EXIT;
END IF;
-- 主要材料対象外処理
IF (vcurCTG_GENKA.MST_RMRKS = lc$MAIN_SOZAI) AND (IS_O...
CONTINUE;
END IF;
-- 包装材料対象外処理
IF vcurCTG_GENKA.MST_RMRKS = lc$PACK_SOZAI THEN
CONTINUE;
END IF;
p$NOT_HIMOKU := FALSE;
IF p$MST_RMRKS IS NULL THEN
p$MST_RMRKS := vcurCTG_GENKA.MST_RMRKS;
END IF;
IF p$EXPNS_CD IS NULL THEN
p$EXPNS_CD := vcurCTG_GENKA.EXPNS_CD;
END IF;
IF p$PP_FLG IS NULL THEN
p$PP_FLG := vcurCTG_GENKA.PP_FLG;
END IF;
-- 比例費固定費マージ
IF SUBSTR(p$EXPNS_CD,1,5) = SUBSTR(vcurCTG_GENKA.EXPNS...
g$vCOS_GT_GENKA_EXPNS := EXPNS_SUM(g$vCOS_GT_GENKA_EX...
ELSE
g$vCOS_GT_GENKA_EXPNS.EXPNS_CD := SUBSTR(g$vCOS_GT_GE...
p$STR_POS := INSTR(g$vCOS_GT_GENKA_EXPNS.PRNT_ITM_NM,...
IF p$STR_POS <= 0 THEN
p$STR_POS := LENGTH(g$vCOS_GT_GENKA_EXPNS.PRNT_ITM_N...
END IF;
g$vCOS_GT_GENKA_EXPNS.PRNT_ITM_NM := SUBSTR(g$vCOS_GT...
l$PRNT_SORT := lisCOS_GT_GENKA.COUNT;
SET_GENKA_OUT_LIST(l$PRNT_SORT, g$vCOS_...
p$EXPNS_CD := vcurCTG_GENKA.EXPNS_CD;
g$vCOS_GT_GENKA_EXPNS := EXPNS_SUM(g$vCOS_GT_GENKA_EX...
END IF;
-- 費目Gサマリー
-- WPA_LOG.P_PRINTF('WCS0002I',vcurCTG_GENKA.UNIT_CD);
IF p$MST_RMRKS = vcurCTG_GENKA.MST_RMRKS THEN
g$vCOS_GT_GENKA_EXPNS_GRP := EXPNS_SUM(g$vCOS_GT_GENK...
ELSE
g$vCOS_GT_GENKA_EXPNS_GRP.CHD_CTG_CD := NULL;
g$vCOS_GT_GENKA_EXPNS_GRP.CHD_CTG_NM := NULL;
g$vCOS_GT_GENKA_EXPNS_GRP.EXPNS_CD := NULL;
g$vCOS_GT_GENKA_EXPNS_GRP.PRNT_ITM_NM := p$MST_...
g$vCOS_GT_GENKA_EXPNS_GRP.CTG1 := 1;
l$PRNT_SORT := lisCOS_GT_GENKA.COUNT;
SET_GENKA_OUT_LIST(l$PRNT_SORT, g$vCOS_...
p$MST_RMRKS := vcurCTG_GENKA.MST_RMRKS;
g$vCOS_GT_GENKA_EXPNS_GRP := EXPNS_SUM(g$vCOS_GT_GENK...
END IF;
--
IF (vcurCTG_GENKA.PRINT_SORT > p$HIMOKU_NUM ) THEN
IF p$PACK_EXPNS_FIX_FLG THEN
FOR x IN 1..lisCOS_GT_GENKA_ITM.COUNT LOOP
lisCOS_GT_GENKA_ITM(x).SEQ := g$SEQ;
lisCOS_GT_GENKA_ITM(x).EXPNS_CD := NULL;
IF lisCOS_GT_GENKA_ITM.COUNT <> x THEN
lisCOS_GT_GENKA_ITM(x).PRNT_ITM_NM := lisCOS...
lisCOS_GT_GENKA_ITM(x).CTG1 := 0;
ELSE
lisCOS_GT_GENKA_ITM(x).CTG1 := 1;
lisCOS_GT_GENKA_ITM(x).CHD_CTG_CD := NULL;
lisCOS_GT_GENKA_ITM(x).CHD_CTG_NM := NULL;
END IF;
l$PRNT_SORT := lisCOS_GT_GENKA.COUNT;
SET_GENKA_OUT_LIST(l$PRNT_SORT...
p$MST_RMRKS := vcurCTG_GENKA.MST_RMRKS;
END LOOP;
END IF;
p$PACK_EXPNS_FIX_FLG := FALSE;
END IF;
-- IF p$PP_FLG = vcurCTG_GENKA.PP_FLG THEN
IF vcurCTG_GENKA.PRINT_SORT < p$SYSTEM_PRNT_SORT THEN
g$vCOS_GT_GENKA_PP_SUM := EXPNS_SUM(g$vCOS_GT_GENKA_P...
ELSE
-- 系内仕掛品明細(比例費前月)
CALC_SIKAKARI('1','P',p$P_CTG_CD,lisCOS...
-- 系内仕掛品明細(比例費当月)
CALC_SIKAKARI('1','Q',p$P_CTG_CD,lisCOS_GT_GENKA,p$cu...
IF p$curALEVEL0_OPT_FLG THEN
-- 系内仕掛品 その他比例費
g$vCOS_GT_GENKA_ALVL0_OPT_SUM.PRNT_ITM_NM := lc...
g$vCOS_GT_GENKA_ALVL0_OPT_SUM.CTG1 := 1;
l$PRNT_SORT := lisCOS_GT_GENKA.COUNT;
SET_GENKA_OUT_LIST(l$PRNT_SORT, g$v...
p$curALEVEL0_OPT_FLG := FALSE;
END IF;
-- 比例サマリー
g$vCOS_GT_GENKA_PP_SUM.EXPNS_CD := NULL;
g$vCOS_GT_GENKA_PP_SUM.PRNT_ITM_NM := lc$HIREI;
g$vCOS_GT_GENKA_PP_SUM.CTG1 := 2;
l$PRNT_SORT := lisCOS_GT_GENKA.COUNT;
SET_GENKA_OUT_LIST(l$PRNT_SORT, g$vCOS_...
p$PP_FLG := vcurCTG_GENKA.PP_FLG;
p$SYSTEM_PRNT_SORT := 999999999;
g$vCOS_GT_GENKA_PP_SUM := EXPNS_SUM(g$vCOS_GT_GENKA_P...
END IF;
-- 生産金額(部門計)サマリー
g$vCOS_GT_GENKA_PROD_SUM := EXPNS_SUM(g$vCOS_GT_GENKA_...
-- 内 製造間接費
IF vcurCTG_GENKA.INDIRECT_FLG = '1' THEN
g$vCOS_GT_GENKA_INDIRECT_SUM := EXPNS_SUM(g$vCOS_GT_G...
END IF;
END LOOP;
p$GENKA_INDEX := lisCOS_GT_GENKA.COUNT;
IF lisCOS_GT_GENKA.COUNT > 0 THEN
FOR i in 1..lisCOS_GT_GENKA.COUNT LOOP
INSERT INTO COS_GT_GENKA VALUES lisCOS_GT_GENKA(i);
END LOOP;
p$RC_CD := '1';
ELSE
p$RC_CD := '0';
END IF ;
l$PRNT_SORT := lisCOS_GT_GENKA.COUNT;
lisCOS_GT_GENKA.DELETE;
p$PRE_SEQ := g$SEQ;
-- 生産金額以降の情報を出力
p$OTHR_RC_CD := OPTION_GENKA_PRNT(l$PRNT_SORT, p$P_CTG_...
IF p$OTHR_RC_CD = '1' OR p$RC_CD = '1' THEN
p$RC_CD := '1';
ELSE
p$RC_CD := '0';
END IF;
RETURN p$RC_CD;
END EXEC_GENKA_PRNT;
FUNCTION IS_OUTPUT_EXPNS (
p$EXPNS_CD IN GM_HIMOKU.EXPNS_CD%TYPE
) RETURN BOOLEAN -- 出力対象の費目かどうか
/********************************************************...
<Synopsis>
出力対象の費目かどうか
<Remarks>
<Arguments>
<Item> VARCHAR2
<ReturnValue>
BOOLEAN
*********************************************************...
IS
p$LITERAL SC_SYSTEM.LITERAL%TYPE := NULL;
p$EXPNS_OPEN_FLG BOOLEAN := FALSE;
p$STR GM_HIMOKU.EXPNS_CD%TYPE := NULL;
p$POS NUMBER := 1;
BEGIN
SELECT LITERAL
INTO p$LITERAL
FROM SC_SYSTEM
WHERE TYP = 'COS'
AND CD = 'VER_EXP_CD';
FOR f IN 1..LENGTH(p$LITERAL) LOOP
IF LENGTH(p$LITERAL) = 0 THEN
EXIT;
END IF;
p$STR := SUBSTR(p$LITERAL, p$POS, INSTR(p$LITERAL, ','...
IF INSTR(p$LITERAL, ',', 1, f) = 0 THEN
p$STR := SUBSTR(p$LITERAL, p$POS, LENGTH(p$LITERAL));
-- DBMS_OUTPUT.PUT_LINE('文字列:' || p$STR);
ELSE
DBMS_OUTPUT.PUT_LINE('文字列:' || p$STR);
END IF;
IF p$STR = p$EXPNS_CD THEN
p$EXPNS_OPEN_FLG := TRUE;
END IF;
p$POS := INSTR(p$LITERAL, ',', 1, f) + 1;
IF p$POS = 1 THEN
EXIT;
END IF;
END LOOP;
RETURN p$EXPNS_OPEN_FLG;
END IS_OUTPUT_EXPNS;
FUNCTION OPTION_GENKA_PRNT(
p$PRNT_SORT IN NUMBER,
p$P_CTG_CD IN GM_HINGUN.CTG_CD%TYPE
)
RETURN VARCHAR2 -- 原価帳票表情報作成
/********************************************************...
<Synopsis>
製造合計以降の情報を出力
<Remarks>
<Arguments>
<Item> VARCHAR2
<ReturnValue>
文字値:9(エラー)、0(対象件数0)、1(正常...
*********************************************************...
IS
vCOS_GT_GENKA_INPT COS_GT_GENKA%ROWTYPE;
vCOS_GT_GENKA_NON_INPT COS_GT_GENKA%ROWTYPE;
g$vCOS_GT_GENKA_ITM COS_GT_GENKA%ROWTYPE;
vCOS_STKACXFR_RSN_SUM COS_GT_GENKA%ROWTYPE;
vCOS_ACXFR_RSN_SUM COS_GT_GENKA%ROWTYPE;
vCOS_ACXFR_SUM COS_GT_GENKA%ROWTYPE;
vCOS_HARAI_SUM COS_GT_GENKA%ROWTYPE;
vCOS_RC_INPT_SUM COS_GT_GENKA%ROWTYPE;
lisCOS_GT_GENKA tCOS_GT_GENKA := tCOS_GT_GENKA();
vcurCTG_GENKA_SUM curCTG_GENKA%ROWTYPE;
p$ITM_CD GT_ALEVEL0.ITM_CD%TYPE := NULL;
p$NON_INPT_FLG BOOLEAN := FALSE;
l$GUI_INDEX NUMBER := 0;
p$AC_RSN_CD GT_ALEVEL0.AC_RSN_CD%TYPE := NU...
p$LITERAL SC_SYSTEM.LITERAL%TYPE := NULL;
TYPE tLITERAL IS TABLE OF SC_SYSTEM.LITERAL%TYPE INDEX...
lisLITERAL tLITERAL;
p$RC_INPT_FLG BOOLEAN := FALSE;
p$STR CM_AC_REASON.AC_RSN_CD%TYPE;
p$POS NUMBER := 1;
p$WHR VARCHAR2(1000);
p$RC_CD VARCHAR2(1) := '0';
EXEC_SQL VARCHAR2(30000 CHAR) := NULL;
-- 他勘定払出(動的SQL
ACXFR_SQL VARCHAR2(4000 CHAR) := '
SELECT 0 AS PRNT_NO
,0 AS SEQ
,T1.MNG_DPT_CD
,M4.CTG_GRP_CD AS CTG_GRP_CD
,M4.CTG_GRP_NM AS CTG_GRP_NM
,M1.P_CTG_CD AS PAR_CTG_CD
,M3.MST_RMRKS AS PAR_CTG_NM
,NULL AS CHD_CTG_CD
,NULL AS CHD_CTG_NM
,T2.EXPNS_CD
,M2.EXPNS_NM AS PRNT_ITM_NM
,0 AS CTG1
,0 AS CTG2
,0 AS CTG3
,NULL AS UNIT_NM
,DECODE(M2.VAR_FLG, 1, T1.ACT_QTY, 0) AS VAR...
,DECODE(M2.VAR_FLG, 1, T2.ACT_COST, 0) AS VAR_AMT
,CASE WHEN M2.VAR_FLG = 0 THEN 0
WHEN NVL(T1.ACT_QTY,0) = 0 THEN 0
ELSE (T2.ACT_COST/T1.ACT_QTY)
END AS VAR_COST
,DECODE(M2.VAR_FLG, 1, 0, T1.ACT_QTY) AS FIX_NUM
,DECODE(M2.VAR_FLG, 1, 0, T2.ACT_COST) AS FIX_AMT
,CASE WHEN M2.VAR_FLG = 1 THEN 0
WHEN NVL(T1.ACT_QTY,0) = 0 THEN 0
ELSE (T2.ACT_COST/T1.ACT_QTY)
END AS FIX_COST
,0 AS TOTL_NUM
,0 AS TOTL_AMT
,0 AS TOTL_COST
,0 AS RATIO
,0 AS PROD_COST
,0 AS ORG_UPRI
,0 AS IN_QTY
,0 AS PROD_QTY
,0 AS SLS_AMT
,0 AS SLS_COST
,0 AS SEL_EXP
,0 AS ADM_EXP
,0 AS SLS_VAR_AMT
,0 AS VAR_TTL
,0 AS FIX_TTL
,T1.CALC_NO
,T1.REC_GRP
,0 AS REC_NO
,0 AS LVL
,M2.MST_RMRKS
,M2.PRINT_SORT
,M2.VAR_FLG
,M2.INDIRECT_FLG
,MAX(M2.VAR_FLG) OVER(PARTITION BY M2.MST_RMRKS) AS PP...
,T1.ITM_CD
,NULL AC_RSN_CD
,NULL AC_RSN_NM
FROM GT_ALEVEL0 T1
LEFT OUTER JOIN GT_ASHUKEI T2 ON (T1.CALC_NO = T2.CAL...
LEFT OUTER JOIN GM_HINGUNKS M1 ON (T1.ITM_CD = M1.C_CT...
INNER JOIN GM_HIMOKU M2 ON (T2.EXPNS_CD = M2.EX...
LEFT OUTER JOIN GM_HINGUN M3 ON (M1.P_CTG_CD = M3.CT...
LEFT OUTER JOIN GM_HINGUNG M4 ON (M3.CTG_GRP_CD = M4....
LEFT OUTER JOIN CM_HINMO M5 ON (T1.ITM_CD = M5.ITM_...
LEFT OUTER JOIN CM_AC_REASON M7 ON (T1.AC_RSN_CD = M7.A...
INNER JOIN COS_GW_GENKA_HIS W1 ON (W1.CALC_NO = T1.CALC...
WHERE 0 = 0
AND T1.ASST_TYP = ''1''
AND T1.REC_TYP = ''6'' ';
STK_ACXFR_SQL VARCHAR2(4000 CHAR) := '
SELECT 0 AS PRNT_NO
,0 AS SEQ
,T1.MNG_DPT_CD
,M4.CTG_GRP_CD AS CTG_GRP_CD
,M4.CTG_GRP_NM AS CTG_GRP_NM
,M1.P_CTG_CD AS PAR_CTG_CD
,M3.MST_RMRKS AS PAR_CTG_NM
,NULL AS CHD_CTG_CD
,NULL AS CHD_CTG_NM
,T2.EXPNS_CD
,M2.EXPNS_NM AS PRNT_ITM_NM
,0 AS CTG1
,0 AS CTG2
,0 AS CTG3
,NULL AS UNIT_NM
,DECODE(M2.VAR_FLG, 1, T1.ACT_QTY, 0) ...
,DECODE(M2.VAR_FLG, 1, T2.ACT_COST, 0) AS VAR_AMT
,CASE WHEN M2.VAR_FLG = 0 THEN 0
WHEN NVL(T1.ACT_QTY,0) = 0 THEN 0
ELSE (T2.ACT_COST/T1.ACT_QTY)
END AS VAR_COST
,DECODE(M2.VAR_FLG, 1, 0, T1.ACT_QTY) AS FIX_NUM
,DECODE(M2.VAR_FLG, 1, 0, T2.ACT_COST) AS FIX_AMT
,CASE WHEN M2.VAR_FLG = 1 THEN 0
WHEN NVL(T1.ACT_QTY,0) = 0 THEN 0
ELSE (T2.ACT_COST/T1.ACT_QTY)
END AS FIX_COST
,0 AS TOTL_NUM
,0 AS TOTL_AMT
,0 AS TOTL_COST
,0 AS RATIO
,0 AS PROD_COST
,0 AS ORG_UPRI
,0 AS IN_QTY
,0 AS PROD_QTY
,0 AS SLS_AMT
,0 AS SLS_COST
,0 AS SEL_EXP
,0 AS ADM_EXP
,0 AS SLS_VAR_AMT
,0 AS VAR_TTL
,0 AS FIX_TTL
,T1.CALC_NO
,T1.REC_GRP
,0 AS REC_NO
,0 AS LVL
,M2.MST_RMRKS
,M2.PRINT_SORT
,M2.VAR_FLG
,M2.INDIRECT_FLG
,MAX(M2.VAR_FLG) OVER(PARTITION BY M2.MST_RMRKS) AS P...
,T1.ITM_CD
,T1.AC_RSN_CD
,M7.AC_RSN_NM
FROM GT_ALEVEL0 T1
LEFT OUTER JOIN GT_ASHUKEI T2 ON (T1.CALC_NO = T2.CA...
LEFT OUTER JOIN GM_HINGUNKS M1 ON (T1.ITM_CD = M1.C_C...
INNER JOIN GM_HIMOKU M2 ON (T2.EXPNS_CD = M2.E...
LEFT OUTER JOIN GM_HINGUN M3 ON (M1.P_CTG_CD = M3.C...
LEFT OUTER JOIN GM_HINGUNG M4 ON (M3.CTG_GRP_CD = M4...
LEFT OUTER JOIN CM_HINMO M5 ON (T1.ITM_CD = M5.ITM...
LEFT OUTER JOIN CM_AC_REASON M7 ON (T1.AC_RSN_CD = M7....
INNER JOIN COS_GW_GENKA_HIS W1 ON (W1.CALC_NO = T1.CAL...
WHERE 0 = 0
AND T1.ASST_TYP = ''1''
AND T1.REC_TYP = ''6''
AND M7.NOTE IS NULL';
TYPE tACXFR_HARAI IS TABLE OF curRC_INPT%ROWTYPE;
lisACXFR_HARAI tACXFR_HARAI;
lisSTK_ACXFR_HARAI tACXFR_HARAI;
BEGIN
l$GUI_INDEX := p$PRNT_SORT;
l$GUI_INDEX := l$GUI_INDEX+1;
-- <未入庫仕掛品>
OPEN curNON_INPT_ITM('1', p$P_CTG_CD);
LOOP
FETCH curNON_INPT_ITM INTO vcurNON_INPT_ITM;
IF curNON_INPT_ITM%NOTFOUND THEN
IF curNON_INPT_ITM%ROWCOUNT > 0 THEN
vCOS_GT_GENKA_NON_INPT.EXPNS_CD := NULL;
vCOS_GT_GENKA_NON_INPT.CTG1 := '0';
vCOS_GT_GENKA_NON_INPT.PRNT_ITM_NM := '未入庫仕掛...
SET_GENKA_OUT_LIST(l$GUI_INDEX, vC...
p$NON_INPT_FLG := TRUE;
END IF;
CLOSE curNON_INPT_ITM;
EXIT;
END IF;
vCOS_GT_GENKA_NON_INPT := EXPNS_SUM(vCOS_GT_GENKA_NON_...
g$vCOS_GT_GENKA_ITM := EXPNS_SUM(g$vCOS_GT_GENKA_...
END LOOP;
OPEN curNON_INPT_ITM('3', p$P_CTG_CD);
LOOP
FETCH curNON_INPT_ITM INTO vcurNON_INPT_ITM;
IF curNON_INPT_ITM%NOTFOUND THEN
IF curNON_INPT_ITM%ROWCOUNT > 0 THEN
vCOS_GT_GENKA_NON_INPT.EXPNS_CD := NULL;
vCOS_GT_GENKA_NON_INPT.CTG1 := '0';
vCOS_GT_GENKA_NON_INPT.PRNT_ITM_NM := '未入庫仕掛...
SET_GENKA_OUT_LIST(l$GUI_INDEX, vC...
p$NON_INPT_FLG := TRUE;
END IF;
CLOSE curNON_INPT_ITM;
EXIT;
END IF;
vCOS_GT_GENKA_NON_INPT := EXPNS_SUM(vCOS_GT_GENKA_NON_...
g$vCOS_GT_GENKA_ITM := EXPNS_SUM(g$vCOS_GT_GENKA_...
END LOOP;
IF p$NON_INPT_FLG THEN
g$vCOS_GT_GENKA_ITM.EXPNS_CD := NULL;
g$vCOS_GT_GENKA_ITM.CTG1 := '1';
g$vCOS_GT_GENKA_ITM.PRNT_ITM_NM := '<未入庫仕掛品>';
g$vCOS_GT_GENKA_ITM_TMP := g$vCOS_GT_GENKA_ITM;
SET_GENKA_OUT_LIST(l$GUI_INDEX, g$vCOS_GT_G...
-- 仕掛金額
g$vCOS_GT_GENKA_ITM_TMP.SEQ := g$SEQ;
g$vCOS_GT_GENKA_ITM_TMP.EXPNS_CD := NULL;
g$vCOS_GT_GENKA_ITM_TMP.CTG1 := '2';
g$vCOS_GT_GENKA_ITM_TMP.PRNT_ITM_NM := '*仕掛金額*';
SET_GENKA_OUT_LIST(l$GUI_INDEX, g$vCOS_GT_G...
END IF;
-- <中間体後工程払出>
OPEN curRC_INPT(p$P_CTG_CD);
LOOP
FETCH curRC_INPT INTO vcurRC_INPT;
IF curRC_INPT%NOTFOUND THEN
IF curRC_INPT%ROWCOUNT > 0 THEN
vCOS_GT_GENKA_INPT.EXPNS_CD := NULL;
vCOS_GT_GENKA_INPT.CTG1 := '0';
SET_GENKA_OUT_LIST(l$GUI_INDEX, vC...
vCOS_RC_INPT_SUM.SEQ := g$SEQ;
vCOS_RC_INPT_SUM.EXPNS_CD := NULL;
vCOS_RC_INPT_SUM.CTG1 := '1';
vCOS_RC_INPT_SUM.PRNT_NO := g$PRINT_NO;
vCOS_RC_INPT_SUM.PRNT_ITM_NM := '<中間体後工程払出...
SET_GENKA_OUT_LIST(l$GUI_INDEX, vC...
p$RC_INPT_FLG := TRUE;
END IF;
CLOSE curRC_INPT;
EXIT;
END IF;
IF vcurRC_INPT.MNG_DPT_CD IS NULL THEN
EXIT;
END IF;
IF p$ITM_CD IS NULL THEN
p$ITM_CD := vcurRC_INPT.ITM_CD;
END IF;
IF p$ITM_CD = vcurRC_INPT.ITM_CD THEN
vCOS_GT_GENKA_INPT := EXPNS_SUM(vCOS_GT_GENKA_INPT, v...
vCOS_HARAI_SUM := EXPNS_SUM(vCOS_HARAI_SUM, vcurR...
vCOS_RC_INPT_SUM := EXPNS_SUM(vCOS_RC_INPT_SUM, vcu...
ELSE
vCOS_GT_GENKA_INPT.EXPNS_CD := NULL;
vCOS_GT_GENKA_INPT.CTG1 := '0';
SET_GENKA_OUT_LIST(l$GUI_INDEX, vCOS_GT...
p$ITM_CD := vcurRC_INPT.ITM_CD;
vCOS_GT_GENKA_INPT := EXPNS_SUM(vCOS_GT_GENKA_INPT, v...
vCOS_HARAI_SUM := EXPNS_SUM(vCOS_HARAI_SUM, vcurR...
vCOS_RC_INPT_SUM := EXPNS_SUM(vCOS_RC_INPT_SUM, vcu...
END IF;
END LOOP;
-- <他勘定振替実績>
SELECT LITERAL
BULK COLLECT INTO lisLITERAL
FROM SC_SYSTEM C1
WHERE TYP = 'COS'
AND CD IN ('AC_SLP_SLS', 'AC_SLP_RSN');
p$WHR := ' NOT IN (';
FOR n IN 1..lisLITERAL.COUNT LOOP
FOR f IN 1..LENGTH(lisLITERAL(n)) LOOP
p$LITERAL := lisLITERAL(n);
IF LENGTH(p$LITERAL) = 0 THEN
EXIT;
END IF;
p$STR := SUBSTR(p$LITERAL, p$POS, INSTR(p$LITERAL, ',...
IF INSTR(p$LITERAL, ',', 1, f) = 0 THEN
p$STR := SUBSTR(p$LITERAL, p$POS, LENGTH(p$LITERAL));
-- DBMS_OUTPUT.PUT_LINE('文字列:' || p$STR);
ELSE
DBMS_OUTPUT.PUT_LINE('文字列:' || p$STR);
END IF;
p$POS := INSTR(p$LITERAL, ',', 1, f) + 1;
IF p$POS = 1 THEN
p$WHR := p$WHR || '''' || p$STR || '''';
EXIT;
ELSE
p$WHR := p$WHR || '''' || p$STR || ''',';
END IF;
END LOOP;
END LOOP;
p$WHR := p$WHR || ' )';
EXEC_SQL := (ACXFR_SQL || 'AND T1.AC_SLIP_TYP' || p$WH...
EXEC_SQL := EXEC_SQL || ' AND T1.MNG_DPT_CD = ''' || g$...
EXEC_SQL := EXEC_SQL || ' AND M1.P_CTG_CD = ''' || p$P_...
BEGIN
EXECUTE IMMEDIATE (EXEC_SQL) BULK COLLECT INTO lisACXF...
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
FOR g IN 1..lisACXFR_HARAI.COUNT LOOP
lisACXFR_HARAI(g).PRNT_NO := g$PRINT_NO;
vCOS_ACXFR_RSN_SUM := EXPNS_SUM(vCOS_ACXFR_RSN_SUM, li...
vCOS_ACXFR_SUM := EXPNS_SUM(vCOS_ACXFR_SUM, lisACXFR_H...
vCOS_HARAI_SUM := EXPNS_SUM(vCOS_HARAI_SUM, lisACXFR_H...
END LOOP;
IF lisACXFR_HARAI.COUNT > 0 THEN
vCOS_ACXFR_RSN_SUM.EXPNS_CD := NULL;
vCOS_ACXFR_RSN_SUM.PRNT_ITM_NM := '他勘定払出';
vCOS_ACXFR_RSN_SUM.CTG1 := '0';
SET_GENKA_OUT_LIST(l$GUI_INDEX, vCOS_ACXFR_...
END IF;
-- <在庫振替実績>
SELECT LITERAL
BULK COLLECT INTO lisLITERAL
FROM SC_SYSTEM C1
WHERE TYP = 'COS'
AND CD IN ('AC_SLP_RSN');
p$WHR := ' IN (';
FOR n IN 1..lisLITERAL.COUNT LOOP
FOR f IN 1..LENGTH(lisLITERAL(n)) LOOP
p$LITERAL := lisLITERAL(n);
IF LENGTH(p$LITERAL) = 0 THEN
EXIT;
END IF;
p$STR := SUBSTR(p$LITERAL, p$POS, INSTR(p$LITERAL, ',...
IF INSTR(p$LITERAL, ',', 1, f) = 0 THEN
p$STR := SUBSTR(p$LITERAL, p$POS, LENGTH(p$LITERAL));
-- DBMS_OUTPUT.PUT_LINE('文字列:' || p$STR);
ELSE
DBMS_OUTPUT.PUT_LINE('文字列:' || p$STR);
END IF;
p$POS := INSTR(p$LITERAL, ',', 1, f) + 1;
IF p$POS = 1 THEN
p$WHR := p$WHR || '''' || p$STR || '''';
EXIT;
ELSE
p$WHR := p$WHR || '''' || p$STR || ''',';
END IF;
END LOOP;
END LOOP;
p$WHR := p$WHR || ' )';
EXEC_SQL := (STK_ACXFR_SQL || ' AND T1.AC_SLIP_TYP' || ...
EXEC_SQL := EXEC_SQL || ' AND T1.MNG_DPT_CD = ''' || g$...
EXEC_SQL := EXEC_SQL || ' AND M1.P_CTG_CD = ''' || p$P_...
EXEC_SQL := EXEC_SQL || ' ORDER BY T1.AC_RSN_CD';
BEGIN
EXECUTE IMMEDIATE (EXEC_SQL) BULK COLLECT INTO lisSTK_...
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
-- DBMS_OUTPUT.PUT_LINE('在庫振替実績:' || lisSTK_ACXFR_...
FOR g IN 1..lisSTK_ACXFR_HARAI.COUNT LOOP
-- DBMS_OUTPUT.PUT_LINE('在庫振替実績-1' || lisSTK_ACX...
IF p$AC_RSN_CD is NULL THEN
p$AC_RSN_CD := lisSTK_ACXFR_HARAI(g).AC_RSN_CD;
END IF;
IF p$AC_RSN_CD = lisSTK_ACXFR_HARAI(g).AC_RSN_CD THEN
lisSTK_ACXFR_HARAI(g).PRNT_NO := g$PRINT_NO;
vCOS_STKACXFR_RSN_SUM := EXPNS_SUM(vCOS_STKACXFR_RSN_...
vCOS_ACXFR_SUM := EXPNS_SUM(vCOS_ACXFR_SUM, lisSTK_AC...
vCOS_HARAI_SUM := EXPNS_SUM(vCOS_HARAI_SUM, lisSTK_AC...
vCOS_STKACXFR_RSN_SUM.PRNT_ITM_NM := lisSTK_ACXFR_HAR...
ELSE
vCOS_STKACXFR_RSN_SUM.EXPNS_CD := NULL;
vCOS_STKACXFR_RSN_SUM.CTG1 := '0';
SET_GENKA_OUT_LIST(l$GUI_INDEX, vCOS_ST...
p$AC_RSN_CD := lisSTK_ACXFR_HARAI(g).AC_RSN_CD;
END IF;
IF g = lisSTK_ACXFR_HARAI.COUNT THEN
vCOS_STKACXFR_RSN_SUM.EXPNS_CD := NULL;
vCOS_STKACXFR_RSN_SUM.CTG1 := '0';
SET_GENKA_OUT_LIST(l$GUI_INDEX, vCOS_ST...
END IF;
END LOOP;
IF lisSTK_ACXFR_HARAI.COUNT > 0 OR lisACXFR_HARAI.COUNT...
vCOS_ACXFR_SUM.EXPNS_CD := NULL;
vCOS_ACXFR_SUM.CTG1 := '1';
vCOS_ACXFR_SUM.PRNT_ITM_NM := '<他勘定払出>';
SET_GENKA_OUT_LIST(l$GUI_INDEX, vCOS_ACXFR_...
END IF;
IF p$RC_INPT_FLG OR lisSTK_ACXFR_HARAI.COUNT > 0 OR lis...
vCOS_HARAI_SUM.EXPNS_CD := NULL;
vCOS_HARAI_SUM.CTG1 := '2';
vCOS_HARAI_SUM.PRNT_ITM_NM := '*払出金額*';
SET_GENKA_OUT_LIST(l$GUI_INDEX, vCOS_HARAI_...
END IF;
IF lisCOS_GT_GENKA.COUNT > 0 THEN
FOR i in 1..lisCOS_GT_GENKA.COUNT LOOP
INSERT INTO COS_GT_GENKA VALUES lisCOS_GT_GENKA(i);
END LOOP;
p$RC_CD := '1';
END IF ;
IF p$P_CTG_CD LIKE 'RS%' THEN
OPTION_GENKA_VALUE(l$GUI_INDEX, p$P_CTG_CD);
END IF;
RETURN p$RC_CD;
END OPTION_GENKA_PRNT;
PROCEDURE OPTION_GENKA_VALUE(
p$GENKA_INDEX IN NUMBER,
p$P_CTG_CD IN GM_HINGUN.CTG_CD%TYPE
) -- 生産量 入庫量 売上金額 売上原価
/********************************************************...
<Synopsis>
生産量 入庫量 売上金額 売上原価
<Remarks>
<Arguments>
<Item> VARCHAR2
<ReturnValue>
BOOLEAN
*********************************************************...
IS
-- 変数定義
p$GUI_INDEX NUMBER := 0;
SALE_AMOUN NUMBER := 0; -- 売上金額
SALE_COST NUMBER := 0; -- 売上原価
SELL_COST NUMBER := 0; -- 販直費
GENERAL_ADMIN_EXP NUMBER := 0; -- 一般管理費
SALE_PROF NUMBER := 0; -- 売上純利益
OPT_PROF NUMBER := 0; -- 営業利益
LIMIT_PROF NUMBER := 0; -- 限界利益
SALE_COST_VARIA NUMBER := 0; -- 売上原価の...
P$UNIT_NM CM_UNIT.UNIT_NM%TYPE := NULL;
TYPE T_COS_GT_GENKA IS TABLE OF COS_GT_GENKA%ROWTYPE;
R_COS_GT_GENKA COS_GT_GENKA%ROWTYPE;
L_COS_GT_GENKA T_COS_GT_GENKA := T_COS_GT_GENKA();
R_COS_GT_GENKA_COMMON COS_GT_GENKA%ROWTYPE;
--カーソル定義 変動費
CURSOR CUR_VAR(param IN VARCHAR2) IS
SELECT '生産量' AS PRNT_ITM_NM -- 帳票項目名
,NVL(SUM(T1.ACT_QTY),0) AS VAR_NUM -- 変動費_数量
,0 AS VAR_AMT -- 変動費_金額
,0 AS TOTL_NUM -- 合計_数量
FROM GT_ALEVEL0 T1 -- 原価計算結果 品目階層展開(レベ...
,GM_HINGUNKS M1 -- 原価品群構成マスタ
,GM_HINGUN M2 -- 原価品群マスタ
,COS_GW_GENKA_HIS W1
WHERE 0 = 0
AND T1.YM = M1.TERM
AND T1.ITM_CD = M1.C_CTG_CD
AND T1.MNG_DPT_CD = g$MNG_DPT_CD
AND M1.TERM = M2.TERM
AND M1.P_CTG_CD = M2.CTG_CD
AND T1.REC_TYP = '0'
AND W1.CALC_NO = T1.CALC_NO
AND M2.CTG_CD = param
UNION ALL
SELECT '入庫量' AS PRNT_ITM_NM -- 帳票項目名
,NVL(SUM(T2.ACT_QTY),0) AS VAR_NUM -- 変動費_数量
,0 AS VAR_AMT -- 変動費_金額
,0 AS TOTL_NUM -- 合計_数量
FROM GT_ALEVEL0 T2 -- 原価計算結果 品目階層展開(レベ...
,GM_HINGUNKS M3 -- 原価品群構成マスタ
,GM_HINGUN M4 -- 原価品群マスタ
,COS_GW_GENKA_HIS W1
WHERE 0 = 0
AND T2.YM = M3.TERM
AND T2.ITM_CD = M3.C_CTG_CD
AND T2.MNG_DPT_CD = g$MNG_DPT_CD
AND M3.TERM = M4.TERM
AND M3.P_CTG_CD = M4.CTG_CD
AND T2.REC_TYP = '6'
AND T2.AC_SLIP_TYP = '10701'
AND W1.CALC_NO = T2.CALC_NO
AND M4.CTG_CD = param
UNION ALL
SELECT '売上金額' AS PRNT_ITM_NM -- 帳票項目名
,0 AS VAR_NUM -- 変動費_数量
,NVL(SUM(T3.ACT_AMT),0) AS VAR_AMT -- 変動費_金額
,0 AS TOTL_NUM -- 合計_数量
FROM GT_ALEVEL0 T3 -- 原価計算結果 品目階層展開(レベ...
,GM_HINGUNKS M5 -- 原価品群構成マスタ
,GM_HINGUN M6 -- 原価品群マスタ
,COS_GW_GENKA_HIS W1
WHERE 0 = 0
AND T3.YM = M5.TERM
AND T3.ITM_CD = M5.C_CTG_CD
AND T3.MNG_DPT_CD = g$MNG_DPT_CD
AND M5.TERM = M6.TERM
AND M5.P_CTG_CD = M6.CTG_CD
AND T3.REC_TYP = '7'
AND W1.CALC_NO = T3.CALC_NO
AND M6.CTG_CD = param
UNION ALL
SELECT '売上原価' AS PRNT_ITM_NM -- 帳票項目名
,0 AS VAR_NUM -- 変動費_数量
,NVL(SUM(T5.ACT_COST),0) AS VAR_AMT -- 変動費_金額
,0 AS TOTL_NUM -- 合計_数量
FROM GT_ALEVEL0 T4 -- 原価計算結果 品目階層展開(レベ...
,GT_ASHUKEI T5 -- 原価計算結果 実際原価費目集計
,GM_HIMOKU M7 -- 原価費目マスタ
,GM_HINGUNKS M8 -- 原価品群構成マスタ
,GM_HINGUN M9 -- 原価品群マスタ
,COS_GW_GENKA_HIS W1
WHERE 0 = 0
AND T4.CALC_NO = T5.CALC_NO
AND T4.REC_GRP = T5.REC_GRP
AND T4.MNG_DPT_CD = g$MNG_DPT_CD
AND T5.EXPNS_CD = M7.EXPNS_CD
AND T4.YM = M8.TERM
AND T4.ITM_CD = M8.C_CTG_CD
AND M8.TERM = M9.TERM
AND M8.P_CTG_CD = M9.CTG_CD
AND T4.REC_TYP = '7'
AND M7.EXPNS_TYP = '0'
AND W1.CALC_NO = T4.CALC_NO
AND M9.CTG_CD = param
UNION ALL
SELECT '*売上総利益*' AS PRNT_ITM_NM -- 帳票項目名
,0 AS VAR_NUM -- 変動費_数量
,0 AS VAR_AMT -- 変動費_金額
,0 AS TOTL_NUM -- 合計_数量
FROM DUAL
UNION ALL
SELECT '*販直費*' AS PRNT_ITM_NM -- 帳票項目名
,0 AS VAR_NUM -- 変動費_数量
,NVL(SUM(T7.ACT_COST),0) AS VAR_AMT -- 変動費_金額
,0 AS TOTL_NUM -- 合計_数量
FROM GT_ALEVEL0 T6 -- 原価計算結果 品目階層展開(レベ...
,GT_ASHUKEI T7 -- 原価計算結果 実際原価費目集計
,GM_HIMOKU M10 -- 原価費目マスタ
,GM_HINGUNKS M11 -- 原価品群構成マスタ
,GM_HINGUN M12 -- 原価品群マスタ
,COS_GW_GENKA_HIS W1
WHERE 0 = 0
AND T6.CALC_NO = T7.CALC_NO
AND T6.REC_GRP = T7.REC_GRP
AND T6.MNG_DPT_CD = g$MNG_DPT_CD
AND T7.EXPNS_CD = M10.EXPNS_CD
AND T6.YM = M11.TERM
AND T6.ITM_CD = M11.C_CTG_CD
AND M11.TERM = M12.TERM
AND M11.P_CTG_CD = M12.CTG_CD
AND T6.REC_TYP = '7'
AND W1.CALC_NO = T6.CALC_NO
AND M10.MST_RMRKS = '*販直費*'
AND M12.CTG_CD = param
UNION ALL
SELECT '*一般管理費*' AS PRNT_ITM_NM -- 帳票項目名
,0 AS VAR_NUM -- 変動費_数量
,NVL(SUM(T9.ACT_COST),0) AS VAR_AMT -- 変動費_金額
,0 AS TOTL_NUM -- 合計_数量
FROM GT_ALEVEL0 T8 -- 原価計算結果 品目階層展開(レベ...
,GT_ASHUKEI T9 -- 原価計算結果 実際原価費目集計
,GM_HIMOKU M13 -- 原価費目マスタ
,GM_HINGUNKS M14 -- 原価品群構成マスタ
,GM_HINGUN M15 -- 原価品群マスタ
,COS_GW_GENKA_HIS W1
WHERE 0 = 0
AND T8.CALC_NO = T9.CALC_NO
AND T8.REC_GRP = T9.REC_GRP
AND T8.MNG_DPT_CD = g$MNG_DPT_CD
AND T9.EXPNS_CD = M13.EXPNS_CD
AND T8.YM = M14.TERM
AND T8.ITM_CD = M14.C_CTG_CD
AND M14.TERM = M15.TERM
AND M14.P_CTG_CD = M15.CTG_CD
AND T8.REC_TYP = '7'
AND M13.MST_RMRKS = '*一般管理費*'
AND W1.CALC_NO = T8.CALC_NO
AND M15.CTG_CD = param;
BEGIN
p$GUI_INDEX := p$GENKA_INDEX;
FOR X IN CUR_VAR(p$P_CTG_CD) LOOP
-- 売上金額を格納
IF (X.PRNT_ITM_NM = '売上金額')THEN
SALE_AMOUN := X.VAR_AMT;
g$vCOS_GT_ATENKAI_UPD.SLS_AMT := SALE_AMOUN;
END IF;
-- 売上原価を格納
IF (X.PRNT_ITM_NM = '売上原価') THEN
SALE_COST := X.VAR_AMT;
g$vCOS_GT_ATENKAI_UPD.SLS_COST := NVL(SALE_COST,0);
END IF;
IF (X.PRNT_ITM_NM = '*販直費*') THEN
SELL_COST := X.VAR_AMT;
g$vCOS_GT_ATENKAI_UPD.SEL_EXP := X.VAR_AMT;
END IF;
IF (X.PRNT_ITM_NM = '*一般管理費*') THEN
GENERAL_ADMIN_EXP := X.VAR_AMT;
g$vCOS_GT_ATENKAI_UPD.ADM_EXP := X.VAR_AMT;
END IF;
IF (X.PRNT_ITM_NM = '生産量') THEN
g$vCOS_GT_ATENKAI_UPD.PROD_QTY := NVL(X.VAR_NUM,0);
END IF;
IF (X.PRNT_ITM_NM = '入庫量') THEN
g$vCOS_GT_ATENKAI_UPD.IN_QTY := X.VAR_NUM;
END IF;
-- 帳票項目名「生産量」か「入庫量」の場合
IF (X.PRNT_ITM_NM = '生産量' OR X.PRNT_ITM_NM = '入庫量...
-- 数量を合計する
X.TOTL_NUM := X.VAR_NUM + 0;
END IF;
-- 帳票項目名「*売上総利益 *」のデータ作成
IF (X.PRNT_ITM_NM = '*売上総利益*') THEN
-- 売上金額-売上原価 = 売上総利益
SALE_PROF := SALE_AMOUN - SALE_COST;
X.VAR_AMT := SALE_PROF;
END IF;
-- @2017/11/01 S.Yamamoto MOD START
-- SELECT M2.MST_RMRKS CTG_NM, M3.CTG_GRP_CD, M3.CTG_GRP...
SELECT M2.MST_RMRKS CTG_NM, M3.CTG_GRP_CD, M3.CTG_GRP_N...
-- @2017/11/01 S.Yamamoto MOD END
INTO R_COS_GT_GENKA_COMMON.PAR_CTG_NM, R_COS_GT_GENKA_C...
FROM GT_ALEVEL0 T1
LEFT OUTER JOIN GM_HINGUNKS M1 ON (T1.ITM_CD = M1.C_CT...
LEFT OUTER JOIN GM_HINGUN M2 ON (M1.P_CTG_CD = M2.CT...
LEFT OUTER JOIN GM_HINGUNG M3 ON (M2.CTG_GRP_CD = M3....
LEFT OUTER JOIN CM_HINMO M4 ON (T1.ITM_CD = M4.ITM_...
-- @2017/11/01 S.Yamamoto DEL START
-- LEFT OUTER JOIN CM_UNIT M5 ON (M4.UNIT_CD = M5.U...
-- @2017/11/01 S.Yamamoto DEL END
WHERE M1.P_CTG_CD = p$P_CTG_CD
AND ROWNUM = 1;
INSERT INTO COS_GT_GENKA(PRNT_NO, SEQ, MNG_DPT_CD, PAR_...
,PRNT_ITM_NM, VAR_NUM, VAR_AMT, TOTL_NUM
, PRINT_SORT, PAR_CTG_NM, CTG_GRP_CD
, CTG_GRP_NM,CTG1,CTG2,CTG3,UNIT_NM,VAR_COST,FIX_NUM...
VALUES (g$PRINT_NO, g$SEQ, g$MNG_DPT_CD, p$P_CTG_CD
, X.PRNT_ITM_NM, X.VAR_NUM, X.VAR_AMT, X.TOTL_NUM
, p$GUI_INDEX, R_COS_GT_GENKA_COMMON.PAR_CTG_NM, R_COS...
, R_COS_GT_GENKA_COMMON.CTG_GRP_NM,0,0,0, R_COS_GT_GEN...
g$SEQ := g$SEQ + 1;
p$GUI_INDEX := p$GUI_INDEX + 1;
END LOOP;
-- リストに5行追加
L_COS_GT_GENKA.EXTEND(4);
-- 売上総利益-(販直費+一般管理費)= 営業利益
OPT_PROF := SALE_PROF-(SELL_COST+GENERAL_ADMIN_EXP);
-- 限界利益
-- 売上原価の変動費取得
SELECT NVL(SUM(T2.ACT_COST), 0) AS SALE_COST_VARIA
INTO SALE_COST_VARIA
FROM GT_ALEVEL0 T1 -- 原価計算結果 品目階層展開(レベ...
,GT_ASHUKEI T2 -- 原価計算結果 実際原価費目集計
,GM_HIMOKU M1 -- 原価費目マスタ
,GM_HINGUNKS M2 -- 原価品群構成マスタ
,GM_HINGUN M3 -- 原価品群マスタ
,COS_GW_GENKA_HIS W1
WHERE 0 = 0
AND T1.CALC_NO = T2.CALC_NO
AND T1.REC_GRP = T2.REC_GRP
AND T1.MNG_DPT_CD = g$MNG_DPT_CD
AND T2.EXPNS_CD = M1.EXPNS_CD
AND T1.YM = M2.TERM
AND T1.ITM_CD = M2.C_CTG_CD
AND M2.TERM = M3.TERM
AND M2.P_CTG_CD = M3.CTG_CD
AND T1.REC_TYP = '7'
AND M1.EXPNS_TYP = '0'
AND M1.VAR_FLG = '1'
AND W1.CALC_NO = T1.CALC_NO
AND M3.CTG_CD = p$P_CTG_CD;
g$vCOS_GT_ATENKAI_UPD.SLS_VAR_AMT := SALE_COST_VARIA;
-- 売上金額-売上原価の変動費 = 限界利益
LIMIT_PROF := SALE_AMOUN-SALE_COST_VARIA;
-- 帳票項目名「*営業利益*」のデータ作成
R_COS_GT_GENKA.PRNT_NO := g$PRINT_NO;
R_COS_GT_GENKA.SEQ := g$SEQ;
R_COS_GT_GENKA.PAR_CTG_CD := p$P_CTG_CD;
R_COS_GT_GENKA.PRINT_SORT := p$GUI_INDEX;
R_COS_GT_GENKA.PRNT_ITM_NM := '*営業利益*';
R_COS_GT_GENKA.VAR_AMT := OPT_PROF;
-- リストに格納
L_COS_GT_GENKA(1) := R_COS_GT_GENKA;
-- レコード初期化
R_COS_GT_GENKA := NULL;
-- カウントアップ
g$SEQ := g$SEQ + 1;
p$GUI_INDEX := p$GUI_INDEX + 1;
-- 帳票項目名「*営業利益率*」のデータ作成
R_COS_GT_GENKA.PRNT_NO := g$PRINT_NO;
R_COS_GT_GENKA.SEQ := g$SEQ;
R_COS_GT_GENKA.PAR_CTG_CD := p$P_CTG_CD;
R_COS_GT_GENKA.CTG1 := 8;
R_COS_GT_GENKA.PRINT_SORT := p$GUI_INDEX;
R_COS_GT_GENKA.PRNT_ITM_NM := '*営業利益率*';
IF (SALE_AMOUN = 0) THEN
R_COS_GT_GENKA.RATIO := 0;
ELSE
R_COS_GT_GENKA.RATIO := OPT_PROF/SALE_AMOUN*100;
END IF;
-- リストに格納
L_COS_GT_GENKA(2) := R_COS_GT_GENKA;
-- レコード初期化
R_COS_GT_GENKA := NULL;
-- カウントアップ
g$SEQ := g$SEQ + 1;
p$GUI_INDEX := p$GUI_INDEX + 1;
-- 帳票項目名「*限界利益*」のデータ作成
R_COS_GT_GENKA.PRNT_NO := g$PRINT_NO;
R_COS_GT_GENKA.SEQ := g$SEQ;
R_COS_GT_GENKA.PAR_CTG_CD := p$P_CTG_CD;
R_COS_GT_GENKA.PRINT_SORT := p$GUI_INDEX;
R_COS_GT_GENKA.PRNT_ITM_NM := '*限界利益*';
R_COS_GT_GENKA.VAR_AMT := LIMIT_PROF;
-- リストに格納
L_COS_GT_GENKA(3) := R_COS_GT_GENKA;
-- レコード初期化
R_COS_GT_GENKA := NULL;
-- カウントアップ
g$SEQ := g$SEQ + 1;
p$GUI_INDEX := p$GUI_INDEX + 1;
-- 帳票項目名「*限界利益率*」の追加
R_COS_GT_GENKA.PRNT_NO := g$PRINT_NO;
R_COS_GT_GENKA.SEQ := g$SEQ;
R_COS_GT_GENKA.PAR_CTG_CD := p$P_CTG_CD;
R_COS_GT_GENKA.CTG1 := 8;
R_COS_GT_GENKA.PRINT_SORT := p$GUI_INDEX;
R_COS_GT_GENKA.PRNT_ITM_NM := '*限界利益率*';
IF (SALE_AMOUN = 0) THEN
R_COS_GT_GENKA.RATIO := 0;
ELSE
R_COS_GT_GENKA.RATIO := LIMIT_PROF/SALE_AMOUN*100;
END IF;
-- リストに格納
L_COS_GT_GENKA(4) := R_COS_GT_GENKA;
-- レコード初期化
R_COS_GT_GENKA := NULL;
-- カウントアップ
g$SEQ := g$SEQ + 1;
p$GUI_INDEX := p$GUI_INDEX + 1;
-- @2017/11/01 S.Yamamoto MOD START
-- SELECT M2.MST_RMRKS CTG_NM, M3.CTG_GRP_CD, M3.CTG_GRP_...
SELECT M2.MST_RMRKS CTG_NM, M3.CTG_GRP_CD, M3.CTG_GRP_NM...
-- @2017/11/01 S.Yamamoto MOD END
INTO R_COS_GT_GENKA_COMMON.PAR_CTG_NM, R_COS_GT_GENKA_CO...
FROM GT_ALEVEL0 T1
LEFT OUTER JOIN GM_HINGUNKS M1 ON (T1.ITM_CD = M1.C_CTG...
LEFT OUTER JOIN GM_HINGUN M2 ON (M1.P_CTG_CD = M2.CTG...
LEFT OUTER JOIN GM_HINGUNG M3 ON (M2.CTG_GRP_CD = M3.C...
LEFT OUTER JOIN CM_HINMO M4 ON (T1.ITM_CD = M4.ITM_CD)
-- @2017/11/01 S.Yamamoto DEL START
-- LEFT OUTER JOIN CM_UNIT M5 ON (M4.UNIT_CD = M5.UN...
-- @2017/11/01 S.Yamamoto DEL END
WHERE M1.P_CTG_CD = p$P_CTG_CD
AND ROWNUM = 1;
-- 原価計算表に登録
FOR i IN 1..4 LOOP
L_COS_GT_GENKA(i).PAR_CTG_NM := R_COS_GT_GENKA_COMMON.PA...
L_COS_GT_GENKA(i).CTG_GRP_CD := R_COS_GT_GENKA_COMMON.CT...
L_COS_GT_GENKA(i).CTG_GRP_NM := R_COS_GT_GENKA_COMMON.CT...
L_COS_GT_GENKA(i).UNIT_NM := R_COS_GT_GENKA_COMMON.UN...
L_COS_GT_GENKA(i).VAR_NUM := 0;
L_COS_GT_GENKA(i).VAR_AMT := NVL(L_COS_GT_GENKA(i).VAR_A...
L_COS_GT_GENKA(i).VAR_COST := 0;
L_COS_GT_GENKA(i).FIX_NUM := 0;
L_COS_GT_GENKA(i).FIX_AMT := 0;
L_COS_GT_GENKA(i).FIX_COST := 0;
L_COS_GT_GENKA(i).TOTL_AMT := 0;
L_COS_GT_GENKA(i).TOTL_NUM := 0;
L_COS_GT_GENKA(i).RATIO := NVL(L_COS_GT_GENKA(i).RATIO,0);
L_COS_GT_GENKA(i).CTG1 := NVL(L_COS_GT_GENKA(i).CTG1,0);
L_COS_GT_GENKA(i).CTG2 := 0;
L_COS_GT_GENKA(i).CTG3 := 0;
L_COS_GT_GENKA(i).MNG_DPT_CD := g$MNG_DPT_CD;
INSERT INTO COS_GT_GENKA VALUES L_COS_GT_GENKA(i);
END LOOP;
END OPTION_GENKA_VALUE;
FUNCTION EXPNS_SUM(
d$curCTG_GENKA IN COS_GT_GENKA%ROWTYPE,
s$curCTG_GENKA IN curCTG_GENKA%ROWTYPE
)
RETURN COS_GT_GENKA%ROWTYPE -- 左から右へ足し算を行う。
/********************************************************...
<Synopsis>
費目に関する数量に対してのサマリー
<Remarks>
<Arguments>
<Item> VARCHAR2
<ReturnValue>
BOOLEAN
*********************************************************...
IS
x$curCTG_GENKA COS_GT_GENKA%ROWTYPE;
p$VAR_NUM COS_GT_GENKA.VAR_NUM%TYPE;
p$FIX_NUM COS_GT_GENKA.FIX_NUM%TYPE;
BEGIN
x$curCTG_GENKA.PRNT_NO := s$curCTG_GENKA.PRNT...
x$curCTG_GENKA.SEQ := g$SEQ;
x$curCTG_GENKA.MNG_DPT_CD := s$curCTG_GENKA.MNG_...
x$curCTG_GENKA.CTG_GRP_CD := s$curCTG_GENKA.CTG_...
x$curCTG_GENKA.CTG_GRP_NM := s$curCTG_GENKA.CTG_...
x$curCTG_GENKA.PAR_CTG_CD := s$curCTG_GENKA.PAR_...
x$curCTG_GENKA.PAR_CTG_NM := s$curCTG_GENKA.PAR_...
x$curCTG_GENKA.CHD_CTG_CD := s$curCTG_GENKA.CHD_...
x$curCTG_GENKA.CHD_CTG_NM := s$curCTG_GENKA.CHD_...
x$curCTG_GENKA.EXPNS_CD := s$curCTG_GENKA.EXPN...
x$curCTG_GENKA.PRNT_ITM_NM := s$curCTG_GENKA.PRNT...
x$curCTG_GENKA.PRINT_SORT := s$curCTG_GENKA.PRIN...
x$curCTG_GENKA.CTG1 := s$curCTG_GENKA.CTG1;
x$curCTG_GENKA.CTG2 := s$curCTG_GENKA.CTG2;
x$curCTG_GENKA.CTG3 := s$curCTG_GENKA.CTG3;
x$curCTG_GENKA.UNIT_NM := s$curCTG_GENKA.UNIT...
x$curCTG_GENKA.VAR_NUM := NVL(d$curCTG_GENKA.V...
x$curCTG_GENKA.VAR_AMT := NVL(d$curCTG_GENKA.V...
x$curCTG_GENKA.VAR_COST := NVL(d$curCTG_GENKA.V...
x$curCTG_GENKA.FIX_NUM := NVL(d$curCTG_GENKA.F...
x$curCTG_GENKA.FIX_AMT := NVL(d$curCTG_GENKA.F...
x$curCTG_GENKA.FIX_COST := NVL(d$curCTG_GENKA.F...
x$curCTG_GENKA.TOTL_NUM := NVL(d$curCTG_GENKA.T...
x$curCTG_GENKA.TOTL_COST := NVL(d$curCTG_GENKA.T...
p$VAR_NUM := NVL(s$curCTG_GENKA.VAR_NUM,0);
p$FIX_NUM := NVL(s$curCTG_GENKA.FIX_NUM,0);
IF (p$VAR_NUM+p$FIX_NUM) <> 0 THEN
x$curCTG_GENKA.TOTL_AMT := NVL(d$curCTG_GENKA.T...
ELSE
x$curCTG_GENKA.TOTL_AMT := NVL(d$curCTG_GENKA.T...
END IF;
x$curCTG_GENKA.RATIO := NVL(d$curCTG_GENKA.R...
x$curCTG_GENKA.PROD_COST := NVL(d$curCTG_GENKA.P...
x$curCTG_GENKA.ORG_UPRI := NVL(d$curCTG_GENKA.O...
x$curCTG_GENKA.IN_QTY := NVL(d$curCTG_GENKA.I...
x$curCTG_GENKA.PROD_QTY := NVL(d$curCTG_GENKA.P...
x$curCTG_GENKA.SLS_AMT := NVL(d$curCTG_GENKA.S...
x$curCTG_GENKA.SLS_COST := NVL(d$curCTG_GENKA.S...
x$curCTG_GENKA.SEL_EXP := NVL(d$curCTG_GENKA.S...
x$curCTG_GENKA.ADM_EXP := NVL(d$curCTG_GENKA.A...
x$curCTG_GENKA.SLS_VAR_AMT := NVL(d$curCTG_GENKA.S...
x$curCTG_GENKA.VAR_TTL := NVL(d$curCTG_GENKA.V...
x$curCTG_GENKA.FIX_TTL := NVL(d$curCTG_GENKA.F...
RETURN x$curCTG_GENKA;
END;
FUNCTION EXPNS_SUM(
d$curCTG_GENKA IN COS_GT_GENKA%ROWTYPE,
s$curCTG_GENKA IN COS_GT_GENKA%ROWTYPE
)
RETURN COS_GT_GENKA%ROWTYPE -- 左から右へ足し算を行う。
/********************************************************...
<Synopsis>
費目に関する数量に対してのサマリー
<Remarks>
<Arguments>
<Item> VARCHAR2
<ReturnValue>
BOOLEAN
*********************************************************...
IS
x$curCTG_GENKA COS_GT_GENKA%ROWTYPE;
p$VAR_NUM COS_GT_GENKA.VAR_NUM%TYPE;
p$FIX_NUM COS_GT_GENKA.FIX_NUM%TYPE;
BEGIN
x$curCTG_GENKA.PRNT_NO := s$curCTG_GENKA.PRNT...
x$curCTG_GENKA.SEQ := g$SEQ;
x$curCTG_GENKA.MNG_DPT_CD := s$curCTG_GENKA.MNG_...
x$curCTG_GENKA.CTG_GRP_CD := s$curCTG_GENKA.CTG_...
x$curCTG_GENKA.CTG_GRP_NM := s$curCTG_GENKA.CTG_...
x$curCTG_GENKA.PAR_CTG_CD := s$curCTG_GENKA.PAR_...
x$curCTG_GENKA.PAR_CTG_NM := s$curCTG_GENKA.PAR_...
x$curCTG_GENKA.CHD_CTG_CD := s$curCTG_GENKA.CHD_...
x$curCTG_GENKA.CHD_CTG_NM := s$curCTG_GENKA.CHD_...
x$curCTG_GENKA.EXPNS_CD := s$curCTG_GENKA.EXPN...
x$curCTG_GENKA.PRNT_ITM_NM := s$curCTG_GENKA.PRNT...
x$curCTG_GENKA.PRINT_SORT := s$curCTG_GENKA.PRIN...
x$curCTG_GENKA.CTG1 := s$curCTG_GENKA.CTG1;
x$curCTG_GENKA.CTG2 := s$curCTG_GENKA.CTG2;
x$curCTG_GENKA.CTG3 := s$curCTG_GENKA.CTG3;
x$curCTG_GENKA.UNIT_NM := s$curCTG_GENKA.UNIT...
x$curCTG_GENKA.VAR_NUM := NVL(d$curCTG_GENKA.V...
x$curCTG_GENKA.VAR_AMT := NVL(d$curCTG_GENKA.V...
x$curCTG_GENKA.VAR_COST := NVL(d$curCTG_GENKA.V...
x$curCTG_GENKA.FIX_NUM := NVL(d$curCTG_GENKA.F...
x$curCTG_GENKA.FIX_AMT := NVL(d$curCTG_GENKA.F...
x$curCTG_GENKA.FIX_COST := NVL(d$curCTG_GENKA.F...
x$curCTG_GENKA.TOTL_NUM := NVL(d$curCTG_GENKA.T...
x$curCTG_GENKA.TOTL_COST := NVL(d$curCTG_GENKA.T...
p$VAR_NUM := NVL(s$curCTG_GENKA.VAR_NUM,0);
p$FIX_NUM := NVL(s$curCTG_GENKA.FIX_NUM,0);
IF (p$VAR_NUM+p$FIX_NUM) <> 0 THEN
x$curCTG_GENKA.TOTL_AMT := NVL(d$curCTG_GENKA.T...
ELSE
x$curCTG_GENKA.TOTL_AMT := NVL(d$curCTG_GENKA.T...
END IF;
x$curCTG_GENKA.RATIO := NVL(d$curCTG_GENKA.R...
x$curCTG_GENKA.PROD_COST := NVL(d$curCTG_GENKA.P...
x$curCTG_GENKA.ORG_UPRI := NVL(d$curCTG_GENKA.O...
x$curCTG_GENKA.IN_QTY := NVL(d$curCTG_GENKA.I...
x$curCTG_GENKA.PROD_QTY := NVL(d$curCTG_GENKA.P...
x$curCTG_GENKA.SLS_AMT := NVL(d$curCTG_GENKA.S...
x$curCTG_GENKA.SLS_COST := NVL(d$curCTG_GENKA.S...
x$curCTG_GENKA.SEL_EXP := NVL(d$curCTG_GENKA.S...
x$curCTG_GENKA.ADM_EXP := NVL(d$curCTG_GENKA.A...
x$curCTG_GENKA.SLS_VAR_AMT := NVL(d$curCTG_GENKA.S...
x$curCTG_GENKA.VAR_TTL := NVL(d$curCTG_GENKA.V...
x$curCTG_GENKA.FIX_TTL := NVL(d$curCTG_GENKA.F...
RETURN x$curCTG_GENKA;
END;
FUNCTION EXPNS_MINUS(
d$curCTG_GENKA IN COS_GT_GENKA%ROWTYPE,
s$curCTG_GENKA IN COS_GT_GENKA%ROWTYPE
)
RETURN COS_GT_GENKA%ROWTYPE -- 左から右の引き算を行う。
/********************************************************...
<Synopsis>
費目に関する数量に対してのサマリー
<Remarks>
<Arguments>
<Item> VARCHAR2
<ReturnValue>
BOOLEAN
*********************************************************...
IS
x$curCTG_GENKA COS_GT_GENKA%ROWTYPE;
BEGIN
x$curCTG_GENKA.PRNT_NO := d$curCTG_GENKA.PRNT...
x$curCTG_GENKA.SEQ := g$SEQ;
x$curCTG_GENKA.MNG_DPT_CD := d$curCTG_GENKA.MNG_...
x$curCTG_GENKA.CTG_GRP_CD := d$curCTG_GENKA.CTG_...
x$curCTG_GENKA.CTG_GRP_NM := d$curCTG_GENKA.CTG_...
x$curCTG_GENKA.PAR_CTG_CD := d$curCTG_GENKA.PAR_...
x$curCTG_GENKA.PAR_CTG_NM := d$curCTG_GENKA.PAR_...
x$curCTG_GENKA.CHD_CTG_CD := d$curCTG_GENKA.CHD_...
x$curCTG_GENKA.CHD_CTG_NM := d$curCTG_GENKA.CHD_...
x$curCTG_GENKA.EXPNS_CD := d$curCTG_GENKA.EXPN...
x$curCTG_GENKA.PRNT_ITM_NM := d$curCTG_GENKA.PRNT...
x$curCTG_GENKA.PRINT_SORT := d$curCTG_GENKA.PRIN...
x$curCTG_GENKA.CTG1 := d$curCTG_GENKA.CTG1;
x$curCTG_GENKA.CTG2 := d$curCTG_GENKA.CTG2;
x$curCTG_GENKA.CTG3 := d$curCTG_GENKA.CTG3;
x$curCTG_GENKA.UNIT_NM := d$curCTG_GENKA.UNIT...
x$curCTG_GENKA.VAR_NUM := NVL(d$curCTG_GENKA.V...
x$curCTG_GENKA.VAR_AMT := NVL(d$curCTG_GENKA.V...
x$curCTG_GENKA.VAR_COST := NVL(d$curCTG_GENKA.V...
x$curCTG_GENKA.FIX_NUM := NVL(d$curCTG_GENKA.F...
x$curCTG_GENKA.FIX_AMT := NVL(d$curCTG_GENKA.F...
x$curCTG_GENKA.FIX_COST := NVL(d$curCTG_GENKA.F...
x$curCTG_GENKA.TOTL_NUM := NVL(d$curCTG_GENKA.T...
x$curCTG_GENKA.TOTL_AMT := NVL(d$curCTG_GENKA.T...
x$curCTG_GENKA.TOTL_COST := NVL(d$curCTG_GENKA.TOTL_COS...
x$curCTG_GENKA.RATIO := NVL(d$curCTG_GENKA.R...
x$curCTG_GENKA.PROD_COST := NVL(d$curCTG_GENKA.P...
x$curCTG_GENKA.ORG_UPRI := NVL(d$curCTG_GENKA.O...
x$curCTG_GENKA.IN_QTY := NVL(d$curCTG_GENKA.I...
x$curCTG_GENKA.PROD_QTY := NVL(d$curCTG_GENKA.P...
x$curCTG_GENKA.SLS_AMT := NVL(d$curCTG_GENKA.S...
x$curCTG_GENKA.SLS_COST := NVL(d$curCTG_GENKA.S...
x$curCTG_GENKA.SEL_EXP := NVL(d$curCTG_GENKA.S...
x$curCTG_GENKA.ADM_EXP := NVL(d$curCTG_GENKA.A...
x$curCTG_GENKA.SLS_VAR_AMT := NVL(d$curCTG_GENKA.S...
x$curCTG_GENKA.VAR_TTL := NVL(d$curCTG_GENKA.V...
x$curCTG_GENKA.FIX_TTL := NVL(d$curCTG_GENKA.F...
RETURN x$curCTG_GENKA;
END;
PROCEDURE CREATE_MEISAI_DAT( -- 入庫明細表情報作成
p$ST_YM IN DATE,
p$END_YM IN DATE,
p$PRNT_NO IN VARCHAR2,
p$RC OUT VARCHAR2
)
/********************************************************...
<Synopsis>
入庫明細表情報作成
<Remarks>
<Arguments>
<ReturnValue>
*********************************************************...
IS
p$MEISAI_SEQ COS_GT_MEISAI.SEQ%TYPE := 1;
p$REC_IN_UPRI COS_GT_MEISAI.REC_IN_UPRI%TYPE := 0;
p$REC_YM COS_GT_MEISAI.REC_YM%TYPE := NULL;
-- 明細1
CURSOR curCTG_MEISAI (prntNo IN VARCHAR2)
IS
SELECT V1.*
FROM (SELECT T1.PRNT_NO
,T1.MNG_DPT_CD
,T1.CTG_GRP_CD
,T1.CTG_GRP_NM
,T1.PAR_CTG_CD
,T1.PAR_CTG_NM
,M1.CTG_NM AS PROD_PRSN
,T1.PAR_CTG_CD AS IN_DPT_CD
,T1.UNIT_NM
,T1.CTG1
,T1.IN_QTY AS CRNT_NUM
,T1.VAR_TTL CRNT_VAR
,T1.FIX_TTL CRNT_FIX
,(T1.VAR_TTL + T1.FIX_TTL) AS CRNT_TOTAL
,ROUND((T1.VAR_TTL + T1.FIX_TTL) / T1.IN_QTY, ...
,0 AS REC_IN_UPRI
,NUll AS REC_YM
,ROW_NUMBER() OVER (PARTITION BY T1.PAR_CTG_CD...
FROM COS_GT_GENKA T1
LEFT OUTER JOIN GM_HINGUN M1 ON (T1.PAR_CTG_CD ...
WHERE 0 = 0
AND T1.IN_QTY > 0
AND T1.PRNT_NO = prntNo) V1
WHERE V1.GROUP_IDX = 1;
-- 明細2
CURSOR curCTG_MEISAI_REC (parCtgCd IN VARCHAR2, m...
SELECT V1.REC_IN_UPRI
,V1.REC_YM
FROM
(SELECT
ROUND((T1.VAR_TTL + T1.FIX_TTL) / T1.IN_QTY, 0)...
,V2.MAX_STD_TERM AS REC_YM
,T1.PAR_CTG_CD
,T1.MNG_DPT_CD
,ROW_NUMBER() OVER (PARTITION BY T1.PAR_CTG_CD,...
FROM COS_GT_GENKA T1
,(SELECT MAX(T1.STD_TERM) AS MAX_STD_TERM
FROM COS_GT_GENKA_HIS T1
WHERE 0 = 0
AND T1.REC_TYP = 0
AND T1.STD_TERM < P$ST_YM
AND T1.STD_TERM > ADD_MONTHS(P$ST_YM, -25)) V2
WHERE 0 = 0
AND T1.IN_QTY > 0
AND T1.PRNT_NO = (SELECT MAX(T1.PRNT_NO)
FROM COS_GT_GENKA_HIS T1
WHERE 0 = 0
AND T1.REC_TYP = 0
AND T1.STD_TERM = V2.MAX_STD_TE...
) V1
WHERE V1.GROUP_IDX = 1
AND V1.PAR_CTG_CD = parCtgCd
AND V1.MNG_DPT_CD = mngDptCd;
BEGIN
FOR X IN curCTG_MEISAI(p$PRNT_NO) LOOP
OPEN curCTG_MEISAI_REC(X.PAR_CTG_CD, X.MNG_DPT_...
FETCH curCTG_MEISAI_REC INTO p$REC_IN_UPRI ,p$RE...
CLOSE curCTG_MEISAI_REC;
INSERT INTO COS_GT_MEISAI(PRNT_NO, SEQ, MNG_DPT_CD, CTG...
CTG1, CRNT_NUM, CRNT_VAR,...
VALUES (X.PRNT_NO, p$MEISAI_SEQ, X.MNG_DPT_CD, X.CTG_GR...
X.CTG1, X.CRNT_NUM, X.CRNT_VAR, X.C...
p$MEISAI_SEQ := p$MEISAI_SEQ + 1;
p$REC_IN_UPRI := 0;
p$REC_YM := NULL;
END LOOP;
p$RC := '1';
EXCEPTION
WHEN OTHERS THEN
p$RC := '9';
DBMS_OUTPUT.PUT_LINE('エラー' ||sqlerrm);
END CREATE_MEISAI_DAT;
-- その他出力用
PROCEDURE GENKA_ANOTHER_PRNT(
p$prnt_no IN COS_GT_GENKA.PRNT_NO%TYPE,
p$SEQ IN COS_GT_GENKA.SEQ%TYPE
)
/********************************************************...
<Synopsis>
その他出力用
<Remarks>
<Arguments>
<ReturnValue>
*********************************************************...
AS
-- カーソル
-- 原価計算結果_配賦不可費用
CURSOR cur_HAIFUZ
IS
SELECT T1.COST_AC_CD AS COST_AC_CD,
M1.COST_AC_NM AS COST_AC_NM,
SUM(T1.AMT) AS AMT
FROM GT_HAIFUZ T1
LEFT OUTER JOIN GVM_COST_AC M1 ON (T1.COST_AC_CD = M...
INNER JOIN COS_GW_GENKA_HIS W1 ON (W1.CALC_NO = T1.CAL...
WHERE 0=0
GROUP BY
T1.COST_AC_CD,
M1.COST_AC_NM
ORDER BY
T1.COST_AC_CD;
-- 変数
vrec_COS_GT_GENKA COS_GT_GENKA%ROWTYPE;
vcur_HAIFUZ cur_HAIFUZ%ROWTYPE;
lseq COS_GT_GENKA.SEQ%TYPE;
lamt NUMBER;
lact_cost NUMBER;
lprnt_sort COS_GT_GENKA.PRINT_SORT%TYPE := 1;
TYPE T_COS_GT_GENKA IS TABLE OF COS_GT_GENKA%ROWTYPE;
L_COS_GT_GENKA T_COS_GT_GENKA := T_COS_GT_GENKA();
R_COS_GT_GENKA COS_GT_GENKA%ROWTYPE;
FIX_AMT_SUM COS_GT_GENKA.FIX_AMT%TYPE := 0;
TOTAL_AMT_SUM COS_GT_GENKA.FIX_AMT%TYPE := 0;
BEGIN
-- 初期化。
lseq := g$SEQ;
-- ■配賦不可費用
OPEN cur_HAIFUZ;
LOOP
vrec_COS_GT_GENKA := NULL;
FETCH cur_HAIFUZ INTO vcur_HAIFUZ;
IF cur_HAIFUZ%NOTFOUND THEN
CLOSE cur_HAIFUZ;
EXIT;
END IF;
-- 詰め替え。
vrec_COS_GT_GENKA.PRNT_NO := p$prnt_no;
vrec_COS_GT_GENKA.SEQ := lseq;
vrec_COS_GT_GENKA.CTG_GRP_CD := 'ZZ';
vrec_COS_GT_GENKA.CTG_GRP_NM := vcur_HAIFUZ.COST_AC_...
vrec_COS_GT_GENKA.EXPNS_CD := vcur_HAIFUZ.COST_AC_...
vrec_COS_GT_GENKA.PRNT_ITM_NM := vcur_HAIFUZ.COST_AC_...
vrec_COS_GT_GENKA.PRINT_SORT := lprnt_sort;
vrec_COS_GT_GENKA.CTG1 := 0;
vrec_COS_GT_GENKA.CTG2 := 0;
vrec_COS_GT_GENKA.CTG3 := 0;
vrec_COS_GT_GENKA.VAR_NUM := 0;
vrec_COS_GT_GENKA.VAR_AMT := 0;
vrec_COS_GT_GENKA.VAR_COST := 0;
vrec_COS_GT_GENKA.FIX_NUM := 0;
vrec_COS_GT_GENKA.FIX_AMT := vcur_HAIFUZ.AMT;
vrec_COS_GT_GENKA.FIX_COST := 0;
vrec_COS_GT_GENKA.TOTL_NUM := 0;
-- @2017/10/30 K.Sousou MOD START
-- vrec_COS_GT_GENKA.TOTL_AMT := vcur_HAIFUZ.AMT;
-- vrec_COS_GT_GENKA.TOTL_COST := 0;
vrec_COS_GT_GENKA.TOTL_AMT := 0;
vrec_COS_GT_GENKA.TOTL_COST := vcur_HAIFUZ.AMT;
-- @2017/10/30 K.Sousou MOD END
vrec_COS_GT_GENKA.RATIO := 0;
vrec_COS_GT_GENKA.PROD_COST := 0;
vrec_COS_GT_GENKA.ORG_UPRI := 0;
vrec_COS_GT_GENKA.IN_QTY := 0;
vrec_COS_GT_GENKA.PROD_QTY := 0;
vrec_COS_GT_GENKA.SLS_AMT := 0;
vrec_COS_GT_GENKA.SLS_COST := 0;
vrec_COS_GT_GENKA.SEL_EXP := 0;
vrec_COS_GT_GENKA.ADM_EXP := 0;
vrec_COS_GT_GENKA.SLS_VAR_AMT := 0;
vrec_COS_GT_GENKA.VAR_TTL := 0;
vrec_COS_GT_GENKA.FIX_TTL := 0;
-- 登録。
-- INSERT INTO COS_GT_GENKA VALUES vrec_COS_GT_GENKA;
L_COS_GT_GENKA.EXTEND;
L_COS_GT_GENKA(L_COS_GT_GENKA.COUNT) := vrec_COS_GT_G...
-- 連番をカウントアップ。
lseq := lseq + 1;
lprnt_sort := lprnt_sort + 1;
END LOOP;
-- ■評価損結果計算
vrec_COS_GT_GENKA := NULL;
BEGIN
SELECT SUM(T1.AMT) AS AMT
INTO lamt
FROM GT_HYOUKASON T1
INNER JOIN COS_GW_GENKA_HIS W1 ON (W1.CALC_NO = T1.CALC...
WHERE 0=0;
EXCEPTION
WHEN NO_DATA_FOUND THEN
lamt := 0;
END;
-- 詰め替え。
vrec_COS_GT_GENKA.PRNT_NO := p$prnt_no;
vrec_COS_GT_GENKA.SEQ := lseq;
vrec_COS_GT_GENKA.CTG_GRP_CD := 'ZZ';
vrec_COS_GT_GENKA.CTG_GRP_NM := '低価法評価損';
vrec_COS_GT_GENKA.PRNT_ITM_NM := '低価法評価損';
vrec_COS_GT_GENKA.PRINT_SORT := lprnt_sort;
vrec_COS_GT_GENKA.CTG1 := 0;
vrec_COS_GT_GENKA.CTG2 := 0;
vrec_COS_GT_GENKA.CTG3 := 0;
vrec_COS_GT_GENKA.VAR_NUM := 0;
vrec_COS_GT_GENKA.VAR_AMT := 0;
vrec_COS_GT_GENKA.VAR_COST := 0;
vrec_COS_GT_GENKA.FIX_NUM := 0;
vrec_COS_GT_GENKA.FIX_AMT := NVL(lamt, 0);
vrec_COS_GT_GENKA.FIX_COST := 0;
vrec_COS_GT_GENKA.TOTL_NUM := 0;
-- @2017/10/30 K.Sousou MOD START
--vrec_COS_GT_GENKA.TOTL_AMT := lamt;
--vrec_COS_GT_GENKA.TOTL_COST := 0;
vrec_COS_GT_GENKA.TOTL_AMT := 0;
vrec_COS_GT_GENKA.TOTL_COST := NVL(lamt, 0);
-- @2017/10/30 K.Sousou MOD END
vrec_COS_GT_GENKA.RATIO := 0;
vrec_COS_GT_GENKA.PROD_COST := 0;
vrec_COS_GT_GENKA.ORG_UPRI := 0;
vrec_COS_GT_GENKA.IN_QTY := 0;
vrec_COS_GT_GENKA.PROD_QTY := 0;
vrec_COS_GT_GENKA.SLS_AMT := 0;
vrec_COS_GT_GENKA.SLS_COST := 0;
vrec_COS_GT_GENKA.SEL_EXP := 0;
vrec_COS_GT_GENKA.ADM_EXP := 0;
vrec_COS_GT_GENKA.SLS_VAR_AMT := 0;
vrec_COS_GT_GENKA.VAR_TTL := 0;
vrec_COS_GT_GENKA.FIX_TTL := 0;
-- 登録。
-- INSERT INTO COS_GT_GENKA VALUES vrec_COS_GT_GENKA;
L_COS_GT_GENKA.EXTEND;
L_COS_GT_GENKA(L_COS_GT_GENKA.COUNT) := vrec_COS_GT_GEN...
-- 連番をカウントアップ。
lseq := lseq + 1;
lprnt_sort := lprnt_sort + 1;
-- ■原価計算結果
vrec_COS_GT_GENKA := NULL;
BEGIN
SELECT SUM(T2.ACT_COST) AS ACT_COAT
INTO lact_cost
FROM GT_ALEVEL0 T1
INNER JOIN GT_ASHUKEI T2 ON (T1.CALC_NO = T2.CALC_NO ...
INNER JOIN COS_GW_GENKA_HIS W1 ON (W1.CALC_NO = T1.CA...
WHERE 0=0
AND T1.REC_TYP = '6'
AND EXISTS (SELECT 'X'
FROM GM_HINGUNKS M1
WHERE 0=0
AND T1.YM = M1.TERM
AND M1.P_CTG_CD LIKE 'RG%'
AND T1.ITM_CD = M1.C_CTG_CD)
AND EXISTS (SELECT 'X'
FROM CM_AC_REASON M2
WHERE 0=0
AND M2.NOTE IS NULL
AND T1.AC_RSN_CD = M2.AC_RSN_CD);
-- 詰め替え。
vrec_COS_GT_GENKA.PRNT_NO := p$prnt_no;
vrec_COS_GT_GENKA.SEQ := lseq;
vrec_COS_GT_GENKA.CTG_GRP_CD := 'ZZ';
vrec_COS_GT_GENKA.CTG_GRP_NM := '除却損';
vrec_COS_GT_GENKA.PRNT_ITM_NM := '除却損';
vrec_COS_GT_GENKA.PRINT_SORT := lprnt_sort;
vrec_COS_GT_GENKA.CTG1 := 0;
vrec_COS_GT_GENKA.CTG2 := 0;
vrec_COS_GT_GENKA.CTG3 := 0;
vrec_COS_GT_GENKA.VAR_NUM := 0;
vrec_COS_GT_GENKA.VAR_AMT := 0;
vrec_COS_GT_GENKA.VAR_COST := 0;
vrec_COS_GT_GENKA.FIX_NUM := 0;
vrec_COS_GT_GENKA.FIX_AMT := lact_cost;
vrec_COS_GT_GENKA.FIX_COST := 0;
vrec_COS_GT_GENKA.TOTL_NUM := 0;
-- @2017/10/30 K.Sousou MOD START
--vrec_COS_GT_GENKA.TOTL_AMT := lact_cost;
--vrec_COS_GT_GENKA.TOTL_COST := 0;
vrec_COS_GT_GENKA.TOTL_AMT := 0;
vrec_COS_GT_GENKA.TOTL_COST := lact_cost;
-- @2017/10/30 K.Sousou MOD END
vrec_COS_GT_GENKA.RATIO := 0;
vrec_COS_GT_GENKA.PROD_COST := 0;
vrec_COS_GT_GENKA.ORG_UPRI := 0;
vrec_COS_GT_GENKA.IN_QTY := 0;
vrec_COS_GT_GENKA.PROD_QTY := 0;
vrec_COS_GT_GENKA.SLS_AMT := 0;
vrec_COS_GT_GENKA.SLS_COST := 0;
vrec_COS_GT_GENKA.SEL_EXP := 0;
vrec_COS_GT_GENKA.ADM_EXP := 0;
vrec_COS_GT_GENKA.SLS_VAR_AMT := 0;
vrec_COS_GT_GENKA.VAR_TTL := 0;
vrec_COS_GT_GENKA.FIX_TTL := 0;
-- 登録。
-- INSERT INTO COS_GT_GENKA VALUES vrec_COS_GT_GENKA;
L_COS_GT_GENKA.EXTEND;
L_COS_GT_GENKA(L_COS_GT_GENKA.COUNT) := vrec_COS_GT_GEN...
FOR n IN 1..L_COS_GT_GENKA.COUNT LOOP
FIX_AMT_SUM := FIX_AMT_SUM + NVL(L_COS_GT_GENKA(n).F...
TOTAL_AMT_SUM := TOTAL_AMT_SUM + NVL(L_COS_GT_GENKA(n)...
IF n = 1 THEN
lseq := L_COS_GT_GENKA(n).SEQ;
R_COS_GT_GENKA := L_COS_GT_GENKA(n);
R_COS_GT_GENKA.CTG1:=9;
-- @2017/10/30 K.Sousou ADD START
R_COS_GT_GENKA.CTG_GRP_CD := NULL;
R_COS_GT_GENKA.CTG_GRP_NM := NULL;
-- @2017/10/30 K.Sousou ADD END
R_COS_GT_GENKA.PRINT_SORT := NULL;
R_COS_GT_GENKA.CHD_CTG_CD := NULL;
R_COS_GT_GENKA.CHD_CTG_NM := NULL;
R_COS_GT_GENKA.EXPNS_CD := NULL;
R_COS_GT_GENKA.PRNT_ITM_NM := NULL;
R_COS_GT_GENKA.UNIT_NM := NULL;
R_COS_GT_GENKA.VAR_NUM := NULL;
R_COS_GT_GENKA.VAR_AMT := NULL;
R_COS_GT_GENKA.VAR_COST := NULL;
R_COS_GT_GENKA.FIX_NUM := NULL;
R_COS_GT_GENKA.FIX_AMT := NULL;
R_COS_GT_GENKA.FIX_COST := NULL;
R_COS_GT_GENKA.TOTL_NUM := NULL;
R_COS_GT_GENKA.TOTL_AMT := NULL;
R_COS_GT_GENKA.TOTL_COST := NULL;
R_COS_GT_GENKA.PROD_COST := NULL;
R_COS_GT_GENKA.ORG_UPRI := NULL;
R_COS_GT_GENKA.IN_QTY := NULL;
R_COS_GT_GENKA.PROD_QTY := NULL;
R_COS_GT_GENKA.SLS_AMT := NULL;
R_COS_GT_GENKA.SLS_COST := NULL;
R_COS_GT_GENKA.SEL_EXP := NULL;
R_COS_GT_GENKA.ADM_EXP := NULL;
R_COS_GT_GENKA.SLS_VAR_AMT := NULL;
R_COS_GT_GENKA.VAR_TTL := NULL;
R_COS_GT_GENKA.FIX_TTL := NULL;
INSERT INTO COS_GT_GENKA VALUES R_COS_GT_GENKA;
END IF;
-- @2017/10/30 K.Sousou MOD START
--IF n > 1 AND n < L_COS_GT_GENKA.COUNT THEN
IF n < L_COS_GT_GENKA.COUNT THEN
--L_COS_GT_GENKA(n).SEQ := lseq;
L_COS_GT_GENKA(n).SEQ := lseq + 1;
-- @2017/10/30 K.Sousou MOD END
INSERT INTO COS_GT_GENKA VALUES L_COS_GT_GENKA(n);
R_COS_GT_GENKA := NULL;
END IF;
IF n = L_COS_GT_GENKA.COUNT THEN
-- @2017/10/30 K.Sousou MOD START
--L_COS_GT_GENKA(n).SEQ := lseq;
L_COS_GT_GENKA(n).SEQ := lseq + 1;
-- @2017/10/30 K.Sousou MOD END
INSERT INTO COS_GT_GENKA VALUES L_COS_GT_GENKA(n);
R_COS_GT_GENKA := L_COS_GT_GENKA(n);
-- @2017/10/30 K.Sousou MOD START
--R_COS_GT_GENKA.SEQ := lseq+1;
R_COS_GT_GENKA.SEQ := lseq + 2;
-- @2017/10/30 K.Sousou MOD END
R_COS_GT_GENKA.CTG_GRP_NM := NULL;
R_COS_GT_GENKA.PRINT_SORT := R_COS_GT_GENKA.PRINT_SOR...
R_COS_GT_GENKA.CTG1 := 1;
R_COS_GT_GENKA.PRNT_ITM_NM := '合計';
R_COS_GT_GENKA.FIX_AMT := FIX_AMT_SUM;
R_COS_GT_GENKA.TOTL_COST := TOTAL_AMT_SUM;
INSERT INTO COS_GT_GENKA VALUES R_COS_GT_GENKA;
END IF;
lseq := lseq + 1;
END LOOP;
EXCEPTION
WHEN NO_DATA_FOUND THEN
lact_cost := 0;
END;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('ERROR' || SQLERRM);
END GENKA_ANOTHER_PRNT;
FUNCTION CHK_HINGUN_CD(
I_TERM IN GM_HINGUNKS.TERM%TYPE,
I_C_CTG_CD IN GM_HINGUNKS.C_CTG_CD%TYPE
) RETURN NUMBER
/********************************************************...
<Synopsis>
品群構成マスタチェック
<Remarks>
<Arguments>
<Item> VARCHAR2
<ReturnValue>
NUMBER
1:正常;2:複数の場合;0:ない場合
*********************************************************...
IS
-- 変数定義
TYPE T_GM_HINGUNKS IS TABLE OF GM_HINGUNKS%ROWTYPE;
L_GM_HINGUNKS T_GM_HINGUNKS;
BEGIN
SELECT *
BULK COLLECT INTO L_GM_HINGUNKS
FROM GM_HINGUNKS T1
WHERE 0 = 0
AND T1.TERM = I_TERM
AND T1.C_CTG_CD = I_C_CTG_CD;
-- @2017/10/30 K.Sousou MOD START
/*-- 取得件数2件以上の場合
IF (L_GM_HINGUNKS.COUNT > 1) THEN
RETURN FALSE;
END IF;
RETURN TRUE;
-- 取得件数0件*/
-- 取得件数2件以上の場合
IF (L_GM_HINGUNKS.COUNT > 1) THEN
RETURN 2;
END IF;
-- 取得件数0件
IF L_GM_HINGUNKS.COUNT = 0 THEN
RETURN 0;
END IF;
-- 一件だけ、正常の場合
RETURN 1;
-- @2017/10/30 K.Sousou MOD END
EXCEPTION
WHEN NO_DATA_FOUND THEN
-- @2017/10/30 K.Sousou MOD START
--RETURN TRUE;
RETURN 0;
-- @2017/10/30 K.Sousou MOD END
END;
END CPA_COS_ALLOC_PRNT_RE;
/
}}
終了行:
#highlighter(MySQL,number){{
CREATE OR REPLACE PACKAGE BODY CPA_COS_ALLOC_PRNT_RE
/********************************************************...
<Synopsis>
原価帳票情報作成パッケージ
<Remarks>
指定した計算タイプ、年月などの原価計算結果から原価帳票...
下記原価帳票に対する情報を作成する。
原価計算表
入庫明細表
*********************************************************...
IS
PROCEDURE PRE_CREATE_PRNT_DAT
/********************************************************...
<Synopsis>
帳票出力前処理
<Remarks>
<Arguments>
<ReturnValue>
*********************************************************...
IS
--ローカル変数
-- 画面パラメータ情報取得リスト
lisCOS_GW_GENKA_HIS tCOS_GW_GENKA_HIS;
-- 画面パラメータ情報行情報
vCOS_GW_GENKA_HIS COS_GW_GENKA_HIS%ROWTYPE;
-- カーソル変数
CURSOR curSTD_CAMPAIN(
p$STD_CAMPAIGN_NO IN VARCHAR2
)
IS
SELECT DISTINCT CALC_NO, YM
FROM GT_ALEVEL0
WHERE 0 = 0
AND SEG2 = p$STD_CAMPAIGN_NO
ORDER BY YM;
vcurSTD_CAMPAIN curSTD_CAMPAIN%ROWTYPE;
BEGIN
-- 品郡展開情報クリア処理
DELETE FROM COS_GW_ATENKAI;
-- キャンペーンNOから原価計算NO変換処理
SELECT *
BULK COLLECT INTO lisCOS_GW_GENKA_HIS
FROM COS_GW_GENKA_HIS
WHERE STD_CAMPAIGN_NO IS NOT NULL;
IF lisCOS_GW_GENKA_HIS.COUNT > 0 THEN
OPEN curSTD_CAMPAIN(lisCOS_GW_GENKA_HIS(1).STD_CAMPAIGN...
LOOP
FETCH curSTD_CAMPAIN INTO vcurSTD_CAMPAIN;
IF curSTD_CAMPAIN%NOTFOUND THEN
IF curSTD_CAMPAIN%ROWCOUNT > 0 THEN
NULL;
END IF;
CLOSE curSTD_CAMPAIN;
EXIT;
END IF;
IF curSTD_CAMPAIN%ROWCOUNT = 1 THEN
UPDATE COS_GW_GENKA_HIS SET CALC_NO = vcurSTD_CAMPAI...
ELSE
INSERT INTO COS_GW_GENKA_HIS(CALC_NO, STD_TERM) VALU...
END IF;
END LOOP;
END IF;
EXCEPTION
WHEN OTHERS THEN
WPA_LOG.P_PRINTF('CBD0029E', SQLERRM) ;
DBMS_OUTPUT.PUT_LINE('エラー' ||sqlerrm);
ROLLBACK;
END PRE_CREATE_PRNT_DAT;
PROCEDURE CREATE_CTG_ITM_LIST(
p$lisCOS_GW_GENKA_HIS IN OUT tCOS_GW_GENKA_HIS
)
/********************************************************...
<Synopsis>
品郡単位の展開情報リストを作成する
<Remarks>
<Arguments>
<ReturnValue>
*********************************************************...
IS
p$OPEN_INDEX INTEGER := 1; -- リスト用イ...
p$NO_OPEN_INDEX INTEGER := 1; -- リスト用イ...
p$NO_OPEN_GRP_FLG BOOLEAN := FALSE; -- レベル0展...
p$BEF_REC_GRP GT_ATENKAI.REC_GRP%TYPE; -- 前レコード...
p$LVL GT_ATENKAI.LVL%TYPE; -- 展...
p$NON_OPEN_FLG BOOLEAN := FALSE; -- 展開不要FL...
p$CHK_TYP NUMBER := 1; -- チェック区分
-- 展開品目要用リスト
TYPE tOPEN_CALC_LIST IS TABLE OF BINARY_INTEGER INDEX B...
lisOPEN_CALC_LIST tOPEN_CALC_LIST; -- レベル0用...
-- 画面パラメータ情報取得リスト
TYPE tCOS_GW_GENKA_HIS IS TABLE OF COS_GW_GENKA_HIS%ROW...
vCOS_GW_GENKA_HIS COS_GW_GENKA_HIS%ROWTYPE;
-- 原価計算展開情報リスト
TYPE tGT_ATENKAI IS TABLE OF GT_ATENKAI%ROWTYPE;
lisGT_ATENKAI1 tGT_ATENKAI; -- ...
lisGT_ATENKAI0 tGT_ATENKAI; -- ...
lisGT_ATENKAI_OPEN tGT_ATENKAI := tGT_ATENKAI(); -- ...
-- 品目展開不要リスト
TYPE tNO_OPEN_REC_GRP IS TABLE OF BINARY_INTEGER INDEX ...
lisNO_OPEN_REC_GRP tNO_OPEN_REC_GRP; -- ...
-- EXCEPTION情報
MST_CHK_EXCEPTION EXCEPTION;
CURSOR curSTD_CTG_CD(
p$CALC_NO IN GT_AGENKA.CALC_NO%TYPE
)
IS
SELECT T1.YM AS TERM, T1.ITM_CD P_ITM_CD, T2.ITM_CD C_I...
FROM GT_ALEVEL0 T1
LEFT OUTER JOIN GT_ATENKAI T2 ON (T1.CALC_NO = T2.CAL...
WHERE T1.REC_TYP = '0'
AND T1.CALC_NO = p$CALC_NO;
BEGIN
-- 実行ワークからデータ取得
SELECT *
BULK COLLECT INTO p$lisCOS_GW_GENKA_HIS
FROM COS_GW_GENKA_HIS
ORDER BY STD_CAMPAIGN_NO NULLS LAST;
-- 展開情報ワーク作成
FOR i IN 1..p$lisCOS_GW_GENKA_HIS.COUNT LOOP
FOR vcurSTD_CTG_CD IN curSTD_CTG_CD(p$lisCOS_GW_GENKA_...
-- 品郡の存在チェック
p$CHK_TYP := CHK_HINGUN_CD(vcurSTD_CTG_CD.TERM, vcurS...
IF p$CHK_TYP = 2 THEN
WPA_LOG.P_PRINTF('COS7508W', TO_CHAR(vcurSTD_CTG_CD....
RAISE MST_CHK_EXCEPTION;
END IF;
IF p$CHK_TYP = 0 THEN
WPA_LOG.P_PRINTF('COS7509W', TO_CHAR(vcurSTD_CTG_CD....
RAISE MST_CHK_EXCEPTION;
END IF;
p$CHK_TYP := CHK_HINGUN_CD(vcurSTD_CTG_CD.TERM, vcurS...
IF p$CHK_TYP = 2 THEN
WPA_LOG.P_PRINTF('COS7508W', TO_CHAR(vcurSTD_CTG_CD....
RAISE MST_CHK_EXCEPTION;
END IF;
IF p$CHK_TYP = 0 THEN
WPA_LOG.P_PRINTF('COS7509W', TO_CHAR(vcurSTD_CTG_CD....
RAISE MST_CHK_EXCEPTION;
END IF;
END LOOP;
-- 展開情報からデータを取得
SELECT *
BULK COLLECT INTO lisGT_ATENKAI1
FROM GT_ATENKAI T1
WHERE 0 = 0
AND T1.CALC_NO = p$lisCOS_GW_GENKA_HIS(i).CALC_NO
AND T1.LVL > 0
ORDER BY T1.REC_GRP DESC, T1.REC_NO ASC;
-- 展開処理ループ
FOR n IN 1..lisGT_ATENKAI1.COUNT LOOP
IF n > 1 THEN
-- 前レコードの親品郡と同じでない場合、移行の展開を...
IF p$BEF_REC_GRP <> lisGT_ATENKAI1(n).REC_GRP THEN
p$NON_OPEN_FLG := FALSE;
p$BEF_REC_GRP := lisGT_ATENKAI1(n).REC_GRP;
END IF;
ELSE
p$BEF_REC_GRP := lisGT_ATENKAI1(n).REC_GRP;
END IF;
-- 展開対象かどうか
IF p$NON_OPEN_FLG THEN
-- 展開不要になったレベル以下の場合は、展開対象
IF p$LVL >= lisGT_ATENKAI1(n).LVL THEN
p$NON_OPEN_FLG := FALSE;
-- 展開可否チェック
IF IS_OPEN_TREE(lisGT_ATENKAI1(n).CALC_NO,lisGT_ATE...
lisOPEN_CALC_LIST(lisGT_ATENKAI1(n).ITM_CD) := lis...
ELSE
p$LVL := lisGT_ATENKAI1(n).LVL;
p$NON_OPEN_FLG := TRUE;
END IF;
lisGT_ATENKAI_OPEN.EXTEND;
lisGT_ATENKAI_OPEN(p$OPEN_INDEX) := lisGT_ATENKAI1(...
p$OPEN_INDEX := p$OPEN_INDEX + 1;
END IF;
ELSE
-- 展開可否チェック
IF IS_OPEN_TREE(lisGT_ATENKAI1(n).CALC_NO,lisGT_ATEN...
lisOPEN_CALC_LIST(lisGT_ATENKAI1(n).ITM_CD) := lisG...
ELSE
p$LVL := lisGT_ATENKAI1(n).LVL;
p$NON_OPEN_FLG := TRUE;
END IF;
lisGT_ATENKAI_OPEN.EXTEND;
lisGT_ATENKAI_OPEN(p$OPEN_INDEX) := lisGT_ATENKAI1(n);
p$OPEN_INDEX := p$OPEN_INDEX + 1;
END IF;
END LOOP;
-- レベル0展開情報からデータを取得
SELECT *
BULK COLLECT INTO lisGT_ATENKAI0
FROM GT_ATENKAI T1
WHERE 0 = 0
AND T1.CALC_NO = p$lisCOS_GW_GENKA_HIS(i).CALC_NO
AND T1.LVL = 0
ORDER BY T1.REC_GRP ASC, T1.REC_NO ASC;
-- 0展開処理ループ
FOR n IN 1..lisGT_ATENKAI0.COUNT LOOP
BEGIN
IF lisOPEN_CALC_LIST(lisGT_ATENKAI0(n).ITM_CD) > 0 T...
lisNO_OPEN_REC_GRP(p$NO_OPEN_INDEX) := lisGT_ATENKA...
p$NO_OPEN_INDEX :=p$NO_OPEN_INDEX+1;
CONTINUE;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('展開対象:' || lisGT_ATENKAI0(...
END;
lisGT_ATENKAI_OPEN.EXTEND;
lisGT_ATENKAI_OPEN(p$OPEN_INDEX) := lisGT_ATENKAI0(n);
p$OPEN_INDEX := p$OPEN_INDEX + 1;
END LOOP;
IF lisGT_ATENKAI_OPEN.COUNT > 0 THEN
-- 登録
FOR IDX IN lisGT_ATENKAI_OPEN.FIRST..lisGT_ATEN...
p$NO_OPEN_GRP_FLG := FALSE;
FOR x IN 1..lisNO_OPEN_REC_GRP.COUNT LOOP
IF lisGT_ATENKAI_OPEN(IDX).REC_GRP = lisNO_OPEN_REC...
p$NO_OPEN_GRP_FLG := TRUE;
EXIT;
END IF;
END LOOP;
IF p$NO_OPEN_GRP_FLG THEN
CONTINUE;
END IF;
INSERT INTO COS_GW_ATENKAI
VALUES(lisGT_ATENKAI_OPEN(IDX).CALC_NO
, lisGT_ATENKAI_OPEN(IDX).REC_NO
, lisGT_ATENKAI_OPEN(IDX).REC_GRP
, lisGT_ATENKAI_OPEN(IDX).LVL);
END LOOP;
lisGT_ATENKAI_OPEN.DELETE;
p$OPEN_INDEX := 1;
lisNO_OPEN_REC_GRP.DELETE;
p$NO_OPEN_INDEX := 1;
END IF;
END LOOP;
-- 展開処理終了
EXCEPTION
WHEN MST_CHK_EXCEPTION THEN
ROLLBACK;
WHEN OTHERS THEN
WPA_LOG.P_PRINTF('CBD0029E', SQLERRM) ;
DBMS_OUTPUT.PUT_LINE('エラー' ||sqlerrm);
ROLLBACK;
END CREATE_CTG_ITM_LIST;
PROCEDURE CREATE_PRNT_DAT( -- 帳票出力処理
p$RC OUT VARCHAR2,
p$PRNT_NO OUT VARCHAR2
)
/********************************************************...
<Synopsis>
帳票出力処理
<Remarks>
<Arguments>
<ReturnValue>
*********************************************************...
IS
--ローカル変数
-- 品郡情報取得用リスト
TYPE tr_CTG_CD IS RECORD (
CTG_CD GM_HINGUNKS.P_CTG_CD%TYPE,
MNG_DPT_CD COS_GT_GENKA.MNG_DPT_CD%TYPE
);
TYPE tCTG_CD IS TABLE OF tr_CTG_CD INDEX BY BINARY_INTE...
lisCTG_CD tCTG_CD;
lisCOS_GW_GENKA_HIS tCOS_GW_GENKA_HIS;
-- ロジック用
p$HIS_SEQ INTEGER := 1;
p$ST_YM DATE; -- ...
p$END_YM DATE; -- ...
p$PRE_SEQ COS_GT_GENKA.SEQ%TYPE := 0;
-- カーソル情報
CURSOR curSTD_CTG_CD(
p$CALC_NO IN GT_AGENKA.CALC_NO%TYPE
)
IS
SELECT T1.YM AS TERM, T1.ITM_CD P_ITM_CD, T2.ITM_CD C_IT...
FROM GT_ALEVEL0 T1
LEFT OUTER JOIN GT_ATENKAI T2 ON (T1.CALC_NO = T2.CALC_...
WHERE T1.REC_TYP = '0'
AND T1.CALC_NO = p$CALC_NO;
vcurSTD_CTG_CD curSTD_CTG_CD%ROWTYPE;
BEGIN
WPA_LOG.P_SET_PNAME(c$project_nm);
WPA_LOG.P_PRINTF('WCS0002I', c$project_cd) ;
-- WPA_LOG.P_PRINTF('WCS0002I', '前処理開始') ;
-- 前処理
PRE_CREATE_PRNT_DAT();
-- WPA_LOG.P_PRINTF('WCS0002I', '前処理終了') ;
-- 開始年月
SELECT MIN(STD_TERM)
INTO p$ST_YM
FROM COS_GW_GENKA_HIS
WHERE 0 = 0;
-- 終了年月
SELECT MAX(STD_TERM)
INTO p$END_YM
FROM COS_GW_GENKA_HIS;
-- WPA_LOG.P_PRINTF('WCS0002I', '展開処理開始') ;
-- 展開ロジック
CREATE_CTG_ITM_LIST(lisCOS_GW_GENKA_HIS);
-- WPA_LOG.P_PRINTF('WCS0002I', '展開処理終了') ;
-- 発番処理
CP_GET_COUNTER_NUMBER('COS', g$PRINT_NO);
-- 対象品郡を取得
SELECT M1.P_CTG_CD, T1.MNG_DPT_CD
BULK COLLECT INTO lisCTG_CD
FROM GT_ALEVEL0 T1
LEFT OUTER JOIN GT_ATENKAI T2 ON (T1.CALC_NO = T2.CALC...
LEFT OUTER JOIN GM_HINGUNKS M1 ON (T2.ITM_CD = M1.C_CTG...
INNER JOIN COS_GW_GENKA_HIS W1 ON (W1.CALC_NO = T1.CALC...
WHERE 0 = 0
AND (M1.P_CTG_CD LIKE 'RS%' OR M1.P_CTG_CD LIKE 'RC%')
GROUP BY M1.P_CTG_CD, T1.MNG_DPT_CD
ORDER BY M1.P_CTG_CD DESC, T1.MNG_DPT_CD;
-- 品郡単位にループ
FOR IDX IN 1..lisCTG_CD.COUNT LOOP
-- 原価計算表作成処理実行前のシーケンスを保持
p$PRE_SEQ := g$SEQ;
g$SEQ := g$SEQ + 1;
g$MNG_DPT_CD := lisCTG_CD(IDX).MNG_DPT_CD;
-- WPA_LOG.P_PRINTF('WCS0002I', '原価計算表作成開始') ;
-- 原価計算表を作成
p$RC := EXEC_GENKA_PRNT(lisCTG_CD(IDX).CTG_CD);
-- WPA_LOG.P_PRINTF('WCS0002I', '原価計算表作成終了') ;
-- 原価計算表が1件でも存在した場合、ヘッダを追加する。
IF p$RC = '1' THEN
INSERT INTO COS_GT_GENKA(
PRNT_NO
,SEQ
,MNG_DPT_CD
,CTG_GRP_CD
,CTG_GRP_NM
,PAR_CTG_CD
,PAR_CTG_NM
,CTG1
,CTG2
,CTG3
)
SELECT
PRNT_NO
,p$PRE_SEQ
,MNG_DPT_CD
,CTG_GRP_CD
,CTG_GRP_NM
,PAR_CTG_CD
,PAR_CTG_NM
,'9'
,'0'
,'0'
FROM COS_GT_GENKA
WHERE PRNT_NO = g$PRINT_NO
AND SEQ = (g$SEQ-1)
AND ROWNUM = '1';
END IF;
-- 生産@コスト以降を一括更新
UPDATE COS_GT_GENKA
SET
VAR_COST = DECODE(g$vCOS_GT_ATENKAI_UPD.PROD_QTY,0,0,...
,FIX_COST = DECODE(g$vCOS_GT_ATENKAI_UPD.PROD_QTY,0,0...
,TOTL_COST = NVL(VAR_AMT,0) + NVL(FIX_AMT,0)
,TOTL_AMT = DECODE((VAR_NUM + FIX_NUM),0,0, (VAR_AMT+...
,PROD_COST = DECODE(g$vCOS_GT_ATENKAI_UPD.PROD_QTY,0,...
,ORG_UPRI = DECODE(g$vCOS_GT_ATENKAI_UPD.PROD_QTY,0,...
,IN_QTY = g$vCOS_GT_ATENKAI_UPD.IN_QTY
,PROD_QTY = g$vCOS_GT_ATENKAI_UPD.PROD_QTY
,SLS_AMT = g$vCOS_GT_ATENKAI_UPD.SLS_AMT
,SLS_COST = g$vCOS_GT_ATENKAI_UPD.SLS_COST
,SEL_EXP = g$vCOS_GT_ATENKAI_UPD.SEL_EXP
,ADM_EXP = g$vCOS_GT_ATENKAI_UPD.ADM_EXP
,SLS_VAR_AMT = g$vCOS_GT_ATENKAI_UPD.SLS_VAR_AMT
,VAR_TTL = g$vCOS_GT_ATENKAI_UPD.VAR_TTL
,FIX_TTL = g$vCOS_GT_ATENKAI_UPD.FIX_TTL
,RATIO = (g$vCOS_GT_ATENKAI_UPD.FIX_TTL + g$vCO...
WHERE 0=0
AND PRNT_NO = g$PRINT_NO
AND PAR_CTG_CD = lisCTG_CD(IDX).CTG_CD
AND CTG1 <> 8
AND MNG_DPT_CD = lisCTG_CD(IDX).MNG_DPT_CD;
-- 金額関連の不要な項目を一括で0に更新する。
UPDATE COS_GT_GENKA
SET VAR_COST = 0
,FIX_COST = 0
,TOTL_COST = 0
,PROD_COST = 0
WHERE 0=0
AND PRNT_NO = g$PRINT_NO
AND PAR_CTG_CD = lisCTG_CD(IDX).CTG_CD
AND MNG_DPT_CD = lisCTG_CD(IDX).MNG_DPT_CD
AND PRNT_ITM_NM IN ('売上金額','売上原価','*売上総利益...
-- 更新リスト
g$vCOS_GT_ATENKAI_UPD := NULL;
END LOOP;
-- WPA_LOG.P_PRINTF('WCS0002I', '原価計算表(その他)作...
-- 原価計算表(その他)作成
GENKA_ANOTHER_PRNT(g$PRINT_NO, g$SEQ);
-- WPA_LOG.P_PRINTF('WCS0002I', '原価計算表(その他)作...
-- WPA_LOG.P_PRINTF('WCS0002I', '入庫予定作成開始') ;
-- 入庫情報作成
CREATE_MEISAI_DAT(p$ST_YM, p$END_YM, g$PRINT_NO, g$SEQ);
-- WPA_LOG.P_PRINTF('WCS0002I', '入庫予定作成終了') ;
-- WPA_LOG.P_PRINTF('WCS0002I', '履歴作成開始') ;
-- 履歴テーブル作成
FOR i IN 1..lisCOS_GW_GENKA_HIS.COUNT LOOP
IF lisCOS_GW_GENKA_HIS(i).STD_CAMPAIGN_NO IS NOT NULL ...
INSERT INTO COS_GT_GENKA_HIS(PRNT_NO,PRNT_SEQ, REC_TY...
VALUES(g$PRINT_NO, p$HIS_SEQ ,'0', NULL, '*', lisCOS_...
EXIT;
ELSE
INSERT INTO COS_GT_GENKA_HIS(PRNT_NO,PRNT_SEQ, REC_T...
VALUES(g$PRINT_NO,p$HIS_SEQ, '0', lisCOS_GW_GENKA_HIS...
END IF;
p$HIS_SEQ := p$HIS_SEQ + 1;
END LOOP;
-- WPA_LOG.P_PRINTF('WCS0002I', '履歴作成終了') ;
p$RC := '0';
p$PRNT_NO := NVL(g$PRINT_NO, 0);
EXCEPTION
WHEN OTHERS THEN
p$RC := '9';
WPA_LOG.P_PRINTF('CBD0029E', SQLERRM) ;
DBMS_OUTPUT.PUT_LINE('エラー' ||sqlerrm);
ROLLBACK;
END CREATE_PRNT_DAT;
FUNCTION IS_OPEN_TREE (
p$CALC_NO IN GT_ATENKAI.CALC_NO%TYPE,
p$REC_NO IN GT_ATENKAI.REC_NO%TYPE,
p$REC_GRP IN GT_ATENKAI.REC_GRP%TYPE,
p$LVL IN GT_ATENKAI.LVL%TYPE
) RETURN BOOLEAN -- 展開するかどうか
/********************************************************...
<Synopsis>
展開するかどうか
<Remarks>
<Arguments>
<Item> VARCHAR2
<ReturnValue>
BOOLEAN
*********************************************************...
IS
p$SRC_CTG_CD GM_HINGUNKS.P_CTG_CD%TYPE;
p$DEST_CTG_CD GM_HINGUNKS.P_CTG_CD%TYPE;
BEGIN
SELECT M1.P_CTG_CD
INTO p$SRC_CTG_CD
FROM GT_ATENKAI T1
LEFT OUTER JOIN GM_HINGUNKS M1 ON (T1.ITM_CD = M1.C_CTG...
WHERE 0 = 0
AND T1.CALC_NO = p$CALC_NO
AND T1.REC_NO = p$REC_NO;
SELECT M1.P_CTG_CD
INTO p$DEST_CTG_CD
FROM GT_ATENKAI T1
LEFT OUTER JOIN GM_HINGUNKS M1 ON (T1.ITM_CD = M1.C_CTG...
WHERE 0 = 0
AND T1.CALC_NO = p$CALC_NO
AND T1.REC_GRP = p$REC_GRP
AND T1.LVL = (p$LVL - 1)
AND T1.REC_TYP = '0'
AND T1.REC_NO = ( SELECT MAX(T2.REC_NO)
FROM GT_ATENKAI T2
WHERE 0 = 0
AND T2.CALC_NO = T1.CALC_NO
AND T2.REC_GRP = T1.REC_GRP
AND T2.LVL = (p$LVL -1 )
AND T2.REC_TYP = '0'
AND T2.REC_NO < p$REC_NO
)
;
IF p$SRC_CTG_CD = p$DEST_CTG_CD THEN
RETURN TRUE;
END IF;
RETURN FALSE;
END IS_OPEN_TREE;
PROCEDURE SET_GENKA_OUT_LIST(
p$PRNT_SORT IN OUT NUMBER
,p$COS_GT_GENKA IN OUT COS_GT_GENKA%ROWTYPE
,p$lisCOS_GT_GENKA IN OUT tCOS_GT_GENKA
)
IS
BEGIN
p$COS_GT_GENKA.SEQ := g$SEQ;
p$COS_GT_GENKA.PRNT_NO := g$PRINT_NO;
p$lisCOS_GT_GENKA.EXTEND;
p$COS_GT_GENKA.PRINT_SORT := p$...
p$lisCOS_GT_GENKA(p$lisCOS_GT_GENKA.COUNT) := p$COS_GT_...
p$COS_GT_GENKA := NULL;
p$PRNT_SORT := p$PRNT_SORT + 1;
g$SEQ := g$SEQ + 1;
END SET_GENKA_OUT_LIST;
PROCEDURE CALC_SIKAKARI(
p$TYP IN VARCHAR2
,p$REC_GRP IN GT_ALEVEL0.REC_TYP%TYPE
,p$P_CTG_CD IN GM_HINGUN.CTG_CD%TYPE
,p$lisCOS_GT_GENKA IN OUT tCOS_GT_GENKA
,p$curALEVEL0_OPT_FLG IN OUT BOOLEAN
)
/********************************************************...
<Synopsis>
系内仕掛品の集計を行う。
<Remarks>
<Arguments>
p$FIX_TYP:固定費FLG
p$REC_GRP:レコードグループ
p$P_CTG_CD:親品郡
<Item> VARCHAR2
<ReturnValue>
*********************************************************...
IS
c$H_MONTH_BEFORE CONSTANT COS_GT_GENKA.PRNT_IT...
c$H_MONTH_AFTER CONSTANT COS_GT_GENKA.PRNT_IT...
c$K_MONTH_BEFORE CONSTANT COS_GT_GENKA.PRNT_IT...
c$K_MONTH_AFTER CONSTANT COS_GT_GENKA.PRNT_IT...
l$PRNT_ITM_NM COS_GT_GENKA.PRNT_IT...
l$PRNT_SORT NUMBER;
BEGIN
IF p$TYP = '1' THEN
IF p$REC_GRP = 'P' THEN
l$PRNT_ITM_NM := c$H_MONTH_BEFORE;
END IF;
IF p$REC_GRP = 'Q' THEN
l$PRNT_ITM_NM := c$H_MONTH_AFTER;
END IF;
END IF;
IF p$TYP = '0' THEN
IF p$REC_GRP = 'P' THEN
l$PRNT_ITM_NM := c$K_MONTH_BEFORE;
END IF;
IF p$REC_GRP = 'Q' THEN
l$PRNT_ITM_NM := c$K_MONTH_AFTER;
END IF;
END IF;
-- 系内仕掛品明細
OPEN curALEVEL0_OPT(p$TYP,p$REC_GRP,p$P_CTG_CD);
LOOP
FETCH curALEVEL0_OPT INTO vcurALEVEL0_OPT;
IF curALEVEL0_OPT%NOTFOUND THEN
IF curALEVEL0_OPT%ROWCOUNT > 0 THEN
g$vCOS_GT_GENKA_ALEVEL0_OPT.PRNT_ITM_NM := l$PR...
l$PRNT_SORT := p$lisCOS_GT_GENKA.COUNT;
SET_GENKA_OUT_LIST(l$PRNT_SORT,g$vC...
p$curALEVEL0_OPT_FLG := TRUE;
vcurALEVEL0_OPT := NULL;
END IF;
CLOSE curALEVEL0_OPT;
EXIT;
END IF;
g$vCOS_GT_GENKA_ALEVEL0_OPT := EXPNS_SUM(g$vCOS_GT_...
g$vCOS_GT_GENKA_ALVL0_OPT_SUM := EXPNS_SUM(g$vCOS_GT_...
g$vCOS_GT_GENKA_PP_SUM := EXPNS_SUM(g$vCOS_GT_...
g$vCOS_GT_GENKA_PROD_SUM := EXPNS_SUM(g$vCOS_GT_...
END LOOP;
END CALC_SIKAKARI;
FUNCTION EXEC_GENKA_PRNT(
p$P_CTG_CD IN GM_HINGUN.CTG_CD%TYPE
)
RETURN VARCHAR2 -- 原価帳票表情報作成
/********************************************************...
<Synopsis>
原価帳票情報作成
<Remarks>
<Arguments>
<Item> VARCHAR2
<ReturnValue>
文字値:9(エラー)、0(対象件数0)、1(正常...
*********************************************************...
IS
lc$MAIN_SOZAI CONSTANT COS_GT_GENKA.PRNT_ITM_...
lc$PACK_SOZAI CONSTANT COS_GT_GENKA.PRNT_ITM_...
lc$KEINAI_HIREI CONSTANT COS_GT_GENKA.PRNT_ITM_NM...
lc$KEINAI_KOTEI CONSTANT COS_GT_GENKA.PRNT_ITM...
lc$HIREI CONSTANT COS_GT_GENKA.PRNT_ITM_N...
lc$KOTEI CONSTANT COS_GT_GENKA.PRNT_ITM_N...
lc$PROD_AMT CONSTANT COS_GT_GENKA.PRNT_ITM_NM...
lc$PROD_AMT_DRT CONSTANT COS_GT_GENKA.PRNT_ITM...
lc$PROD_AMT_INDRT CONSTANT COS_GT_GENKA.PRNT_IT...
lisCOS_GT_GENKA tCOS_GT_GENKA := tCOS_GT_GENKA(); ...
lisCOS_GT_GENKA_ITM tCOS_GT_GENKA := tCOS_GT_GENKA(); ...
vcurCTG_GENKA_SUM curCTG_GENKA%ROWTYPE;
vcurCTG_GENKA_UNIT_NM curCTG_GENKA%ROWTYPE;
l$PRNT_SORT NUMBER;
p$MST_RMRKS GM_HIMOKU.MST_RMRKS%TYPE := NULL;
p$EXPNS_CD GM_HIMOKU.EXPNS_CD%TYPE := NULL;
p$C_CTG_CD GM_HINGUNKS.P_CTG_CD%TYPE := NU...
p$C_CTG_NM GM_HINGUN.CTG_NM%TYPE := NULL;
p$LVL GT_ATENKAI.LVL%TYPE := NULL;
p$ITEM_CTG_NM CM_ITEM_CTG.ITEM_CTG_NM%TYPE :=...
p$RC_CD VARCHAR(1) := NULL;
p$OTHR_RC_CD VARCHAR(1) := NULL;
p$PP_FLG CHAR(1);
p$SYSTEM_PRNT_SORT SC_SYSTEM.NMC%TYPE := 0;
p$GENKA_INDEX NUMBER := 1;
p$STR_POS NUMBER := 0;
p$curALEVEL0_OPT_FLG BOOLEAN := FALSE;
p$cur_OPEN_CNT_FLG BOOLEAN := FALSE;
p$PACK_EXPNS_FIX_FLG BOOLEAN := TRUE;
p$HIMOKU_NUM NUMBER := 0;
p$HEADER_FLG BOOLEAN := TRUE;
p$NOT_HIMOKU BOOLEAN := TRUE;
p$REC_NO GT_ATENKAI.REC_NO%TYPE := NULL;
p$PRE_SEQ COS_GT_GENKA.SEQ%TYPE := 0;
BEGIN
-- 出力対象の固定費単位まで取得
SELECT NVL(NMC,0)
INTO p$SYSTEM_PRNT_SORT
FROM SC_SYSTEM
WHERE TYP = 'COS'
AND CD = 'PONT_ORD';
-- 対象費目
SELECT SORT_NUM
INTO p$HIMOKU_NUM
FROM (
SELECT SORT_NUM,ROWNUM NUM
FROM (
SELECT DISTINCT MAX(PRINT_SORT) OVER(PARTITION BY MST...
FROM GM_HIMOKU
WHERE 0 = 0
ORDER BY SORT_NUM ASC
)
WHERE 0 = 0
)
WHERE NUM = '2';
-- 品郡単位にサマリー
OPEN curCTG_GENKA_ITM(p$P_CTG_CD);
LOOP
FETCH curCTG_GENKA_ITM INTO vcurCTG_GENKA_ITM;
IF curCTG_GENKA_ITM%NOTFOUND THEN
IF curCTG_GENKA_ITM%ROWCOUNT > 0 THEN
IF g$vCOS_GT_GENKA_ITM.PRNT_ITM_NM = '<主要材料>' ...
IF vcurCTG_GENKA_UNIT_NM.UNIT_WT > 0 THEN
g$vCOS_GT_GENKA_ITM.UNIT_NM := p$UNIT_NM;
ELSE
g$vCOS_GT_GENKA_ITM.UNIT_NM := vcurCTG_GENKA_UNIT_...
END IF;
vcurCTG_GENKA_UNIT_NM := NULL;
g$vCOS_GT_GENKA_ITM.SEQ := g$SEQ;
g$vCOS_GT_GENKA_ITM.PRNT_ITM_NM := g$vCOS_GT_GENKA_...
lisCOS_GT_GENKA.EXTEND;
g$vCOS_GT_GENKA_ITM.PRINT_SORT := lisCOS_GT_GENKA.C...
lisCOS_GT_GENKA(lisCOS_GT_GENKA.COUNT) := g$vCOS_GT...
g$SEQ := g$SEQ + 1;
g$vCOS_GT_GENKA_ITM := NULL;
p$C_CTG_CD := vcurCTG_GENKA_ITM.CHD_CTG_CD;
p$ITEM_CTG_NM := vcurCTG_GENKA_ITM.PRNT_ITM_NM;
END IF;
IF g$vCOS_GT_GENKA_ITM.PRNT_ITM_NM = '<包装材料>' ...
IF vcurCTG_GENKA_UNIT_NM.UNIT_WT > 0 THEN
g$vCOS_GT_GENKA_ITM.UNIT_NM := p$UNIT_NM;
ELSE
g$vCOS_GT_GENKA_ITM.UNIT_NM := vcurCTG_GENKA_UNIT_...
END IF;
vcurCTG_GENKA_UNIT_NM := NULL;
lisCOS_GT_GENKA_ITM.EXTEND;
lisCOS_GT_GENKA_ITM(lisCOS_GT_GENKA_ITM.COUNT) := g...
g$vCOS_GT_GENKA_ITM := NULL;
END IF;
IF lisCOS_GT_GENKA_ITM.COUNT > 0 THEN
lisCOS_GT_GENKA_ITM.EXTEND;
g$vCOS_GT_GENKA_ITM_SUM.PRNT_ITM_NM := '<包装材料...
g$vCOS_GT_GENKA_ITM_SUM.UNIT_NM := NULL;
lisCOS_GT_GENKA_ITM(lisCOS_GT_GENKA_ITM.COUNT) := g...
END IF;
END IF;
CLOSE curCTG_GENKA_ITM;
EXIT;
END IF;
IF g$vCOS_GT_GENKA_ITM.PRNT_ITM_NM <> '<包装材料>' A...
CONTINUE;
END IF;
IF p$C_CTG_CD IS NULL THEN
p$C_CTG_CD := vcurCTG_GENKA_ITM.CHD_CTG_CD;
p$ITEM_CTG_NM := vcurCTG_GENKA_ITM.PRNT_ITM_NM;
p$LVL := vcurCTG_GENKA_ITM.LVL;
p$C_CTG_NM := vcurCTG_GENKA_ITM.CHD_CTG_NM;
END IF;
IF p$LVL < vcurCTG_GENKA_ITM.LVL THEN
vcurCTG_GENKA_ITM.CHD_CTG_CD := p$C_CTG_CD;
vcurCTG_GENKA_ITM.CHD_CTG_NM := p$C_CTG_NM;
ELSE
p$LVL := vcurCTG_GENKA_ITM.LVL;
END IF;
IF vcurCTG_GENKA_ITM.REC_NO = p$REC_NO THEN
vcurCTG_GENKA_ITM.VAR_NUM := 0;
vcurCTG_GENKA_ITM.FIX_NUM := 0;
END IF;
IF vcurCTG_GENKA_UNIT_NM.UNIT_NM IS NULL THEN
vcurCTG_GENKA_UNIT_NM.UNIT_NM := vcurCTG_GENKA_ITM.UN...
vcurCTG_GENKA_UNIT_NM.UNIT_CD := vcurCTG_GENKA_ITM.UN...
vcurCTG_GENKA_UNIT_NM.UNIT_WT := vcurCTG_GENKA_ITM.UN...
END IF;
IF vcurCTG_GENKA_ITM.CHD_CTG_CD = p$C_CTG_CD AND vcurC...
g$vCOS_GT_GENKA_ITM := EXPNS_SUM(g$vCOS_GT_GENKA_ITM...
IF g$vCOS_GT_GENKA_ITM.PRNT_ITM_NM = '<包装材料>' T...
g$vCOS_GT_GENKA_ITM_SUM := EXPNS_SUM(g$vCOS_GT_GEN...
END IF;
IF g$vCOS_GT_GENKA_ITM.PRNT_ITM_NM = '<主要材料>' T...
g$vCOS_GT_GENKA_EXPNS_GRP := EXPNS_SUM(g$vCOS_GT_GEN...
END IF;
ELSE
IF g$vCOS_GT_GENKA_ITM.PRNT_ITM_NM = '<主要材料>' T...
g$vCOS_GT_GENKA_ITM.SEQ := g$SEQ;
g$vCOS_GT_GENKA_ITM.PRNT_ITM_NM := g$vCOS_GT_GENKA_I...
g$vCOS_GT_GENKA_ITM.EXPNS_CD := NULL;
IF vcurCTG_GENKA_UNIT_NM.UNIT_WT > 0 THEN
g$vCOS_GT_GENKA_ITM.UNIT_NM := p$UNIT_NM;
ELSE
g$vCOS_GT_GENKA_ITM.UNIT_NM := vcurCTG_GENKA_UNIT_N...
END IF;
vcurCTG_GENKA_UNIT_NM := NULL;
lisCOS_GT_GENKA.EXTEND;
g$vCOS_GT_GENKA_ITM.PRINT_SORT := lisCOS_GT_GENKA.CO...
lisCOS_GT_GENKA(lisCOS_GT_GENKA.COUNT) := g$vCOS_GT_...
g$SEQ := g$SEQ + 1;
g$vCOS_GT_GENKA_ITM := NULL;
p$C_CTG_CD := vcurCTG_GENKA_ITM.CHD_CTG_CD;
p$C_CTG_NM := vcurCTG_GENKA_ITM.CHD_CTG_NM;
p$ITEM_CTG_NM := vcurCTG_GENKA_ITM.PRNT_ITM_NM;
END IF;
IF g$vCOS_GT_GENKA_ITM.PRNT_ITM_NM = '<包装材料>' T...
IF vcurCTG_GENKA_UNIT_NM.UNIT_WT > 0 THEN
g$vCOS_GT_GENKA_ITM.UNIT_NM := p$UNIT_NM;
ELSE
g$vCOS_GT_GENKA_ITM.UNIT_NM := vcurCTG_GENKA_UNIT_N...
END IF;
vcurCTG_GENKA_UNIT_NM := NULL;
lisCOS_GT_GENKA_ITM.EXTEND;
lisCOS_GT_GENKA_ITM(lisCOS_GT_GENKA_ITM.COUNT) := g$...
p$C_CTG_CD := vcurCTG_GENKA_ITM.CHD_CTG_CD;
p$C_CTG_NM := vcurCTG_GENKA_ITM.CHD_CTG_NM;
p$ITEM_CTG_NM := vcurCTG_GENKA_ITM.PRNT_ITM_NM;
g$vCOS_GT_GENKA_ITM := NULL;
END IF;
IF vcurCTG_GENKA_ITM.PRNT_ITM_NM = '<包装材料>' THEN
g$vCOS_GT_GENKA_ITM_SUM := EXPNS_SUM(g$vCOS_GT_GEN...
END IF;
IF vcurCTG_GENKA_ITM.PRNT_ITM_NM = '<主要材料>' THEN
g$vCOS_GT_GENKA_EXPNS_GRP := EXPNS_SUM(g$vCOS_GT_GEN...
END IF;
g$vCOS_GT_GENKA_ITM := EXPNS_SUM(g$vCOS_GT_GENKA_IT...
END IF;
IF (vcurCTG_GENKA_UNIT_NM.UNIT_CD IS NULL) OR (vcurCTG...
vcurCTG_GENKA_UNIT_NM.UNIT_NM := vcurCTG_GENKA_ITM.UN...
vcurCTG_GENKA_UNIT_NM.UNIT_CD := vcurCTG_GENKA_ITM.UN...
END IF;
vcurCTG_GENKA_UNIT_NM.UNIT_WT := NVL(vcurCTG_GENKA_UNI...
g$vCOS_GT_GENKA_PP_SUM := EXPNS_SUM(g$vCOS_GT_GENKA_PP...
g$vCOS_GT_GENKA_PROD_SUM := EXPNS_SUM(g$vCOS_GT...
p$REC_NO := vcurCTG_GENKA_ITM.REC_NO;
END LOOP;
-- WPA_LOG.P_PRINTF('WCS0002I','費目出力開始:' || p$P_CT...
OPEN curCTG_GENKA(p$P_CTG_CD);
LOOP
FETCH curCTG_GENKA INTO vcurCTG_GENKA;
IF curCTG_GENKA%NOTFOUND THEN
IF curCTG_GENKA%ROWCOUNT > 0 THEN
-- 最終行処理
-- 費目追加
g$vCOS_GT_GENKA_EXPNS.PRNT_NO := g$PRINT_NO;
IF p$NOT_HIMOKU = FALSE THEN
l$PRNT_SORT := lisCOS_GT_GENKA.COUNT;
SET_GENKA_OUT_LIST(l$PRNT_SORT,...
p$EXPNS_CD := vcurCTG_GENKA.EXPNS_CD;
-- 費目G追加
g$vCOS_GT_GENKA_EXPNS_GRP.CHD_CTG_CD := NULL;
g$vCOS_GT_GENKA_EXPNS_GRP.CHD_CTG_NM := NULL;
g$vCOS_GT_GENKA_EXPNS_GRP.EXPNS_CD := NULL;
g$vCOS_GT_GENKA_EXPNS_GRP.PRNT_ITM_NM := p$MST...
g$vCOS_GT_GENKA_EXPNS_GRP.CTG1 := 1;
l$PRNT_SORT := lisCOS_GT_GENKA.COUNT;
SET_GENKA_OUT_LIST(l$PRNT_SORT,...
ELSE
-- 費目G追加
IF g$vCOS_GT_GENKA_EXPNS_GRP.PRNT_NO IS NOT NULL THEN
g$vCOS_GT_GENKA_EXPNS_GRP.CHD_CTG_CD := NULL;
g$vCOS_GT_GENKA_EXPNS_GRP.CHD_CTG_NM := NULL;
g$vCOS_GT_GENKA_EXPNS_GRP.UNIT_NM := NULL;
g$vCOS_GT_GENKA_EXPNS_GRP.EXPNS_CD := NULL;
g$vCOS_GT_GENKA_EXPNS_GRP.CTG1 := 1;
l$PRNT_SORT := lisCOS_GT_GENKA.COUNT;
SET_GENKA_OUT_LIST(l$PRNT...
p$MST_RMRKS := vcurCTG_GENKA.MST_RMRKS;
END IF;
FOR x IN 1..lisCOS_GT_GENKA_ITM.COUNT LOOP
lisCOS_GT_GENKA_ITM(x).EXPNS_CD := NULL;
IF lisCOS_GT_GENKA_ITM.COUNT <> x THEN
lisCOS_GT_GENKA_ITM(x).PRNT_ITM_NM := lisCO...
lisCOS_GT_GENKA_ITM(x).CTG1 := 0;
ELSE
lisCOS_GT_GENKA_ITM(x).CTG1 := 1;
lisCOS_GT_GENKA_ITM(x).CHD_CTG_CD := NULL;
lisCOS_GT_GENKA_ITM(x).CHD_CTG_NM := NULL;
END IF;
l$PRNT_SORT := lisCOS_GT_GENKA.COUNT;
SET_GENKA_OUT_LIST(l$PRNT...
p$MST_RMRKS := vcurCTG_GENKA.MST_RMRKS;
END LOOP;
-- 系内仕掛品明細(比例費前月)
CALC_SIKAKARI('1','P',p$P_CTG_...
-- 系内仕掛品明細(比例費当月)
CALC_SIKAKARI('1','Q',p$P_CTG_CD,lisCOS_GT_GENKA,p$...
IF p$curALEVEL0_OPT_FLG THEN
-- 系内仕掛品 その他比例費
g$vCOS_GT_GENKA_ALVL0_OPT_SUM.SEQ := g$SEQ;
g$vCOS_GT_GENKA_ALVL0_OPT_SUM.PRNT_NO := g$PRINT_NO;
g$vCOS_GT_GENKA_ALVL0_OPT_SUM.PRNT_ITM_NM := ...
g$vCOS_GT_GENKA_ALVL0_OPT_SUM.CTG1 := 1;
l$PRNT_SORT := lisCOS_GT_GENKA.COUNT;
SET_GENKA_OUT_LIST(l$PRNT...
p$curALEVEL0_OPT_FLG := FALSE;
END IF;
-- 比例サマリー
g$vCOS_GT_GENKA_PP_SUM.EXPNS_CD := NULL;
g$vCOS_GT_GENKA_PP_SUM.PRNT_ITM_NM := lc$HIREI;
g$vCOS_GT_GENKA_PP_SUM.CTG1 := 2;
l$PRNT_SORT := lisCOS_GT_GENKA.COUNT;
SET_GENKA_OUT_LIST(l$PRNT_SORT...
p$PP_FLG := vcurCTG_GENKA.PP_FLG;
p$SYSTEM_PRNT_SORT := 999999999;
END IF;
-- 系内仕掛品明細(固定費前月)
CALC_SIKAKARI('0','P',p$P_CTG_CD,l...
-- 系内仕掛品明細(固定費当月)
CALC_SIKAKARI('0','Q',p$P_CTG_CD,l...
-- <系内仕掛品 その他固定費>
IF p$curALEVEL0_OPT_FLG THEN
g$vCOS_GT_GENKA_ALVL0_OPT_SUM.PRNT_ITM_NM := ...
g$vCOS_GT_GENKA_ALVL0_OPT_SUM.CTG1 := '1';
l$PRNT_SORT := lisCOS_GT_GENKA.COUNT;
SET_GENKA_OUT_LIST(l$PRNT_SORT...
p$curALEVEL0_OPT_FLG := FALSE;
END IF;
IF g$vCOS_GT_GENKA_PP_SUM.PRNT_NO IS NOT NULL THEN
-- 固定費追加
g$vCOS_GT_GENKA_PP_SUM.EXPNS_CD := NULL;
g$vCOS_GT_GENKA_PP_SUM.PRNT_ITM_NM := lc$KOTEI;
g$vCOS_GT_GENKA_PP_SUM.CTG1 := 2;
l$PRNT_SORT := lisCOS_GT_GENKA.COUNT;
SET_GENKA_OUT_LIST(l$PRNT_SORT...
END IF;
-- 生産金額(部門計)
g$vCOS_GT_GENKA_PROD_SUM.EXPNS_CD := NULL;
g$vCOS_GT_GENKA_PROD_SUM.PRNT_ITM_NM := lc$PRO...
g$vCOS_GT_GENKA_PROD_SUM.CTG1 := 2;
-- セットするRowがクリアされるため...
g$vCOS_GT_GENKA_DIRECT_SUM := EXPNS_MINUS(g$vCOS_GT_...
l$PRNT_SORT := lisCOS_GT_GENKA.COUNT;
-- 最後の更新用設定
g$vCOS_GT_ATENKAI_UPD.VAR_TTL := g$vCOS_GT_GENKA_PRO...
g$vCOS_GT_ATENKAI_UPD.FIX_TTL := g$vCOS_GT_GENKA_PRO...
SET_GENKA_OUT_LIST(l$PRNT_SORT, g$...
-- 内 製造直接費
g$vCOS_GT_GENKA_DIRECT_SUM.EXPNS_CD := NULL;
g$vCOS_GT_GENKA_DIRECT_SUM.PRNT_ITM_NM := lc$P...
g$vCOS_GT_GENKA_DIRECT_SUM.CTG1 := 3;
l$PRNT_SORT := lisCOS_GT_GENKA.COUNT;
SET_GENKA_OUT_LIST(l$PRNT_SORT, g$...
-- 内 製造間接費
IF g$vCOS_GT_GENKA_INDIRECT_SUM.PRNT_NO IS NOT NULL ...
g$vCOS_GT_GENKA_INDIRECT_SUM.EXPNS_CD := N...
g$vCOS_GT_GENKA_INDIRECT_SUM.PRNT_ITM_NM := l...
g$vCOS_GT_GENKA_INDIRECT_SUM.CTG1 := 3;
l$PRNT_SORT := lisCOS_GT_GENKA.COUNT;
SET_GENKA_OUT_LIST(l$PRNT_SORT...
END IF;
END IF;
CLOSE curCTG_GENKA;
EXIT;
END IF;
-- 主要材料対象外処理
IF (vcurCTG_GENKA.MST_RMRKS = lc$MAIN_SOZAI) AND (IS_O...
CONTINUE;
END IF;
-- 包装材料対象外処理
IF vcurCTG_GENKA.MST_RMRKS = lc$PACK_SOZAI THEN
CONTINUE;
END IF;
p$NOT_HIMOKU := FALSE;
IF p$MST_RMRKS IS NULL THEN
p$MST_RMRKS := vcurCTG_GENKA.MST_RMRKS;
END IF;
IF p$EXPNS_CD IS NULL THEN
p$EXPNS_CD := vcurCTG_GENKA.EXPNS_CD;
END IF;
IF p$PP_FLG IS NULL THEN
p$PP_FLG := vcurCTG_GENKA.PP_FLG;
END IF;
-- 比例費固定費マージ
IF SUBSTR(p$EXPNS_CD,1,5) = SUBSTR(vcurCTG_GENKA.EXPNS...
g$vCOS_GT_GENKA_EXPNS := EXPNS_SUM(g$vCOS_GT_GENKA_EX...
ELSE
g$vCOS_GT_GENKA_EXPNS.EXPNS_CD := SUBSTR(g$vCOS_GT_GE...
p$STR_POS := INSTR(g$vCOS_GT_GENKA_EXPNS.PRNT_ITM_NM,...
IF p$STR_POS <= 0 THEN
p$STR_POS := LENGTH(g$vCOS_GT_GENKA_EXPNS.PRNT_ITM_N...
END IF;
g$vCOS_GT_GENKA_EXPNS.PRNT_ITM_NM := SUBSTR(g$vCOS_GT...
l$PRNT_SORT := lisCOS_GT_GENKA.COUNT;
SET_GENKA_OUT_LIST(l$PRNT_SORT, g$vCOS_...
p$EXPNS_CD := vcurCTG_GENKA.EXPNS_CD;
g$vCOS_GT_GENKA_EXPNS := EXPNS_SUM(g$vCOS_GT_GENKA_EX...
END IF;
-- 費目Gサマリー
-- WPA_LOG.P_PRINTF('WCS0002I',vcurCTG_GENKA.UNIT_CD);
IF p$MST_RMRKS = vcurCTG_GENKA.MST_RMRKS THEN
g$vCOS_GT_GENKA_EXPNS_GRP := EXPNS_SUM(g$vCOS_GT_GENK...
ELSE
g$vCOS_GT_GENKA_EXPNS_GRP.CHD_CTG_CD := NULL;
g$vCOS_GT_GENKA_EXPNS_GRP.CHD_CTG_NM := NULL;
g$vCOS_GT_GENKA_EXPNS_GRP.EXPNS_CD := NULL;
g$vCOS_GT_GENKA_EXPNS_GRP.PRNT_ITM_NM := p$MST_...
g$vCOS_GT_GENKA_EXPNS_GRP.CTG1 := 1;
l$PRNT_SORT := lisCOS_GT_GENKA.COUNT;
SET_GENKA_OUT_LIST(l$PRNT_SORT, g$vCOS_...
p$MST_RMRKS := vcurCTG_GENKA.MST_RMRKS;
g$vCOS_GT_GENKA_EXPNS_GRP := EXPNS_SUM(g$vCOS_GT_GENK...
END IF;
--
IF (vcurCTG_GENKA.PRINT_SORT > p$HIMOKU_NUM ) THEN
IF p$PACK_EXPNS_FIX_FLG THEN
FOR x IN 1..lisCOS_GT_GENKA_ITM.COUNT LOOP
lisCOS_GT_GENKA_ITM(x).SEQ := g$SEQ;
lisCOS_GT_GENKA_ITM(x).EXPNS_CD := NULL;
IF lisCOS_GT_GENKA_ITM.COUNT <> x THEN
lisCOS_GT_GENKA_ITM(x).PRNT_ITM_NM := lisCOS...
lisCOS_GT_GENKA_ITM(x).CTG1 := 0;
ELSE
lisCOS_GT_GENKA_ITM(x).CTG1 := 1;
lisCOS_GT_GENKA_ITM(x).CHD_CTG_CD := NULL;
lisCOS_GT_GENKA_ITM(x).CHD_CTG_NM := NULL;
END IF;
l$PRNT_SORT := lisCOS_GT_GENKA.COUNT;
SET_GENKA_OUT_LIST(l$PRNT_SORT...
p$MST_RMRKS := vcurCTG_GENKA.MST_RMRKS;
END LOOP;
END IF;
p$PACK_EXPNS_FIX_FLG := FALSE;
END IF;
-- IF p$PP_FLG = vcurCTG_GENKA.PP_FLG THEN
IF vcurCTG_GENKA.PRINT_SORT < p$SYSTEM_PRNT_SORT THEN
g$vCOS_GT_GENKA_PP_SUM := EXPNS_SUM(g$vCOS_GT_GENKA_P...
ELSE
-- 系内仕掛品明細(比例費前月)
CALC_SIKAKARI('1','P',p$P_CTG_CD,lisCOS...
-- 系内仕掛品明細(比例費当月)
CALC_SIKAKARI('1','Q',p$P_CTG_CD,lisCOS_GT_GENKA,p$cu...
IF p$curALEVEL0_OPT_FLG THEN
-- 系内仕掛品 その他比例費
g$vCOS_GT_GENKA_ALVL0_OPT_SUM.PRNT_ITM_NM := lc...
g$vCOS_GT_GENKA_ALVL0_OPT_SUM.CTG1 := 1;
l$PRNT_SORT := lisCOS_GT_GENKA.COUNT;
SET_GENKA_OUT_LIST(l$PRNT_SORT, g$v...
p$curALEVEL0_OPT_FLG := FALSE;
END IF;
-- 比例サマリー
g$vCOS_GT_GENKA_PP_SUM.EXPNS_CD := NULL;
g$vCOS_GT_GENKA_PP_SUM.PRNT_ITM_NM := lc$HIREI;
g$vCOS_GT_GENKA_PP_SUM.CTG1 := 2;
l$PRNT_SORT := lisCOS_GT_GENKA.COUNT;
SET_GENKA_OUT_LIST(l$PRNT_SORT, g$vCOS_...
p$PP_FLG := vcurCTG_GENKA.PP_FLG;
p$SYSTEM_PRNT_SORT := 999999999;
g$vCOS_GT_GENKA_PP_SUM := EXPNS_SUM(g$vCOS_GT_GENKA_P...
END IF;
-- 生産金額(部門計)サマリー
g$vCOS_GT_GENKA_PROD_SUM := EXPNS_SUM(g$vCOS_GT_GENKA_...
-- 内 製造間接費
IF vcurCTG_GENKA.INDIRECT_FLG = '1' THEN
g$vCOS_GT_GENKA_INDIRECT_SUM := EXPNS_SUM(g$vCOS_GT_G...
END IF;
END LOOP;
p$GENKA_INDEX := lisCOS_GT_GENKA.COUNT;
IF lisCOS_GT_GENKA.COUNT > 0 THEN
FOR i in 1..lisCOS_GT_GENKA.COUNT LOOP
INSERT INTO COS_GT_GENKA VALUES lisCOS_GT_GENKA(i);
END LOOP;
p$RC_CD := '1';
ELSE
p$RC_CD := '0';
END IF ;
l$PRNT_SORT := lisCOS_GT_GENKA.COUNT;
lisCOS_GT_GENKA.DELETE;
p$PRE_SEQ := g$SEQ;
-- 生産金額以降の情報を出力
p$OTHR_RC_CD := OPTION_GENKA_PRNT(l$PRNT_SORT, p$P_CTG_...
IF p$OTHR_RC_CD = '1' OR p$RC_CD = '1' THEN
p$RC_CD := '1';
ELSE
p$RC_CD := '0';
END IF;
RETURN p$RC_CD;
END EXEC_GENKA_PRNT;
FUNCTION IS_OUTPUT_EXPNS (
p$EXPNS_CD IN GM_HIMOKU.EXPNS_CD%TYPE
) RETURN BOOLEAN -- 出力対象の費目かどうか
/********************************************************...
<Synopsis>
出力対象の費目かどうか
<Remarks>
<Arguments>
<Item> VARCHAR2
<ReturnValue>
BOOLEAN
*********************************************************...
IS
p$LITERAL SC_SYSTEM.LITERAL%TYPE := NULL;
p$EXPNS_OPEN_FLG BOOLEAN := FALSE;
p$STR GM_HIMOKU.EXPNS_CD%TYPE := NULL;
p$POS NUMBER := 1;
BEGIN
SELECT LITERAL
INTO p$LITERAL
FROM SC_SYSTEM
WHERE TYP = 'COS'
AND CD = 'VER_EXP_CD';
FOR f IN 1..LENGTH(p$LITERAL) LOOP
IF LENGTH(p$LITERAL) = 0 THEN
EXIT;
END IF;
p$STR := SUBSTR(p$LITERAL, p$POS, INSTR(p$LITERAL, ','...
IF INSTR(p$LITERAL, ',', 1, f) = 0 THEN
p$STR := SUBSTR(p$LITERAL, p$POS, LENGTH(p$LITERAL));
-- DBMS_OUTPUT.PUT_LINE('文字列:' || p$STR);
ELSE
DBMS_OUTPUT.PUT_LINE('文字列:' || p$STR);
END IF;
IF p$STR = p$EXPNS_CD THEN
p$EXPNS_OPEN_FLG := TRUE;
END IF;
p$POS := INSTR(p$LITERAL, ',', 1, f) + 1;
IF p$POS = 1 THEN
EXIT;
END IF;
END LOOP;
RETURN p$EXPNS_OPEN_FLG;
END IS_OUTPUT_EXPNS;
FUNCTION OPTION_GENKA_PRNT(
p$PRNT_SORT IN NUMBER,
p$P_CTG_CD IN GM_HINGUN.CTG_CD%TYPE
)
RETURN VARCHAR2 -- 原価帳票表情報作成
/********************************************************...
<Synopsis>
製造合計以降の情報を出力
<Remarks>
<Arguments>
<Item> VARCHAR2
<ReturnValue>
文字値:9(エラー)、0(対象件数0)、1(正常...
*********************************************************...
IS
vCOS_GT_GENKA_INPT COS_GT_GENKA%ROWTYPE;
vCOS_GT_GENKA_NON_INPT COS_GT_GENKA%ROWTYPE;
g$vCOS_GT_GENKA_ITM COS_GT_GENKA%ROWTYPE;
vCOS_STKACXFR_RSN_SUM COS_GT_GENKA%ROWTYPE;
vCOS_ACXFR_RSN_SUM COS_GT_GENKA%ROWTYPE;
vCOS_ACXFR_SUM COS_GT_GENKA%ROWTYPE;
vCOS_HARAI_SUM COS_GT_GENKA%ROWTYPE;
vCOS_RC_INPT_SUM COS_GT_GENKA%ROWTYPE;
lisCOS_GT_GENKA tCOS_GT_GENKA := tCOS_GT_GENKA();
vcurCTG_GENKA_SUM curCTG_GENKA%ROWTYPE;
p$ITM_CD GT_ALEVEL0.ITM_CD%TYPE := NULL;
p$NON_INPT_FLG BOOLEAN := FALSE;
l$GUI_INDEX NUMBER := 0;
p$AC_RSN_CD GT_ALEVEL0.AC_RSN_CD%TYPE := NU...
p$LITERAL SC_SYSTEM.LITERAL%TYPE := NULL;
TYPE tLITERAL IS TABLE OF SC_SYSTEM.LITERAL%TYPE INDEX...
lisLITERAL tLITERAL;
p$RC_INPT_FLG BOOLEAN := FALSE;
p$STR CM_AC_REASON.AC_RSN_CD%TYPE;
p$POS NUMBER := 1;
p$WHR VARCHAR2(1000);
p$RC_CD VARCHAR2(1) := '0';
EXEC_SQL VARCHAR2(30000 CHAR) := NULL;
-- 他勘定払出(動的SQL
ACXFR_SQL VARCHAR2(4000 CHAR) := '
SELECT 0 AS PRNT_NO
,0 AS SEQ
,T1.MNG_DPT_CD
,M4.CTG_GRP_CD AS CTG_GRP_CD
,M4.CTG_GRP_NM AS CTG_GRP_NM
,M1.P_CTG_CD AS PAR_CTG_CD
,M3.MST_RMRKS AS PAR_CTG_NM
,NULL AS CHD_CTG_CD
,NULL AS CHD_CTG_NM
,T2.EXPNS_CD
,M2.EXPNS_NM AS PRNT_ITM_NM
,0 AS CTG1
,0 AS CTG2
,0 AS CTG3
,NULL AS UNIT_NM
,DECODE(M2.VAR_FLG, 1, T1.ACT_QTY, 0) AS VAR...
,DECODE(M2.VAR_FLG, 1, T2.ACT_COST, 0) AS VAR_AMT
,CASE WHEN M2.VAR_FLG = 0 THEN 0
WHEN NVL(T1.ACT_QTY,0) = 0 THEN 0
ELSE (T2.ACT_COST/T1.ACT_QTY)
END AS VAR_COST
,DECODE(M2.VAR_FLG, 1, 0, T1.ACT_QTY) AS FIX_NUM
,DECODE(M2.VAR_FLG, 1, 0, T2.ACT_COST) AS FIX_AMT
,CASE WHEN M2.VAR_FLG = 1 THEN 0
WHEN NVL(T1.ACT_QTY,0) = 0 THEN 0
ELSE (T2.ACT_COST/T1.ACT_QTY)
END AS FIX_COST
,0 AS TOTL_NUM
,0 AS TOTL_AMT
,0 AS TOTL_COST
,0 AS RATIO
,0 AS PROD_COST
,0 AS ORG_UPRI
,0 AS IN_QTY
,0 AS PROD_QTY
,0 AS SLS_AMT
,0 AS SLS_COST
,0 AS SEL_EXP
,0 AS ADM_EXP
,0 AS SLS_VAR_AMT
,0 AS VAR_TTL
,0 AS FIX_TTL
,T1.CALC_NO
,T1.REC_GRP
,0 AS REC_NO
,0 AS LVL
,M2.MST_RMRKS
,M2.PRINT_SORT
,M2.VAR_FLG
,M2.INDIRECT_FLG
,MAX(M2.VAR_FLG) OVER(PARTITION BY M2.MST_RMRKS) AS PP...
,T1.ITM_CD
,NULL AC_RSN_CD
,NULL AC_RSN_NM
FROM GT_ALEVEL0 T1
LEFT OUTER JOIN GT_ASHUKEI T2 ON (T1.CALC_NO = T2.CAL...
LEFT OUTER JOIN GM_HINGUNKS M1 ON (T1.ITM_CD = M1.C_CT...
INNER JOIN GM_HIMOKU M2 ON (T2.EXPNS_CD = M2.EX...
LEFT OUTER JOIN GM_HINGUN M3 ON (M1.P_CTG_CD = M3.CT...
LEFT OUTER JOIN GM_HINGUNG M4 ON (M3.CTG_GRP_CD = M4....
LEFT OUTER JOIN CM_HINMO M5 ON (T1.ITM_CD = M5.ITM_...
LEFT OUTER JOIN CM_AC_REASON M7 ON (T1.AC_RSN_CD = M7.A...
INNER JOIN COS_GW_GENKA_HIS W1 ON (W1.CALC_NO = T1.CALC...
WHERE 0 = 0
AND T1.ASST_TYP = ''1''
AND T1.REC_TYP = ''6'' ';
STK_ACXFR_SQL VARCHAR2(4000 CHAR) := '
SELECT 0 AS PRNT_NO
,0 AS SEQ
,T1.MNG_DPT_CD
,M4.CTG_GRP_CD AS CTG_GRP_CD
,M4.CTG_GRP_NM AS CTG_GRP_NM
,M1.P_CTG_CD AS PAR_CTG_CD
,M3.MST_RMRKS AS PAR_CTG_NM
,NULL AS CHD_CTG_CD
,NULL AS CHD_CTG_NM
,T2.EXPNS_CD
,M2.EXPNS_NM AS PRNT_ITM_NM
,0 AS CTG1
,0 AS CTG2
,0 AS CTG3
,NULL AS UNIT_NM
,DECODE(M2.VAR_FLG, 1, T1.ACT_QTY, 0) ...
,DECODE(M2.VAR_FLG, 1, T2.ACT_COST, 0) AS VAR_AMT
,CASE WHEN M2.VAR_FLG = 0 THEN 0
WHEN NVL(T1.ACT_QTY,0) = 0 THEN 0
ELSE (T2.ACT_COST/T1.ACT_QTY)
END AS VAR_COST
,DECODE(M2.VAR_FLG, 1, 0, T1.ACT_QTY) AS FIX_NUM
,DECODE(M2.VAR_FLG, 1, 0, T2.ACT_COST) AS FIX_AMT
,CASE WHEN M2.VAR_FLG = 1 THEN 0
WHEN NVL(T1.ACT_QTY,0) = 0 THEN 0
ELSE (T2.ACT_COST/T1.ACT_QTY)
END AS FIX_COST
,0 AS TOTL_NUM
,0 AS TOTL_AMT
,0 AS TOTL_COST
,0 AS RATIO
,0 AS PROD_COST
,0 AS ORG_UPRI
,0 AS IN_QTY
,0 AS PROD_QTY
,0 AS SLS_AMT
,0 AS SLS_COST
,0 AS SEL_EXP
,0 AS ADM_EXP
,0 AS SLS_VAR_AMT
,0 AS VAR_TTL
,0 AS FIX_TTL
,T1.CALC_NO
,T1.REC_GRP
,0 AS REC_NO
,0 AS LVL
,M2.MST_RMRKS
,M2.PRINT_SORT
,M2.VAR_FLG
,M2.INDIRECT_FLG
,MAX(M2.VAR_FLG) OVER(PARTITION BY M2.MST_RMRKS) AS P...
,T1.ITM_CD
,T1.AC_RSN_CD
,M7.AC_RSN_NM
FROM GT_ALEVEL0 T1
LEFT OUTER JOIN GT_ASHUKEI T2 ON (T1.CALC_NO = T2.CA...
LEFT OUTER JOIN GM_HINGUNKS M1 ON (T1.ITM_CD = M1.C_C...
INNER JOIN GM_HIMOKU M2 ON (T2.EXPNS_CD = M2.E...
LEFT OUTER JOIN GM_HINGUN M3 ON (M1.P_CTG_CD = M3.C...
LEFT OUTER JOIN GM_HINGUNG M4 ON (M3.CTG_GRP_CD = M4...
LEFT OUTER JOIN CM_HINMO M5 ON (T1.ITM_CD = M5.ITM...
LEFT OUTER JOIN CM_AC_REASON M7 ON (T1.AC_RSN_CD = M7....
INNER JOIN COS_GW_GENKA_HIS W1 ON (W1.CALC_NO = T1.CAL...
WHERE 0 = 0
AND T1.ASST_TYP = ''1''
AND T1.REC_TYP = ''6''
AND M7.NOTE IS NULL';
TYPE tACXFR_HARAI IS TABLE OF curRC_INPT%ROWTYPE;
lisACXFR_HARAI tACXFR_HARAI;
lisSTK_ACXFR_HARAI tACXFR_HARAI;
BEGIN
l$GUI_INDEX := p$PRNT_SORT;
l$GUI_INDEX := l$GUI_INDEX+1;
-- <未入庫仕掛品>
OPEN curNON_INPT_ITM('1', p$P_CTG_CD);
LOOP
FETCH curNON_INPT_ITM INTO vcurNON_INPT_ITM;
IF curNON_INPT_ITM%NOTFOUND THEN
IF curNON_INPT_ITM%ROWCOUNT > 0 THEN
vCOS_GT_GENKA_NON_INPT.EXPNS_CD := NULL;
vCOS_GT_GENKA_NON_INPT.CTG1 := '0';
vCOS_GT_GENKA_NON_INPT.PRNT_ITM_NM := '未入庫仕掛...
SET_GENKA_OUT_LIST(l$GUI_INDEX, vC...
p$NON_INPT_FLG := TRUE;
END IF;
CLOSE curNON_INPT_ITM;
EXIT;
END IF;
vCOS_GT_GENKA_NON_INPT := EXPNS_SUM(vCOS_GT_GENKA_NON_...
g$vCOS_GT_GENKA_ITM := EXPNS_SUM(g$vCOS_GT_GENKA_...
END LOOP;
OPEN curNON_INPT_ITM('3', p$P_CTG_CD);
LOOP
FETCH curNON_INPT_ITM INTO vcurNON_INPT_ITM;
IF curNON_INPT_ITM%NOTFOUND THEN
IF curNON_INPT_ITM%ROWCOUNT > 0 THEN
vCOS_GT_GENKA_NON_INPT.EXPNS_CD := NULL;
vCOS_GT_GENKA_NON_INPT.CTG1 := '0';
vCOS_GT_GENKA_NON_INPT.PRNT_ITM_NM := '未入庫仕掛...
SET_GENKA_OUT_LIST(l$GUI_INDEX, vC...
p$NON_INPT_FLG := TRUE;
END IF;
CLOSE curNON_INPT_ITM;
EXIT;
END IF;
vCOS_GT_GENKA_NON_INPT := EXPNS_SUM(vCOS_GT_GENKA_NON_...
g$vCOS_GT_GENKA_ITM := EXPNS_SUM(g$vCOS_GT_GENKA_...
END LOOP;
IF p$NON_INPT_FLG THEN
g$vCOS_GT_GENKA_ITM.EXPNS_CD := NULL;
g$vCOS_GT_GENKA_ITM.CTG1 := '1';
g$vCOS_GT_GENKA_ITM.PRNT_ITM_NM := '<未入庫仕掛品>';
g$vCOS_GT_GENKA_ITM_TMP := g$vCOS_GT_GENKA_ITM;
SET_GENKA_OUT_LIST(l$GUI_INDEX, g$vCOS_GT_G...
-- 仕掛金額
g$vCOS_GT_GENKA_ITM_TMP.SEQ := g$SEQ;
g$vCOS_GT_GENKA_ITM_TMP.EXPNS_CD := NULL;
g$vCOS_GT_GENKA_ITM_TMP.CTG1 := '2';
g$vCOS_GT_GENKA_ITM_TMP.PRNT_ITM_NM := '*仕掛金額*';
SET_GENKA_OUT_LIST(l$GUI_INDEX, g$vCOS_GT_G...
END IF;
-- <中間体後工程払出>
OPEN curRC_INPT(p$P_CTG_CD);
LOOP
FETCH curRC_INPT INTO vcurRC_INPT;
IF curRC_INPT%NOTFOUND THEN
IF curRC_INPT%ROWCOUNT > 0 THEN
vCOS_GT_GENKA_INPT.EXPNS_CD := NULL;
vCOS_GT_GENKA_INPT.CTG1 := '0';
SET_GENKA_OUT_LIST(l$GUI_INDEX, vC...
vCOS_RC_INPT_SUM.SEQ := g$SEQ;
vCOS_RC_INPT_SUM.EXPNS_CD := NULL;
vCOS_RC_INPT_SUM.CTG1 := '1';
vCOS_RC_INPT_SUM.PRNT_NO := g$PRINT_NO;
vCOS_RC_INPT_SUM.PRNT_ITM_NM := '<中間体後工程払出...
SET_GENKA_OUT_LIST(l$GUI_INDEX, vC...
p$RC_INPT_FLG := TRUE;
END IF;
CLOSE curRC_INPT;
EXIT;
END IF;
IF vcurRC_INPT.MNG_DPT_CD IS NULL THEN
EXIT;
END IF;
IF p$ITM_CD IS NULL THEN
p$ITM_CD := vcurRC_INPT.ITM_CD;
END IF;
IF p$ITM_CD = vcurRC_INPT.ITM_CD THEN
vCOS_GT_GENKA_INPT := EXPNS_SUM(vCOS_GT_GENKA_INPT, v...
vCOS_HARAI_SUM := EXPNS_SUM(vCOS_HARAI_SUM, vcurR...
vCOS_RC_INPT_SUM := EXPNS_SUM(vCOS_RC_INPT_SUM, vcu...
ELSE
vCOS_GT_GENKA_INPT.EXPNS_CD := NULL;
vCOS_GT_GENKA_INPT.CTG1 := '0';
SET_GENKA_OUT_LIST(l$GUI_INDEX, vCOS_GT...
p$ITM_CD := vcurRC_INPT.ITM_CD;
vCOS_GT_GENKA_INPT := EXPNS_SUM(vCOS_GT_GENKA_INPT, v...
vCOS_HARAI_SUM := EXPNS_SUM(vCOS_HARAI_SUM, vcurR...
vCOS_RC_INPT_SUM := EXPNS_SUM(vCOS_RC_INPT_SUM, vcu...
END IF;
END LOOP;
-- <他勘定振替実績>
SELECT LITERAL
BULK COLLECT INTO lisLITERAL
FROM SC_SYSTEM C1
WHERE TYP = 'COS'
AND CD IN ('AC_SLP_SLS', 'AC_SLP_RSN');
p$WHR := ' NOT IN (';
FOR n IN 1..lisLITERAL.COUNT LOOP
FOR f IN 1..LENGTH(lisLITERAL(n)) LOOP
p$LITERAL := lisLITERAL(n);
IF LENGTH(p$LITERAL) = 0 THEN
EXIT;
END IF;
p$STR := SUBSTR(p$LITERAL, p$POS, INSTR(p$LITERAL, ',...
IF INSTR(p$LITERAL, ',', 1, f) = 0 THEN
p$STR := SUBSTR(p$LITERAL, p$POS, LENGTH(p$LITERAL));
-- DBMS_OUTPUT.PUT_LINE('文字列:' || p$STR);
ELSE
DBMS_OUTPUT.PUT_LINE('文字列:' || p$STR);
END IF;
p$POS := INSTR(p$LITERAL, ',', 1, f) + 1;
IF p$POS = 1 THEN
p$WHR := p$WHR || '''' || p$STR || '''';
EXIT;
ELSE
p$WHR := p$WHR || '''' || p$STR || ''',';
END IF;
END LOOP;
END LOOP;
p$WHR := p$WHR || ' )';
EXEC_SQL := (ACXFR_SQL || 'AND T1.AC_SLIP_TYP' || p$WH...
EXEC_SQL := EXEC_SQL || ' AND T1.MNG_DPT_CD = ''' || g$...
EXEC_SQL := EXEC_SQL || ' AND M1.P_CTG_CD = ''' || p$P_...
BEGIN
EXECUTE IMMEDIATE (EXEC_SQL) BULK COLLECT INTO lisACXF...
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
FOR g IN 1..lisACXFR_HARAI.COUNT LOOP
lisACXFR_HARAI(g).PRNT_NO := g$PRINT_NO;
vCOS_ACXFR_RSN_SUM := EXPNS_SUM(vCOS_ACXFR_RSN_SUM, li...
vCOS_ACXFR_SUM := EXPNS_SUM(vCOS_ACXFR_SUM, lisACXFR_H...
vCOS_HARAI_SUM := EXPNS_SUM(vCOS_HARAI_SUM, lisACXFR_H...
END LOOP;
IF lisACXFR_HARAI.COUNT > 0 THEN
vCOS_ACXFR_RSN_SUM.EXPNS_CD := NULL;
vCOS_ACXFR_RSN_SUM.PRNT_ITM_NM := '他勘定払出';
vCOS_ACXFR_RSN_SUM.CTG1 := '0';
SET_GENKA_OUT_LIST(l$GUI_INDEX, vCOS_ACXFR_...
END IF;
-- <在庫振替実績>
SELECT LITERAL
BULK COLLECT INTO lisLITERAL
FROM SC_SYSTEM C1
WHERE TYP = 'COS'
AND CD IN ('AC_SLP_RSN');
p$WHR := ' IN (';
FOR n IN 1..lisLITERAL.COUNT LOOP
FOR f IN 1..LENGTH(lisLITERAL(n)) LOOP
p$LITERAL := lisLITERAL(n);
IF LENGTH(p$LITERAL) = 0 THEN
EXIT;
END IF;
p$STR := SUBSTR(p$LITERAL, p$POS, INSTR(p$LITERAL, ',...
IF INSTR(p$LITERAL, ',', 1, f) = 0 THEN
p$STR := SUBSTR(p$LITERAL, p$POS, LENGTH(p$LITERAL));
-- DBMS_OUTPUT.PUT_LINE('文字列:' || p$STR);
ELSE
DBMS_OUTPUT.PUT_LINE('文字列:' || p$STR);
END IF;
p$POS := INSTR(p$LITERAL, ',', 1, f) + 1;
IF p$POS = 1 THEN
p$WHR := p$WHR || '''' || p$STR || '''';
EXIT;
ELSE
p$WHR := p$WHR || '''' || p$STR || ''',';
END IF;
END LOOP;
END LOOP;
p$WHR := p$WHR || ' )';
EXEC_SQL := (STK_ACXFR_SQL || ' AND T1.AC_SLIP_TYP' || ...
EXEC_SQL := EXEC_SQL || ' AND T1.MNG_DPT_CD = ''' || g$...
EXEC_SQL := EXEC_SQL || ' AND M1.P_CTG_CD = ''' || p$P_...
EXEC_SQL := EXEC_SQL || ' ORDER BY T1.AC_RSN_CD';
BEGIN
EXECUTE IMMEDIATE (EXEC_SQL) BULK COLLECT INTO lisSTK_...
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
-- DBMS_OUTPUT.PUT_LINE('在庫振替実績:' || lisSTK_ACXFR_...
FOR g IN 1..lisSTK_ACXFR_HARAI.COUNT LOOP
-- DBMS_OUTPUT.PUT_LINE('在庫振替実績-1' || lisSTK_ACX...
IF p$AC_RSN_CD is NULL THEN
p$AC_RSN_CD := lisSTK_ACXFR_HARAI(g).AC_RSN_CD;
END IF;
IF p$AC_RSN_CD = lisSTK_ACXFR_HARAI(g).AC_RSN_CD THEN
lisSTK_ACXFR_HARAI(g).PRNT_NO := g$PRINT_NO;
vCOS_STKACXFR_RSN_SUM := EXPNS_SUM(vCOS_STKACXFR_RSN_...
vCOS_ACXFR_SUM := EXPNS_SUM(vCOS_ACXFR_SUM, lisSTK_AC...
vCOS_HARAI_SUM := EXPNS_SUM(vCOS_HARAI_SUM, lisSTK_AC...
vCOS_STKACXFR_RSN_SUM.PRNT_ITM_NM := lisSTK_ACXFR_HAR...
ELSE
vCOS_STKACXFR_RSN_SUM.EXPNS_CD := NULL;
vCOS_STKACXFR_RSN_SUM.CTG1 := '0';
SET_GENKA_OUT_LIST(l$GUI_INDEX, vCOS_ST...
p$AC_RSN_CD := lisSTK_ACXFR_HARAI(g).AC_RSN_CD;
END IF;
IF g = lisSTK_ACXFR_HARAI.COUNT THEN
vCOS_STKACXFR_RSN_SUM.EXPNS_CD := NULL;
vCOS_STKACXFR_RSN_SUM.CTG1 := '0';
SET_GENKA_OUT_LIST(l$GUI_INDEX, vCOS_ST...
END IF;
END LOOP;
IF lisSTK_ACXFR_HARAI.COUNT > 0 OR lisACXFR_HARAI.COUNT...
vCOS_ACXFR_SUM.EXPNS_CD := NULL;
vCOS_ACXFR_SUM.CTG1 := '1';
vCOS_ACXFR_SUM.PRNT_ITM_NM := '<他勘定払出>';
SET_GENKA_OUT_LIST(l$GUI_INDEX, vCOS_ACXFR_...
END IF;
IF p$RC_INPT_FLG OR lisSTK_ACXFR_HARAI.COUNT > 0 OR lis...
vCOS_HARAI_SUM.EXPNS_CD := NULL;
vCOS_HARAI_SUM.CTG1 := '2';
vCOS_HARAI_SUM.PRNT_ITM_NM := '*払出金額*';
SET_GENKA_OUT_LIST(l$GUI_INDEX, vCOS_HARAI_...
END IF;
IF lisCOS_GT_GENKA.COUNT > 0 THEN
FOR i in 1..lisCOS_GT_GENKA.COUNT LOOP
INSERT INTO COS_GT_GENKA VALUES lisCOS_GT_GENKA(i);
END LOOP;
p$RC_CD := '1';
END IF ;
IF p$P_CTG_CD LIKE 'RS%' THEN
OPTION_GENKA_VALUE(l$GUI_INDEX, p$P_CTG_CD);
END IF;
RETURN p$RC_CD;
END OPTION_GENKA_PRNT;
PROCEDURE OPTION_GENKA_VALUE(
p$GENKA_INDEX IN NUMBER,
p$P_CTG_CD IN GM_HINGUN.CTG_CD%TYPE
) -- 生産量 入庫量 売上金額 売上原価
/********************************************************...
<Synopsis>
生産量 入庫量 売上金額 売上原価
<Remarks>
<Arguments>
<Item> VARCHAR2
<ReturnValue>
BOOLEAN
*********************************************************...
IS
-- 変数定義
p$GUI_INDEX NUMBER := 0;
SALE_AMOUN NUMBER := 0; -- 売上金額
SALE_COST NUMBER := 0; -- 売上原価
SELL_COST NUMBER := 0; -- 販直費
GENERAL_ADMIN_EXP NUMBER := 0; -- 一般管理費
SALE_PROF NUMBER := 0; -- 売上純利益
OPT_PROF NUMBER := 0; -- 営業利益
LIMIT_PROF NUMBER := 0; -- 限界利益
SALE_COST_VARIA NUMBER := 0; -- 売上原価の...
P$UNIT_NM CM_UNIT.UNIT_NM%TYPE := NULL;
TYPE T_COS_GT_GENKA IS TABLE OF COS_GT_GENKA%ROWTYPE;
R_COS_GT_GENKA COS_GT_GENKA%ROWTYPE;
L_COS_GT_GENKA T_COS_GT_GENKA := T_COS_GT_GENKA();
R_COS_GT_GENKA_COMMON COS_GT_GENKA%ROWTYPE;
--カーソル定義 変動費
CURSOR CUR_VAR(param IN VARCHAR2) IS
SELECT '生産量' AS PRNT_ITM_NM -- 帳票項目名
,NVL(SUM(T1.ACT_QTY),0) AS VAR_NUM -- 変動費_数量
,0 AS VAR_AMT -- 変動費_金額
,0 AS TOTL_NUM -- 合計_数量
FROM GT_ALEVEL0 T1 -- 原価計算結果 品目階層展開(レベ...
,GM_HINGUNKS M1 -- 原価品群構成マスタ
,GM_HINGUN M2 -- 原価品群マスタ
,COS_GW_GENKA_HIS W1
WHERE 0 = 0
AND T1.YM = M1.TERM
AND T1.ITM_CD = M1.C_CTG_CD
AND T1.MNG_DPT_CD = g$MNG_DPT_CD
AND M1.TERM = M2.TERM
AND M1.P_CTG_CD = M2.CTG_CD
AND T1.REC_TYP = '0'
AND W1.CALC_NO = T1.CALC_NO
AND M2.CTG_CD = param
UNION ALL
SELECT '入庫量' AS PRNT_ITM_NM -- 帳票項目名
,NVL(SUM(T2.ACT_QTY),0) AS VAR_NUM -- 変動費_数量
,0 AS VAR_AMT -- 変動費_金額
,0 AS TOTL_NUM -- 合計_数量
FROM GT_ALEVEL0 T2 -- 原価計算結果 品目階層展開(レベ...
,GM_HINGUNKS M3 -- 原価品群構成マスタ
,GM_HINGUN M4 -- 原価品群マスタ
,COS_GW_GENKA_HIS W1
WHERE 0 = 0
AND T2.YM = M3.TERM
AND T2.ITM_CD = M3.C_CTG_CD
AND T2.MNG_DPT_CD = g$MNG_DPT_CD
AND M3.TERM = M4.TERM
AND M3.P_CTG_CD = M4.CTG_CD
AND T2.REC_TYP = '6'
AND T2.AC_SLIP_TYP = '10701'
AND W1.CALC_NO = T2.CALC_NO
AND M4.CTG_CD = param
UNION ALL
SELECT '売上金額' AS PRNT_ITM_NM -- 帳票項目名
,0 AS VAR_NUM -- 変動費_数量
,NVL(SUM(T3.ACT_AMT),0) AS VAR_AMT -- 変動費_金額
,0 AS TOTL_NUM -- 合計_数量
FROM GT_ALEVEL0 T3 -- 原価計算結果 品目階層展開(レベ...
,GM_HINGUNKS M5 -- 原価品群構成マスタ
,GM_HINGUN M6 -- 原価品群マスタ
,COS_GW_GENKA_HIS W1
WHERE 0 = 0
AND T3.YM = M5.TERM
AND T3.ITM_CD = M5.C_CTG_CD
AND T3.MNG_DPT_CD = g$MNG_DPT_CD
AND M5.TERM = M6.TERM
AND M5.P_CTG_CD = M6.CTG_CD
AND T3.REC_TYP = '7'
AND W1.CALC_NO = T3.CALC_NO
AND M6.CTG_CD = param
UNION ALL
SELECT '売上原価' AS PRNT_ITM_NM -- 帳票項目名
,0 AS VAR_NUM -- 変動費_数量
,NVL(SUM(T5.ACT_COST),0) AS VAR_AMT -- 変動費_金額
,0 AS TOTL_NUM -- 合計_数量
FROM GT_ALEVEL0 T4 -- 原価計算結果 品目階層展開(レベ...
,GT_ASHUKEI T5 -- 原価計算結果 実際原価費目集計
,GM_HIMOKU M7 -- 原価費目マスタ
,GM_HINGUNKS M8 -- 原価品群構成マスタ
,GM_HINGUN M9 -- 原価品群マスタ
,COS_GW_GENKA_HIS W1
WHERE 0 = 0
AND T4.CALC_NO = T5.CALC_NO
AND T4.REC_GRP = T5.REC_GRP
AND T4.MNG_DPT_CD = g$MNG_DPT_CD
AND T5.EXPNS_CD = M7.EXPNS_CD
AND T4.YM = M8.TERM
AND T4.ITM_CD = M8.C_CTG_CD
AND M8.TERM = M9.TERM
AND M8.P_CTG_CD = M9.CTG_CD
AND T4.REC_TYP = '7'
AND M7.EXPNS_TYP = '0'
AND W1.CALC_NO = T4.CALC_NO
AND M9.CTG_CD = param
UNION ALL
SELECT '*売上総利益*' AS PRNT_ITM_NM -- 帳票項目名
,0 AS VAR_NUM -- 変動費_数量
,0 AS VAR_AMT -- 変動費_金額
,0 AS TOTL_NUM -- 合計_数量
FROM DUAL
UNION ALL
SELECT '*販直費*' AS PRNT_ITM_NM -- 帳票項目名
,0 AS VAR_NUM -- 変動費_数量
,NVL(SUM(T7.ACT_COST),0) AS VAR_AMT -- 変動費_金額
,0 AS TOTL_NUM -- 合計_数量
FROM GT_ALEVEL0 T6 -- 原価計算結果 品目階層展開(レベ...
,GT_ASHUKEI T7 -- 原価計算結果 実際原価費目集計
,GM_HIMOKU M10 -- 原価費目マスタ
,GM_HINGUNKS M11 -- 原価品群構成マスタ
,GM_HINGUN M12 -- 原価品群マスタ
,COS_GW_GENKA_HIS W1
WHERE 0 = 0
AND T6.CALC_NO = T7.CALC_NO
AND T6.REC_GRP = T7.REC_GRP
AND T6.MNG_DPT_CD = g$MNG_DPT_CD
AND T7.EXPNS_CD = M10.EXPNS_CD
AND T6.YM = M11.TERM
AND T6.ITM_CD = M11.C_CTG_CD
AND M11.TERM = M12.TERM
AND M11.P_CTG_CD = M12.CTG_CD
AND T6.REC_TYP = '7'
AND W1.CALC_NO = T6.CALC_NO
AND M10.MST_RMRKS = '*販直費*'
AND M12.CTG_CD = param
UNION ALL
SELECT '*一般管理費*' AS PRNT_ITM_NM -- 帳票項目名
,0 AS VAR_NUM -- 変動費_数量
,NVL(SUM(T9.ACT_COST),0) AS VAR_AMT -- 変動費_金額
,0 AS TOTL_NUM -- 合計_数量
FROM GT_ALEVEL0 T8 -- 原価計算結果 品目階層展開(レベ...
,GT_ASHUKEI T9 -- 原価計算結果 実際原価費目集計
,GM_HIMOKU M13 -- 原価費目マスタ
,GM_HINGUNKS M14 -- 原価品群構成マスタ
,GM_HINGUN M15 -- 原価品群マスタ
,COS_GW_GENKA_HIS W1
WHERE 0 = 0
AND T8.CALC_NO = T9.CALC_NO
AND T8.REC_GRP = T9.REC_GRP
AND T8.MNG_DPT_CD = g$MNG_DPT_CD
AND T9.EXPNS_CD = M13.EXPNS_CD
AND T8.YM = M14.TERM
AND T8.ITM_CD = M14.C_CTG_CD
AND M14.TERM = M15.TERM
AND M14.P_CTG_CD = M15.CTG_CD
AND T8.REC_TYP = '7'
AND M13.MST_RMRKS = '*一般管理費*'
AND W1.CALC_NO = T8.CALC_NO
AND M15.CTG_CD = param;
BEGIN
p$GUI_INDEX := p$GENKA_INDEX;
FOR X IN CUR_VAR(p$P_CTG_CD) LOOP
-- 売上金額を格納
IF (X.PRNT_ITM_NM = '売上金額')THEN
SALE_AMOUN := X.VAR_AMT;
g$vCOS_GT_ATENKAI_UPD.SLS_AMT := SALE_AMOUN;
END IF;
-- 売上原価を格納
IF (X.PRNT_ITM_NM = '売上原価') THEN
SALE_COST := X.VAR_AMT;
g$vCOS_GT_ATENKAI_UPD.SLS_COST := NVL(SALE_COST,0);
END IF;
IF (X.PRNT_ITM_NM = '*販直費*') THEN
SELL_COST := X.VAR_AMT;
g$vCOS_GT_ATENKAI_UPD.SEL_EXP := X.VAR_AMT;
END IF;
IF (X.PRNT_ITM_NM = '*一般管理費*') THEN
GENERAL_ADMIN_EXP := X.VAR_AMT;
g$vCOS_GT_ATENKAI_UPD.ADM_EXP := X.VAR_AMT;
END IF;
IF (X.PRNT_ITM_NM = '生産量') THEN
g$vCOS_GT_ATENKAI_UPD.PROD_QTY := NVL(X.VAR_NUM,0);
END IF;
IF (X.PRNT_ITM_NM = '入庫量') THEN
g$vCOS_GT_ATENKAI_UPD.IN_QTY := X.VAR_NUM;
END IF;
-- 帳票項目名「生産量」か「入庫量」の場合
IF (X.PRNT_ITM_NM = '生産量' OR X.PRNT_ITM_NM = '入庫量...
-- 数量を合計する
X.TOTL_NUM := X.VAR_NUM + 0;
END IF;
-- 帳票項目名「*売上総利益 *」のデータ作成
IF (X.PRNT_ITM_NM = '*売上総利益*') THEN
-- 売上金額-売上原価 = 売上総利益
SALE_PROF := SALE_AMOUN - SALE_COST;
X.VAR_AMT := SALE_PROF;
END IF;
-- @2017/11/01 S.Yamamoto MOD START
-- SELECT M2.MST_RMRKS CTG_NM, M3.CTG_GRP_CD, M3.CTG_GRP...
SELECT M2.MST_RMRKS CTG_NM, M3.CTG_GRP_CD, M3.CTG_GRP_N...
-- @2017/11/01 S.Yamamoto MOD END
INTO R_COS_GT_GENKA_COMMON.PAR_CTG_NM, R_COS_GT_GENKA_C...
FROM GT_ALEVEL0 T1
LEFT OUTER JOIN GM_HINGUNKS M1 ON (T1.ITM_CD = M1.C_CT...
LEFT OUTER JOIN GM_HINGUN M2 ON (M1.P_CTG_CD = M2.CT...
LEFT OUTER JOIN GM_HINGUNG M3 ON (M2.CTG_GRP_CD = M3....
LEFT OUTER JOIN CM_HINMO M4 ON (T1.ITM_CD = M4.ITM_...
-- @2017/11/01 S.Yamamoto DEL START
-- LEFT OUTER JOIN CM_UNIT M5 ON (M4.UNIT_CD = M5.U...
-- @2017/11/01 S.Yamamoto DEL END
WHERE M1.P_CTG_CD = p$P_CTG_CD
AND ROWNUM = 1;
INSERT INTO COS_GT_GENKA(PRNT_NO, SEQ, MNG_DPT_CD, PAR_...
,PRNT_ITM_NM, VAR_NUM, VAR_AMT, TOTL_NUM
, PRINT_SORT, PAR_CTG_NM, CTG_GRP_CD
, CTG_GRP_NM,CTG1,CTG2,CTG3,UNIT_NM,VAR_COST,FIX_NUM...
VALUES (g$PRINT_NO, g$SEQ, g$MNG_DPT_CD, p$P_CTG_CD
, X.PRNT_ITM_NM, X.VAR_NUM, X.VAR_AMT, X.TOTL_NUM
, p$GUI_INDEX, R_COS_GT_GENKA_COMMON.PAR_CTG_NM, R_COS...
, R_COS_GT_GENKA_COMMON.CTG_GRP_NM,0,0,0, R_COS_GT_GEN...
g$SEQ := g$SEQ + 1;
p$GUI_INDEX := p$GUI_INDEX + 1;
END LOOP;
-- リストに5行追加
L_COS_GT_GENKA.EXTEND(4);
-- 売上総利益-(販直費+一般管理費)= 営業利益
OPT_PROF := SALE_PROF-(SELL_COST+GENERAL_ADMIN_EXP);
-- 限界利益
-- 売上原価の変動費取得
SELECT NVL(SUM(T2.ACT_COST), 0) AS SALE_COST_VARIA
INTO SALE_COST_VARIA
FROM GT_ALEVEL0 T1 -- 原価計算結果 品目階層展開(レベ...
,GT_ASHUKEI T2 -- 原価計算結果 実際原価費目集計
,GM_HIMOKU M1 -- 原価費目マスタ
,GM_HINGUNKS M2 -- 原価品群構成マスタ
,GM_HINGUN M3 -- 原価品群マスタ
,COS_GW_GENKA_HIS W1
WHERE 0 = 0
AND T1.CALC_NO = T2.CALC_NO
AND T1.REC_GRP = T2.REC_GRP
AND T1.MNG_DPT_CD = g$MNG_DPT_CD
AND T2.EXPNS_CD = M1.EXPNS_CD
AND T1.YM = M2.TERM
AND T1.ITM_CD = M2.C_CTG_CD
AND M2.TERM = M3.TERM
AND M2.P_CTG_CD = M3.CTG_CD
AND T1.REC_TYP = '7'
AND M1.EXPNS_TYP = '0'
AND M1.VAR_FLG = '1'
AND W1.CALC_NO = T1.CALC_NO
AND M3.CTG_CD = p$P_CTG_CD;
g$vCOS_GT_ATENKAI_UPD.SLS_VAR_AMT := SALE_COST_VARIA;
-- 売上金額-売上原価の変動費 = 限界利益
LIMIT_PROF := SALE_AMOUN-SALE_COST_VARIA;
-- 帳票項目名「*営業利益*」のデータ作成
R_COS_GT_GENKA.PRNT_NO := g$PRINT_NO;
R_COS_GT_GENKA.SEQ := g$SEQ;
R_COS_GT_GENKA.PAR_CTG_CD := p$P_CTG_CD;
R_COS_GT_GENKA.PRINT_SORT := p$GUI_INDEX;
R_COS_GT_GENKA.PRNT_ITM_NM := '*営業利益*';
R_COS_GT_GENKA.VAR_AMT := OPT_PROF;
-- リストに格納
L_COS_GT_GENKA(1) := R_COS_GT_GENKA;
-- レコード初期化
R_COS_GT_GENKA := NULL;
-- カウントアップ
g$SEQ := g$SEQ + 1;
p$GUI_INDEX := p$GUI_INDEX + 1;
-- 帳票項目名「*営業利益率*」のデータ作成
R_COS_GT_GENKA.PRNT_NO := g$PRINT_NO;
R_COS_GT_GENKA.SEQ := g$SEQ;
R_COS_GT_GENKA.PAR_CTG_CD := p$P_CTG_CD;
R_COS_GT_GENKA.CTG1 := 8;
R_COS_GT_GENKA.PRINT_SORT := p$GUI_INDEX;
R_COS_GT_GENKA.PRNT_ITM_NM := '*営業利益率*';
IF (SALE_AMOUN = 0) THEN
R_COS_GT_GENKA.RATIO := 0;
ELSE
R_COS_GT_GENKA.RATIO := OPT_PROF/SALE_AMOUN*100;
END IF;
-- リストに格納
L_COS_GT_GENKA(2) := R_COS_GT_GENKA;
-- レコード初期化
R_COS_GT_GENKA := NULL;
-- カウントアップ
g$SEQ := g$SEQ + 1;
p$GUI_INDEX := p$GUI_INDEX + 1;
-- 帳票項目名「*限界利益*」のデータ作成
R_COS_GT_GENKA.PRNT_NO := g$PRINT_NO;
R_COS_GT_GENKA.SEQ := g$SEQ;
R_COS_GT_GENKA.PAR_CTG_CD := p$P_CTG_CD;
R_COS_GT_GENKA.PRINT_SORT := p$GUI_INDEX;
R_COS_GT_GENKA.PRNT_ITM_NM := '*限界利益*';
R_COS_GT_GENKA.VAR_AMT := LIMIT_PROF;
-- リストに格納
L_COS_GT_GENKA(3) := R_COS_GT_GENKA;
-- レコード初期化
R_COS_GT_GENKA := NULL;
-- カウントアップ
g$SEQ := g$SEQ + 1;
p$GUI_INDEX := p$GUI_INDEX + 1;
-- 帳票項目名「*限界利益率*」の追加
R_COS_GT_GENKA.PRNT_NO := g$PRINT_NO;
R_COS_GT_GENKA.SEQ := g$SEQ;
R_COS_GT_GENKA.PAR_CTG_CD := p$P_CTG_CD;
R_COS_GT_GENKA.CTG1 := 8;
R_COS_GT_GENKA.PRINT_SORT := p$GUI_INDEX;
R_COS_GT_GENKA.PRNT_ITM_NM := '*限界利益率*';
IF (SALE_AMOUN = 0) THEN
R_COS_GT_GENKA.RATIO := 0;
ELSE
R_COS_GT_GENKA.RATIO := LIMIT_PROF/SALE_AMOUN*100;
END IF;
-- リストに格納
L_COS_GT_GENKA(4) := R_COS_GT_GENKA;
-- レコード初期化
R_COS_GT_GENKA := NULL;
-- カウントアップ
g$SEQ := g$SEQ + 1;
p$GUI_INDEX := p$GUI_INDEX + 1;
-- @2017/11/01 S.Yamamoto MOD START
-- SELECT M2.MST_RMRKS CTG_NM, M3.CTG_GRP_CD, M3.CTG_GRP_...
SELECT M2.MST_RMRKS CTG_NM, M3.CTG_GRP_CD, M3.CTG_GRP_NM...
-- @2017/11/01 S.Yamamoto MOD END
INTO R_COS_GT_GENKA_COMMON.PAR_CTG_NM, R_COS_GT_GENKA_CO...
FROM GT_ALEVEL0 T1
LEFT OUTER JOIN GM_HINGUNKS M1 ON (T1.ITM_CD = M1.C_CTG...
LEFT OUTER JOIN GM_HINGUN M2 ON (M1.P_CTG_CD = M2.CTG...
LEFT OUTER JOIN GM_HINGUNG M3 ON (M2.CTG_GRP_CD = M3.C...
LEFT OUTER JOIN CM_HINMO M4 ON (T1.ITM_CD = M4.ITM_CD)
-- @2017/11/01 S.Yamamoto DEL START
-- LEFT OUTER JOIN CM_UNIT M5 ON (M4.UNIT_CD = M5.UN...
-- @2017/11/01 S.Yamamoto DEL END
WHERE M1.P_CTG_CD = p$P_CTG_CD
AND ROWNUM = 1;
-- 原価計算表に登録
FOR i IN 1..4 LOOP
L_COS_GT_GENKA(i).PAR_CTG_NM := R_COS_GT_GENKA_COMMON.PA...
L_COS_GT_GENKA(i).CTG_GRP_CD := R_COS_GT_GENKA_COMMON.CT...
L_COS_GT_GENKA(i).CTG_GRP_NM := R_COS_GT_GENKA_COMMON.CT...
L_COS_GT_GENKA(i).UNIT_NM := R_COS_GT_GENKA_COMMON.UN...
L_COS_GT_GENKA(i).VAR_NUM := 0;
L_COS_GT_GENKA(i).VAR_AMT := NVL(L_COS_GT_GENKA(i).VAR_A...
L_COS_GT_GENKA(i).VAR_COST := 0;
L_COS_GT_GENKA(i).FIX_NUM := 0;
L_COS_GT_GENKA(i).FIX_AMT := 0;
L_COS_GT_GENKA(i).FIX_COST := 0;
L_COS_GT_GENKA(i).TOTL_AMT := 0;
L_COS_GT_GENKA(i).TOTL_NUM := 0;
L_COS_GT_GENKA(i).RATIO := NVL(L_COS_GT_GENKA(i).RATIO,0);
L_COS_GT_GENKA(i).CTG1 := NVL(L_COS_GT_GENKA(i).CTG1,0);
L_COS_GT_GENKA(i).CTG2 := 0;
L_COS_GT_GENKA(i).CTG3 := 0;
L_COS_GT_GENKA(i).MNG_DPT_CD := g$MNG_DPT_CD;
INSERT INTO COS_GT_GENKA VALUES L_COS_GT_GENKA(i);
END LOOP;
END OPTION_GENKA_VALUE;
FUNCTION EXPNS_SUM(
d$curCTG_GENKA IN COS_GT_GENKA%ROWTYPE,
s$curCTG_GENKA IN curCTG_GENKA%ROWTYPE
)
RETURN COS_GT_GENKA%ROWTYPE -- 左から右へ足し算を行う。
/********************************************************...
<Synopsis>
費目に関する数量に対してのサマリー
<Remarks>
<Arguments>
<Item> VARCHAR2
<ReturnValue>
BOOLEAN
*********************************************************...
IS
x$curCTG_GENKA COS_GT_GENKA%ROWTYPE;
p$VAR_NUM COS_GT_GENKA.VAR_NUM%TYPE;
p$FIX_NUM COS_GT_GENKA.FIX_NUM%TYPE;
BEGIN
x$curCTG_GENKA.PRNT_NO := s$curCTG_GENKA.PRNT...
x$curCTG_GENKA.SEQ := g$SEQ;
x$curCTG_GENKA.MNG_DPT_CD := s$curCTG_GENKA.MNG_...
x$curCTG_GENKA.CTG_GRP_CD := s$curCTG_GENKA.CTG_...
x$curCTG_GENKA.CTG_GRP_NM := s$curCTG_GENKA.CTG_...
x$curCTG_GENKA.PAR_CTG_CD := s$curCTG_GENKA.PAR_...
x$curCTG_GENKA.PAR_CTG_NM := s$curCTG_GENKA.PAR_...
x$curCTG_GENKA.CHD_CTG_CD := s$curCTG_GENKA.CHD_...
x$curCTG_GENKA.CHD_CTG_NM := s$curCTG_GENKA.CHD_...
x$curCTG_GENKA.EXPNS_CD := s$curCTG_GENKA.EXPN...
x$curCTG_GENKA.PRNT_ITM_NM := s$curCTG_GENKA.PRNT...
x$curCTG_GENKA.PRINT_SORT := s$curCTG_GENKA.PRIN...
x$curCTG_GENKA.CTG1 := s$curCTG_GENKA.CTG1;
x$curCTG_GENKA.CTG2 := s$curCTG_GENKA.CTG2;
x$curCTG_GENKA.CTG3 := s$curCTG_GENKA.CTG3;
x$curCTG_GENKA.UNIT_NM := s$curCTG_GENKA.UNIT...
x$curCTG_GENKA.VAR_NUM := NVL(d$curCTG_GENKA.V...
x$curCTG_GENKA.VAR_AMT := NVL(d$curCTG_GENKA.V...
x$curCTG_GENKA.VAR_COST := NVL(d$curCTG_GENKA.V...
x$curCTG_GENKA.FIX_NUM := NVL(d$curCTG_GENKA.F...
x$curCTG_GENKA.FIX_AMT := NVL(d$curCTG_GENKA.F...
x$curCTG_GENKA.FIX_COST := NVL(d$curCTG_GENKA.F...
x$curCTG_GENKA.TOTL_NUM := NVL(d$curCTG_GENKA.T...
x$curCTG_GENKA.TOTL_COST := NVL(d$curCTG_GENKA.T...
p$VAR_NUM := NVL(s$curCTG_GENKA.VAR_NUM,0);
p$FIX_NUM := NVL(s$curCTG_GENKA.FIX_NUM,0);
IF (p$VAR_NUM+p$FIX_NUM) <> 0 THEN
x$curCTG_GENKA.TOTL_AMT := NVL(d$curCTG_GENKA.T...
ELSE
x$curCTG_GENKA.TOTL_AMT := NVL(d$curCTG_GENKA.T...
END IF;
x$curCTG_GENKA.RATIO := NVL(d$curCTG_GENKA.R...
x$curCTG_GENKA.PROD_COST := NVL(d$curCTG_GENKA.P...
x$curCTG_GENKA.ORG_UPRI := NVL(d$curCTG_GENKA.O...
x$curCTG_GENKA.IN_QTY := NVL(d$curCTG_GENKA.I...
x$curCTG_GENKA.PROD_QTY := NVL(d$curCTG_GENKA.P...
x$curCTG_GENKA.SLS_AMT := NVL(d$curCTG_GENKA.S...
x$curCTG_GENKA.SLS_COST := NVL(d$curCTG_GENKA.S...
x$curCTG_GENKA.SEL_EXP := NVL(d$curCTG_GENKA.S...
x$curCTG_GENKA.ADM_EXP := NVL(d$curCTG_GENKA.A...
x$curCTG_GENKA.SLS_VAR_AMT := NVL(d$curCTG_GENKA.S...
x$curCTG_GENKA.VAR_TTL := NVL(d$curCTG_GENKA.V...
x$curCTG_GENKA.FIX_TTL := NVL(d$curCTG_GENKA.F...
RETURN x$curCTG_GENKA;
END;
FUNCTION EXPNS_SUM(
d$curCTG_GENKA IN COS_GT_GENKA%ROWTYPE,
s$curCTG_GENKA IN COS_GT_GENKA%ROWTYPE
)
RETURN COS_GT_GENKA%ROWTYPE -- 左から右へ足し算を行う。
/********************************************************...
<Synopsis>
費目に関する数量に対してのサマリー
<Remarks>
<Arguments>
<Item> VARCHAR2
<ReturnValue>
BOOLEAN
*********************************************************...
IS
x$curCTG_GENKA COS_GT_GENKA%ROWTYPE;
p$VAR_NUM COS_GT_GENKA.VAR_NUM%TYPE;
p$FIX_NUM COS_GT_GENKA.FIX_NUM%TYPE;
BEGIN
x$curCTG_GENKA.PRNT_NO := s$curCTG_GENKA.PRNT...
x$curCTG_GENKA.SEQ := g$SEQ;
x$curCTG_GENKA.MNG_DPT_CD := s$curCTG_GENKA.MNG_...
x$curCTG_GENKA.CTG_GRP_CD := s$curCTG_GENKA.CTG_...
x$curCTG_GENKA.CTG_GRP_NM := s$curCTG_GENKA.CTG_...
x$curCTG_GENKA.PAR_CTG_CD := s$curCTG_GENKA.PAR_...
x$curCTG_GENKA.PAR_CTG_NM := s$curCTG_GENKA.PAR_...
x$curCTG_GENKA.CHD_CTG_CD := s$curCTG_GENKA.CHD_...
x$curCTG_GENKA.CHD_CTG_NM := s$curCTG_GENKA.CHD_...
x$curCTG_GENKA.EXPNS_CD := s$curCTG_GENKA.EXPN...
x$curCTG_GENKA.PRNT_ITM_NM := s$curCTG_GENKA.PRNT...
x$curCTG_GENKA.PRINT_SORT := s$curCTG_GENKA.PRIN...
x$curCTG_GENKA.CTG1 := s$curCTG_GENKA.CTG1;
x$curCTG_GENKA.CTG2 := s$curCTG_GENKA.CTG2;
x$curCTG_GENKA.CTG3 := s$curCTG_GENKA.CTG3;
x$curCTG_GENKA.UNIT_NM := s$curCTG_GENKA.UNIT...
x$curCTG_GENKA.VAR_NUM := NVL(d$curCTG_GENKA.V...
x$curCTG_GENKA.VAR_AMT := NVL(d$curCTG_GENKA.V...
x$curCTG_GENKA.VAR_COST := NVL(d$curCTG_GENKA.V...
x$curCTG_GENKA.FIX_NUM := NVL(d$curCTG_GENKA.F...
x$curCTG_GENKA.FIX_AMT := NVL(d$curCTG_GENKA.F...
x$curCTG_GENKA.FIX_COST := NVL(d$curCTG_GENKA.F...
x$curCTG_GENKA.TOTL_NUM := NVL(d$curCTG_GENKA.T...
x$curCTG_GENKA.TOTL_COST := NVL(d$curCTG_GENKA.T...
p$VAR_NUM := NVL(s$curCTG_GENKA.VAR_NUM,0);
p$FIX_NUM := NVL(s$curCTG_GENKA.FIX_NUM,0);
IF (p$VAR_NUM+p$FIX_NUM) <> 0 THEN
x$curCTG_GENKA.TOTL_AMT := NVL(d$curCTG_GENKA.T...
ELSE
x$curCTG_GENKA.TOTL_AMT := NVL(d$curCTG_GENKA.T...
END IF;
x$curCTG_GENKA.RATIO := NVL(d$curCTG_GENKA.R...
x$curCTG_GENKA.PROD_COST := NVL(d$curCTG_GENKA.P...
x$curCTG_GENKA.ORG_UPRI := NVL(d$curCTG_GENKA.O...
x$curCTG_GENKA.IN_QTY := NVL(d$curCTG_GENKA.I...
x$curCTG_GENKA.PROD_QTY := NVL(d$curCTG_GENKA.P...
x$curCTG_GENKA.SLS_AMT := NVL(d$curCTG_GENKA.S...
x$curCTG_GENKA.SLS_COST := NVL(d$curCTG_GENKA.S...
x$curCTG_GENKA.SEL_EXP := NVL(d$curCTG_GENKA.S...
x$curCTG_GENKA.ADM_EXP := NVL(d$curCTG_GENKA.A...
x$curCTG_GENKA.SLS_VAR_AMT := NVL(d$curCTG_GENKA.S...
x$curCTG_GENKA.VAR_TTL := NVL(d$curCTG_GENKA.V...
x$curCTG_GENKA.FIX_TTL := NVL(d$curCTG_GENKA.F...
RETURN x$curCTG_GENKA;
END;
FUNCTION EXPNS_MINUS(
d$curCTG_GENKA IN COS_GT_GENKA%ROWTYPE,
s$curCTG_GENKA IN COS_GT_GENKA%ROWTYPE
)
RETURN COS_GT_GENKA%ROWTYPE -- 左から右の引き算を行う。
/********************************************************...
<Synopsis>
費目に関する数量に対してのサマリー
<Remarks>
<Arguments>
<Item> VARCHAR2
<ReturnValue>
BOOLEAN
*********************************************************...
IS
x$curCTG_GENKA COS_GT_GENKA%ROWTYPE;
BEGIN
x$curCTG_GENKA.PRNT_NO := d$curCTG_GENKA.PRNT...
x$curCTG_GENKA.SEQ := g$SEQ;
x$curCTG_GENKA.MNG_DPT_CD := d$curCTG_GENKA.MNG_...
x$curCTG_GENKA.CTG_GRP_CD := d$curCTG_GENKA.CTG_...
x$curCTG_GENKA.CTG_GRP_NM := d$curCTG_GENKA.CTG_...
x$curCTG_GENKA.PAR_CTG_CD := d$curCTG_GENKA.PAR_...
x$curCTG_GENKA.PAR_CTG_NM := d$curCTG_GENKA.PAR_...
x$curCTG_GENKA.CHD_CTG_CD := d$curCTG_GENKA.CHD_...
x$curCTG_GENKA.CHD_CTG_NM := d$curCTG_GENKA.CHD_...
x$curCTG_GENKA.EXPNS_CD := d$curCTG_GENKA.EXPN...
x$curCTG_GENKA.PRNT_ITM_NM := d$curCTG_GENKA.PRNT...
x$curCTG_GENKA.PRINT_SORT := d$curCTG_GENKA.PRIN...
x$curCTG_GENKA.CTG1 := d$curCTG_GENKA.CTG1;
x$curCTG_GENKA.CTG2 := d$curCTG_GENKA.CTG2;
x$curCTG_GENKA.CTG3 := d$curCTG_GENKA.CTG3;
x$curCTG_GENKA.UNIT_NM := d$curCTG_GENKA.UNIT...
x$curCTG_GENKA.VAR_NUM := NVL(d$curCTG_GENKA.V...
x$curCTG_GENKA.VAR_AMT := NVL(d$curCTG_GENKA.V...
x$curCTG_GENKA.VAR_COST := NVL(d$curCTG_GENKA.V...
x$curCTG_GENKA.FIX_NUM := NVL(d$curCTG_GENKA.F...
x$curCTG_GENKA.FIX_AMT := NVL(d$curCTG_GENKA.F...
x$curCTG_GENKA.FIX_COST := NVL(d$curCTG_GENKA.F...
x$curCTG_GENKA.TOTL_NUM := NVL(d$curCTG_GENKA.T...
x$curCTG_GENKA.TOTL_AMT := NVL(d$curCTG_GENKA.T...
x$curCTG_GENKA.TOTL_COST := NVL(d$curCTG_GENKA.TOTL_COS...
x$curCTG_GENKA.RATIO := NVL(d$curCTG_GENKA.R...
x$curCTG_GENKA.PROD_COST := NVL(d$curCTG_GENKA.P...
x$curCTG_GENKA.ORG_UPRI := NVL(d$curCTG_GENKA.O...
x$curCTG_GENKA.IN_QTY := NVL(d$curCTG_GENKA.I...
x$curCTG_GENKA.PROD_QTY := NVL(d$curCTG_GENKA.P...
x$curCTG_GENKA.SLS_AMT := NVL(d$curCTG_GENKA.S...
x$curCTG_GENKA.SLS_COST := NVL(d$curCTG_GENKA.S...
x$curCTG_GENKA.SEL_EXP := NVL(d$curCTG_GENKA.S...
x$curCTG_GENKA.ADM_EXP := NVL(d$curCTG_GENKA.A...
x$curCTG_GENKA.SLS_VAR_AMT := NVL(d$curCTG_GENKA.S...
x$curCTG_GENKA.VAR_TTL := NVL(d$curCTG_GENKA.V...
x$curCTG_GENKA.FIX_TTL := NVL(d$curCTG_GENKA.F...
RETURN x$curCTG_GENKA;
END;
PROCEDURE CREATE_MEISAI_DAT( -- 入庫明細表情報作成
p$ST_YM IN DATE,
p$END_YM IN DATE,
p$PRNT_NO IN VARCHAR2,
p$RC OUT VARCHAR2
)
/********************************************************...
<Synopsis>
入庫明細表情報作成
<Remarks>
<Arguments>
<ReturnValue>
*********************************************************...
IS
p$MEISAI_SEQ COS_GT_MEISAI.SEQ%TYPE := 1;
p$REC_IN_UPRI COS_GT_MEISAI.REC_IN_UPRI%TYPE := 0;
p$REC_YM COS_GT_MEISAI.REC_YM%TYPE := NULL;
-- 明細1
CURSOR curCTG_MEISAI (prntNo IN VARCHAR2)
IS
SELECT V1.*
FROM (SELECT T1.PRNT_NO
,T1.MNG_DPT_CD
,T1.CTG_GRP_CD
,T1.CTG_GRP_NM
,T1.PAR_CTG_CD
,T1.PAR_CTG_NM
,M1.CTG_NM AS PROD_PRSN
,T1.PAR_CTG_CD AS IN_DPT_CD
,T1.UNIT_NM
,T1.CTG1
,T1.IN_QTY AS CRNT_NUM
,T1.VAR_TTL CRNT_VAR
,T1.FIX_TTL CRNT_FIX
,(T1.VAR_TTL + T1.FIX_TTL) AS CRNT_TOTAL
,ROUND((T1.VAR_TTL + T1.FIX_TTL) / T1.IN_QTY, ...
,0 AS REC_IN_UPRI
,NUll AS REC_YM
,ROW_NUMBER() OVER (PARTITION BY T1.PAR_CTG_CD...
FROM COS_GT_GENKA T1
LEFT OUTER JOIN GM_HINGUN M1 ON (T1.PAR_CTG_CD ...
WHERE 0 = 0
AND T1.IN_QTY > 0
AND T1.PRNT_NO = prntNo) V1
WHERE V1.GROUP_IDX = 1;
-- 明細2
CURSOR curCTG_MEISAI_REC (parCtgCd IN VARCHAR2, m...
SELECT V1.REC_IN_UPRI
,V1.REC_YM
FROM
(SELECT
ROUND((T1.VAR_TTL + T1.FIX_TTL) / T1.IN_QTY, 0)...
,V2.MAX_STD_TERM AS REC_YM
,T1.PAR_CTG_CD
,T1.MNG_DPT_CD
,ROW_NUMBER() OVER (PARTITION BY T1.PAR_CTG_CD,...
FROM COS_GT_GENKA T1
,(SELECT MAX(T1.STD_TERM) AS MAX_STD_TERM
FROM COS_GT_GENKA_HIS T1
WHERE 0 = 0
AND T1.REC_TYP = 0
AND T1.STD_TERM < P$ST_YM
AND T1.STD_TERM > ADD_MONTHS(P$ST_YM, -25)) V2
WHERE 0 = 0
AND T1.IN_QTY > 0
AND T1.PRNT_NO = (SELECT MAX(T1.PRNT_NO)
FROM COS_GT_GENKA_HIS T1
WHERE 0 = 0
AND T1.REC_TYP = 0
AND T1.STD_TERM = V2.MAX_STD_TE...
) V1
WHERE V1.GROUP_IDX = 1
AND V1.PAR_CTG_CD = parCtgCd
AND V1.MNG_DPT_CD = mngDptCd;
BEGIN
FOR X IN curCTG_MEISAI(p$PRNT_NO) LOOP
OPEN curCTG_MEISAI_REC(X.PAR_CTG_CD, X.MNG_DPT_...
FETCH curCTG_MEISAI_REC INTO p$REC_IN_UPRI ,p$RE...
CLOSE curCTG_MEISAI_REC;
INSERT INTO COS_GT_MEISAI(PRNT_NO, SEQ, MNG_DPT_CD, CTG...
CTG1, CRNT_NUM, CRNT_VAR,...
VALUES (X.PRNT_NO, p$MEISAI_SEQ, X.MNG_DPT_CD, X.CTG_GR...
X.CTG1, X.CRNT_NUM, X.CRNT_VAR, X.C...
p$MEISAI_SEQ := p$MEISAI_SEQ + 1;
p$REC_IN_UPRI := 0;
p$REC_YM := NULL;
END LOOP;
p$RC := '1';
EXCEPTION
WHEN OTHERS THEN
p$RC := '9';
DBMS_OUTPUT.PUT_LINE('エラー' ||sqlerrm);
END CREATE_MEISAI_DAT;
-- その他出力用
PROCEDURE GENKA_ANOTHER_PRNT(
p$prnt_no IN COS_GT_GENKA.PRNT_NO%TYPE,
p$SEQ IN COS_GT_GENKA.SEQ%TYPE
)
/********************************************************...
<Synopsis>
その他出力用
<Remarks>
<Arguments>
<ReturnValue>
*********************************************************...
AS
-- カーソル
-- 原価計算結果_配賦不可費用
CURSOR cur_HAIFUZ
IS
SELECT T1.COST_AC_CD AS COST_AC_CD,
M1.COST_AC_NM AS COST_AC_NM,
SUM(T1.AMT) AS AMT
FROM GT_HAIFUZ T1
LEFT OUTER JOIN GVM_COST_AC M1 ON (T1.COST_AC_CD = M...
INNER JOIN COS_GW_GENKA_HIS W1 ON (W1.CALC_NO = T1.CAL...
WHERE 0=0
GROUP BY
T1.COST_AC_CD,
M1.COST_AC_NM
ORDER BY
T1.COST_AC_CD;
-- 変数
vrec_COS_GT_GENKA COS_GT_GENKA%ROWTYPE;
vcur_HAIFUZ cur_HAIFUZ%ROWTYPE;
lseq COS_GT_GENKA.SEQ%TYPE;
lamt NUMBER;
lact_cost NUMBER;
lprnt_sort COS_GT_GENKA.PRINT_SORT%TYPE := 1;
TYPE T_COS_GT_GENKA IS TABLE OF COS_GT_GENKA%ROWTYPE;
L_COS_GT_GENKA T_COS_GT_GENKA := T_COS_GT_GENKA();
R_COS_GT_GENKA COS_GT_GENKA%ROWTYPE;
FIX_AMT_SUM COS_GT_GENKA.FIX_AMT%TYPE := 0;
TOTAL_AMT_SUM COS_GT_GENKA.FIX_AMT%TYPE := 0;
BEGIN
-- 初期化。
lseq := g$SEQ;
-- ■配賦不可費用
OPEN cur_HAIFUZ;
LOOP
vrec_COS_GT_GENKA := NULL;
FETCH cur_HAIFUZ INTO vcur_HAIFUZ;
IF cur_HAIFUZ%NOTFOUND THEN
CLOSE cur_HAIFUZ;
EXIT;
END IF;
-- 詰め替え。
vrec_COS_GT_GENKA.PRNT_NO := p$prnt_no;
vrec_COS_GT_GENKA.SEQ := lseq;
vrec_COS_GT_GENKA.CTG_GRP_CD := 'ZZ';
vrec_COS_GT_GENKA.CTG_GRP_NM := vcur_HAIFUZ.COST_AC_...
vrec_COS_GT_GENKA.EXPNS_CD := vcur_HAIFUZ.COST_AC_...
vrec_COS_GT_GENKA.PRNT_ITM_NM := vcur_HAIFUZ.COST_AC_...
vrec_COS_GT_GENKA.PRINT_SORT := lprnt_sort;
vrec_COS_GT_GENKA.CTG1 := 0;
vrec_COS_GT_GENKA.CTG2 := 0;
vrec_COS_GT_GENKA.CTG3 := 0;
vrec_COS_GT_GENKA.VAR_NUM := 0;
vrec_COS_GT_GENKA.VAR_AMT := 0;
vrec_COS_GT_GENKA.VAR_COST := 0;
vrec_COS_GT_GENKA.FIX_NUM := 0;
vrec_COS_GT_GENKA.FIX_AMT := vcur_HAIFUZ.AMT;
vrec_COS_GT_GENKA.FIX_COST := 0;
vrec_COS_GT_GENKA.TOTL_NUM := 0;
-- @2017/10/30 K.Sousou MOD START
-- vrec_COS_GT_GENKA.TOTL_AMT := vcur_HAIFUZ.AMT;
-- vrec_COS_GT_GENKA.TOTL_COST := 0;
vrec_COS_GT_GENKA.TOTL_AMT := 0;
vrec_COS_GT_GENKA.TOTL_COST := vcur_HAIFUZ.AMT;
-- @2017/10/30 K.Sousou MOD END
vrec_COS_GT_GENKA.RATIO := 0;
vrec_COS_GT_GENKA.PROD_COST := 0;
vrec_COS_GT_GENKA.ORG_UPRI := 0;
vrec_COS_GT_GENKA.IN_QTY := 0;
vrec_COS_GT_GENKA.PROD_QTY := 0;
vrec_COS_GT_GENKA.SLS_AMT := 0;
vrec_COS_GT_GENKA.SLS_COST := 0;
vrec_COS_GT_GENKA.SEL_EXP := 0;
vrec_COS_GT_GENKA.ADM_EXP := 0;
vrec_COS_GT_GENKA.SLS_VAR_AMT := 0;
vrec_COS_GT_GENKA.VAR_TTL := 0;
vrec_COS_GT_GENKA.FIX_TTL := 0;
-- 登録。
-- INSERT INTO COS_GT_GENKA VALUES vrec_COS_GT_GENKA;
L_COS_GT_GENKA.EXTEND;
L_COS_GT_GENKA(L_COS_GT_GENKA.COUNT) := vrec_COS_GT_G...
-- 連番をカウントアップ。
lseq := lseq + 1;
lprnt_sort := lprnt_sort + 1;
END LOOP;
-- ■評価損結果計算
vrec_COS_GT_GENKA := NULL;
BEGIN
SELECT SUM(T1.AMT) AS AMT
INTO lamt
FROM GT_HYOUKASON T1
INNER JOIN COS_GW_GENKA_HIS W1 ON (W1.CALC_NO = T1.CALC...
WHERE 0=0;
EXCEPTION
WHEN NO_DATA_FOUND THEN
lamt := 0;
END;
-- 詰め替え。
vrec_COS_GT_GENKA.PRNT_NO := p$prnt_no;
vrec_COS_GT_GENKA.SEQ := lseq;
vrec_COS_GT_GENKA.CTG_GRP_CD := 'ZZ';
vrec_COS_GT_GENKA.CTG_GRP_NM := '低価法評価損';
vrec_COS_GT_GENKA.PRNT_ITM_NM := '低価法評価損';
vrec_COS_GT_GENKA.PRINT_SORT := lprnt_sort;
vrec_COS_GT_GENKA.CTG1 := 0;
vrec_COS_GT_GENKA.CTG2 := 0;
vrec_COS_GT_GENKA.CTG3 := 0;
vrec_COS_GT_GENKA.VAR_NUM := 0;
vrec_COS_GT_GENKA.VAR_AMT := 0;
vrec_COS_GT_GENKA.VAR_COST := 0;
vrec_COS_GT_GENKA.FIX_NUM := 0;
vrec_COS_GT_GENKA.FIX_AMT := NVL(lamt, 0);
vrec_COS_GT_GENKA.FIX_COST := 0;
vrec_COS_GT_GENKA.TOTL_NUM := 0;
-- @2017/10/30 K.Sousou MOD START
--vrec_COS_GT_GENKA.TOTL_AMT := lamt;
--vrec_COS_GT_GENKA.TOTL_COST := 0;
vrec_COS_GT_GENKA.TOTL_AMT := 0;
vrec_COS_GT_GENKA.TOTL_COST := NVL(lamt, 0);
-- @2017/10/30 K.Sousou MOD END
vrec_COS_GT_GENKA.RATIO := 0;
vrec_COS_GT_GENKA.PROD_COST := 0;
vrec_COS_GT_GENKA.ORG_UPRI := 0;
vrec_COS_GT_GENKA.IN_QTY := 0;
vrec_COS_GT_GENKA.PROD_QTY := 0;
vrec_COS_GT_GENKA.SLS_AMT := 0;
vrec_COS_GT_GENKA.SLS_COST := 0;
vrec_COS_GT_GENKA.SEL_EXP := 0;
vrec_COS_GT_GENKA.ADM_EXP := 0;
vrec_COS_GT_GENKA.SLS_VAR_AMT := 0;
vrec_COS_GT_GENKA.VAR_TTL := 0;
vrec_COS_GT_GENKA.FIX_TTL := 0;
-- 登録。
-- INSERT INTO COS_GT_GENKA VALUES vrec_COS_GT_GENKA;
L_COS_GT_GENKA.EXTEND;
L_COS_GT_GENKA(L_COS_GT_GENKA.COUNT) := vrec_COS_GT_GEN...
-- 連番をカウントアップ。
lseq := lseq + 1;
lprnt_sort := lprnt_sort + 1;
-- ■原価計算結果
vrec_COS_GT_GENKA := NULL;
BEGIN
SELECT SUM(T2.ACT_COST) AS ACT_COAT
INTO lact_cost
FROM GT_ALEVEL0 T1
INNER JOIN GT_ASHUKEI T2 ON (T1.CALC_NO = T2.CALC_NO ...
INNER JOIN COS_GW_GENKA_HIS W1 ON (W1.CALC_NO = T1.CA...
WHERE 0=0
AND T1.REC_TYP = '6'
AND EXISTS (SELECT 'X'
FROM GM_HINGUNKS M1
WHERE 0=0
AND T1.YM = M1.TERM
AND M1.P_CTG_CD LIKE 'RG%'
AND T1.ITM_CD = M1.C_CTG_CD)
AND EXISTS (SELECT 'X'
FROM CM_AC_REASON M2
WHERE 0=0
AND M2.NOTE IS NULL
AND T1.AC_RSN_CD = M2.AC_RSN_CD);
-- 詰め替え。
vrec_COS_GT_GENKA.PRNT_NO := p$prnt_no;
vrec_COS_GT_GENKA.SEQ := lseq;
vrec_COS_GT_GENKA.CTG_GRP_CD := 'ZZ';
vrec_COS_GT_GENKA.CTG_GRP_NM := '除却損';
vrec_COS_GT_GENKA.PRNT_ITM_NM := '除却損';
vrec_COS_GT_GENKA.PRINT_SORT := lprnt_sort;
vrec_COS_GT_GENKA.CTG1 := 0;
vrec_COS_GT_GENKA.CTG2 := 0;
vrec_COS_GT_GENKA.CTG3 := 0;
vrec_COS_GT_GENKA.VAR_NUM := 0;
vrec_COS_GT_GENKA.VAR_AMT := 0;
vrec_COS_GT_GENKA.VAR_COST := 0;
vrec_COS_GT_GENKA.FIX_NUM := 0;
vrec_COS_GT_GENKA.FIX_AMT := lact_cost;
vrec_COS_GT_GENKA.FIX_COST := 0;
vrec_COS_GT_GENKA.TOTL_NUM := 0;
-- @2017/10/30 K.Sousou MOD START
--vrec_COS_GT_GENKA.TOTL_AMT := lact_cost;
--vrec_COS_GT_GENKA.TOTL_COST := 0;
vrec_COS_GT_GENKA.TOTL_AMT := 0;
vrec_COS_GT_GENKA.TOTL_COST := lact_cost;
-- @2017/10/30 K.Sousou MOD END
vrec_COS_GT_GENKA.RATIO := 0;
vrec_COS_GT_GENKA.PROD_COST := 0;
vrec_COS_GT_GENKA.ORG_UPRI := 0;
vrec_COS_GT_GENKA.IN_QTY := 0;
vrec_COS_GT_GENKA.PROD_QTY := 0;
vrec_COS_GT_GENKA.SLS_AMT := 0;
vrec_COS_GT_GENKA.SLS_COST := 0;
vrec_COS_GT_GENKA.SEL_EXP := 0;
vrec_COS_GT_GENKA.ADM_EXP := 0;
vrec_COS_GT_GENKA.SLS_VAR_AMT := 0;
vrec_COS_GT_GENKA.VAR_TTL := 0;
vrec_COS_GT_GENKA.FIX_TTL := 0;
-- 登録。
-- INSERT INTO COS_GT_GENKA VALUES vrec_COS_GT_GENKA;
L_COS_GT_GENKA.EXTEND;
L_COS_GT_GENKA(L_COS_GT_GENKA.COUNT) := vrec_COS_GT_GEN...
FOR n IN 1..L_COS_GT_GENKA.COUNT LOOP
FIX_AMT_SUM := FIX_AMT_SUM + NVL(L_COS_GT_GENKA(n).F...
TOTAL_AMT_SUM := TOTAL_AMT_SUM + NVL(L_COS_GT_GENKA(n)...
IF n = 1 THEN
lseq := L_COS_GT_GENKA(n).SEQ;
R_COS_GT_GENKA := L_COS_GT_GENKA(n);
R_COS_GT_GENKA.CTG1:=9;
-- @2017/10/30 K.Sousou ADD START
R_COS_GT_GENKA.CTG_GRP_CD := NULL;
R_COS_GT_GENKA.CTG_GRP_NM := NULL;
-- @2017/10/30 K.Sousou ADD END
R_COS_GT_GENKA.PRINT_SORT := NULL;
R_COS_GT_GENKA.CHD_CTG_CD := NULL;
R_COS_GT_GENKA.CHD_CTG_NM := NULL;
R_COS_GT_GENKA.EXPNS_CD := NULL;
R_COS_GT_GENKA.PRNT_ITM_NM := NULL;
R_COS_GT_GENKA.UNIT_NM := NULL;
R_COS_GT_GENKA.VAR_NUM := NULL;
R_COS_GT_GENKA.VAR_AMT := NULL;
R_COS_GT_GENKA.VAR_COST := NULL;
R_COS_GT_GENKA.FIX_NUM := NULL;
R_COS_GT_GENKA.FIX_AMT := NULL;
R_COS_GT_GENKA.FIX_COST := NULL;
R_COS_GT_GENKA.TOTL_NUM := NULL;
R_COS_GT_GENKA.TOTL_AMT := NULL;
R_COS_GT_GENKA.TOTL_COST := NULL;
R_COS_GT_GENKA.PROD_COST := NULL;
R_COS_GT_GENKA.ORG_UPRI := NULL;
R_COS_GT_GENKA.IN_QTY := NULL;
R_COS_GT_GENKA.PROD_QTY := NULL;
R_COS_GT_GENKA.SLS_AMT := NULL;
R_COS_GT_GENKA.SLS_COST := NULL;
R_COS_GT_GENKA.SEL_EXP := NULL;
R_COS_GT_GENKA.ADM_EXP := NULL;
R_COS_GT_GENKA.SLS_VAR_AMT := NULL;
R_COS_GT_GENKA.VAR_TTL := NULL;
R_COS_GT_GENKA.FIX_TTL := NULL;
INSERT INTO COS_GT_GENKA VALUES R_COS_GT_GENKA;
END IF;
-- @2017/10/30 K.Sousou MOD START
--IF n > 1 AND n < L_COS_GT_GENKA.COUNT THEN
IF n < L_COS_GT_GENKA.COUNT THEN
--L_COS_GT_GENKA(n).SEQ := lseq;
L_COS_GT_GENKA(n).SEQ := lseq + 1;
-- @2017/10/30 K.Sousou MOD END
INSERT INTO COS_GT_GENKA VALUES L_COS_GT_GENKA(n);
R_COS_GT_GENKA := NULL;
END IF;
IF n = L_COS_GT_GENKA.COUNT THEN
-- @2017/10/30 K.Sousou MOD START
--L_COS_GT_GENKA(n).SEQ := lseq;
L_COS_GT_GENKA(n).SEQ := lseq + 1;
-- @2017/10/30 K.Sousou MOD END
INSERT INTO COS_GT_GENKA VALUES L_COS_GT_GENKA(n);
R_COS_GT_GENKA := L_COS_GT_GENKA(n);
-- @2017/10/30 K.Sousou MOD START
--R_COS_GT_GENKA.SEQ := lseq+1;
R_COS_GT_GENKA.SEQ := lseq + 2;
-- @2017/10/30 K.Sousou MOD END
R_COS_GT_GENKA.CTG_GRP_NM := NULL;
R_COS_GT_GENKA.PRINT_SORT := R_COS_GT_GENKA.PRINT_SOR...
R_COS_GT_GENKA.CTG1 := 1;
R_COS_GT_GENKA.PRNT_ITM_NM := '合計';
R_COS_GT_GENKA.FIX_AMT := FIX_AMT_SUM;
R_COS_GT_GENKA.TOTL_COST := TOTAL_AMT_SUM;
INSERT INTO COS_GT_GENKA VALUES R_COS_GT_GENKA;
END IF;
lseq := lseq + 1;
END LOOP;
EXCEPTION
WHEN NO_DATA_FOUND THEN
lact_cost := 0;
END;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('ERROR' || SQLERRM);
END GENKA_ANOTHER_PRNT;
FUNCTION CHK_HINGUN_CD(
I_TERM IN GM_HINGUNKS.TERM%TYPE,
I_C_CTG_CD IN GM_HINGUNKS.C_CTG_CD%TYPE
) RETURN NUMBER
/********************************************************...
<Synopsis>
品群構成マスタチェック
<Remarks>
<Arguments>
<Item> VARCHAR2
<ReturnValue>
NUMBER
1:正常;2:複数の場合;0:ない場合
*********************************************************...
IS
-- 変数定義
TYPE T_GM_HINGUNKS IS TABLE OF GM_HINGUNKS%ROWTYPE;
L_GM_HINGUNKS T_GM_HINGUNKS;
BEGIN
SELECT *
BULK COLLECT INTO L_GM_HINGUNKS
FROM GM_HINGUNKS T1
WHERE 0 = 0
AND T1.TERM = I_TERM
AND T1.C_CTG_CD = I_C_CTG_CD;
-- @2017/10/30 K.Sousou MOD START
/*-- 取得件数2件以上の場合
IF (L_GM_HINGUNKS.COUNT > 1) THEN
RETURN FALSE;
END IF;
RETURN TRUE;
-- 取得件数0件*/
-- 取得件数2件以上の場合
IF (L_GM_HINGUNKS.COUNT > 1) THEN
RETURN 2;
END IF;
-- 取得件数0件
IF L_GM_HINGUNKS.COUNT = 0 THEN
RETURN 0;
END IF;
-- 一件だけ、正常の場合
RETURN 1;
-- @2017/10/30 K.Sousou MOD END
EXCEPTION
WHEN NO_DATA_FOUND THEN
-- @2017/10/30 K.Sousou MOD START
--RETURN TRUE;
RETURN 0;
-- @2017/10/30 K.Sousou MOD END
END;
END CPA_COS_ALLOC_PRNT_RE;
/
}}
ページ名: