Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 15

REPORT 

ZSD_DEL_NOTE.

TABLES:likp,kna1.

TYPES:
     BEGIN OF ty_likp,
     vbeln TYPE vbeln,
     kunnr TYPE kunnr,
     lfdat TYPE lfdat,
     vkorg TYPE vkorg,
     VSART TYPE VSARTTR,
     END OF ty_likp,

     BEGIN OF ty_lips,
     vbeln TYPE vbeln,
     posnr TYPE posnr,
     matnr TYPE matnr,
     meins TYPE meins,
     lfimg TYPE lfimg,
     vgbel TYPE vgbel,
     END OF ty_lips,

     BEGIN OF ty_kna1,
     kunnr TYPE kunnr,
     name1 TYPE name1_gp,
     ORT01 TYPE ORT01_GP,
     stras TYPE stras_gp,
     telf1 TYPE telf1,
     stceg type stceg,
     END OF ty_kna1,

     BEGIN OF ty_t001,
     bukrs TYPE bukrs,
     adrnr TYPE adrnr,
     END OF ty_t001,

     BEGIN OF ty_vbak,
     vbeln TYPE vbeln,
     audat TYPE audat,
     END OF ty_vbak,

     BEGIN OF ty_vbap,
     vbeln  TYPE vbeln,
     kwmeng TYPE vbap-kwmeng,
     END OF ty_vbap,

     BEGIN OF ty_vbkd,
     vbeln TYPE vbeln,
     zterm TYPE dzterm,
     END OF ty_vbkd,

     BEGIN OF ty_makt,
     matnr TYPE matnr,
     maktx TYPE maktx,
     END OF ty_makt,

     BEGIN OF ty_tvko,
     vkorg TYPE vkorg,
     bukrs TYPE bukrs,
     END OF ty_tvko,

     BEGIN OF ty_adrc,
     addrnumber     TYPE adrc-addrnumber,
     city1      TYPE ad_city1,
     tel_number TYPE ad_tlnmbr1,
     END OF ty_adrc,

     BEGIN OF ty_T173T,
       VSART TYPE VERSART,
       BEZEI TYPE VERSARTBEZ,

       END OF ty_T173T.

DATA:gt_final TYPE TABLE OF ZSD_DEL_str,
     gs_final TYPE ZSD_DEL_str,
     gt_likp  TYPE TABLE OF ty_likp,
     gs_likp  TYPE ty_likp,
     gt_lips  TYPE TABLE OF ty_lips,
     gs_lips  TYPE ty_lips,
     gt_kna1  TYPE TABLE OF ty_kna1,
     gs_kna1  TYPE ty_kna1,
     gt_makt  TYPE TABLE OF ty_makt,
     gs_makt  TYPE ty_makt,
     gt_vbkd  TYPE TABLE OF ty_vbkd,
     gs_vbkd  TYPE ty_vbkd,
     gt_vbak  TYPE TABLE OF ty_vbak,
     gs_vbak  TYPE ty_vbak,
     gt_tvko  TYPE TABLE OF ty_tvko,
     gs_tvko  TYPE ty_tvko,
     gt_t001  TYPE TABLE OF ty_t001,
     gs_t001  TYPE ty_t001,
     gt_adrc  TYPE TABLE OF ty_adrc,
     gs_adrc  TYPE ty_adrc,
     gt_vbap  TYPE TABLE OF ty_vbap,
     gs_vbap  TYPE ty_vbap,
     gt_T173T  TYPE TABLE OF ty_T173T,
     gs_T173T  TYPE ty_T173T.
DATA:lv_bukrs TYPE bukrs,
     lv_city  TYPE ad_city1,
     lv_telno TYPE ad_tlnmbr1,
     lv_kunnr TYPE kunnr,
     lv_cname TYPE name1_gp,
     lv_stras TYPE stras_gp,
     lv_ctel  TYPE telf1,
     lv_stceg type stceg,
     lv_odate TYPE lfdat,
     lv_addat TYPE lfdat,
     lv_order TYPE vbeln,
     lv_term  TYPE dzterm,
     lv_sno   TYPE i,
     lv_vbeln TYPE vbeln,
     lv_oqty  TYPE menge_d,
     lv_dqty  TYPE menge_d,
     lv_openq TYPE menge_d,
     lv_ship TYPE VERSARTBEZ,
     S_BOX TYPE STRING,
      S_BOX_ABB TYPE STRING,
      S_BOX_TEL TYPE STRING,
      S_BOX_final TYPE STRING,
      S_ADD TYPE STRING,
      S_ADD_ABB TYPE STRING,
      S_ADD_TEL TYPE STRING,
      S_ADD_final TYPE STRING,
      TEL1 TYPE STRING,
      TEL2 TYPE STRING.
