Professional Documents
Culture Documents
*&---------------------------------------------------------------------*
*& Report ZSD_DELIVERY_CHALLAN
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~*&
*&--------------------------------------------------------------------*&
*& Program Name : ZSD_DELIVERY_CHALLAN *&
*& Transaction Code : VL03N *&
*& Module : SD *&
*& Package : ZABAP *&
*& Developed By : SUDARSHAN GAIKWAD *&
*& Transport Req : SRDK900931 *&
*& Program Type : 1 - Executable *&
*&--------------------------------------------------------------------*&
*& Object : This is the Delivery Challan *&
*& program. *&
*& *&
*&--------------------------------------------------------------------*&
*&'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~'~*&
* form name ZSD_DELIVERY_CHALLAN
*------------------------------------------------------------------*
* Change History
*------------------------------------------------------------------*
* Date | Programmer | Corr. # | Description
* | | |
* | | |
********************************************************************
REPORT zsd_delivery_challan.
******************************************************************* Tables Declaration
TABLES : likp, "SD Document: Delivery Header Data
lips, "SD Document: Delivery Item Data
vbpa, "Sales Document: Partner
adrc, "Addresses (Business Address Services)
t173, "Routes: Mode of Transport for Each Shipping Type
tnapr, "Processing programs for output
kna1, "General Data in Customer Master
nast, "Message Status
ausp, "Characteristic Values
cawn, "Characteristic values
cawnt , "Value Texts
vbrp, "Billing Document: Item Data
vekp,
vepo,
vbak.
************************************************************************
* DATA DECLARATION
************************************************************************
DATA: it_out LIKE zsd_delivery_challan OCCURS 0 WITH HEADER LINE.
DATA: it_item LIKE zsd_delivery_challan_item OCCURS 0 WITH HEADER LINE.
DATA : sfname TYPE tdsfname.
DATA: title(40).
DATA: it_likp LIKE likp OCCURS 0 WITH HEADER LINE,
it_lips LIKE lips OCCURS 0 WITH HEADER LINE,
it_vbpa LIKE vbpa OCCURS 0 WITH HEADER LINE,
it_kna1 LIKE kna1 OCCURS 0 WITH HEADER LINE,
it_vbrp LIKE vbrp OCCURS 0 WITH HEADER LINE,
it_t001w LIKE t001w OCCURS 0 WITH HEADER LINE,
it_adrc LIKE adrc OCCURS 0 WITH HEADER LINE,
it_vekp LIKE vekp OCCURS 0 WITH HEADER LINE,
it_vepo LIKE vepo OCCURS 0 WITH HEADER LINE.
TYPES: BEGIN OF ty_plant,
werks TYPE t001w-werks,
name1 TYPE t001w-name1,
adrnr TYPE t001w-adrnr,
END OF ty_plant.
TYPES: BEGIN OF ty_gstin,
kunnr TYPE kna1-kunnr,
land1 TYPE kna1-land1,
regio TYPE kna1-regio,
stcd3 TYPE kna1-stcd3,
END OF ty_gstin.
DATA : wa_state TYPE t005u.
DATA : wa_gstin TYPE ty_gstin.
DATA : wa_gstin1 TYPE ty_gstin.
DATA : it_plant TYPE TABLE OF ty_plant,
wa_plant TYPE ty_plant.
DATA : fname TYPE rs38l_fnam .
DATA: transport LIKE tline-tdline,
ven_code LIKE tline-tdline.
DATA : v_ttl_weight LIKE vekp-brgew,
v_temp_wt LIKE vekp-brgew,
c TYPE i.
DATA: p_vbeln LIKE likp-vbeln.
DATA : line LIKE tline OCCURS 10 WITH HEADER LINE,
transporter LIKE line-tdline.
DATA: string1 TYPE string.
************************************************************************
* SELECTION-SCREEN
************************************************************************
**********************************************************
*SELECTION-SCREEN : BEGIN OF BLOCK b1 WITH FRAME TITLE text-100.
*SELECT-OPTIONS : p_vbeln FOR likp-vbeln NO INTERVALS NO-EXTENSION.
*SELECTION-SCREEN END OF BLOCK b1.
*SELECTION-SCREEN : BEGIN OF BLOCK B2 WITH FRAME title text-101.
*PARAMETERS : DELIVERY RADIOBUTTON GROUP RB,
* RET_DEL RADIOBUTTON GROUP RB.
*SELECTION-SCREEN END OF BLOCK B2.
***********************************************************
************************************************************************
* START-OF-SELECTION.
************************************************************************
FORM entry USING return_code us_screen.
p_vbeln = nast-objky.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = p_vbeln
IMPORTING
output = p_vbeln.
PERFORM initialization.
PERFORM header_data.
PERFORM item_data.
PERFORM display.
ENDFORM. "ENTRY
*&---------------------------------------------------------------------*
*& Form INITIALIZATION.
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM initialization.
CLEAR it_likp.
CLEAR it_lips.
CLEAR it_vbpa.
CLEAR it_kna1.
CLEAR it_out.
CLEAR it_likp[].
CLEAR it_lips[].
CLEAR it_vbpa[].
CLEAR it_kna1[].
CLEAR it_out[].
ENDFORM. "INITIALIZATION
*&---------------------------------------------------------------------*
*& Form DELIVERY_CHALLAN
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM header_data.
SELECT * FROM likp
INTO TABLE it_likp
WHERE vbeln = p_vbeln.
LOOP AT it_likp WHERE vbeln = p_vbeln.
it_out-vbeln = it_likp-vbeln. "D.C NO
it_out-bldat = it_likp-bldat. "D.C.DATE
it_out-kunnr = it_likp-kunnr. "CUSTOMER NO
it_out-btgew = it_likp-btgew.
it_out-anzpk = it_likp-anzpk.
it_out-gewei = it_likp-gewei.
* IT_OUT-WERKS = IT_LIKP-WERKS. "PLANT
CLEAR wa_gstin.
SELECT SINGLE kunnr
land1
regio
stcd3
FROM kna1
INTO wa_gstin
WHERE kunnr = it_likp-kunnr.
IF sy-subrc = 0.
it_out-kunnr_gstin = wa_gstin-stcd3.
CLEAR wa_state.
SELECT SINGLE *
FROM t005u
INTO wa_state
WHERE spras = sy-langu
AND land1 = wa_gstin-land1
AND bland = wa_gstin-regio.
IF sy-subrc = 0.
it_out-kunnr_state = wa_state-bezei.
ENDIF.
ENDIF.
CLEAR wa_gstin1.
SELECT SINGLE kunnr
land1
regio
stcd3
FROM kna1
INTO wa_gstin1
WHERE kunnr = it_likp-kunag.
IF sy-subrc = 0.
it_out-kunag_gstin = wa_gstin1-stcd3.
CLEAR wa_state.
SELECT SINGLE *
FROM t005u
INTO wa_state
WHERE spras = sy-langu
AND land1 = wa_gstin-land1
AND bland = wa_gstin-regio.
IF sy-subrc = 0.
it_out-kunag_state = wa_state-bezei.
ENDIF.
ENDIF.
APPEND it_out.
ENDLOOP.
LOOP AT it_out.
SELECT SINGLE aubel werks "FOR SALES ORDER NUMBER
FROM vbrp
INTO (it_out-aubel,it_out-werks)
WHERE vgbel = it_out-vbeln.
SELECT SINGLE bstkd bstdk "FOR PO NO AND PO DATE
FROM vbkd
INTO (it_out-bstkd,it_out-bstdk)
WHERE vbeln = it_out-aubel.
SELECT SINGLE j_1icstno j_1ilstno j_1iexcd j_1ipanno " CST Number, LST Number, Ecc no
FROM j_1imocust
INTO (it_out-j_1icstno,it_out-j_1ilstno,it_out-j_1iexcd,it_out-j_1ipanno)
WHERE kunnr = it_likp-kunnr.
SELECT SINGLE stceg adrnr
FROM kna1
INTO (it_out-stceg,it_out-adrnr)
WHERE kunnr = it_out-kunnr.
SELECT SINGLE name1 street city1 post_code1 country
FROM adrc
INTO (it_out-cname1,it_out-cstreet,it_out-ccity1,it_out-cpost_code1,it_out-ccountry)
WHERE addrnumber = it_out-adrnr.
MODIFY it_out.
ENDLOOP.
ENDFORM. " DELIVERY_CHALLAN
*&---------------------------------------------------------------------*
*& Form ITEM_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM item_data .
SELECT *
FROM lips
INTO TABLE it_lips
WHERE vbeln = it_out-vbeln.
SELECT * " by manoj
FROM vekp
INTO TABLE it_vekp
WHERE vpobjkey = p_vbeln.
SELECT * " by manoj
FROM vepo
INTO TABLE it_vepo
WHERE matnr = it_out-matnr.
LOOP AT it_lips WHERE vbeln = it_out-vbeln.
it_item-matnr = it_lips-matnr. " Material No.
it_item-posnr = it_lips-posnr.
it_item-vgpos = it_lips-vgpos.
it_item-charg = it_lips-charg. " Batch No.
it_item-ormng = it_lips-ormng. "
it_item-ntgew = it_lips-ntgew.
it_item-brgew = it_lips-brgew.
it_item-vrkme = it_lips-vrkme.
it_item-arktx = it_lips-arktx. " Description of goods.
it_item-kdmat = it_lips-kdmat. " Material Description.
it_item-vbeln = it_lips-vbeln. " Delivery Order No.
it_item-lfimg = it_lips-lfimg.
it_item-vgbel = it_lips-vgbel.
APPEND it_item.
CLEAR it_item.
ENDLOOP.
SELECT werks
name1
adrnr
FROM t001w
INTO TABLE it_plant
FOR ALL ENTRIES IN it_lips
WHERE werks = it_lips-werks.
LOOP AT it_item WHERE vbeln = p_vbeln.
*LOOP AT IT_VEKP WHERE VPOBJKEY IN p_vbeln.
* LOOP AT IT_VEKP WHERE VPOBJKEY IN P_VBELN.
* SELECT SINGLE EXIDV BRGEW " Box/Packing No., TOTAL PCKG WEIGHT
* FROM VEKP
* INTO (IT_ITEM-EXIDV, IT_ITEM-BRGEW)
* WHERE vpobjkey IN P_VBELN.
* ENDSELECT .
READ TABLE it_vekp INDEX sy-tabix."C."vekp."ITEM ."INDEX 1.
IF sy-tabix = 0.
EXIT.
ELSE.
it_item-exidv = it_vekp-exidv.
it_item-brgew = it_vekp-brgew .
ENDIF.
*c = sy-tabix.
* ENDLOOP.
v_temp_wt = v_temp_wt + it_item-brgew.
* V_TTL_WEIGHT = V_TEMP_WT.
MOVE v_temp_wt TO it_item-v_ttl_weight.
SELECT SINGLE bstnk
FROM vbak
INTO it_item-bstnk
WHERE vbeln = it_item-vgbel.
MODIFY it_item.
CLEAR it_item.
ENDLOOP.
LOOP AT it_out.
READ TABLE it_plant INTO wa_plant INDEX 1.
IF sy-subrc = 0.
it_out-werks = wa_plant-werks.
it_out-plant_add = wa_plant-adrnr.
MODIFY it_out.
* CLEAR it_out.
ENDIF.
ENDLOOP.
PERFORM read_text.
ENDFORM. " ITEM_DATA
*&---------------------------------------------------------------------*
*& Form DISPLAY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM display .
SELECT SINGLE sform
INTO sfname
FROM tnapr
WHERE kschl = 'LD00'
AND nacha = '1'
AND kappl = 'V2'.
*/1BCDWB/SF00000013
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = sfname"'ZSD_DELIVERY_CHALLAN'
* formname = 'ZSD_DELIVERY_CHALLAN_TEST' "'ZSD_DELIVERY_CHALLAN'
IMPORTING
fm_name = fname
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CALL FUNCTION fname
EXPORTING
* ARCHIVE_INDEX =
* ARCHIVE_INDEX_TAB =
* ARCHIVE_PARAMETERS =
* CONTROL_PARAMETERS =
* MAIL_APPL_OBJ =
* MAIL_RECIPIENT =
* MAIL_SENDER =
* OUTPUT_OPTIONS =
* USER_SETTINGS = 'X'
v_temp_wt = v_temp_wt
* IMPORTING
* DOCUMENT_OUTPUT_INFO =
* JOB_OUTPUT_INFO =
* JOB_OUTPUT_OPTIONS =
TABLES
it_out = it_out
it_item = it_item
* EXCEPTIONS
* FORMATTING_ERROR = 1
* INTERNAL_ERROR = 2
* SEND_ERROR = 3
* USER_CANCELED = 4
* OTHERS = 5
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "display
*&---------------------------------------------------------------------*
*& Form READ_TEXT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM read_text .
DATA : name LIKE stxh-tdname.
LOOP AT it_item.
CONCATENATE it_item-vbeln it_item-posnr INTO string1.
name = string1.
SELECT COUNT( * ) FROM stxh
WHERE tdobject = 'VBBP'
AND tdname = name
AND tdid = '0003'
AND tdspras = 'EN'.
IF sy-subrc = 0.
CALL FUNCTION 'READ_TEXT'
EXPORTING
* CLIENT = SY-MANDT
id = '0003' " NO OF PACKAGES
language = 'E'
name = name
object = 'VBBP'
* ARCHIVE_HANDLE = 0
* LOCAL_CAT = ' '
* IMPORTING
* HEADER =
TABLES
lines = line
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
LOOP AT line WHERE tdline <> ''.
it_item-boxpack = line-tdline.
ENDLOOP.
MODIFY it_item.
CLEAR name.
CLEAR it_item.
REFRESH line.
CLEAR line.
ENDLOOP.
ENDFORM. "READ_TEXT