BEFORE_CHECK

<< Click to Display Table of Contents >>

Navigation:  All About ABAP Technique > English > ABAP Tutorial > ABAP Workbench Tools > Enhancement > Business Add-Ins (BADI) > Business Add-Ins (BADI) Examples > ZBADI_SCD_ACCTG >

BEFORE_CHECK

*Parameters
*IMPORTING
*I_REFOBJ Shipment
*I_SCD_ITEM Shipment cost item
*I_VTRLK Delivery header
*I_VTRLP Delivery item
*I_TRTYP Transaction type (create, change, display)
*CHANGING
*C_VFKN Account assignment line for shipment costs
 
 
*automatic assignment of internal order in account assignment.
method IF_EX_BADI_SCD_ACCTG~BEFORE_CHECK .
 
*** Move I/O number from Shipment document to Shipment Cost
select single TEXT1
  into  C_VFKN-AUFNR from VTTK
  where TKNUM = I_SCD_ITEM-VFKP-REBEL.
 
 
*** G/L account Setting for Export Shipment
IF I_SCD_ITEM-VFKP-TPLST = 'P010'.
 
**** Shipping Cost Expense
  IF    I_SCD_ITEM-VFKP-FKPTY = '0001'
      OR I_SCD_ITEM-VFKP-FKPTY = 'ZE02'.
     C_VFKN-SAKTO = '0061019920'.
     C_VFKN-KOSTL = '0021211199'.
  ENDIF.
 
**** Insurance and Inspection Fee
  IF    I_SCD_ITEM-VFKP-FKPTY = '0003'
      OR I_SCD_ITEM-VFKP-FKPTY = 'ZE03'.
     C_VFKN-SAKTO = '0061019941'.
     C_VFKN-KOSTL = '0021211199'.
  ENDIF.
 
ENDIF.
 
 
 
*** G/L account Setting for Local Shipment
IF I_SCD_ITEM-VFKP-TPLST ne 'P010'.
 
  data: gw_shipto type likp-kunnr.
  data: gw_vbeln type likp-vbeln.
  data: gw_vkorg type likp-vkorg.
  data: gw_kostl type csks-kostl.
  data: gw_lfart type likp-lfart.
  data: gw_gsber type t134g-gsber.
 
 
**  Kondisi untuk Uang Sewa atau Mobil Sendiri
  IF I_SCD_ITEM-VFKP-FKPTY = 'Z003' or I_SCD_ITEM-VFKP-FKPTY = 'Z001'.
 
    select single vbeln into gw_vbeln from vttp
            where tknum = I_SCD_ITEM-VFKP-REBEL.
    select single kunnr into gw_shipto from likp
            where vbeln = gw_vbeln.
    select single vkorg into gw_vkorg from likp
            where vbeln = gw_vbeln.
    select single lfart into gw_lfart from likp
            where vbeln = gw_vbeln.
    select single gsber into gw_gsber from t134g
            where werks = I_SCD_ITEM-VFKP-WERKS.
 
** Get appropriate Cost Center
** Cost center table CSKS.
 
    IF gw_lfart = 'NL'.               " untuk pengiriman ke cabang
       C_VFKN-SAKTO = '0061010692'.
      IF I_SCD_ITEM-VFKP-FKPTY = 'Z003'.   "Sewa
        if gw_vkorg = 'A202'.   "untuk Building Material
**        CO Object untuk pengiriman antar cabang mobil sewa.
          select single kostl into gw_kostl from csks
                  where kokrs = 'WSCO'
                  and   gsber = gw_shipto
                  and   kosar = 'V'
                  and   khinr ge '21112000'
                  and   khinr le '21112999'.
          if sy-subrc = 0.
             C_VFKN-KOSTL = gw_kostl.
            Clear C_VFKN-AUFNR.
          endif.
        else.                   "untuk consumer goods
**        CO Object untuk pengiriman antar cabang mobil sewa.
          select single kostl into gw_kostl from csks
            where kokrs = 'WSCO'
            and   gsber = gw_shipto
            and   kosar = 'V'
            and   khinr ge '21111000'
            and   khinr le '21111999'.
          if sy-subrc = 0.
             C_VFKN-KOSTL = gw_kostl.
            Clear C_VFKN-AUFNR.
          endif.
        endif.
      ENDIF.
    ELSE.                 "Pengiriman ke langganan
       C_VFKN-SAKTO = '0061010690'.
      IF I_SCD_ITEM-VFKP-FKPTY = 'Z003'.   "Sewa
        if gw_vkorg = 'A202'.   "untuk Building Material
**        CO Object untuk pengiriman ke langganan mobil sewa.
          if gw_gsber ne 'AB01'.
            select single kostl into gw_kostl from csks
                    where kokrs = 'WSCO'
                    and   gsber = gw_gsber
                    and   kosar = 'V'
                    and   khinr ge '21111000'
                    and   khinr le '21111999'.
            if sy-subrc = 0.
               C_VFKN-KOSTL = gw_kostl.
              Clear C_VFKN-AUFNR.
            endif.
          else.
             C_VFKN-KOSTL = '0021112101'.
            Clear C_VFKN-AUFNR.
          endif.
        else.                   "untuk consumer goods
**        CO Object untuk pengiriman ke langganan mobil sewa.
          if gw_gsber ne 'AB01'.
            select single kostl into gw_kostl from csks
              where kokrs = 'WSCO'
              and   gsber = gw_gsber
              and   kosar = 'V'
              and   khinr ge '21111000'
              and   khinr le '21111999'.
            if sy-subrc = 0 and gw_gsber ne 'AB01'.
               C_VFKN-KOSTL = gw_kostl.
              Clear C_VFKN-AUFNR.
            endif.
          else.
            case I_SCD_ITEM-VFKP-WERKS.
              when '2011'.
                 C_VFKN-KOSTL = '0021111101'.
              when '2012'.
                 C_VFKN-KOSTL = '0021111102'.
              when '2013'.
                 C_VFKN-KOSTL = '0021111103'.
            endcase.
            Clear C_VFKN-AUFNR.
          endif.
        endif.
      ENDIF.
    ENDIF.
 
 
  ENDIF.
 
ENDIF.
 
endmethod.