DATA : l_date TYPE sy-datum,
       l_time TYPE sy-uzeit.
DATA : lt_date(10),
       lt_time(8),
       l_dt_time(20) TYPE c.
DATA:wa_outputparams TYPE sfpoutputparams,
     wa_docparams    TYPE sfpdocparams,
     i_fmname TYPE funcname,
     i_params TYPE sfpoutputparams,
     i_docparams TYPE sfpdocparams,
     fs_per_info TYPE pa0001-pernr,
     l_fm_name         TYPE rs38l_fnam,
     l_formname        TYPE fpname VALUE 'ZSD_DELI_NOTE_FORM',
     fp_docparams      TYPE sfpdocparams,
     fp_formoutput     TYPE fpformoutput,
     fp_outputparams   TYPE sfpoutputparams.

INCLUDE rvadtabl.

*SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
*PARAMETERS:s_vbeln type likp-vbeln.
*SELECTION-SCREEN END OF BLOCK b1.

CLASS lcl_deli_note DEFINITION DEFERRED.
DATA:lc_obj TYPE REF TO lcl_deli_note.

CLASS lcl_deli_note DEFINITION.
  PUBLIC SECTION.
  METHODS:get_data,get_disp.
ENDCLASS.

CLASS lcl_deli_note IMPLEMENTATION.
  METHOD get_data.

    SELECT
        vbeln
        kunnr
        lfdat
        vkorg
        VSART
      FROM likp
      INTO TABLE gt_likp
      WHERE vbeln eq nast-objky."s_vbeln.

   IF gt_likp IS NOT INITIAL.
    SELECT
        vbeln
        posnr
        matnr
        meins
        lfimg
        vgbel
      FROM lips
      INTO CORRESPONDING FIELDS OF TABLE gt_lips
      FOR ALL ENTRIES IN gt_likp
      WHERE vbeln EQ gt_likp-vbeln.

      SELECT
          kunnr
          name1
          ORT01
          stras
          telf1
          stceg
        FROM kna1
        INTO TABLE gt_kna1
        FOR ALL ENTRIES IN gt_likp
        WHERE kunnr EQ gt_likp-kunnr.

      SELECT
          vkorg
          bukrs
        FROM tvko
        INTO TABLE gt_tvko
        FOR ALL ENTRIES IN gt_likp
        WHERE vkorg EQ gt_likp-vkorg.

     SELECT
        VSART
        BEZEI
       from  T173t
       INTO TABLE gt_t173t
       FOR ALL ENTRIES IN gt_likp
       WHERE VSART eq gt_likp-vsart
       AND spras = sy-langu.

   ENDIF.

   IF gt_tvko IS NOT INITIAL.
      SELECT
         bukrs
         adrnr
        FROM t001
        INTO TABLE gt_t001
        FOR ALL ENTRIES IN gt_tvko
        WHERE bukrs EQ gt_tvko-bukrs.
   ENDIF.
   IF gt_t001 IS NOT INITIAL.
      SELECT
          addrnumber
          city1
          tel_number
        FROM adrc
        INTO TABLE gt_adrc
        FOR ALL ENTRIES IN gt_t001
        WHERE addrnumber EQ gt_t001-adrnr.

   ENDIF.

   IF gt_lips IS NOT INITIAL.
     SELECT
         vbeln
         audat
       FROM vbak
       INTO TABLE gt_vbak
       FOR ALL ENTRIES IN gt_lips
       WHERE vbeln EQ gt_lips-vgbel.

      SELECT
          vbeln
          kwmeng
        FROM vbap
        INTO TABLE gt_vbap
        FOR ALL ENTRIES IN gt_lips
        WHERE vbeln EQ gt_lips-vgbel.

      SELECT
          vbeln
          zterm
        FROM vbkd
        INTO TABLE gt_vbkd
        FOR ALL ENTRIES IN gt_lips
        WHERE vbeln EQ gt_lips-vgbel.

      SELECT
          matnr
          maktx
        FROM makt
        INTO TABLE gt_makt
        FOR ALL ENTRIES IN gt_lips
        WHERE matnr EQ gt_lips-matnr
        AND   spras EQ sy-langu.

   ENDIF.

  LOOP AT gt_lips INTO gs_lips.

