0% found this document useful (0 votes)
52 views6 pages

Credit Memo

This document contains code for generating a credit memo report in ABAP. It begins by defining data structures and variables. It then selects credit memo data from tables VBRK and VBRP, looks up customer details, and calculates item discounts. It formats address and footer text for the report. Finally, it calls form processing functions to open a form, run a function module to generate the report, and close the form.

Uploaded by

Mahmudur rahman
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
52 views6 pages

Credit Memo

This document contains code for generating a credit memo report in ABAP. It begins by defining data structures and variables. It then selects credit memo data from tables VBRK and VBRP, looks up customer details, and calculates item discounts. It formats address and footer text for the report. Finally, it calls form processing functions to open a form, run a function module to generate the report, and close the form.

Uploaded by

Mahmudur rahman
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 6

REPORT 

ZSD_CREDIT_MEMO.

  TABLES : NAST.
  DATA : ITAB TYPE TABLE OF ZCREDIT_MEMO,
         WA_ITAB TYPE ZCREDIT_MEMO.
  DATA: FM_NAME         type RS38L_FNAM,      " CHAR 30 0 Name of Function M
odule
        FP_DOCPARAMS    type SFPDOCPARAMS,    " Structure  SFPDOCPARAMS Short 
Description  Form Parameters for Form Processing
        FP_OUTPUTPARAMS type SFPOUTPUTPARAMS. " Structure  SFPOUTPUTPARAMS Sh
ort Description  Form Processing Output Parameter
  DATA : V_CUSTOMER_DESC TYPE KNA1-NAME1,
         V_CUSTOMER_ADDRESS TYPE KNA1-STRAS,
         SHAR_ADDRESS TYPE STRING,
         S_FOOTER TYPE STRING,
         S_BOX TYPE STRING,
         S_BOX_ABB TYPE STRING,
         S_BOX_TEL TYPE STRING,
         S_ADD TYPE STRING,
         S_ADD_ABB TYPE STRING,
         S_ADD_TEL TYPE STRING,
         TEL1 TYPE STRING,
         TEL2 TYPE STRING.
  DATA :  DISC TYPE KONV-KWERT,
          V_CALC_TYPE TYPE KONV-KRECH.
*  PARAMETERS : S_VBELN TYPE VBRK-VBELN.
*  START-OF-SELECTION.
  FORM ENTRY_CM USING   RETURN_CODE US_SCREEN.
    REFRESH :ITAB.
    CLEAR : WA_ITAB,V_CUSTOMER_DESC,V_CUSTOMER_ADDRESS.

    SELECT VBRK~VKORG VBRK~FKDAT  VBRK~VBELN VBRK~KUNRG VBRP~MATNR VBRP~FKIMG 
VBRP~ARKTX VBRP~AUGRU_AUFT VBRP~AUBEL VBRK~KNUMV VBRP~NETWR
      VBRP~POSNR VBRK~NETWR AS NET_NETWR
      INTO CORRESPONDING FIELDS OF TABLE ITAB
      FROM VBRK INNER JOIN VBRP ON VBRK~VBELN = VBRP~VBELN
      WHERE VBRK~VBELN = NAST-OBJKY AND FKIMG > '0'. "S_VBELN

    READ TABLE ITAB INTO WA_ITAB INDEX 1.
    SELECT SINGLE NAME1 STRAS
      INTO (V_CUSTOMER_DESC , V_CUSTOMER_ADDRESS )
      FROM KNA1 WHERE KNA1~KUNNR = WA_ITAB-KUNRG.

*      V_DISCOUNT = V_DISCOUNT + V_DIS.
*    ENDSELECT.
      CLEAR : WA_ITAB.
    LOOP AT ITAB INTO WA_ITAB.
      SELECT SINGLE BEZEI
        INTO WA_ITAB-BEZEI
        FROM TVAUT
        WHERE AUGRU = WA_ITAB-AUGRU_AUFT AND SPRAS = 'EN'.

**************      nageh ******** 09102016
    SELECT SINGLE VBELV FROM VBFA INTO WA_ITAB-INVOICE_NO WHERE VBELN = WA_ITA
B-VBELN AND VBTYP_V = 'M' .
    SELECT SINGLE VBELV FROM VBFA INTO WA_ITAB-DELIVERY_NO WHERE VBELN = WA_IT
AB-VBELN AND VBTYP_V = 'J' .
    SELECT SINGLE VBELV FROM VBFA INTO WA_ITAB-SO_NO WHERE VBELN = WA_ITAB-
VBELN AND VBTYP_V = 'C' .

        "Unit Price
