发布时间:2019-07-29 16:05:01
根据同一个公司下,同一个物料中
A = 价格
B= 时间
C=公司
D=物料
1. From - to这里面要得到的是含税的总价。博主这次做的简单点,就直接参考step 1 -即PB00或PBXX
2. Subtotal一定要写9,9才会计算到net value里面去
3. 新建一个calculation formula,比如905.因为这个条件类型需要我们通过税码自己计算出来,而不是通过存取顺序维护条件记录的方式计算出来。
下面就是公式的内容了。
*&---------------------------------------------------------------------**& Form FRM_KONDI_WERT_905*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*FORM frm_kondi_wert_905. DATA: l_kbetr LIKE konp-kbetr. "Tax Rate DATA: l_krech LIKE t685a-krech. "Inclusive or Exclusive DATA: l_knumh LIKE a003-knumh. "Condition Record Number DATA: l_kschl LIKE a003-kschl. "Condition Type DATA: l_kappl(2) TYPE c VALUE 'TX'. "Application* Get condition type and condition record SELECT SINGLE knumh kschl FROM a003 INTO (l_knumh,l_kschl) WHERE kappl = l_kappl AND aland = komk-aland AND mwskz = komp-mwskz. IF sy-subrc = 0.* Get condition record value SELECT SINGLE kbetr INTO l_kbetr FROM konp WHERE knumh = l_knumh. IF sy-subrc = 0. SELECT SINGLE krech INTO l_krech FROM t685a WHERE kschl = l_kschl.* Set Condition Value IF sy-subrc = 0. IF l_krech = 'A'. "Tax Excluded xkwert = -1 * xkomv-kawrt * l_kbetr / ( 100000 + l_kbetr ). ELSEIF l_krech = 'I'. "Tax Included xkwert = -1 * xkomv-kawrt * l_kbetr / 100000. ENDIF. ENDIF. l_kschl = xkomv-kschl.* Set Condition Amount LOOP AT xkomv WHERE kschl = l_kschl. xkomv-kbetr = l_kbetr * -1. ENDLOOP. ELSE.* Set Condition Value xkwert = 0. l_kschl = xkomv-kschl.* Set Condition Amount LOOP AT xkomv WHERE kschl = l_kschl. xkomv-kbetr = 0. ENDLOOP. ENDIF. ENDIF.ENDFORM. "FRM_KONDI_WERT_905