*    lv_sno = lv_sno + 1.
    lv_vbeln = gs_lips-vbeln.
      lv_order = gs_lips-vgbel.
   READ TABLE gt_vbak INTO gs_vbak WITH KEY vbeln = gs_lips-vgbel.
   IF sy-subrc EQ 0.
      lv_order = gs_vbak-vbeln.
      LV_ODATE = gs_vbak-AUDAT.
   ENDIF.
   READ TABLE gt_vbkd INTO gs_vbkd WITH KEY vbeln = gs_lips-vgbel.
   IF sy-subrc EQ 0.
      lv_term = gs_vbkd-zterm.
   ENDIF.

    READ TABLE gt_likp INTO gs_likp WITH KEY vbeln = gs_lips-vbeln.
      IF sy-subrc EQ 0.
        lv_addat = gs_likp-lfdat.

        READ TABLE gt_tvko INTO gs_tvko WITH KEY vkorg = gs_likp-vkorg.
          IF sy-subrc EQ 0.
             lv_bukrs = gs_tvko-bukrs.
               READ TABLE gt_t001 INTO gs_t001 WITH KEY bukrs = gs_tvko-bukrs.
                  IF sy-subrc EQ 0.
                     READ TABLE gt_adrc INTO gs_adrc WITH KEY addrnumber = gs_
t001-adrnr.
                       IF sy-subrc EQ 0.
                         lv_city  = gs_adrc-city1.
                         lv_telno = gs_adrc-tel_number.
                       ENDIF.
                  ENDIF.
          ENDIF.
        READ TABLE gt_kna1 INTO gs_kna1 WITH KEY kunnr = gs_likp-kunnr.
          IF sy-subrc EQ 0.
            LV_KUNNR = gs_kna1-kunnr.
            lv_cname = gs_kna1-NAME1.
            lv_stras = gs_kna1-stras."ORT01.
            lv_ctel  = gs_kna1-telf1.
            lv_stceg = gs_kna1-stceg.
          ENDIF.

        READ TABLE gt_T173T INTO gs_T173T WITH KEY VSART = gs_likp-VSART.

        IF  sy-subrc EQ 0..

          lv_ship = gs_T173T-BEZEI.
        ENDIF.

      ENDIF.

* gs_final-sno     = lv_sno.
 gs_final-item_no = gs_lips-matnr.

 READ TABLE gt_makt INTO gs_makt WITH KEY matnr = gs_lips-matnr.
 IF sy-subrc EQ 0.
  gs_final-desc = gs_makt-maktx.
 ENDIF.
 READ TABLE gt_vbap INTO gs_vbap WITH KEY vbeln = gs_lips-vgbel.
 IF sy-subrc EQ 0.
  gs_final-oqty = gs_vbap-kwmeng.
 ENDIF.
  gs_final-uom  = gs_lips-meins.
  gs_final-dqty = gs_lips-lfimg.

  gs_final-open_qty = gs_final-oqty - gs_final-dqty.

  lv_oqty  = lv_oqty + gs_final-oqty.
  lv_dqty  = lv_dqty + gs_final-dqty.

*  APPEND gs_final TO gt_final.
  COLLECT gs_final INTO gt_final.

CLEAR:gs_final,gs_lips,gs_likp,gs_vbap,
      gs_makt,gs_kna1,gs_adrc,gs_vbkd,
      gs_vbak.

  ENDLOOP.

lv_openq = lv_oqty - lv_dqty.
   l_date = sy-datum.
       l_time = sy-uzeit.

LOOP AT gt_final INTO gs_final.
  lv_sno = lv_sno + 1.
  gs_final-sno     = lv_sno.

 MODIFY gt_final from gs_final.
 CLEAR:gs_final.

