根据采购信息记录取得PO的含税单价(更改)
来源:互联网 发布:linux jdk下载 64位 编辑:程序博客网 时间:2024/06/05 04:00
REPORT z_jason_test887 .
TABLES: mara,a003,konp.
DATA: BEGIN OF itab_release OCCURS 0,
ebeln LIKE ekpo-ebeln,
END OF itab_release.
DATA: BEGIN OF itab_add OCCURS 0 ,
ebeln LIKE ekpo-ebeln,
bonba LIKE ekpo-bonba,
END OF itab_add.
ebeln LIKE ekpo-ebeln,
END OF itab_release.
DATA: BEGIN OF itab_add OCCURS 0 ,
ebeln LIKE ekpo-ebeln,
bonba LIKE ekpo-bonba,
END OF itab_add.
DATA: BEGIN OF itab_ekpo2 OCCURS 0.
INCLUDE STRUCTURE ekpo.
DATA: END OF itab_ekpo2.
DATA: BEGIN OF itab_item OCCURS 0,
spras LIKE ekko-spras,
ebeln LIKE ekko-ebeln,
ebelp LIKE ekpo-ebelp,
matnr LIKE ekpo-matnr,
meins LIKE ekpo-meins,
umrez LIKE ekpo-umrez,
netpr LIKE eine-effpr,
dispr LIKE ekpo-netpr,
menge LIKE ekpo-menge,
qtynr TYPE ekpo-menge,
bonba LIKE ekpo-bonba,
pstyp LIKE ekpo-pstyp,
END OF itab_item.
spras LIKE ekko-spras,
ebeln LIKE ekko-ebeln,
ebelp LIKE ekpo-ebelp,
matnr LIKE ekpo-matnr,
meins LIKE ekpo-meins,
umrez LIKE ekpo-umrez,
netpr LIKE eine-effpr,
dispr LIKE ekpo-netpr,
menge LIKE ekpo-menge,
qtynr TYPE ekpo-menge,
bonba LIKE ekpo-bonba,
pstyp LIKE ekpo-pstyp,
END OF itab_item.
DATA: BEGIN OF itab_head OCCURS 0,
spras LIKE ekko-spras,
werks LIKE ekpo-werks,
bukrs LIKE ekko-bukrs,
lifnr LIKE ekko-lifnr,
bsart LIKE ekko-bsart,
ebeln LIKE ekko-ebeln,
aedat LIKE ekko-aedat,
eindt LIKE eket-eindt,
candt LIKE eket-eindt,
ernam LIKE ekko-ernam,
ernam2 LIKE ekko-ernam,
waers LIKE ekko-waers,
werks2 LIKE ekpo-werks,
ebeln2 LIKE ekko-ebeln,
total_price LIKE ekpo-bonba,
* long_text
retpo LIKE ekpo-retpo,
* ADD_DATE
* MODIFY_DATE
* CANCEL_DATE
zzrepairpo LIKE ekko-zzrepairpo,
END OF itab_head.
spras LIKE ekko-spras,
werks LIKE ekpo-werks,
bukrs LIKE ekko-bukrs,
lifnr LIKE ekko-lifnr,
bsart LIKE ekko-bsart,
ebeln LIKE ekko-ebeln,
aedat LIKE ekko-aedat,
eindt LIKE eket-eindt,
candt LIKE eket-eindt,
ernam LIKE ekko-ernam,
ernam2 LIKE ekko-ernam,
waers LIKE ekko-waers,
werks2 LIKE ekpo-werks,
ebeln2 LIKE ekko-ebeln,
total_price LIKE ekpo-bonba,
* long_text
retpo LIKE ekpo-retpo,
* ADD_DATE
* MODIFY_DATE
* CANCEL_DATE
zzrepairpo LIKE ekko-zzrepairpo,
END OF itab_head.
DATA: BEGIN OF itab_temp OCCURS 0,
spras LIKE ekko-spras,
ebeln LIKE ekko-ebeln,
ebelp LIKE ekpo-ebelp,
matnr LIKE ekpo-matnr,
meins LIKE ekpo-meins,
umrez LIKE ekpo-umrez,
netpr LIKE eine-netpr,
dispr LIKE ekpo-netpr,
menge LIKE ekpo-menge,
qtynr TYPE ekpo-menge,
mwskz LIKE ekpo-mwskz,
bonba LIKE ekpo-bonba,
brtwr LIKE ekpo-brtwr,
pstyp LIKE ekpo-pstyp,
werks LIKE ekpo-werks,
bukrs LIKE ekko-bukrs,
lifnr LIKE ekko-lifnr,
bsart LIKE ekko-bsart,
aedat LIKE ekko-aedat,
ekorg LIKE ekko-ekorg,
infnr LIKE ekpo-infnr,
eindt LIKE eket-eindt,
candt LIKE eket-eindt,
ernam LIKE ekko-ernam,
ernam2 LIKE ekko-ernam,
waers LIKE ekko-waers,
werks2 LIKE ekpo-werks,
ebeln2 LIKE ekko-ebeln,
total_price LIKE ekpo-bonba,
* long_text
retpo LIKE ekpo-retpo,
* ADD_DATE
* MODIFY_DATE
* CANCEL_DATE
zzrepairpo LIKE ekko-zzrepairpo,
END OF itab_temp.
spras LIKE ekko-spras,
ebeln LIKE ekko-ebeln,
ebelp LIKE ekpo-ebelp,
matnr LIKE ekpo-matnr,
meins LIKE ekpo-meins,
umrez LIKE ekpo-umrez,
netpr LIKE eine-netpr,
dispr LIKE ekpo-netpr,
menge LIKE ekpo-menge,
qtynr TYPE ekpo-menge,
mwskz LIKE ekpo-mwskz,
bonba LIKE ekpo-bonba,
brtwr LIKE ekpo-brtwr,
pstyp LIKE ekpo-pstyp,
werks LIKE ekpo-werks,
bukrs LIKE ekko-bukrs,
lifnr LIKE ekko-lifnr,
bsart LIKE ekko-bsart,
aedat LIKE ekko-aedat,
ekorg LIKE ekko-ekorg,
infnr LIKE ekpo-infnr,
eindt LIKE eket-eindt,
candt LIKE eket-eindt,
ernam LIKE ekko-ernam,
ernam2 LIKE ekko-ernam,
waers LIKE ekko-waers,
werks2 LIKE ekpo-werks,
ebeln2 LIKE ekko-ebeln,
total_price LIKE ekpo-bonba,
* long_text
retpo LIKE ekpo-retpo,
* ADD_DATE
* MODIFY_DATE
* CANCEL_DATE
zzrepairpo LIKE ekko-zzrepairpo,
END OF itab_temp.
DATA:BEGIN OF itab_eine OCCURS 0.
INCLUDE STRUCTURE eine.
DATA:END OF itab_eine.
INCLUDE STRUCTURE eine.
DATA:END OF itab_eine.
DATA:BEGIN OF itab_zpo2po_log OCCURS 0.
INCLUDE STRUCTURE zpo2po_log.
DATA: END OF itab_zpo2po_log.
INCLUDE STRUCTURE zpo2po_log.
DATA: END OF itab_zpo2po_log.
DATA: BEGIN OF incom OCCURS 0.
INCLUDE STRUCTURE meico.
DATA: END OF incom.
INCLUDE STRUCTURE meico.
DATA: END OF incom.
DATA: BEGIN OF inpreissim OCCURS 0 .
INCLUDE STRUCTURE meprck.
DATA: END OF inpreissim.
INCLUDE STRUCTURE meprck.
DATA: END OF inpreissim.
DATA: BEGIN OF expreissim OCCURS 0.
INCLUDE STRUCTURE mepro.
DATA: END OF expreissim.
INCLUDE STRUCTURE mepro.
DATA: END OF expreissim.
*PARAMETER: p_date TYPE syst-datum,
* p_time TYPE syst-uzeit.
* p_time TYPE syst-uzeit.
DATA: knumh LIKE a017-knumh.
DATA: kbetr LIKE konp-kbetr.
DATA: total_price LIKE ekpo-netpr.
DATA: kbetr LIKE konp-kbetr.
DATA: total_price LIKE ekpo-netpr.
PERFORM get_data.
PERFORM write_data.
*---------------------------------------------------------------------*
* FORM get_data *
*---------------------------------------------------------------------*
FORM get_data.
DATA: incom TYPE meico,
inpreissim TYPE meprck,
expreissim TYPE mepro.
DATA: net_price LIKE ekpo-netpr.
*incom-esokz = '2'.
*incom-ekorg = 'B000' .
*incom-werks = '1001'.
*incom-lifnr = '0000100000'.
*incom-matnr = '000000000001000532'.
*
*inpreissim-simng = 1.
*inpreissim-simme = 'EA'.
*inpreissim-sidat = '20070622' .
*inpreissim-bwsv1 = '3'.
*incom-ekorg = 'B000' .
*incom-werks = '1001'.
*incom-lifnr = '0000100000'.
*incom-matnr = '000000000001000532'.
*
*inpreissim-simng = 1.
*inpreissim-simme = 'EA'.
*inpreissim-sidat = '20070622' .
*inpreissim-bwsv1 = '3'.
*测试数据
itab_release-ebeln = '0100003269' .
APPEND itab_release.
itab_release-ebeln = '0100003270' .
APPEND itab_release.
* itab_release-ebeln = '0100003272' .
* APPEND itab_release.
* itab_release-ebeln = '0100003273' .
* APPEND itab_release.
* itab_release-ebeln = '0100003274' .
* APPEND itab_release.
CHECK NOT itab_release[] IS INITIAL.
SELECT *
INTO CORRESPONDING FIELDS OF TABLE itab_temp
FROM ekpo INNER JOIN ekko ON ekpo~ebeln = ekko~ebeln
INNER JOIN eket ON ekpo~ebeln = eket~ebeln AND
ekpo~ebelp = eket~ebelp
FOR ALL entries IN itab_release
WHERE ekpo~ebeln = itab_release-ebeln
.
*如果为代销K,则从info recode取净价 * 税额,
*如果为经销,从EKPO取单价 * 税额 得到税后单价
CHECK NOT itab_temp[] IS INITIAL.
LOOP AT itab_temp .
IF itab_temp-pstyp = '2' .
incom-esokz = itab_temp-pstyp.
incom-ekorg = itab_temp-ekorg .
incom-werks = itab_temp-werks.
incom-lifnr = itab_temp-lifnr.
incom-matnr = itab_temp-matnr.
SELECT *
INTO CORRESPONDING FIELDS OF TABLE itab_temp
FROM ekpo INNER JOIN ekko ON ekpo~ebeln = ekko~ebeln
INNER JOIN eket ON ekpo~ebeln = eket~ebeln AND
ekpo~ebelp = eket~ebelp
FOR ALL entries IN itab_release
WHERE ekpo~ebeln = itab_release-ebeln
.
*如果为代销K,则从info recode取净价 * 税额,
*如果为经销,从EKPO取单价 * 税额 得到税后单价
CHECK NOT itab_temp[] IS INITIAL.
LOOP AT itab_temp .
IF itab_temp-pstyp = '2' .
incom-esokz = itab_temp-pstyp.
incom-ekorg = itab_temp-ekorg .
incom-werks = itab_temp-werks.
incom-lifnr = itab_temp-lifnr.
incom-matnr = itab_temp-matnr.
inpreissim-simng = 1.
inpreissim-simme = itab_temp-meins.
inpreissim-sidat = itab_temp-aedat.
inpreissim-bwsv1 = '3'.
inpreissim-simme = itab_temp-meins.
inpreissim-sidat = itab_temp-aedat.
inpreissim-bwsv1 = '3'.
CALL FUNCTION 'ME_READ_INFORECORD'
EXPORTING
incom = incom
inpreissim = inpreissim
IMPORTING
expreissim = expreissim
EXCEPTIONS
bad_comin = 1
bad_material = 2
bad_materialclass = 3
bad_supplier = 4
not_found = 5
OTHERS = 6.
net_price = expreissim-preis / expreissim-peinh .
EXPORTING
incom = incom
inpreissim = inpreissim
IMPORTING
expreissim = expreissim
EXCEPTIONS
bad_comin = 1
bad_material = 2
bad_materialclass = 3
bad_supplier = 4
not_found = 5
OTHERS = 6.
net_price = expreissim-preis / expreissim-peinh .
SELECT SINGLE * FROM a003
WHERE aland = 'CN' AND mwskz = expreissim-mwskz.
SELECT SINGLE * FROM konp
WHERE knumh = a003-knumh.
IF sy-subrc = 0.
itab_temp-netpr = net_price * ( 1 + konp-kbetr / 1000 ).
itab_temp-candt = itab_temp-eindt + 3 .
itab_temp-qtynr = itab_temp-umrez * itab_temp-menge .
itab_temp-dispr = itab_temp-netpr .
itab_temp-bonba = itab_temp-dispr * itab_temp-menge .
MODIFY itab_temp.
ENDIF.
ELSE.
itab_temp-candt = itab_temp-eindt + 3 .
itab_temp-qtynr = itab_temp-umrez * itab_temp-menge .
itab_temp-dispr = itab_temp-bonba / itab_temp-menge .
SELECT SINGLE * FROM a003
WHERE aland = 'CN' AND mwskz = itab_temp-mwskz.
SELECT SINGLE * FROM konp
WHERE knumh = a003-knumh.
itab_temp-netpr = itab_temp-netpr * ( 1 + konp-kbetr / 1000 ).
MODIFY itab_temp.
ENDIF.
ENDLOOP.
WHERE aland = 'CN' AND mwskz = expreissim-mwskz.
SELECT SINGLE * FROM konp
WHERE knumh = a003-knumh.
IF sy-subrc = 0.
itab_temp-netpr = net_price * ( 1 + konp-kbetr / 1000 ).
itab_temp-candt = itab_temp-eindt + 3 .
itab_temp-qtynr = itab_temp-umrez * itab_temp-menge .
itab_temp-dispr = itab_temp-netpr .
itab_temp-bonba = itab_temp-dispr * itab_temp-menge .
MODIFY itab_temp.
ENDIF.
ELSE.
itab_temp-candt = itab_temp-eindt + 3 .
itab_temp-qtynr = itab_temp-umrez * itab_temp-menge .
itab_temp-dispr = itab_temp-bonba / itab_temp-menge .
SELECT SINGLE * FROM a003
WHERE aland = 'CN' AND mwskz = itab_temp-mwskz.
SELECT SINGLE * FROM konp
WHERE knumh = a003-knumh.
itab_temp-netpr = itab_temp-netpr * ( 1 + konp-kbetr / 1000 ).
MODIFY itab_temp.
ENDIF.
ENDLOOP.
*PO如果为CROSS-STOCKING型,则从ZPO2PO_LOG取得原订单号,
*并从EKPO取得原订单门店
CHECK NOT itab_temp[] IS INITIAL.
SELECT * FROM zpo2po_log
INTO CORRESPONDING FIELDS OF TABLE itab_zpo2po_log
FOR ALL ENTRIES IN itab_temp
WHERE zpo2po_log~vponr = itab_temp-ebeln .
*并从EKPO取得原订单门店
CHECK NOT itab_temp[] IS INITIAL.
SELECT * FROM zpo2po_log
INTO CORRESPONDING FIELDS OF TABLE itab_zpo2po_log
FOR ALL ENTRIES IN itab_temp
WHERE zpo2po_log~vponr = itab_temp-ebeln .
LOOP AT itab_temp.
READ TABLE itab_zpo2po_log WITH KEY vponr = itab_temp-ebeln .
IF sy-subrc = 0.
itab_temp-ebeln2 = itab_zpo2po_log-lponr .
MODIFY itab_temp.
ENDIF.
ENDLOOP.
READ TABLE itab_zpo2po_log WITH KEY vponr = itab_temp-ebeln .
IF sy-subrc = 0.
itab_temp-ebeln2 = itab_zpo2po_log-lponr .
MODIFY itab_temp.
ENDIF.
ENDLOOP.
SELECT * FROM ekpo
INTO CORRESPONDING FIELDS OF TABLE itab_ekpo2
FOR ALL ENTRIES IN itab_temp
WHERE ekpo~ebeln = itab_temp-ebeln.
INTO CORRESPONDING FIELDS OF TABLE itab_ekpo2
FOR ALL ENTRIES IN itab_temp
WHERE ekpo~ebeln = itab_temp-ebeln.
LOOP AT itab_temp.
READ TABLE itab_ekpo2 WITH KEY ebeln = itab_temp-ebeln2.
IF sy-subrc = 0.
itab_temp-werks2 = itab_ekpo2-werks .
MODIFY itab_temp.
ENDIF.
ENDLOOP.
READ TABLE itab_ekpo2 WITH KEY ebeln = itab_temp-ebeln2.
IF sy-subrc = 0.
itab_temp-werks2 = itab_ekpo2-werks .
MODIFY itab_temp.
ENDIF.
ENDLOOP.
*相同PO累加ITEM金额,取得该PO的总额
*itab_add 为临时处理内表
SORT itab_temp BY ebeln ebelp.
DELETE ADJACENT DUPLICATES FROM itab_temp .
LOOP AT itab_temp.
MOVE-CORRESPONDING itab_temp TO itab_add.
COLLECT itab_add.
ENDLOOP.
*itab_add 为临时处理内表
SORT itab_temp BY ebeln ebelp.
DELETE ADJACENT DUPLICATES FROM itab_temp .
LOOP AT itab_temp.
MOVE-CORRESPONDING itab_temp TO itab_add.
COLLECT itab_add.
ENDLOOP.
LOOP AT itab_temp.
READ TABLE itab_add WITH KEY ebeln = itab_temp-ebeln .
IF sy-subrc = 0 .
itab_temp-total_price = itab_add-bonba.
MODIFY itab_temp.
ENDIF.
ENDLOOP.
READ TABLE itab_add WITH KEY ebeln = itab_temp-ebeln .
IF sy-subrc = 0 .
itab_temp-total_price = itab_add-bonba.
MODIFY itab_temp.
ENDIF.
ENDLOOP.
*move itab_temp to itab_head and itab_item.
LOOP AT itab_temp.
MOVE-CORRESPONDING itab_temp TO itab_head.
MOVE-CORRESPONDING itab_temp TO itab_item.
APPEND itab_head.
APPEND itab_item.
ENDLOOP.
LOOP AT itab_temp.
MOVE-CORRESPONDING itab_temp TO itab_head.
MOVE-CORRESPONDING itab_temp TO itab_item.
APPEND itab_head.
APPEND itab_item.
ENDLOOP.
ENDFORM. " get_data
*---------------------------------------------------------------------*
* FORM WRITE_DATA *
*---------------------------------------------------------------------*
FORM write_data.
LOOP AT itab_temp.
WRITE:/ itab_temp.
ENDLOOP.
ENDFORM.
* FORM WRITE_DATA *
*---------------------------------------------------------------------*
FORM write_data.
LOOP AT itab_temp.
WRITE:/ itab_temp.
ENDLOOP.
ENDFORM.
0 0
- 根据采购信息记录取得PO的含税单价(更改)
- 记录一个PO增加最新采购价格和采购数量的需求
- 采购信息记录
- 采购信息记录
- 采购订单根据采购信息记录进行创建,引用之后却无法带出INFO中物料的净价值的问题
- PO采购-采购申请单
- PO采购-采购订单
- 采购信息记录业务知识简介
- 建滔.当有税率时,由调拨订单关联生成的销售出库单单价取了含税单价的错误处理
- 采购的提供信息
- 【代码】根据ip地址取得所在城市的信息
- PO采购-表
- PO 采购订单类型
- EBS --PO采购订单
- MySQL--根据审核时间排序,查询最后一次审核的物品采购记录
- 根据ccid取得账户,更改某段值再创建账户,返回新的ccid
- 查看活动历史记录与PO采购订单的关系
- PO(采购)流程影响会计的环节分析
- 使用maven构建项目,项目上有红叉提示错误,但是错误找不到
- Manipulating Files With Tcl
- iOS常见问题之 cannot create __weak reference in file using manual reference counting
- MySQL Thread pool 操作过程
- tableview优化技巧
- 根据采购信息记录取得PO的含税单价(更改)
- 集合类框架
- 单点登陆简单实现
- Mysql数据库的explain如何使用?
- The POM for is missing, no dependency information available
- 深入理解乐观锁与悲观锁
- 2 javascript中变量、作用域和内存问题
- 如何在资源管理器中恢复“最近文件夹”
- leetcode 299. Bulls and Cows