”VK11/VK12创建/修改销售价格
"默认值
ts_input-kschl = 'YA01'."定价类型 YA01
ts_input-konwa = 'CNY'."单位(货币单位) 固定值【CNY】
ts_input-kpein = '1'."单位(数量) 固定值【1】
ts_input-kmein = 'PCS'."单位(基本计量单位) 固定值【PCS】
ts_input-prodh = ls_xfdata-prdha."产品层次
ts_input-kbetr = ls_xfdata-xfnetpr ."现返金额
"检查创建还是修改
SELECT SINGLE *
INTO @DATA(ls_a808)
FROM a808 AS a INNER JOIN konp AS b ON a~knumh = b~knumh
WHERE a~kappl = 'V'
AND a~kunnr = @ts_input-kunnr
AND vkorg = @ts_input-vkorg
AND prodh = @ts_input-prodh
AND datbi = @ts_input-datbi
AND datab = @ts_input-datab
AND a~kschl = @ts_input-kschl
AND b~loevm_ko = '' .
IF sy-subrc = 0 .
lv_mode = 'B' . " 修改
ELSE.
lv_mode = 'A'. "创建
ENDIF.
" Badi 相关 begin
ls_komv-kappl = 'V'. "应用 看表
ls_komv-kschl = 'YA01'. "类型 看表
ls_komv-waers = 'CNY'. "货币
ls_komv-kmein = 'ZPC'. "单位
ls_komv-kpein = '1'. "定价单位
ls_komv-kbetr = ts_input-kbetr."售价
APPEND ls_komv TO lt_komv.
CLEAR ls_komg.
ls_komg-vkorg = ts_input-vkorg. "销售组织
-
ls_komg-vtweg = ls_ztsd_oa_qth-vtweg. "分销渠道
ls_komg-kunnr = ts_input-kunnr. "客户
ls_komg-prodh = ts_input-prodh. "产品层次CLEAR lv_selection_date.
lv_selection_date = ts_input-datab+(6) && ‘01’.
CALL FUNCTION ‘RV_CONDITION_COPY’EXPORTING
application = ‘V’ "(V 销售)
condition_table = ‘808’
condition_type = ‘YA01’
i_komp = ls_komp
key_fields = ls_komg
date_from = ts_input-datab
date_to = ts_input-datbi
enqueue = ‘X’ " lock entry 锁定VK11/VK12
overlap_confirmed = ‘X’ " 直接覆盖,跨以前的期间不会弹出界面
maintain_mode = lv_mode " A= create, B= change, C= display, D= create
selection_date = lv_selection_date “跨月修改必须传不然只能修改本月的价格,传入的开始结束日期控制不了
TABLES
copy_records = lt_komv
EXCEPTIONS
enqueue_on_record = 1
invalid_application = 2
invalid_condition_number = 3
invalid_condition_type = 4
no_authority_ekorg = 5
no_authority_kschl = 6
no_authority_vkorg = 7
no_selection = 8
table_not_valid = 9
no_material_for_settlement = 10
no_unit_for_period_cond = 11
no_unit_reference_magnitude = 12
invalid_condition_table = 13
OTHERS = 14.
IF sy-subrc = 0.
CALL FUNCTION ‘RV_CONDITION_SAVE’.
CALL FUNCTION ‘RV_CONDITION_RESET’.
COMMIT WORK AND WAIT.
END.
源码解释:
跨月修改必须传不然只能修改本月的价格,传入的开始结束日期控制不了