메뉴 건너뛰기

SAP 한국 커뮤니티



국고보조금 입력 에러 질문

파출부 2020.10.07 16:00 조회 수 : 965

안녕하세요. 오랜만에 인사 드립니다.

 

 

41번 감가상각 영역에 금액을 입력하려고 하는데 에러가 뜹니다. 

 

현재 연도 취득의 최대 투자 보조금이 영역 41에서 초과되었습니다.

메시지 번호 AA789

 

 

작년도에까지 2억 가량 건설중 자산으로 잡고 있다가 이번해에 1억이 추가되어서 건중으로 토탈 3억이 있었는데 본자산화 해서 3억이 들어왔습니다.

이때 2.5 정도를 국고보조금을 받아서 특별평가로 abif 에서 넣을려고 하는데 위와 같은 에러가 뜹니다. 

 

디버깅을 해보니 올해 등록된 1억을 비교하면서 자꾸 큰금액은 안된다고 하더라고요

 

소스는 아래와 같아서 무슨 설정하는 부분이 따로 있는건지 모르겠습니다. 

 

결론은 자산(작년 취득분 2억, 올해 취득분 1억)이 있는데 국고보조금을 2.5억을 넣을려 하니 1억 넘어서 안되라고 하네요 ㅜ.ㅜ

 

조언 쫌 부탁 드립니다.

 

 

참고로 저희회사는 WBS를 통한 건가에서 본자산으로 처리하고 있습니다.

 

 

 

 LOOP AT lt_sumseg INTO ls_sumseg
              WHERE area = lo_invsupport_handle->mo_base_area->mv_depr_area
                 OR area = lo_invsupport_handle->mo_invsupport_area->mv_depr_area.

              DO 2 TIMES.
                CASE sy-index.
                  WHEN 1.
                    lv_max_amount = ls_sumseg-prev_prev-apc.
                    lv_apc        = ls_sumseg-prev_prev-apc.                                 "< 2659230
                    lv_inv_amount = ls_sumseg-prev_prev-invs + ls_sumseg-prev_cur-invs.
                  WHEN 2.
                    lv_max_amount = ls_sumseg-cur-apc.
                    lv_apc        = ls_sumseg-cur-apc.                                       "< 2659230
                    lv_inv_amount = ls_sumseg-cur-invs.

                ENDCASE.

* consider settings of investment support measure
                IF ls_sumseg-area = lo_invsupport_handle->mo_invsupport_area->mv_depr_area.
                  IF lo_invsupport_handle->ms_setup-max_percentage IS NOT INITIAL.
                    lv_max_amount = lv_max_amount * lo_invsupport_handle->ms_setup-max_percentage / 100.
                  ENDIF.

* if max amount defined and percentage => max amount wins
                  IF lo_invsupport_handle->ms_setup-max_amount IS NOT INITIAL.
                    lv_max_amount = lo_invsupport_handle->ms_setup-max_amount.
*                 Maximum amount may never be higher than APC amount                       "< 2659230
                  IF lv_max_amount > lv_apc.                                               "< 2659230
                    lv_max_amount = lv_apc.                                                "< 2659230
                  ENDIF.                                                                   "< 2659230
*                 lv_inv_amount = ls_sumseg-prev_prev-invs + ls_sumseg-prev_cur-invs + ls_sumseg-cur-invs. "< 2659230
                  ENDIF.
                ENDIF.

                lv_max_amount = abs( lv_max_amount ).
                lv_inv_amount = abs( lv_inv_amount ).

* raise error message if (sum of) investment support exceeds the allowed maximum amount
                CHECK lv_inv_amount > lv_max_amount.

                CASE sy-index.
                  WHEN 1.
*                 Acquistion of prior year                                                    "< 2659230
                    IF ls_sumseg-area = lo_invsupport_handle->mo_invsupport_area->mv_depr_area.
                      MESSAGE e788(aa) WITH ls_sumseg-area INTO lv_message.
                      me->create_message_from_syst( ).
                    ELSE.
                      MESSAGE e661(aa) WITH ls_sumseg-area INTO lv_message.
                      me->create_message_from_syst( ).
                    ENDIF.
                  WHEN 2.
                    IF ls_sumseg-area = lo_invsupport_handle->mo_invsupport_area->mv_depr_area.
                      MESSAGE e789(aa) WITH ls_sumseg-area INTO lv_message.
                      me->create_message_from_syst( ).
                    ELSE.
                      MESSAGE e661(aa) WITH ls_sumseg-area INTO lv_message.
                      me->create_message_from_syst( ).
                    ENDIF.
                ENDCASE.
              ENDDO.
            ENDLOOP.
          ENDAT.
        ENDLOOP.