Professional Documents
Culture Documents
Delivery Note
Delivery Note
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.