가용예산 확인
METHOD GET_PERIOD_COSP_TOTAL.
DATA: LR_WRTTP TYPE RANGE OF WRTTP,
LR_YRNMN TYPE RANGE OF ZEYRNMN,
LR_OBJNR TYPE RANGE OF J_OBJNR,
LR_VERSN TYPE RANGE OF VERSN,
LR_KSTAR TYPE RANGE OF KSTAR.
DATA: LT_KOSTL TYPE GSETH_MD_TAB,
LS_KOSTL TYPE GRPMDLINE.
DATA: LV_OBJNR TYPE J_OBJNR.
DATA: LS_COSP TYPE COSP,
LT_COSP TYPE TABLE OF COSP.
DATA: LV_MONTH(2) TYPE N.
DATA: LV_STRING TYPE CHAR30.
CLEAR: LR_OBJNR[], LT_COSP, LV_STRING, E_WKGRT,
LR_WRTTP[], LR_WRTTP, LV_MONTH, LT_KOSTL, LS_KOSTL,
LR_KSTAR[].
*-> 계획 실적 구분
CASE I_WRTTP_TYPE.
WHEN '1'.
LR_WRTTP = VALUE #( ( SIGN = 'I' OPTION = 'EQ' LOW = '01' ) ).
LR_VERSN = VALUE #( ( SIGN = 'I' OPTION = 'EQ' LOW = I_VERSN ) ).
WHEN OTHERS.
LR_WRTTP = VALUE #( ( SIGN = 'I' OPTION = 'EQ' LOW = '04' ) ).
LR_VERSN = VALUE #( ( SIGN = 'I' OPTION = 'EQ' LOW = '000' ) ).
ENDCASE.
*-> 기간(월) / 기간(월)From - 기간(월)To
IF I_YRNMN_TO IS NOT INITIAL.
LR_YRNMN = VALUE #( ( SIGN = 'I' OPTION = 'BT' LOW = I_YRNMN_FROM HIGH = I_YRNMN_TO ) ).
ELSE.
LR_YRNMN = VALUE #( ( SIGN = 'I' OPTION = 'EQ' LOW = I_YRNMN_FROM ) ).
ENDIF.
CASE I_OBJTY.
WHEN 'KS'.
*-> 계정이 1개만 던졌을 경우
IF I_KSTAR IS NOT INITIAL.
LR_KSTAR = VALUE #( ( SIGN = 'I' OPTION = 'EQ' LOW = I_KSTAR ) ).
ENDIF.
IF I_KSGRU IS NOT INITIAL.
CALL METHOD ZCL_CO_COMMON=>GET_COST_CENTER_GROUP
EXPORTING
I_CLASS = ZCL_CO_COMMON=>C_COST_CENTER_GROUP_CLASS
I_KOKRS = I_KOKRS
I_KSGRU_TOP = I_KSGRU
IMPORTING
ET_KOSTL = LT_KOSTL[].
LOOP AT LT_KOSTL INTO LS_KOSTL.
CLEAR: LV_OBJNR.
LV_OBJNR = 'KS' && I_KOKRS && LS_KOSTL-NAME.
LR_OBJNR = VALUE #( BASE LR_OBJNR ( SIGN = 'I' OPTION = 'EQ' LOW = LV_OBJNR ) ).
ENDLOOP.
ELSE.
CLEAR: LV_OBJNR.
LV_OBJNR = 'KS' && I_KOKRS && I_KOSTL.
LR_OBJNR = VALUE #( ( SIGN = 'I' OPTION = 'EQ' LOW = LV_OBJNR ) ).
ENDIF.
WHEN 'PR'.
CLEAR: LV_OBJNR.
LV_OBJNR = 'PR' && I_PSPNR.
LR_OBJNR = VALUE #( ( SIGN = 'I' OPTION = 'EQ' LOW = LV_OBJNR ) ).
ENDCASE.
SELECT WKG001,
WKG002,
WKG003,
WKG004,
WKG005,
WKG006,
WKG007,
WKG008,
WKG009,
WKG010,
WKG011,
WKG012,
WKG013,
WKG014,
WKG015,
WKG016
INTO CORRESPONDING FIELDS OF @LS_COSP
FROM COSP
WHERE LEDNR = @ZCL_CO_COMMON=>C_LEDNR "관리회계 오브젝트에 대한 원장 00
AND OBJNR IN @LR_OBJNR
AND GJAHR = @I_GJAHR
AND VERSN IN @LR_VERSN
AND KSTAR IN @LR_KSTAR
AND KSTAR IN @IR_KSTAR
AND WRTTP IN @LR_WRTTP.
COLLECT LS_COSP INTO LT_COSP.
CLEAR: LS_COSP.
ENDSELECT.
IF SY-SUBRC = 0.
READ TABLE LT_COSP INTO LS_COSP INDEX 1.
IF SY-SUBRC = 0.
DO 12 TIMES.
ADD 1 TO LV_MONTH.
CLEAR: LV_STRING.
IF LV_MONTH IN LR_YRNMN.
LV_STRING = 'LS_COSP-WKG0' && LV_MONTH.
ASSIGN (LV_STRING) TO FIELD-SYMBOL(<FS>).
IF <FS> IS ASSIGNED.
E_WKGRT = E_WKGRT + <FS>.
ENDIF.
ENDIF.
ENDDO.
ENDIF.
ENDIF.
ENDMETHOD.