Professional Documents
Culture Documents
Delivery Note Form
Delivery Note Form
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 VSART, Shipping type
END OF ty_likp,
BEGIN OF ty_lips,
vbeln TYPE vbeln,
posnr TYPE posnr,
matnr TYPE matnr,
meins TYPE meins,
lfimg TYPE lfimg, Actual quantity delivered (in sales units)
vgbel TYPE vgbel, Document number of the reference document
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, Cumulative Order Quantity in Sales Units
END OF ty_vbap,
BEGIN OF ty_makt,
matnr TYPE matnr,
maktx TYPE maktx,
END OF ty_makt,
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.