DATA:
it_header TYPE STANDARD TABLE OF bapimeoutheader,
wa_header
TYPE bapimeoutheader.
DATA: it_item TYPE STANDARD TABLE OF bapimeoutitem,
wa_item TYPE bapimeoutitem,
wa_itemx TYPE bapimeoutitemx.
DATA: it_itemx TYPE STANDARD TABLE OF bapimeoutitemx.
DATA: wa_headerx TYPE bapimeoutheaderx.
DATA: it_headerx TYPE STANDARD
TABLE OF bapimeoutheaderx.
DATA: it_return TYPE STANDARD TABLE OF bapiret2,
it_return1
TYPE STANDARD TABLE OF bapiret2,
wa_return TYPE bapiret2.
data lt_item_out type bapimeoutitem occurs 0 with header line.
data lt_itemx_out
type bapimeoutitemx occurs 0 with header line.
data l_t685a
type t685a.
data lt_account
type mepoaccounting occurs 0 with header
line.
data lt_accountx
type mepoaccountingx occurs 0 with header line.
data lt_account_out
type bapimeoutaccount occurs 0 with header line.
data lt_accountx_out
type bapimeoutaccountx occurs 0 with header line.
data l_conditionx
type bapimeoutconditionx.
data l_item_condition
type bapimeoutcondition.
data l_validity
type bapimeoutvalidity.
data l_validityx
type bapimeoutvalidityx.
data lt_delivery_address
type standard table of bapimeoutaddrdelivery with header line.
* fill condiiton data
data lt_item_condition
type standard table of bapimeoutcondition.
data tl_item_condition
type standard table of bapimeoutcondition.
data lt_item_conditionx
type standard table of bapimeoutconditionx.
data lt_tem_cond_validity
type standard table of bapimeoutvalidity.
data lt_tem_cond_validityx type
standard table of bapimeoutvalidityx.
data tl_item_conditionx
type standard table of bapimeoutconditionx.
data tl_tem_cond_validity
type standard table of bapimeoutvalidity.
data tl_tem_cond_validityx type
standard table of bapimeoutvalidityx.
* adjust price conditions
field-symbols
<t_condition> type bapimeoutcondition.
field-symbols
<t_conditionx> type bapimeoutconditionx.
field-symbols
<t_item_out> type bapimeoutitem .
field-symbols
<t_validity> type bapimeoutvalidity.
field-symbols
<t_text> type bapiekpotx .
field-symbols
<t_account> type mepoaccounting.
field-symbols
<t_accountx> type mepoaccountingx.
IF p_create EQ 'X'. " Creating Contract
CALL FUNCTION
'BAPI_CONTRACT_CREATE'
EXPORTING
header = wa_header
headerx
= wa_headerx
TABLES
return = it_return
item = it_item
itemx = it_itemx.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'
IMPORTING
return = wa_return.
PERFORM
display_messages.
ENDIF.
IF p_change EQ 'X'. " Updating Contract
tl_item_condition[] = lt_item_condition[].
tl_item_conditionx[] = lt_item_conditionx[].
tl_tem_cond_validity[] = lt_tem_cond_validity[].
tl_tem_cond_validityx[] =
lt_tem_cond_validityx[].
call function
'BAPI_CONTRACT_GETDETAIL'
exporting
purchasingdocument = wa_header-number
condition_data = 'X'
tables
item_condition = lt_item_condition
item_cond_validity
= lt_tem_cond_validity.
* adjust price conditions
loop at lt_item_condition
assigning <t_condition> where calctypcon = 'C'.
* check condition type
if l_t685a-kschl
ne <t_condition>-cond_type.
call
function 'SD_COND_T685_SELECT'
exporting
cts_error = space
cts_kappl = 'M'
cts_kschl = <t_condition>-cond_type
cts_kvewe = 'A'
importing
cts_t685a = l_t685a.
endif.
* price only
check
l_t685a-koaid = 'B'.
read table
lt_item_out assigning <t_item_out> with key item_no =
<t_condition>-item_no binary search.
if sy-subrc is
initial.
move
<t_item_out>-net_price to <t_condition>-cond_value.
endif.
append
<t_condition> to tl_item_condition.
* fill change data
l_conditionx-item_no = <t_condition>-item_no.
l_conditionx-serial_id = <t_condition>-serial_id.
l_conditionx-cond_count = <t_condition>-cond_count.
l_conditionx-cond_value = 'X'.
l_conditionx-currency = 'X'.
append
l_conditionx to tl_item_conditionx.
read table
lt_tem_cond_validity assigning <t_validity> with key item_no =
<t_condition>-item_no
serial_id = <t_condition>-serial_id.
if sy-subrc is
initial.
<t_validity>-valid_from = lv_sdate. "validity From Date You have to declare some where
<t_validity>-valid_to = lv_date. "validity To
Date You have to declare some where
append
<t_validity> to tl_tem_cond_validity.
endif.
endloop.
call function
'BAPI_CONTRACT_CHANGE'
exporting
purchasingdocument = wa_header-number
header = wa_header
headerx = wa_headerx
*
vendor_address = l_vendor_ad
*
testrun = i_testrun
* importing
*
exp_header = ls_header_out
tables
return = it_return
item
= it_item
itemx
= it_itemx
account = lt_account_out
accountx = lt_accountx_out
*
delivery_address = lt_delivery_address
item_cond_validity = tl_tem_cond_validity
item_condition = tl_item_condition
item_conditionx = tl_item_conditionx
item_cond_validityx = tl_tem_cond_validityx.
endif.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'
IMPORTING
return = wa_return.
PERFORM display_messages.
No comments:
Post a Comment