G/L Opening/Closing Balance as on Key Date

...Previous

Code:-  

FUNCTION ZGL_OPENING_CLOSING_BAL_KEYDAT.
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     REFERENCE(COMP) TYPE  BKPF-BUKRS
*"     REFERENCE(DATE) TYPE  BKPF-BUDAT
*"     REFERENCE(ACCT) TYPE  BSEG-HKONT
*"  EXPORTING
*"     REFERENCE(BALANCE) TYPE  BSEG-DMBTR
*"----------------------------------------------------------------------
  
DATA : COMPANYCODEID  LIKE  BAPI0002_2-COMP_CODE     ,
         POSTING_DATE   
LIKE  BAPI0002_4-POSTING_DATE  ,
         FISCAL_YEAR    
LIKE  BAPI0002_4-FISCAL_YEAR   ,
         FISCAL_PERIOD  
LIKE  BAPI0002_4-FISCAL_PERIOD .

  
DATA : ACCOUNT_BALANCES  TYPE TABLE OF BAPI3006_4 WITH HEADER LINE.
  
DATA : BAL TYPE BSEG-DMBTR.

  
DATA : IV_DATE  TYPE  D   ,
        EV_MONTH_BEGIN_DATE  
TYPE  D,
        EV_MONTH_END_DATE  
TYPE  D .

  
DATA : COMPANYCODE  LIKE  BAPI3006_0-COMP_CODE,
        GLACCT  
LIKE  BAPI3006_0-GL_ACCOUNT ,
        FISCALYEAR  
LIKE  BAPI3006_4-FISC_YEAR,
        CURRENCYTYPE  
LIKE  BAPI3006_5-CURR_TYPE VALUE 10.

  
DATA : IT_BKPF TYPE TABLE OF BKPF WITH HEADER LINE.

  
DATA BEGIN OF IT_BSEG OCCURS 0,
        BELNR 
TYPE BSEG-BELNR,
        GJAHR 
TYPE BSEG-GJAHR,
        SHKZG 
TYPE BSEG-SHKZG  ,
        DMBTR 
TYPE BSEG-DMBTR,
        
END OF IT_BSEG.

  COMPANYCODEID = COMP.
  POSTING_DATE = DATE.

  IV_DATE  = DATE.

  
CALL FUNCTION 'HR_JP_MONTH_BEGIN_END_DATE'
    
EXPORTING
      IV_DATE             = IV_DATE
    
IMPORTING
      EV_MONTH_BEGIN_DATE = EV_MONTH_BEGIN_DATE
      EV_MONTH_END_DATE   = EV_MONTH_END_DATE.

  
CALL FUNCTION 'BAPI_COMPANYCODE_GET_PERIOD'
    
EXPORTING
      COMPANYCODEID = COMPANYCODEID
      POSTING_DATE  = POSTING_DATE
    
IMPORTING
      FISCAL_YEAR   = FISCAL_YEAR
      FISCAL_PERIOD = FISCAL_PERIOD.

  
IF EV_MONTH_END_DATE NE DATE.

    
IF FISCAL_PERIOD = 1.
      FISCAL_PERIOD = 
12              .
      FISCAL_YEAR = FISCAL_YEAR - 
1  .
    ELSE.
      FISCAL_PERIOD =  FISCAL_PERIOD - 
1.
    ENDIF.

  ENDIF.

  COMPANYCODE  =  COMP.
  GLACCT  = ACCT.
  FISCALYEAR  = FISCAL_YEAR.

  
CALL FUNCTION 'BAPI_GL_ACC_GETPERIODBALANCES'
    
EXPORTING
      COMPANYCODE      = COMPANYCODE
      GLACCT           = GLACCT
      FISCALYEAR       = FISCALYEAR
      CURRENCYTYPE     = CURRENCYTYPE
    
TABLES
      ACCOUNT_BALANCES = ACCOUNT_BALANCES.

  
READ TABLE ACCOUNT_BALANCES  WITH KEY FISC_YEAR = FISCALYEAR FIS_PERIOD = FISCAL_PERIOD.
  
IF SY-SUBRC = 0.
    BALANCE =  ACCOUNT_BALANCES-BALANCE.
  ENDIF.


  
IF EV_MONTH_END_DATE NE DATE.

    
SELECT FROM BKPF INTO TABLE IT_BKPF WHERE BUKRS = COMP AND BUDAT >= EV_MONTH_BEGIN_DATE
      
AND BUDAT <= DATE.

    
IF IT_BKPF[] IS NOT INITIAL.

      
SELECT BELNR GJAHR SHKZG DMBTR
        
FROM BSEG INTO CORRESPONDING FIELDS OF TABLE IT_BSEG
        
FOR ALL ENTRIES IN IT_BKPF
        
WHERE BELNR = IT_BKPF-BELNR AND GJAHR = IT_BKPF-GJAHR AND HKONT = ACCT AND BUKRS = COMP.

    ENDIF.

    
LOOP AT IT_BSEG.
      
IF IT_BSEG-SHKZG = 'H'.
        BAL = BAL - IT_BSEG-DMBTR.
      
ELSEIF IT_BSEG-SHKZG = 'S'.
        BAL = BAL + IT_BSEG-DMBTR.
      ENDIF.
    ENDLOOP.

    BALANCE = BALANCE + BAL.

  ENDIF.

ENDFUNCTION.
 

Output:-  


 Please send us your feedback/suggestions at webmaster@SAPFunctional.COM 

HomeContribute About Us Privacy Terms Of Use • Disclaimer • SafeCompanies: Advertise on SAPFunctional.COM | Post JobContact Us  

Graphic Design by Round the Bend Wizards

footer image footer image