Sap Abap Code
Sap Abap Code
MESSAGE-ID zjh01
NO STANDARD PAGE HEADING.
*& Purpose: Display all of the documents related to a pickup number.
*&
*&---------------------------------------------------------------------*
*& Author: Rudy Culaciati
*& Date:
03/28/2007
*& WO#:
62741
*& Request: E1DK905544 IT1WO62741P - Pickup number inquiry
*& Recovery: Re-transport previous working version from development.
*& Run-time: This program will display all the documents related to a
*&
pickup number.
*&
*&---------------------------------------------------------------------*
*& Revision History:
*&
Develop Work
*& Date
By
Order Transport/Description
*& ---------------------------------------------------------------------*
*& 08/07/2007 RockyC WO81181 E1DK907133
*&
Modified code to get deliveries even when
*&
there is no shipment document.
*&
*& 08/27/07
AMYK
WO81215 E1DK907504
*&
Add search help for sales order, STO,
*&
or Rail Cr/FedEx field
*&
*& 02/20/09
thanht wo3788 E1DK911124
*&
remove ord type check between orders
*&
for a pickup #
*&
*& 04/09/09
WT
WO3260 Replaced slow custom logic with standard FM
*&
*& 09/02/08
thanht wo8037
E1DK911910
*&
allow search by order number to work w/o
*&
shipment doc
*& 2012/05/14 AMYK
WO21922 E1DK915644 & E1DK915672
*&
E1DK915688 & E1DK915707
*&
Provide visibility regarding multi-stop
*&
pickup number
*&
*& 2012/12/17 AMYK
WO26083 E1DK916893 & E1DK916942
*&
- Add Super STO to JH Display Document
*&
- Move Related Info to after Super STO
*&
- Add search capibity for Load Id
*& 2013/07/11 Rajj
WO29355 E1DK918004
*&
- Add Location From The SO & STO
*& 2015/01/13 Rajj
WO37090 E2DK901564
*&
- Eliminate Duplicate Delivery Lines When No Shi
pment Doc
*&---------------------------------------------------------------------*
*eject
*--------------* Tables & Types
*--------------TABLES: sscrfields,
" Fields on selecton screens
zmanu_fm_header, " JH Manugistics Freight Movement Header
zmanu_frtcst_adj, " JH Manugistics Freight Cost Adjustments
*-----Begin Of Changes For WO:29355 By Rajj On 07/11/2013 Transport#E1DK918004
ztv_header_data.
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
DATA: gt_screen_0200_commands
gt_freight_orders
zmanu_fm_header-bill,
vttk-tknum,
likp-vbeln,
vbak-vbeln,
ekko-ebeln,
lfa1-lifnr,
c,
c,
c,
c,
c,
icon-id,
c,
c,
TYPE c
TYPE vttk-vbtyp
TYPE vttk-vbtyp
TYPE ekko-bstyp
TYPE ekbe-bewtp
VALUE 'X',
VALUE 'C',
VALUE 'V',
VALUE 'F',
VALUE 'L', "Amyk 2192
ICONs
gc_yellow_exclamation_large
gc_blue_info_circle
TYPE icon-id
TYPE icon-id
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
sy-ucomm
sy-ucomm
sy-ucomm
sy-ucomm
sy-ucomm
sy-ucomm
sy-ucomm
sy-ucomm
sy-ucomm
sy-ucomm
VALUE '@1A@',
VALUE '@19@',
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
'FC01',
'FC02',
'FC03',
'FC04',
'FC05',
space,
'ONLI',
'SJOB',
'SPOS',
'PRIN',
TYPE sy-ucomm
TYPE c
VALUE 'SELE',
VALUE 'GWA_FREIGHT_O
TYPE c
TYPE c
VALUE '0200CONT',
VALUE '0200RW',
L_UNAME',
*
* global booleans
DATA: gb_status_header(1)
TYPE c.
* global structures
DATA: gwa_screen_0200_commands
gwa_freight_order
gwa_undispatch_confirmation
gwa_vttk
gwa_vfkk
TYPE
TYPE
TYPE
TYPE
TYPE
* global variables
DATA: gv_sysid(13)
TYPE c,
gv_functxt
gv_load_status_desc
gv_status_flag_desc
gv_fknum
gv_cursor_field(50)
gv_cursor_line
gv_field_value
gv_confirmation_status(80)
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
"#EC *
sy-ucomm,
ty_freight_order,
ty_confirmation,
vttk,
vfkk.
smp_dyntxt,
dd07t-ddtext,
dd07t-ddtext,
vfkk-fknum,
c,
i,
ty_confirmation-document_status,
c.
"#EC NEEDED
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
* The following declarations were created by the screen painter (SE51)
* table control wizard
* Screen 0300 table control - FM orders
*&SPWIZARD: DECLARATION OF TABLECONTROL 'TABCONT_FRTORD' ITSELF
CONTROLS: tabcont_frtord TYPE TABLEVIEW USING SCREEN 0300. "#EC *
DATA:
"#EC *
*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
*eject
*----------------* Selection screen
*----------------*SELECTION-SCREEN SKIP 2. "Amyk 21922
SELECTION-SCREEN SKIP 1.
"Amyk 21922
*AMYK WO81215 E1DK907504 Change Matchcode Object to ZVBILL
PARAMETERS:
p_bill TYPE zmanu_fm_header-bill
*
MATCHCODE OBJECT zbill
*<!--wo8037/E1DK911910------------------MATCHCODE OBJECT zvbill2
"#EC EXISTS
MEMORY ID zbill2.
*--wo8037/E1DK911910-------------------!>
SELECTION-SCREEN: FUNCTION
FUNCTION
FUNCTION
FUNCTION
FUNCTION
KEY
KEY
KEY
KEY
KEY
1,
2,
3,
4,
5.
"
"
"
"
"
Manugistics FM Header
Manugistics FM order detail
Shipment Document
Shipment Costs Document
Cost adjustments
*eject
*-------------------* AT SELECTION-SCREEN
*-------------------* S_BILL field edits
* Don't allow pickup number ranges, patterns or exclusions
AT SELECTION-SCREEN ON p_bill.
* ALL field edits
AT SELECTION-SCREEN.
* Don't display the screen 0200 buttons in the Warning popup
IF gt_screen_0200_commands[] IS INITIAL.
gwa_screen_0200_commands = gc_select_cmd.
APPEND gwa_screen_0200_commands TO gt_screen_0200_commands.
gwa_screen_0200_commands = gc_0200_continue.
APPEND gwa_screen_0200_commands TO gt_screen_0200_commands.
gwa_screen_0200_commands = gc_0200_cancel.
APPEND gwa_screen_0200_commands TO gt_screen_0200_commands.
ENDIF.
IF
OR
OR
OR
OR
OR
OR
sy-ucomm
sy-ucomm
sy-ucomm
sy-ucomm
sy-ucomm
sy-ucomm
sy-ucomm
=
=
=
=
=
=
=
gc_execute_online
"execute button
gc_execute_in_background_job
gc_display_manu_fm_header
gc_display_manu_fm_orders
gc_display_shipment_doc
gc_display_shipment_costs_doc
gc_display_cost_adjustments
OR sy-ucomm = gc_enter_key.
IF p_bill IS INITIAL.
*
Please specify a pickup number.
MESSAGE e071.
ENDIF.
ENDIF.
* Act on the user request
CASE sscrfields-ucomm.
WHEN gc_display_manu_fm_header.
PERFORM get_freight_movement USING p_bill.
CLEAR sscrfields-ucomm.
CLEAR sy-ucomm.
*
.
IF zmanu_fm_header IS INITIAL.
There is no Manugistics freight movement header for pickup number &1
MESSAGE e072 WITH p_bill.
ELSE.
PERFORM display_freight_movement.
ENDIF.
WHEN gc_display_manu_fm_orders.
PERFORM get_freight_orders USING p_bill.
CLEAR sscrfields-ucomm.
CLEAR sy-ucomm.
IF gt_fm_orddetl[] IS INITIAL.
There is no freight movement order detail for pickup number &1.
MESSAGE e055 WITH p_bill.
ELSE.
PERFORM display_freight_orders.
ENDIF.
WHEN gc_display_shipment_doc.
PERFORM get_shipment USING p_bill.
CLEAR sscrfields-ucomm.
CLEAR sy-ucomm.
IF gwa_vttk IS INITIAL.
Shipment document does not exist for pickup number &1.
MESSAGE e082 WITH p_bill.
ELSE.
PERFORM display_shipment_doc USING gwa_vttk-tknum.
ENDIF.
WHEN gc_display_shipment_costs_doc.
PERFORM get_shipment_costs USING
p_bill
CHANGING gv_fknum.
CLEAR sscrfields-ucomm.
CLEAR sy-ucomm.
IF gwa_vfkk IS INITIAL.
Shipment cost document does not exist for pickup number &1.
MESSAGE e084 WITH p_bill.
ELSE.
PERFORM display_shipment_costs_doc USING gv_fknum.
ENDIF.
WHEN gc_display_cost_adjustments.
PERFORM get_cost_adjustments USING p_bill.
CLEAR sscrfields-ucomm.
CLEAR sy-ucomm.
IF zmanu_frtcst_adj IS INITIAL.
There are no freight cost adjustments for pickup number &1.
MESSAGE e126 WITH p_bill.
ELSE.
PERFORM display_cost_adjustments USING p_bill.
ENDIF.
WHEN gc_save_variant
OR gc_execute_in_background_job
OR gc_print.
"don't do anything
WHEN OTHERS.
PERFORM display_related_documents.
ENDCASE.
*eject
*-------------INITIALIZATION.
*-------------* Function key FC01 - Manugistics FM Header
gv_functxt-text
= 'Manugistics FM Header'(f01).
gv_functxt-icon_id
= '@3P@'. "Header hat
gv_functxt-icon_text = 'Manugistics FM Header'(f01).
sscrfields-functxt_01 = gv_functxt.
* Function key FC02 - Manugistics FM orders
gv_functxt-text
= 'Manugistics FM Orders'(f02).
gv_functxt-icon_id
= '@3W@'. "List
gv_functxt-icon_text = 'Manugistics FM Orders'(f02).
sscrfields-functxt_02 = gv_functxt.
* Function key FC03 - Shipment document
gv_functxt-text
= 'Shipment'(f03).
gv_functxt-icon_id
= '@AR@'. "document icon
gv_functxt-icon_text = 'Shipment'(f03).
sscrfields-functxt_03 = gv_functxt.
* Function key FC04 - Shipment Costs list
gv_functxt-text
= 'Shipment Costs'(f04).
gv_functxt-icon_id
= '@FD@'. "coin
gv_functxt-icon_text = 'Shipment Costs'(f04).
sscrfields-functxt_04 = gv_functxt.
g_tabcont_frtord_copied = 'X'.
REFRESH CONTROL 'TABCONT_FRTORD' FROM SCREEN '0300'.
ELSE.
ENDIF.
ENDMODULE.
*&---------------------------------------------------------------------*
*&
Module STATUS_0200 OUTPUT
*&---------------------------------------------------------------------*
MODULE status_0200 OUTPUT.
SET PF-STATUS 'SCREEN_0200'.
SET TITLEBAR 'TITLE_SCREEN_0200' WITH p_bill.
ENDMODULE.
*&---------------------------------------------------------------------*
*&
Module STATUS_0300 OUTPUT
*&---------------------------------------------------------------------*
MODULE status_0300 OUTPUT.
SET PF-STATUS 'SCREEN_0300'.
SET TITLEBAR 'TITLE_SCREEN_0300' WITH p_bill.
ENDMODULE.
*&---------------------------------------------------------------------*
*&
Module STATUS_0400 OUTPUT
*&---------------------------------------------------------------------*
MODULE status_0400 OUTPUT.
SET PF-STATUS 'SCREEN_0400'.
SET TITLEBAR 'TITLE_SCREEN_0400' WITH p_bill.
ENDMODULE.
*&---------------------------------------------------------------------*
*&
Module TABCONT_FRTORD_CHANGE_TC_ATTR OUTPUT
*&---------------------------------------------------------------------*
*&SPWIZARD: OUTPUT MODULE FOR TC 'TABCONT_FRTORD'. DO NOT CHANGE THIS LI
*&SPWIZARD: UPDATE LINES FOR EQUIVALENT SCROLLBAR
MODULE tabcont_frtord_change_tc_attr OUTPUT.
DESCRIBE TABLE gt_freight_orders LINES tabcont_frtord-lines.
ENDMODULE.
" TABCONT_FRTORD_CHANGE_TC_ATTR OUTPUT
*&---------------------------------------------------------------------*
*&
Module TABCONT_FRTORD_GET_LINES OUTPUT
*&---------------------------------------------------------------------*
*&SPWIZARD: OUTPUT MODULE FOR TC 'TABCONT_FRTORD'. DO NOT CHANGE THIS LI
*&SPWIZARD: GET LINES OF TABLECONTROL
*&---------------------------------------------------------------------*
*&
Module TABCONT_CONFIRM_GET_LINES OUTPUT
*&---------------------------------------------------------------------*
*&SPWIZARD: OUTPUT MODULE FOR TC 'TABCONT_CONFIRM'. DO NOT CHANGE THIS L
*&SPWIZARD: GET LINES OF TABLECONTROL
MODULE tabcont_confirm_get_lines OUTPUT.
g_tabcont_confirm_lines = sy-loopc.
ENDMODULE.
" TABCONT_CONFIRM_GET_LINES OUTPUT
*eject
*-----------* PAI MODULEs
*-----------*&---------------------------------------------------------------------*
*&
Module USER_COMMAND_0200 INPUT
*&---------------------------------------------------------------------*
MODULE user_command_0200 INPUT.
CASE sy-ucomm.
WHEN gc_select_cmd.
PERFORM process_select_command.
WHEN gc_0200_continue
OR gc_0200_cancel.
SET SCREEN 0000.
ENDCASE.
ENDMODULE.
*&---------------------------------------------------------------------*
*&
Module USER_COMMAND_0300 INPUT
*&---------------------------------------------------------------------*
MODULE user_command_0300 INPUT.
CASE sy-ucomm.
WHEN gc_select_cmd.
PERFORM process_select_command.
WHEN gc_0300_continue
OR gc_0300_cancel.
exit the screen
CLEAR g_tabcont_frtord_copied.
SET SCREEN 0000.
ENDCASE.
ENDMODULE.
*&---------------------------------------------------------------------*
*&
Module USER_COMMAND_0400 INPUT
*&---------------------------------------------------------------------*
MODULE user_command_0400 INPUT.
CASE sy-ucomm.
WHEN gc_select_cmd.
PERFORM process_select_command.
WHEN gc_0400_continue
OR gc_0400_cancel.
exit the screen
SET SCREEN 0000.
WHEN gc_0400_print.
PERFORM print_undispatch_confirmation.
ENDCASE.
ENDMODULE.
*&---------------------------------------------------------------------*
*&
Module TABCONT_FRTORD_USER_COMMAND INPUT
*&---------------------------------------------------------------------*
*&SPWIZARD: INPUT MODULE FOR TC 'TABCONT_FRTORD'. DO NOT CHANGE THIS LIN
*&SPWIZARD: PROCESS USER COMMAND
MODULE tabcont_frtord_user_command INPUT.
ok_code = sy-ucomm.
PERFORM user_ok_tc USING
'TABCONT_FRTORD'
'GT_FREIGHT_ORDERS'
' '
CHANGING ok_code.
sy-ucomm = ok_code.
ENDMODULE.
" TABCONT_FRTORD_USER_COMMAND INPUT
*&---------------------------------------------------------------------*
*&
Module TABCONT_CONFIRM_USER_COMMAND INPUT
*&---------------------------------------------------------------------*
*&SPWIZARD: INPUT MODULE FOR TC 'TABCONT_CONFIRM'. DO NOT CHANGE THIS LI
*&SPWIZARD: PROCESS USER COMMAND
MODULE tabcont_confirm_user_command INPUT.
ok_code = sy-ucomm.
PERFORM user_ok_tc USING
'TABCONT_CONFIRM'
'GT_UNDISPATCH_CONFIRMATION'
' '
CHANGING ok_code.
sy-ucomm = ok_code.
ENDMODULE.
" TABCONT_CONFIRM_USER_COMMAND INPUT
*eject
*----------------------------------------------------------------------*
* INCLUDE TABLECONTROL_FORMS
*
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&
Form USER_OK_TC
*
*&---------------------------------------------------------------------*
FORM user_ok_tc USING
p_tc_name TYPE dynfnam
p_table_name TYPE any
"#EC *
p_mark_name TYPE any
"#EC *
CHANGING p_ok
LIKE sy-ucomm.
*&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------*
DATA: l_ok
TYPE sy-ucomm,
l_offset
TYPE i.
*&SPWIZARD: END OF LOCAL DATA------------------------------------------*
*&SPWIZARD: Table control specific operations
*&SPWIZARD: evaluate TC name and operations
SEARCH p_ok FOR p_tc_name.
IF sy-subrc <> 0.
EXIT.
ENDIF.
l_offset = strlen( p_tc_name ) + 1.
l_ok = p_ok+l_offset.
*&SPWIZARD: execute general and TC specific operations
CASE l_ok.
WHEN 'INSR'.
"insert row
*
PERFORM FCODE_INSERT_ROW USING
P_TC_NAME
*
P_TABLE_NAME.
*
CLEAR P_OK.
*
*
*
*
WHEN 'DELE'.
"delete row
PERFORM FCODE_DELETE_ROW USING
P_TC_NAME
P_TABLE_NAME
P_MARK_NAME.
CLEAR P_OK.
WHEN 'P--' OR
'P-' OR
'P+' OR
'P++'.
PERFORM compute_scrolling_in_tc
*
*
*
*
*
*
*
*
*
*
*
*
*
*
"top of list
"previous page
"next page
"bottom of list
USING p_tc_name
l_ok.
CLEAR p_ok.
WHEN 'L--'.
"total left
PERFORM FCODE_TOTAL_LEFT USING P_TC_NAME.
WHEN 'L-'.
"column left
PERFORM FCODE_COLUMN_LEFT USING P_TC_NAME.
WHEN 'R+'.
"column right
PERFORM FCODE_COLUMN_RIGHT USING P_TC_NAME.
WHEN 'R++'.
"total right
PERFORM FCODE_TOTAL_RIGHT USING P_TC_NAME.
WHEN 'MARK'.
"mark all filled lines
PERFORM FCODE_TC_MARK_LINES USING P_TC_NAME
P_TABLE_NAME
*
*
*
*
*
*
*
*
*
*
*
*
P_MARK_NAME
CLEAR P_OK.
WHEN 'DMRK'.
"demark all filled lines
PERFORM FCODE_TC_DEMARK_LINES USING P_TC_NAME
P_TABLE_NAME
P_MARK_NAME .
CLEAR P_OK.
WHEN 'SASCEND' OR
'SDESCEND'.
"sort column
PERFORM FCODE_SORT_TC USING P_TC_NAME
l_ok.
ENDCASE.
ENDFORM.
" USER_OK_TC
*eject
*&---------------------------------------------------------------------*
*&
Form COMPUTE_SCROLLING_IN_TC
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_TC_NAME name of tablecontrol
*
-->P_OK
ok code
*----------------------------------------------------------------------*
FORM compute_scrolling_in_tc USING
p_tc_name TYPE any
p_ok
TYPE any.
*&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------*
DATA l_tc_new_top_line
TYPE i.
DATA l_tc_name
TYPE feld-name.
DATA l_tc_lines_name
TYPE feld-name.
DATA l_tc_field_name
TYPE feld-name.
FIELD-SYMBOLS <tc>
TYPE cxtab_control.
FIELD-SYMBOLS <lines>
TYPE i.
*&SPWIZARD: END OF LOCAL DATA------------------------------------------*
ASSIGN (p_tc_name) TO <tc>.
*&SPWIZARD: get looplines of TableControl
CONCATENATE 'G_' p_tc_name '_LINES' INTO l_tc_lines_name.
ASSIGN (l_tc_lines_name) TO <lines>.
*&SPWIZARD: is no line filled?
IF <tc>-lines = 0.
*&SPWIZARD: yes, ...
l_tc_new_top_line = 1.
ELSE.
*&SPWIZARD: no, ...
CALL FUNCTION 'SCROLLING_IN_TABLE'
EXPORTING
entry_act
= <tc>-top_line
entry_from
= 1
entry_to
= <tc>-lines
last_page_full
= 'X'
loops
= <lines>
ok_code
= p_ok
overlapping
= 'X'
IMPORTING
*
*
*
entry_new
EXCEPTIONS
*
NO_ENTRY_OR_PAGE_ACT
*
NO_ENTRY_TO
*
NO_OK_CODE_OR_PAGE_GO
OTHERS
ENDIF.
= l_tc_new_top_line
=
=
=
=
01
02
03
0.
IF syst-subrc = 0.
IF l_tc_name = p_tc_name.
*&SPWIZARD: set actual column
SET CURSOR FIELD l_tc_field_name LINE 1.
ENDIF.
ENDIF.
*&SPWIZARD: set the new top line
<tc>-top_line = l_tc_new_top_line.
ENDFORM.
" COMPUTE_SCROLLING_IN_TC
*eject
*&---------------------------------------------------------------------*
*&
Form display_related_documents
*&---------------------------------------------------------------------*
FORM display_related_documents.
* local variables
DATA: lv_continue(1)
TYPE c.
p_bill
space "don't display a warning
CHANGING lv_shipment_cost_number.
lv_exti1 = p_bill.
* How many shipment docs are there?
SELECT COUNT(*) FROM vttk
WHERE exti1 = lv_exti1.
IF sy-subrc = 0.
IF sy-dbcnt > 1.
*
There are & shipment documents assigned to pickup number &.
MESSAGE e080 WITH sy-dbcnt lv_exti1.
ELSE.
SELECT SINGLE * FROM vttk INTO gwa_vttk
WHERE exti1 = lv_exti1.
ENDIF.
ENDIF.
"#EC *
ENDFORM.
" get_shipment
*eject
*&---------------------------------------------------------------------*
*&
Form get_shipment_costs
*&---------------------------------------------------------------------*
FORM get_shipment_costs USING
p_bill
TYPE any
CHANGING p_shipment_cost_number TYPE any.
* local variables
DATA: lv_exti1 TYPE vttk-exti1,
lv_fknum TYPE vfkk-fknum,
lv_count TYPE i.
CLEAR gwa_vfkk.
lv_exti1 = p_bill.
CLEAR lv_count.
* How many shipment cost docs are there for the pickup number?
SELECT COUNT( DISTINCT fknum ) FROM vfkp INTO lv_count
WHERE exti1 = lv_exti1.
IF lv_count > 0.
IF lv_count > 1.
*
There are & shipment cost documents assigned to pickup number &.
MESSAGE e083 WITH lv_count lv_exti1.
ELSE.
SELECT SINGLE fknum FROM vfkp INTO lv_fknum
WHERE exti1 = lv_exti1.
IF sy-subrc = 0.
PERFORM check_external_references USING lv_fknum
lv_exti1.
"#EC *
p_shipment_cost_number = lv_fknum.
ENDIF.
ENDIF.
ELSE.
*
*
*
ENDFORM.
" get_shipment
*eject
*&---------------------------------------------------------------------*
*&
Form get_cost_adjustments
*&---------------------------------------------------------------------*
FORM get_cost_adjustments USING
p_bill TYPE any.
CLEAR zmanu_frtcst_adj.
* Are there freight cost adjustments for the pickup number?
SELECT SINGLE * FROM zmanu_frtcst_adj INTO zmanu_frtcst_adj "#EC *
WHERE pickup_number = p_bill.
ENDFORM.
" get_cost_adjustments
*eject
*&---------------------------------------------------------------------*
*&
Form check_external_references
*&---------------------------------------------------------------------*
FORM check_external_references USING p_fknum
TYPE any
p_pickup_number TYPE any.
DATA: lv_tknum
lv_shipment_pickup_number
lv_ucomm
lv_msg1(55)
lv_msg2(55)
TYPE
TYPE
TYPE
TYPE
TYPE
vttk-tknum,
vttk-exti1,
sy-ucomm,
c,
c.
* get the shipment document from the shipment cost document flow
SELECT SINGLE vbelv FROM vtfa INTO lv_tknum
"#EC *
WHERE vbeln = p_fknum
AND vbtyp_v = gc_shipment_document
AND vbtyp_n = gc_shipment_cost_document.
*
IF sy-subrc = 0.
check if the external references match
SELECT SINGLE exti1 FROM vttk INTO lv_shipment_pickup_number
WHERE tknum = lv_tknum.
IF lv_shipment_pickup_number = p_pickup_number.
SELECT SINGLE * FROM vfkk INTO gwa_vfkk
WHERE fknum = p_fknum.
ELSE.
Shipment cost & has pickup number &.
MESSAGE e085 WITH p_fknum p_pickup_number
INTO lv_msg1.
IF lv_shipment_pickup_number IS INITIAL.
Shipment & does not have a pickup number.
MESSAGE e086 WITH lv_tknum
INTO lv_msg2.
ELSE.
*
'POPUP_WITH_WARNING'
= lv_msg1
= lv_msg2
= 'Warning'(010).
ENDFORM.
" check_external_references
*eject
*&---------------------------------------------------------------------*
*&
Form get_costs_via_document_flow
*&---------------------------------------------------------------------*
FORM get_costs_via_document_flow USING
p_pickup_number
TYPE any
pb_display_warning
TYPE any
CHANGING p_shipment_cost_number TYPE any.
DATA: lv_tknum
lv_fknum
lv_shipment_cost_pickup_number
lv_ucomm
lv_msg1(55)
lv_msg2(55)
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
vttk-tknum,
vfkk-fknum,
vttk-exti1,
sy-ucomm,
c,
c.
CLEAR gwa_vfkk.
CLEAR p_shipment_cost_number.
* find the shipment document
SELECT SINGLE tknum FROM vttk INTO lv_tknum
WHERE exti1 = p_pickup_number.
*
"#EC *
IF sy-subrc = 0.
get the shipment cost document from the shipment document flow
SELECT SINGLE vbeln FROM vtfa INTO lv_fknum
"#EC *
WHERE vbelv = lv_tknum
AND vbtyp_v = gc_shipment_document
AND vbtyp_n = gc_shipment_cost_document.
IF sy-subrc = 0.
p_shipment_cost_number = lv_fknum.
'POPUP_WITH_WARNING'
= lv_msg1
= lv_msg2
= 'Warning'(010).
ENDFORM.
" get_costs_via_document_flow
*eject
*&---------------------------------------------------------------------*
*&
Form get_status_descriptions
*&---------------------------------------------------------------------*
FORM get_status_descriptions USING
p_load_status
TYPE any
p_status_flag
TYPE any
p_web_status
TYPE any
CHANGING p_load_status_desc TYPE any
p_status_flag_desc TYPE any.
* load status description
PERFORM get_domain_value_description USING
gc_zmanuloadstat
p_load_status
CHANGING p_load_status_desc.
* get the status flag description if the web status text isn't set
IF p_web_status IS INITIAL.
PERFORM get_domain_value_description USING
gc_zmanustatusflag
p_status_flag
CHANGING p_status_flag_desc.
ELSE.
p_status_flag_desc = p_web_status.
ENDIF.
ENDFORM.
" get_status_descriptions
*eject
*&---------------------------------------------------------------------*
*&
Form get_domain_value_description
*&---------------------------------------------------------------------*
FORM get_domain_value_description USING
p_domain_name
TYPE any
p_domain_value
TYPE any
CHANGING p_domain_value_desc TYPE any.
* local variables
DATA: lv_domain_value TYPE dd07t-domvalue_l.
CLEAR p_domain_value_desc.
lv_domain_value = p_domain_value.
CALL FUNCTION 'SHOW_DOMAIN_VALUES'
EXPORTING
domain
= p_domain_name
langu
= sy-langu
value
= lv_domain_value
IMPORTING
dtext
= p_domain_value_desc
* TABLES
*
DTEXT_TABLE
=
EXCEPTIONS
undefined_domain
= 1
OTHERS
= 2.
*
*
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.
" get_domain_value_description
*eject
*&---------------------------------------------------------------------*
*&
Form display_freight_movement
*&---------------------------------------------------------------------*
FORM display_freight_movement .
CALL SCREEN 0200 STARTING AT 10 5 ENDING AT 102 20.
ENDFORM.
" display_freight_movement
*eject
*&---------------------------------------------------------------------*
*&
Form display_shipment_doc
*&---------------------------------------------------------------------*
FORM display_shipment_doc USING p_shipment_number TYPE any.
* Invoke transaction VT03N to display the shipping document
SET PARAMETER ID 'TNR' FIELD p_shipment_number.
CALL TRANSACTION 'VT03N' AND SKIP FIRST SCREEN.
ENDFORM.
" display_shipment_doc
*eject
*&---------------------------------------------------------------------*
*&
Form display_shipment_costs_doc
*&---------------------------------------------------------------------*
FORM display_shipment_costs_doc USING p_shipment_cost_number TYPE any.
* Invoke transaction VI03 to display the shipping cost document
SET PARAMETER ID 'FKK' FIELD p_shipment_cost_number.
CALL TRANSACTION 'VI03' AND SKIP FIRST SCREEN.
ENDFORM.
" display_shipment_costs_doc
*eject
*&---------------------------------------------------------------------*
*&
Form display_cost_adjustments
*&---------------------------------------------------------------------*
FORM display_cost_adjustments USING p_pickup_number TYPE any.
* Invoke program ZTME_MANU_FREIGHT_COST_ADJ
PERFORM submit_freight_cost_adj USING p_pickup_number.
ENDFORM.
" display_cost_adjustments
*eject
*&---------------------------------------------------------------------*
*&
Form submit_freight_cost_adj
*&---------------------------------------------------------------------*
FORM submit_freight_cost_adj USING p_pickup_number TYPE any.
* local booleans
DATA: lb_invalid_program(1) TYPE c.
* local variables
DATA: lv_repid
TYPE sy-repid.
lv_repid = 'ZTME_MANU_FREIGHT_COST_ADJ'.
* The SUBMIT statement will short-dump if the program does
* not exist so check it here first
PERFORM check_program_name USING
lv_repid
CHANGING lb_invalid_program.
IF lb_invalid_program IS INITIAL.
SUBMIT (lv_repid)
WITH p_pcknum = p_pickup_number "pickup number
WITH p_donly = 'X'
"display only
AND RETURN.
ENDIF.
ENDFORM.
*eject
" submit_freight_cost_adj
*&---------------------------------------------------------------------*
*&
Form process_select_command
*&---------------------------------------------------------------------*
FORM process_select_command .
* local variables
DATA: lv_bname TYPE usr03-bname.
GET CURSOR FIELD gv_cursor_field VALUE gv_field_value
LINE gv_cursor_line.
CASE gv_cursor_field.
WHEN gc_service_agent_0200_field.
IF gv_field_value IS INITIAL.
*
Service agent cannot be determined.
MESSAGE e068.
ELSE.
*
Invoke transaction FK03 to display the forwarding agent
PERFORM display_service_agent USING gv_field_value.
ENDIF.
*
*
*
*
*
*
*
WHEN gc_approval_uname_field.
lv_bname = gv_field_value.
IF NOT lv_bname IS INITIAL.
CALL FUNCTION 'SUSR_SHOW_USER_DETAILS'
EXPORTING
bname = lv_bname.
MANDT
= SY-MANDT
NO_DISPLAY
=
IMPORTING
OKCODE
=
ADDR_USR
=
CHANGING
USER_USR03
=
ENDIF.
WHEN gc_document_number
OR gc_additional_document.
PERFORM confirm_display_transaction USING gv_cursor_field
gv_field_value.
WHEN gc_ord_id_field.
PERFORM order_display_transaction USING gv_field_value.
ENDCASE.
*
*
IF sy-subrc <> 0.
lv_domain_value_desc = 'Unknown order type'(027).
ENDIF.
lwa_freight_order-ordtype_desc = lv_domain_value_desc.
MODIFY pt_freight_orders FROM lwa_freight_order
TRANSPORTING ordtype_desc.
ENDIF.
ENDLOOP.
ENDFORM.
" set_ordtype_description
*eject
*&---------------------------------------------------------------------*
*&
Form confirm_display_transaction
*&---------------------------------------------------------------------*
FORM confirm_display_transaction USING p_field_name TYPE any
p_field_value TYPE any.
* local variables
DATA: lwa_undispatch_confirmation TYPE ty_confirmation.
*
*
*
IF p_field_name = gc_document_number.
a 'Document' column field was selected
READ TABLE gt_undispatch_confirmation
INTO lwa_undispatch_confirmation
WITH KEY document_number = p_field_value.
IF NOT lwa_undispatch_confirmation-bill IS INITIAL.
The freight movement header and cost adjustments have the same
document number so we should read the table by index instead
to ensure we are getting the correct entry.
READ TABLE gt_undispatch_confirmation
INTO lwa_undispatch_confirmation
INDEX gv_cursor_line.
ENDIF.
Display the document based on the document number set
IF NOT lwa_undispatch_confirmation-bill
IS INITIAL
AND
lwa_undispatch_confirmation-freight_cost_adjustment IS INITIAL.
PERFORM display_freight_movement.
AND lwa_undispatch_confirmation-sales_order =
lwa_undispatch_confirmation-document_number.
Invoke transaction VA03 to display the order
SET PARAMETER ID 'AUN' FIELD lwa_undispatch_confirmation-sales_order.
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
ENDFORM.
" confirm_display_transaction
*eject
*&---------------------------------------------------------------------*
*&
Form get_deliveries
*&---------------------------------------------------------------------*
FORM get_deliveries USING p_shipment_document TYPE any.
*rockyc
DATA
DATA
DATA
DATA
wo81181 v
lt_orders
lv_orders
lv_vbfa
lv_vbeln
TYPE
TYPE
TYPE
TYPE
TABLE OF zmanu_fm_orddetl.
zmanu_fm_orddetl.
vbfa.
vbak-vbeln.
REFRESH gt_vbfa.
IF p_shipment_document IS INITIAL.
SELECT
INTO
FROM
WHERE
*
TABLE lt_orders
zmanu_fm_orddetl
bill EQ p_bill.
CHECK sy-subrc EQ 0.
LOOP AT lt_orders INTO lv_orders.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = lv_orders-ord_id
IMPORTING
output = lv_vbeln.
*-----Begin Of Changes For WO:37090 By Rajj On 01/13/2015 Transport#E2DK901564
*get the deliveries from the document flow
SELECT SINGLE *
INTO lv_vbfa
FROM vbfa
WHERE vbelv EQ lv_vbeln
AND vbtyp_n EQ gc_delivery_document.
*move the delivery document to VBELV which is
*later used in the program
IF sy-subrc EQ 0.
lv_vbfa-vbelv = lv_vbfa-vbeln.
APPEND lv_vbfa TO gt_vbfa.
ENDSELECT.
ENDIF.
*-----End Of Changes For WO:37090 By Rajj On 01/13/2015 Transport#E2DK901564
*
ENDLOOP.
ELSE.
*get the deliveries from the document flow
SELECT *
INTO TABLE gt_vbfa
FROM vbfa
WHERE vbeln EQ p_shipment_document
AND vbtyp_v EQ gc_delivery_document
AND vbtyp_n EQ gc_shipment_document.
ENDIF.
*rockyc wo81181 ^
ENDFORM.
" get_deliveries
*eject
*&---------------------------------------------------------------------*
*&
Form check_for_order_consistency
*&---------------------------------------------------------------------*
FORM check_for_order_consistency USING
p_bill
TYPE any
CHANGING p_ordtype TYPE any.
* local tables
DATA: lt_orddetl TYPE STANDARD TABLE OF zmanu_fm_orddetl.
* local booleans
DATA: lb_purchase_order_found TYPE c,
lb_sales_order_found
TYPE c.
"#EC NEEDED
REFRESH lt_orddetl.
CLEAR lb_purchase_order_found.
CLEAR lb_sales_order_found.
* get the freight movement order details
SELECT * FROM zmanu_fm_orddetl
INTO TABLE lt_orddetl
WHERE bill = p_bill.
* check for STO
READ TABLE lt_orddetl WITH KEY ordtype = gc_purchase_order_type
TRANSPORTING NO FIELDS.
IF sy-subrc = 0.
lb_purchase_order_found = gc_charx.
ENDIF.
* check for sales order
READ TABLE lt_orddetl WITH KEY ordtype = gc_sales_order_type
TRANSPORTING NO FIELDS.
IF sy-subrc = 0.
lb_sales_order_found = gc_charx.
ENDIF.
* is the order detail consistent?
*<!--wo3788/E1DK911124-----------------* IF NOT lb_purchase_order_found IS INITIAL
* AND NOT lb_sales_order_found
IS INITIAL.
**
The freight movement detail for & contains both STO's and sales orders.
*
MESSAGE e093 WITH p_bill.
* ENDIF.
*--wo3788/E1DK911124------------------!>
* return the order type, STO or sales order
IF NOT lb_purchase_order_found IS INITIAL.
p_ordtype = gc_purchase_order_type.
ELSE.
p_ordtype = gc_sales_order_type.
ENDIF.
ENDFORM.
" check_for_order_consistency
*eject
*&---------------------------------------------------------------------*
*&
Form get_delivery_desc
*&---------------------------------------------------------------------*
FORM get_delivery_desc USING
p_delivery_type
TYPE any
p_processing_status
TYPE any
CHANGING p_delivery_desc
TYPE any
p_processing_status_desc TYPE any.
CLEAR p_delivery_desc.
* get the description of the delivery document
SELECT SINGLE vtext FROM tvlkt INTO p_delivery_desc
WHERE spras = sy-langu
AND lfart = p_delivery_type.
gc_statv
p_processing_status
CHANGING p_processing_status_desc.
ENDFORM.
" get_delivery_desc
*eject
*&---------------------------------------------------------------------*
*&
Form get_sales_order_desc
*&---------------------------------------------------------------------*
FORM get_sales_order_desc USING
p_order_type
TYPE any
p_processing_status
TYPE any
CHANGING p_order_desc
TYPE any
p_processing_status_desc TYPE any.
CLEAR p_order_desc.
* get the description of the sales order document
SELECT SINGLE bezei FROM tvakt INTO p_order_desc
WHERE spras = sy-langu
AND auart = p_order_type.
* get the status description
PERFORM get_domain_value_description USING
gc_statv
p_processing_status
CHANGING p_processing_status_desc.
ENDFORM.
" get_sales_order_desc
*eject
*&---------------------------------------------------------------------*
*&
Form get_purchase_order_desc
*&---------------------------------------------------------------------*
FORM get_purchase_order_desc USING
p_purchase_order_type TYPE any
CHANGING p_order_desc
TYPE any.
CLEAR p_order_desc.
* get the document type description
SELECT SINGLE batxt FROM t161t INTO p_order_desc
WHERE spras = sy-langu
AND bsart = p_purchase_order_type.
"#EC *
ENDFORM.
" get_purchase_order_desc
*eject
*&---------------------------------------------------------------------*
*&
Form display_documents
*&---------------------------------------------------------------------*
FORM display_documents CHANGING p_continue TYPE any.
DATA: lv_status TYPE ty_status-undispatch_status.
CLEAR p_continue.
REFRESH gt_undispatch_confirmation.
IF zmanu_fm_header IS INITIAL "freight movement header
AND gwa_vttk
IS INITIAL "shipment document
AND gt_vbfa[]
IS INITIAL. "deliveries
*
No documents found for pickup number &.
MESSAGE s127 WITH p_bill INTO lv_status.
ENDFORM.
" display_documents
*eject
*&---------------------------------------------------------------------*
*&
Form setup_display_documents
*&---------------------------------------------------------------------*
FORM setup_display_documents TABLES pt_undispatch_confirmation
TYPE ty_confirmation_table.
PERFORM setup_freight_movement_doc TABLES pt_undispatch_confirmation.
PERFORM setup_cost_adjustment_doc TABLES pt_undispatch_confirmation.
PERFORM setup_shipment_doc
TABLES pt_undispatch_confirmation.
PERFORM setup_shipment_cost_doc
TABLES pt_undispatch_confirmation.
PERFORM setup_order_documents
TABLES pt_undispatch_confirmation.
PERFORM setup_delivery_documents
TABLES pt_undispatch_confirmation.
ENDFORM.
" setup_display_documents
*eject
*&---------------------------------------------------------------------*
*&
Form setup_shipment_doc
*&---------------------------------------------------------------------*
FORM setup_shipment_doc TABLES pt_undispatch_confirmation "#EC *
TYPE ty_confirmation_table.
* local variables
DATA: lwa_undispatch_confirmation TYPE ty_confirmation.
DATA: lv_vendor
lv_shipment_document
lv_shipment_desc
lv_shipment_status
lv_shipment_info
TYPE
TYPE
TYPE
TYPE
TYPE
vttk-tdlnr,
ty_confirmation-document_number,
ty_confirmation-document_desc,
ty_confirmation-document_status,
ty_confirmation-additional_info.
gwa_vttk-shtyp
gwa_vttk-sttrg
CHANGING lv_shipment_desc
lv_shipment_status.
gwa_vttk-tdlnr
zmanu_fm_header-source_vstel
CHANGING lv_shipment_info.
WRITE gwa_vttk-tknum TO lv_shipment_document. "strip leading zeroes
WRITE gwa_vttk-tdlnr TO lv_vendor.
"strip leading zeroes
CLEAR lwa_undispatch_confirmation.
lwa_undispatch_confirmation-shipment
lwa_undispatch_confirmation-vendor
lwa_undispatch_confirmation-document_number
lwa_undispatch_confirmation-document_desc
lwa_undispatch_confirmation-document_status
lwa_undispatch_confirmation-additional_document
lwa_undispatch_confirmation-additional_info
=
=
=
=
=
=
=
gwa_vttk-tknum.
gwa_vttk-tdlnr.
lv_shipment_document.
lv_shipment_desc.
lv_shipment_status.
lv_vendor.
lv_shipment_info.
ENDFORM.
" setup_shipment_doc
*eject
*&---------------------------------------------------------------------*
*&
Form setup_shipment_cost_doc
*&---------------------------------------------------------------------*
FORM setup_shipment_cost_doc TABLES pt_undispatch_confirmation "#EC *
TYPE ty_confirmation_table.
* local variables
DATA: lwa_undispatch_confirmation TYPE ty_confirmation.
DATA: lv_shipment_cost_document
lv_shipment_desc
lv_shipment_status
lv_shipment_info
TYPE
TYPE
TYPE
TYPE
ty_confirmation-document_number,
ty_confirmation-document_desc,
ty_confirmation-document_status,
ty_confirmation-additional_info.
gwa_vttk-tdlnr
zmanu_fm_header-source_vstel
changing lv_shipment_info.
lwa_undispatch_confirmation-additional_info
= lv_shipment_info.
ENDFORM.
" setup_shipment_cost_doc
*eject
*&---------------------------------------------------------------------*
*&
Form get_shipment_desc
*&---------------------------------------------------------------------*
FORM get_shipment_desc USING
p_shipment_type TYPE any
p_shipment_status TYPE any
CHANGING p_document_desc TYPE any
p_document_status TYPE any.
* local variables
DATA: lv_shipment_desc TYPE tvtkt-bezei.
CLEAR p_document_desc.
SELECT SINGLE bezei FROM tvtkt INTO lv_shipment_desc
WHERE spras = sy-langu
AND shtyp = p_shipment_type.
* <shipment type desc>
p_document_desc = lv_shipment_desc.
PERFORM get_domain_value_description USING
gc_sttrg
p_shipment_status
CHANGING p_document_status.
ENDFORM.
" get_shipment_desc
*eject
*&---------------------------------------------------------------------*
*&
Form get_shipment_cost_desc
*&---------------------------------------------------------------------*
FORM get_shipment_cost_desc USING
p_shipment_doc_type TYPE any
CHANGING p_document_desc
TYPE any.
* local variables
DATA: lv_shipment_cost_desc TYPE tvtkt-bezei.
CLEAR p_document_desc.
SELECT SINGLE bezei FROM tvtft INTO lv_shipment_cost_desc
WHERE spras = sy-langu
AND fkart = p_shipment_doc_type.
p_document_desc = lv_shipment_cost_desc.
ENDFORM.
" get_shipment_cost_desc
*eject
*&---------------------------------------------------------------------*
*&
Form get_shipment_additional_info
*&---------------------------------------------------------------------*
FORM get_shipment_additional_info USING
p_forwarding_agent TYPE any
p_shipping_point TYPE any
CHANGING p_shipment_info
TYPE any.
* local variables
DATA: lv_name1
lv_name2
lv_name3
lv_name4
lv_forwarding_agent_name
lv_shipping_point_name
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
lfa1-name1,
lfa1-name2,
lfa1-name3,
lfa1-name4,
sy-msgv1,
sy-msgv1.
CLEAR lv_forwarding_agent_name.
SELECT SINGLE name1 name2 name3 name4 FROM lfa1
INTO (lv_name1, lv_name2, lv_name3, lv_name4)
WHERE lifnr = p_forwarding_agent.
IF NOT lv_name1 IS INITIAL.
lv_forwarding_agent_name = lv_name1.
ELSEIF NOT lv_name2 IS INITIAL.
lv_forwarding_agent_name = lv_name2.
ELSEIF NOT lv_name3 IS INITIAL.
lv_forwarding_agent_name = lv_name3.
ELSEIF NOT lv_name4 IS INITIAL.
lv_forwarding_agent_name = lv_name4.
ELSE.
lv_forwarding_agent_name = '(forwarding agent name not specified)'(005).
ENDIF.
SELECT SINGLE vtext FROM tvstt INTO lv_shipping_point_name
WHERE spras = sy-langu
AND vstel = p_shipping_point.
* <agent name> / <shipping point> <shipping point name>
CONCATENATE lv_forwarding_agent_name
'/'
p_shipping_point lv_shipping_point_name
INTO p_shipment_info SEPARATED BY space.
ENDFORM.
" get_shipment_additional_info
*eject
*&---------------------------------------------------------------------*
*&
Form setup_order_documents
*&---------------------------------------------------------------------*
FORM setup_order_documents TABLES pt_undispatch_confirmation "#EC *
TYPE ty_confirmation_table.
* local structures
DATA: lwa_fm_orddetl
TYPE zmanu_fm_orddetl,
lwa_undispatch_confirmation TYPE ty_confirmation.
* local variables
DATA: lv_gbstk
lv_auart
TYPE vbuk-gbstk,
TYPE vbak-auart,
lv_bsart
TYPE ekko-bsart,
lv_sales_order
TYPE vbak-vbeln,
lv_purchase_order
TYPE ekko-ebeln,
lv_ord_id
TYPE vbak-vbeln,
lv_document_number
TYPE ty_confirmation-document_number,
lv_document_desc
TYPE ty_confirmation-document_desc,
lv_processing_status_desc TYPE ty_confirmation-document_status,
lv_additional_document
TYPE ty_confirmation-additional_document,
lv_unsez
TYPE ty_confirmation-unsez."Amyk 26083
*>>Amyk 21922 Add variable for stop cuity & state
DATA: lv_city TYPE ort01_gp,
lv_state TYPE regio,
lv_bstnk TYPE bstnk,
lv_kunnr TYPE kunnr,
lv_name1 TYPE ad_name1,
lv_ihrez TYPE ihrez,
lv_subrc TYPE sy-subrc,
*-----Begin Of Changes For WO:29355 By Rajj On 07/11/2013 Transport#E1DK918004
lv_ord
TYPE vbeln,
lv_verkf TYPE everk.
*-----End Of Changes For WO:29355 By Rajj On 07/11/2013 Transport#E1DK918004
DATA: lo_manu
*<<Amyk 21922
CLEAR
CLEAR
CLEAR
CLEAR
CLEAR
CLEAR
lv_auart.
lv_document_desc.
lv_sales_order.
lv_purchase_order.
lwa_undispatch_confirmation.
lv_subrc.
IF sy-subrc = 0.
get the sales order status
SELECT SINGLE gbstk FROM vbuk INTO lv_gbstk
WHERE vbeln = lv_ord_id.
PERFORM get_sales_order_desc USING
lv_auart
lv_gbstk
CHANGING lv_document_desc
lv_processing_status_desc.
ELSE.
SD document & is not in the database or has been archived
MESSAGE i302(v1) WITH lwa_fm_orddetl-ord_id
INTO lv_document_desc.
ENDIF.
lv_sales_order
= lwa_fm_orddetl-ord_id.
lv_document_number = lwa_fm_orddetl-ord_id.
*-----Begin Of Changes For WO:31632 By Rajj On 03/03/2014 Transport#E1DK918817
lv_ord
= lv_sales_order.
*-----End Of Changes For WO:31632 By Rajj On 03/03/2014 Transport#E1DK918817
ELSE.
*
*
SELECT SINGLE bsart FROM ekko INTO lv_bsart
*>>Amyk 26083
*
SELECT SINGLE bsart ihrez FROM ekko
*
INTO (lv_bsart, lv_ihrez)
"Amyk 21922
"Amyk 21922
lv_purchase_order = lwa_fm_orddetl-ord_id.
lv_document_number = lwa_fm_orddetl-ord_id.
*-----Begin Of Changes For WO:31632 By Rajj On 03/03/2014 Transport#E1DK918817
lv_ord
= lv_purchase_order.
*-----End Of Changes For WO:31632 By Rajj On 03/03/2014 Transport#E1DK918817
ENDIF.
*>>Amyk 21922 Get Stop info from Manu
IF lv_subrc = 0.
PERFORM get_manu_stop_info USING lwa_fm_orddetl-ord_id
CHANGING lv_city
lv_state.
ENDIF.
*<<Amyk 21922
CLEAR lwa_undispatch_confirmation.
"lwa_undispatch_confirmation-delivery
= lwa_vbfa-vbelv.
lwa_undispatch_confirmation-sales_order
= lv_sales_order.
lwa_undispatch_confirmation-purchase_order
= lv_purchase_order.
lwa_undispatch_confirmation-document_number
= lv_document_number.
lwa_undispatch_confirmation-document_desc
= lv_document_desc.
lwa_undispatch_confirmation-document_status
= lv_processing_status_desc.
lwa_undispatch_confirmation-additional_document = lv_additional_document.
"lwa_undispatch_confirmation-additional_info
= lv_delivery_info.
*>>Amyk 21922 Add fields to screen
lwa_undispatch_confirmation-stop_num
= lwa_fm_orddetl-stop_num.
IF lv_bstnk IS NOT INITIAL.
lwa_undispatch_confirmation-ponum
= lv_bstnk.
ELSEIF lv_ihrez IS NOT INITIAL.
lwa_undispatch_confirmation-ponum
= lv_ihrez.
ENDIF.
lwa_undispatch_confirmation-cusname
lwa_undispatch_confirmation-city
lwa_undispatch_confirmation-state
lwa_undispatch_confirmation-miles
lwa_undispatch_confirmation-unsez
*<<Amyk 21922
=
=
=
=
=
lv_name1.
lv_city.
lv_state.
lwa_fm_orddetl-miles.
lv_unsez."Amyk 26083
"Amyk 26083
IF lwa_undispatch_confirmation IS INITIAL.
no orders found
lwa_undispatch_confirmation-document_desc = 'No orders found.'(030).
APPEND lwa_undispatch_confirmation TO pt_undispatch_confirmation.
ENDIF.
ENDFORM.
" setup_order_documents
*eject
*&---------------------------------------------------------------------*
*&
Form setup_delivery_documents
*&---------------------------------------------------------------------*
FORM setup_delivery_documents TABLES pt_undispatch_confirmation "#EC *
TYPE ty_confirmation_table.
* local variables
DATA: lwa_vbfa
TYPE vbfa,
lwa_undispatch_confirmation TYPE ty_confirmation.
DATA: lv_gbstk
lv_lfart
lv_vbelv
lv_sales_order
lv_purchase_order
lv_delivery_desc
lv_processing_status_desc
lv_document_desc
lv_additional_document
lv_delivery_info
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
vbuk-gbstk,
likp-lfart,
vbfa-vbelv,
vbak-vbeln,
ekko-ebeln,
ty_confirmation-document_desc,
ty_confirmation-document_status,
ty_confirmation-document_desc,
ty_confirmation-additional_document,
ty_confirmation-additional_info.
CLEAR lv_lfart.
CLEAR lv_delivery_desc.
CLEAR lwa_undispatch_confirmation.
* loop through the relevant deliveries
LOOP AT gt_vbfa INTO lwa_vbfa.
SELECT SINGLE gbstk FROM vbuk INTO lv_gbstk
WHERE vbeln = lwa_vbfa-vbelv.
IF sy-subrc = 0.
*
get the delivery type to retrieve the description
SELECT SINGLE lfart FROM likp INTO lv_lfart
WHERE vbeln = lwa_vbfa-vbelv.
IF sy-subrc = 0.
PERFORM get_delivery_desc USING
lv_lfart
lv_gbstk
CHANGING lv_delivery_desc
lv_processing_status_desc.
ENDIF.
s
ELSEIF NOT lv_purchase_order IS INITIAL.
WRITE lv_purchase_order TO lv_additional_document. "strip leading zeroe
s
ENDIF.
*
=
=
=
=
=
=
lwa_vbfa-vbelv.
lv_sales_order.
lv_purchase_order.
lv_vbelv.
lv_document_desc.
lv_processing_status_des
c.
lwa_undispatch_confirmation-additional_document = lv_additional_document.
lwa_undispatch_confirmation-additional_info
= lv_delivery_info.
APPEND lwa_undispatch_confirmation TO pt_undispatch_confirmation.
ENDIF.
ENDLOOP.
*
IF lwa_undispatch_confirmation IS INITIAL.
no deliveries found
lwa_undispatch_confirmation-document_desc = 'No deliveries found.'(006).
APPEND lwa_undispatch_confirmation TO pt_undispatch_confirmation.
ENDIF.
ENDFORM.
" setup_delivery_documents
*eject
*&---------------------------------------------------------------------*
*&
Form get_delivery_additional_info
*&---------------------------------------------------------------------*
FORM get_delivery_additional_info USING
p_delivery
TYPE any
CHANGING p_delivery_info TYPE any
p_sales_order
TYPE any
p_purchase_order TYPE any.
* local variables
DATA: lv_auart
lv_bsart
lv_document_number
lv_document_desc
TYPE
TYPE
TYPE
TYPE
*>>> WO3260
DATA: lv_comwa
lt_vbfa_tab
lwa_vbfa
*<<< WO3260
TYPE vbco6,
TYPE TABLE OF vbfa,
TYPE vbfa.
vbak-auart,
ekko-bsart,
vbak-vbeln,
tvakt-bezei.
CLEAR p_delivery_info.
CLEAR p_sales_order.
CLEAR p_purchase_order.
CLEAR lv_document_number.
CLEAR lv_document_desc.
* is this a sales order delivery? check the document flow
SELECT SINGLE vbelv FROM vbfa INTO lv_document_number
"#EC *
WHERE vbeln = p_delivery
AND vbtyp_v = gc_sales_order_type
AND vbtyp_n = gc_delivery_document.
IF sy-subrc = 0.
p_sales_order = lv_document_number.
*
*
*
*
*
*
*
*
*
*
TYPE ty_confirmation-document_desc,
TYPE ty_confirmation-document_status,
TYPE ty_confirmation-additional_info.
gc_zmanuloadstat
zmanu_fm_header-load_status
CHANGING lv_document_status.
=
=
=
=
=
p_bill.
p_bill.
lv_document_desc.
lv_document_status.
lv_additional_info.
*
).
=
=
=
=
=
p_bill.
p_bill.
p_bill.
lv_document_desc.
lv_document_status.
"lwa_undispatch_confirmation-additional_info
"lwa_undispatch_confirmation-action_to_be_taken
= lv_additional_info.
= lv_action_to_be_taken
.
APPEND lwa_undispatch_confirmation TO pt_undispatch_confirmation.
ENDIF.
IF lwa_undispatch_confirmation IS INITIAL.
no freight cost adjustments found
lwa_undispatch_confirmation-document_desc = 'No freight cost adjustments fou
nd.'(031).
APPEND lwa_undispatch_confirmation TO pt_undispatch_confirmation.
ENDIF.
*
ENDFORM.
" setup_cost_adjustment_doc
*eject
*&---------------------------------------------------------------------*
*&
Form display_undispatch_confirm
*&---------------------------------------------------------------------*
FORM display_undispatch_confirm.
* display the confirmation screen
* CALL SCREEN 0400 STARTING AT 6 5 ENDING AT 127 20. "Amyk 21922
CALL SCREEN 0400.
"Amyk 21922
ENDFORM.
" display_undispatch_confirm
*eject
*&---------------------------------------------------------------------*
*&
Form print_undispatch_confirmation
*&---------------------------------------------------------------------*
FORM print_undispatch_confirmation.
* local booleans
DATA: lb_spool_file_opened(1) TYPE c.
PERFORM open_spool_file CHANGING lb_spool_file_opened.
IF NOT lb_spool_file_opened IS INITIAL.
PERFORM write_undispatch_confirmation.
PERFORM close_spool_file.
ENDIF.
ENDFORM.
" print_undispatch_confirmation
*eject
*&---------------------------------------------------------------------*
*&
Form open_spool_file
*&---------------------------------------------------------------------*
FORM open_spool_file CHANGING pb_spool_file_opened TYPE any.
* local constants
CONSTANTS: lc_define_print_params TYPE sy-callr
VALUE 'PARAM',
lc_132_characters
TYPE pri_params-linsz VALUE 132.
* local variables
DATA: lwa_out_parameters TYPE pri_params.
* local booleans
DATA: lb_valid(1) TYPE c.
CLEAR pb_spool_file_opened.
CLEAR lb_valid.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
archive_info_not_found
invalid_print_params
invalid_archive_params
OTHERS
=
=
=
=
1
2
3
4.
IF sy-subrc = 0
AND NOT lb_valid IS INITIAL. "print parameters are valid
NEW-PAGE PRINT ON
PARAMETERS lwa_out_parameters
NO-HEADING
NO-TITLE
NO DIALOG.
pb_spool_file_opened = gc_charx.
ENDIF.
ENDFORM.
" open_spool_file
*eject
*&---------------------------------------------------------------------*
*&
Form write_undispatch_confirmation
*&---------------------------------------------------------------------*
FORM write_undispatch_confirmation.
* local variables
DATA: lwa_undispatch_confirmation TYPE ty_confirmation.
LOOP AT gt_undispatch_confirmation INTO lwa_undispatch_confirmation.
WRITE:/ lwa_undispatch_confirmation-document_number
UNDER 'Document'(022)
,
lwa_undispatch_confirmation-document_desc
UNDER 'Description'(0
lwa_undispatch_confirmation-document_status
UNDER 'Status'(024).
23),
ENDLOOP.
SKIP 1.
ENDFORM.
" write_undispatch_confirmation
*eject
*&---------------------------------------------------------------------*
*&
Form close_spool_file
*&---------------------------------------------------------------------*
FORM close_spool_file .
NEW-PAGE PRINT OFF.
ENDFORM.
" close_spool_file
*eject
*&---------------------------------------------------------------------*
*&
Form order_display_transaction
*&---------------------------------------------------------------------*
FORM order_display_transaction USING
p_ord_id TYPE any.
* local variables
DATA: lwa_freight_order TYPE ty_freight_order.
READ TABLE gt_freight_orders INTO lwa_freight_order
WITH KEY ord_id = p_ord_id.
CASE lwa_freight_order-ordtype.
WHEN space.
The order type is not specified. Display is not possible.
MESSAGE e074.
WHEN gc_sales_order_type.
Invoke transaction VA03 to display the order
SET PARAMETER ID 'AUN' FIELD p_ord_id.
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
WHEN gc_purchase_order_type.
Invoke transaction ME23N to display the purchase order
SET PARAMETER ID 'BES' FIELD p_ord_id.
CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
WHEN OTHERS.
Unexpected document type &1 - &2. Display is not possible.
MESSAGE e075 WITH lwa_freight_order-ordtype
lwa_freight_order-ordtype_desc.
ENDCASE.
ENDFORM.
" order_display_transaction
*eject
*&---------------------------------------------------------------------*
*&
Form get_shipment_cost_pickup_num
*&---------------------------------------------------------------------*
FORM get_shipment_cost_pickup_num USING
p_fknum
TYPE any
CHANGING p_pickup_number TYPE any.
CLEAR p_pickup_number.
* get the pickup number from one of the items (it doesn't matter which)
SELECT SINGLE exti1 FROM vfkp INTO p_pickup_number
"#EC *
WHERE fknum = p_fknum.
ENDFORM.
" get_shipment_cost_pickup_num
*eject
*&---------------------------------------------------------------------*
*&
Form check_program_name
*&---------------------------------------------------------------------*
FORM check_program_name USING
p_program
TYPE any
CHANGING p_invalid_program TYPE any.
* local constants
CONSTANTS: lc_executable_program TYPE subc VALUE 1.
* local variables
DATA: lv_subc TYPE subc.
* does the program exist? is it executable?
SELECT SINGLE subc FROM trdir INTO lv_subc
WHERE name = p_program.
IF sy-subrc <> 0.
p_invalid_program = 'X'.
MESSAGE e030 WITH 'Freight Cost Adjustment program'(e01)
p_program
'does not exist.'(e02).
ELSEIF lv_subc <> lc_executable_program.
p_invalid_program = 'X'.
MESSAGE e030 WITH 'Program'(e03)
p_program
'is not an EXECUTABLE program.'(e04).
ENDIF.
ENDFORM.
" check_program_name
*eject
*&---------------------------------------------------------------------*
*&
Form internal_order_number
*&---------------------------------------------------------------------*
FORM internal_order_number USING
p_ord_id
TYPE any
CHANGING p_internal_ord_id TYPE any.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = p_ord_id
IMPORTING
output = p_internal_ord_id.
ENDFORM.
" internal_order_number
*eject
*&---------------------------------------------------------------------*
*&
Form count_adjustment_records
*&---------------------------------------------------------------------*
FORM count_adjustment_records USING
p_bill
TYPE any
CHANGING p_condition_record_count TYPE any.
DATA: lv_count(7) TYPE c.
CLEAR p_condition_record_count.
SELECT COUNT(*) FROM zmanu_frtcst_adj
WHERE pickup_number = p_bill.
WRITE sy-dbcnt TO lv_count LEFT-JUSTIFIED.
IF lv_count = 1.
CONCATENATE lv_count 'adjustment'(034)
INTO p_condition_record_count SEPARATED BY space.
ELSE.
CONCATENATE lv_count 'adjustments'(033)
INTO p_condition_record_count SEPARATED BY space.
ENDIF.
CONDENSE p_condition_record_count.
ENDFORM.
" count_adjustment_records
*&---------------------------------------------------------------------*
*&
Form GET_MANU_STOP_INFO
*&---------------------------------------------------------------------*
FORM get_manu_stop_info USING
iv_ordid TYPE zmanuordid
CHANGING cv_city TYPE ort01_gp
cv_state TYPE regio.
DATA: lv_destid TYPE zmanulocid.
DATA: lo_sql_excep TYPE REF TO cx_sy_native_sql_error.
TRY.
EXEC SQL.
SELECT dest_id
FROM ord
INTO
:lv_destid
WHERE id = :iv_ordid
ENDEXEC.
CATCH cx_sy_native_sql_error INTO lo_sql_excep.
sy-subrc = 4.
ENDTRY.
IF lv_destid IS NOT INITIAL.
TRY.
EXEC SQL.
SELECT city,
state
FROM location
INTO
:cv_city,
:cv_state
WHERE id = :lv_destid
ENDEXEC.
CATCH cx_sy_native_sql_error INTO lo_sql_excep.
sy-subrc = 4.
ENDTRY.
ENDIF.
ENDFORM.
" GET_MANU_STOP_INFO
*&---------------------------------------------------------------------*
*&
Form GET__PURCHASE_ORDER_CUSNAME
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM get_purchase_order_cusname USING
pv_ordid TYPE zmanuordid
CHANGING pv_name1 TYPE ad_name1.
DATA: lv_adrn2 TYPE adrn2.
SELECT SINGLE adrn2 FROM ekpo
INTO lv_adrn2
WHERE ebeln = pv_ordid.
"#EC *
IF sy-subrc <> 0.
EXIT.
ENDIF.
SELECT SINGLE name1 FROM adrc
INTO pv_name1
WHERE addrnumber = lv_adrn2.
"#EC *
IF sy-subrc <> 0.
CLEAR pv_name1.
ENDIF.
ENDFORM.
" GET__PURCHASE_ORDER_CUSNAME
*&---------------------------------------------------------------------*
*&
Form CONNECT_MANU
*&---------------------------------------------------------------------*
" DISCONNECT_MANU