ENDLOOP.

*READ TABLE gt_item INTO GS_item INDEX 1 .
*SELECT SINGLE VKORG FROM MVKE INTO VKORG WHERE MATNR = GS_ITAB-MATNR .
IF LV_BUKRS = 2100 .
*  SHAR_ADDR = '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 LV_BUKRS = 2200 .
*  SHAR_ADDR = 'SHAR- Riyadh Cold Store'.
  S_BOX = 'P.O BOX 25507'.
  S_BOX_ABB = 'CR'.
  S_BOX_TEL = '1010230789'.
  S_ADD = 'Riyadh 21468'.
  S_ADD_ABB = 'CCM'.
  S_ADD_TEL = '5005'.
  TEL1 = '+966 11 2655222'.
  TEL2 = '+966 12 2656222'.
ENDIF.

CONCATENATE S_BOX S_BOX_ABB S_BOX_TEL INTO s_box_final SEPARATED by space.
CONCATENATE S_add S_add_ABB S_add_TEL INTO s_add_final SEPARATED by space.

  CONCATENATE l_date+6(2)
                   l_date+4(2)
                   l_date+0(4)
                   INTO lt_date
                   SEPARATED BY '.'.
       CONCATENATE l_time+0(2)
                   l_time+2(2)
                   INTO lt_time
                   SEPARATED BY ':'.
       CONCATENATE lt_date
                   lt_time
                   INTO l_dt_time
                   SEPARATED BY SPACE.

  ENDMETHOD.
METHOD get_disp.
  CALL FUNCTION 'FP_JOB_OPEN'
  CHANGING
    ie_outputparams       = wa_outputparams
 EXCEPTIONS
   cancel                = 1
   usage_error           = 2
   system_error          = 3
   internal_error        = 4
   OTHERS                = 5
          .
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

CALL FUNCTION 'FP_FUNCTION_MODULE_NAME'
  EXPORTING
    i_name                     = 'ZSD_DELI_NOTE_FORM'
 IMPORTING
   e_funcname                  = i_fmname
*   E_INTERFACE_TYPE           =
*   EV_FUNCNAME_INBOUND        =
          .

  wa_docparams-langu   = 'E'.
*  wa_docparams-country = 'IN'.

  CALL FUNCTION i_fmname"'/1BCDWB/SM00000189'
    EXPORTING
     /1BCDWB/DOCPARAMS         = fp_docparams
      gt_final                 = gt_final
      lv_bukrs                 = lv_bukrs
      lv_vbeln                 = lv_vbeln
      lv_city                  = lv_city
      lv_telno                 = lv_telno
      lv_kunnr                 = lv_kunnr
      lv_cname                 = lv_cname
      lv_stras                 = lv_stras
      lv_ctel                  = lv_ctel
      lv_odate                 = lv_odate
      lv_addat                 = lv_addat
      lv_order                 = lv_order
      lv_term                  = lv_term
      lv_oqty                  = lv_oqty
      lv_dqty                  = lv_dqty
      lv_openq                 = lv_openq
      lv_ship                  = lv_ship
      S_BOX_final              = S_BOX_final
      S_ADD_final                = S_ADD_final
      TEL1                       = TEL1
      TEL2                       = TEL2
      s_datetime                 = l_dt_time
      lv_stceg                   = lv_stceg
   IMPORTING
     /1BCDWB/FORMOUTPUT       = fp_formoutput
   EXCEPTIONS
     USAGE_ERROR              = 1
     SYSTEM_ERROR             = 2
     INTERNAL_ERROR           = 3
     OTHERS                   = 4
            .

 CALL FUNCTION 'FP_JOB_CLOSE'
*  IMPORTING
*    E_RESULT             =
  EXCEPTIONS
    usage_error          = 1
    system_error         = 2
    internal_error       = 3
    OTHERS               = 4
           .
 IF sy-subrc <> 0.
* Implement suitable error handling here
 ENDIF.

ENDMETHOD.

ENDCLASS.

*START-OF-SELECTION.

FORM entry_dn USING return_code us_screen.
  CREATE OBJECT lc_obj.
lc_obj->get_data( ).
lc_obj->get_disp( ).
ENDFORM.

You might also like