*      SELECT SINGLE NETPR
*        INTO WA_ITAB-NETPR
*        FROM VBAP WHERE VBELN = WA_ITAB-AUBEL AND MATNR = WA_ITAB-MATNR.
        "Discount
        CLEAR : DISC.
      SELECT KWERT
        INTO DISC
        FROM KONV WHERE KNUMV = WA_ITAB-KNUMV AND KPOSN = WA_ITAB-POSNR AND ( 
KSCHL = 'ZDI1' OR KSCHL = 'ZDI2' ).
        WA_ITAB-KWERT = WA_ITAB-KWERT + DISC.
        CLEAR : DISC.
      ENDSELECT.

      "Discount Per Item
      WA_ITAB-KWERT = ( WA_ITAB-KWERT ) / ( WA_ITAB-FKIMG ).
      " Calculate Net price from Konv table
      CLEAR : WA_ITAB-NETPR.
      SELECT KBETR KRECH
        INTO (DISC,V_CALC_TYPE )
        FROM KONV WHERE KNUMV = WA_ITAB-KNUMV AND KPOSN = WA_ITAB-POSNR AND ( 
KSCHL <> 'ZDI1' AND KSCHL <> 'ZDI2' ).
        IF V_CALC_TYPE <>'C'.
          WA_ITAB-NETPR = WA_ITAB-NETPR + ( DISC / ( WA_ITAB-FKIMG ) ).
        ELSE.
          WA_ITAB-NETPR = WA_ITAB-NETPR + DISC.
        ENDIF.

        CLEAR : DISC,V_CALC_TYPE.
      ENDSELECT.

      IF WA_ITAB-KWERT < 0.
        WA_ITAB-NETPR_AFTER_DIS = WA_ITAB-NETPR + ( WA_ITAB-KWERT ) .
      ELSE.
        WA_ITAB-NETPR_AFTER_DIS = WA_ITAB-NETPR - ( WA_ITAB-KWERT ) .
      ENDIF.
      WA_ITAB-NAME1 = V_CUSTOMER_DESC.
      WA_ITAB-STRAS = V_CUSTOMER_ADDRESS.
      MODIFY ITAB FROM WA_ITAB TRANSPORTING NETPR_AFTER_DIS NETPR BEZEI NAME1 
STRAS KWERT INVOICE_NO DELIVERY_NO SO_NO .
      CLEAR : WA_ITAB.
    ENDLOOP.

    CLEAR : SHAR_ADDRESS,S_FOOTER.
    READ TABLE ITAB INTO WA_ITAB INDEX 1.
    IF WA_ITAB-VKORG = 2110.
      SHAR_ADDRESS = 'SHAR-Jeddah Cold Store'.
      S_BOX = 'P.O BOX 34314'.
      S_BOX_ABB = 'CR'.
      S_BOX_TEL = '4030168934'.
      S_ADD = 'Jeddah 21468'.
      S_ADD_ABB = 'CCM'.
      S_ADD_TEL = '119931'.
      TEL1 = '+966 12 2680000'.
      TEL2 = '+966 12 2686666'.
    ELSEIF  WA_ITAB-VKORG = 2210.
      SHAR_ADDRESS = 'SHAR- Riyadh Cold Store'.
      S_BOX = 'P.O BOX 25507'.
      S_BOX_ABB = 'CR'.
      S_BOX_TEL = '1010230789'.
      S_ADD = 'Riyadh 11476'.
      S_ADD_ABB = 'CCM'.
      S_ADD_TEL = '5005'.
      TEL1 = '+966 11 2655222'.
      TEL2 = '+966 12 2656222'.
    ENDIF.
    CONCATENATE 'Address : ' SHAR_ADDRESS 'Email:[email protected] | Phone : 42
5-55-0150 | Fax : 425-555-0151 | CR NO' INTO S_FOOTER SEPARATED BY SPACE.
       CALL FUNCTION 'FP_JOB_OPEN'                   "& Form Processing: Call 
Form
          CHANGING
            ie_outputparams = FP_OUTPUTPARAMS
          EXCEPTIONS
            cancel          = 1
            usage_error     = 2
            system_error    = 3
            internal_error  = 4
            OTHERS          = 5.

       CALL FUNCTION 'FP_FUNCTION_MODULE_NAME'           "& Form Processing G
eneration
           EXPORTING
             I_NAME     = 'ZSDCREDIT_MEMO_FORM'
           IMPORTING
             E_FUNCNAME = FM_NAME.
       CALL FUNCTION fm_name
         EXPORTING
           /1bcdwb/docparams   = FP_DOCPARAMS
           ITAB                = ITAB
           WA_ITAB             = WA_ITAB
           SHAR_ADDRESS        = SHAR_ADDRESS
           FOOTER              = S_FOOTER
           S_BOX               = S_BOX
           S_BOX_ABB           = S_BOX_ABB
           S_BOX_TEL           = S_BOX_TEL
           S_ADD               = S_ADD
           S_ADD_ABB           = S_ADD_ABB
           S_ADD_TEL           = S_ADD_TEL
           TEL1                = TEL1
           TEL2                = TEL2
         EXCEPTIONS
           usage_error           = 1
           system_error          = 2
           internal_error        = 3.

    CALL FUNCTION 'FP_JOB_CLOSE'
      EXCEPTIONS
        usage_error           = 1
        system_error          = 2
        internal_error        = 3
        OTHERS                = 4.
  ENDFORM.

You might also like