1. FORM FRM_CREATE_PO USING P_POSNR
  2. CHANGING P_EBELN.
  3.  
  4. DATA: LV_VENDOR TYPE LIFNR,
  5. LV_ITEM TYPE EBELP,
  6. LV_CONDTYPE().
  7.  
  8. DATA: LV_AMOUNT TYPE P DECIMALS ,
  9. LV_TAX TYPE P DECIMALS VALUE '1.17',
  10. LV_RATIO TYPE P DECIMALS ."公司间加价系数
  11.  
  12. CHECK P_EBELN IS INITIAL.
  13.  
  14. CLEAR: GS_POHEADER,
  15. GS_POHEADERX.
  16.  
  17. PERFORM FRM_GET_COMPANY_RATIO(ZSDS0002) USING IT_ZSDT0018-BUKRS CHANGING LV_RATIO.
  18.  
  19. PERFORM FRM_CONVERT_VENDOR USING '' CHANGING LV_VENDOR.
  20.  
  21. GS_POHEADER-VENDOR = LV_VENDOR.
  22. GS_POHEADER-SUPPL_PLNT = ''.
  23. GS_POHEADER-DOC_TYPE = 'ZRTO'.
  24. GS_POHEADER-DOC_DATE = IT_ZSDT0018-DATUM.
  25. GS_POHEADER-CREAT_DATE = SY-DATUM.
  26. GS_POHEADER-CREATED_BY = SY-UNAME.
  27. GS_POHEADER-PURCH_ORG = ''.
  28. GS_POHEADER-PUR_GROUP = 'A15'.
  29. GS_POHEADER-COMP_CODE = IT_ZSDT0018-BUKRS.
  30. GS_POHEADER-SALES_PERS = P_POSNR.
  31.  
  32. GS_POHEADERX-DOC_TYPE = 'X'.
  33. GS_POHEADERX-DOC_DATE = 'X'.
  34. GS_POHEADERX-CREAT_DATE = 'X'.
  35. GS_POHEADERX-CREATED_BY = 'X'.
  36. GS_POHEADERX-VENDOR = 'X'.
  37. GS_POHEADERX-PURCH_ORG = 'X'.
  38. GS_POHEADERX-PUR_GROUP = 'X'.
  39. GS_POHEADERX-COMP_CODE = 'X'.
  40. GS_POHEADERX-SALES_PERS = 'X'.
  41. GS_POHEADERX-OUR_REF = 'X'.
  42. GS_POHEADERX-SUPPL_PLNT = 'X'.
  43.  
  44. CLEAR LV_ITEM.
  45.  
  46. REFRESH: GT_POITEM,GT_POITEMX,
  47. GT_POCOND,GT_POCONDX.
  48.  
  49. REFRESH: GT_POSCHEDULE,
  50. GT_POSCHEDULEX.
  51.  
  52. LOOP AT ITAB WHERE POSNR = P_POSNR.
  53. ADD TO LV_ITEM.
  54.  
  55. CLEAR GS_POITEM.
  56. GS_POITEM-PO_ITEM = LV_ITEM.
  57. GS_POITEM-MATERIAL = ITAB-MATNR."Article (商品款号)
  58. GS_POITEM-PLANT = ITAB-WERKS.
  59. GS_POITEM-BATCH = ITAB-CHARG.
  60. GS_POITEM-QUANTITY = ITAB-MENGE.
  61. GS_POITEM-STGE_LOC = ''.
  62. GS_POITEM-RET_ITEM = 'X'.
  63. GS_POITEM-VAL_TYPE = ITAB-CHARG.
  64. GS_POITEM-TAX_CODE = 'J1'.
  65. APPEND GS_POITEM TO GT_POITEM.
  66.  
  67. CLEAR GS_POITEMX.
  68. GS_POITEMX-PO_ITEM = LV_ITEM.
  69. GS_POITEMX-MATERIAL = 'X'.
  70. GS_POITEMX-BATCH = 'X'.
  71. GS_POITEMX-STGE_LOC = 'X'.
  72. GS_POITEMX-PLANT = 'X'.
  73. GS_POITEMX-QUANTITY = 'X'.
  74. GS_POITEMX-STGE_LOC = 'X'.
  75. GS_POITEMX-RET_ITEM = 'X'.
  76. GS_POITEMX-VAL_TYPE = 'X'.
  77. GS_POITEMX-TAX_CODE = 'X'.
  78. APPEND GS_POITEMX TO GT_POITEMX.
  79.  
  80. CLEAR GS_POSCHEDULE.
  81. GS_POSCHEDULE-PO_ITEM = LV_ITEM.
  82. GS_POSCHEDULE-SCHED_LINE = .
  83. GS_POSCHEDULE-DELIVERY_DATE = IT_ZSDT0018-DATUM.
  84. APPEND GS_POSCHEDULE TO GT_POSCHEDULE.
  85.  
  86. CLEAR GS_POSCHEDULEX.
  87. GS_POSCHEDULEX-PO_ITEM = LV_ITEM.
  88. GS_POSCHEDULEX-SCHED_LINE = .
  89. GS_POSCHEDULEX-DELIVERY_DATE = 'X'.
  90. APPEND GS_POSCHEDULEX TO GT_POSCHEDULEX.
  91.  
  92. * 获取物料的成本价 * 加价系数 * 1.17
  93. PERFORM FRM_GET_MAT_VALUE(ZSDS0002) USING ITAB-MATNR ITAB-CHARG '' LV_RATIO CHANGING LV_AMOUNT.
  94. ** 根据是否有采购信息记录 判断净价的条件类型
  95. * PERFORM FRM_CHECK_CONDITION_TYPE(ZSDS0002) USING LV_VENDOR '8000' ITAB-WERKS ITAB-MATNR CHANGING LV_CONDTYPE.
  96. IF ITAB-CHARG+() = 'W' AND LV_AMOUNT IS INITIAL.
  97. SELECT SINGLE ZJE FROM ZMMT0121
  98. INTO LV_AMOUNT
  99. WHERE MATNR = ITAB-MATNR
  100. AND CHARG = ITAB-CHARG
  101. AND WERKS = ITAB-WERKS.
  102.  
  103. IF SY-SUBRC EQ .
  104. * ---> 定价过程取消税率 1.17 20150426 start
  105. * LV_AMOUNT = LV_AMOUNT * LV_TAX.
  106. * <--- 定价过程取消税率 1.17 20150426 end
  107. ENDIF.
  108. ENDIF.
  109.  
  110. CLEAR GS_POCOND.
  111. GS_POCOND-ITM_NUMBER = LV_ITEM.
  112. GS_POCOND-COND_TYPE = 'PB00'.
  113. GS_POCOND-COND_VALUE = LV_AMOUNT.
  114. GS_POCOND-CURRENCY = 'CNY'.
  115. GS_POCOND-CHANGE_ID = 'U'.
  116. GS_POCOND-COND_UPDAT = 'X'.
  117. APPEND GS_POCOND TO GT_POCOND.
  118.  
  119. CLEAR GS_POCONDX.
  120. GS_POCONDX-ITM_NUMBER = LV_ITEM.
  121. GS_POCONDX-COND_TYPE = 'X'.
  122. GS_POCONDX-COND_VALUE = 'X'.
  123. GS_POCONDX-CURRENCY = 'X'.
  124. GS_POCONDX-CHANGE_ID = 'X'.
  125. GS_POCONDX-COND_UPDAT = 'X'.
  126. APPEND GS_POCONDX TO GT_POCONDX.
  127.  
  128. CLEAR GS_POCOND.
  129. GS_POCOND-ITM_NUMBER = LV_ITEM.
  130. GS_POCOND-COND_TYPE = 'PBXX'.
  131. GS_POCOND-COND_VALUE = LV_AMOUNT.
  132. GS_POCOND-CURRENCY = 'CNY'.
  133. GS_POCOND-CHANGE_ID = 'U'.
  134. GS_POCOND-COND_UPDAT = 'X'.
  135. APPEND GS_POCOND TO GT_POCOND.
  136.  
  137. CLEAR GS_POCONDX.
  138. GS_POCONDX-ITM_NUMBER = LV_ITEM.
  139. GS_POCONDX-COND_TYPE = 'X'.
  140. GS_POCONDX-COND_VALUE = 'X'.
  141. GS_POCONDX-CURRENCY = 'X'.
  142. GS_POCONDX-CHANGE_ID = 'X'.
  143. GS_POCONDX-COND_UPDAT = 'X'.
  144. APPEND GS_POCONDX TO GT_POCONDX.
  145. ENDLOOP.
  146.  
  147. CALL FUNCTION 'BAPI_PO_CREATE1'
  148. EXPORTING
  149. POHEADER = GS_POHEADER
  150. POHEADERX = GS_POHEADERX
  151. IMPORTING
  152. EXPPURCHASEORDER = GV_EXPPURCHASEORDER
  153. TABLES
  154. RETURN = IT_RETURN
  155. POITEM = GT_POITEM
  156. POITEMX = GT_POITEMX
  157. POCOND = GT_POCOND
  158. POCONDX = GT_POCONDX
  159. POSCHEDULE = GT_POSCHEDULE
  160. POSCHEDULEX = GT_POSCHEDULEX.
  161.  
  162. LOOP AT IT_RETURN WHERE TYPE = 'E' OR TYPE = 'A' OR TYPE = 'X'.
  163.  
  164. ENDLOOP.
  165.  
  166. IF SY-SUBRC EQ .
  167. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
  168.  
  169. CLEAR P_EBELN.
  170.  
  171. APPEND_MSG_LIST 'E' 'ZSD002' '' P_POSNR IT_RETURN-MESSAGE '' ''.
  172. ELSE.
  173.  
  174. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
  175. EXPORTING
  176. WAIT = 'X'.
  177.  
  178. P_EBELN = GV_EXPPURCHASEORDER.
  179.  
  180. APPEND_MSG_LIST 'S' 'ZSD002' '' P_POSNR P_EBELN '' ''.
  181. ENDIF.
  182. ENDFORM. " FRM_CREATE_PO
  1. FORM frm_get_mat_value USING p_matnr
  2. p_charg
  3. p_werks
  4. p_ratio
  5. CHANGING p_value.
  6.  
  7. DATA : lv_ratio TYPE p DECIMALS ,"公司间加价系数
  8. lv_value TYPE p DECIMALS ,"物料成品价
  9. lv_amount TYPE p DECIMALS ,
  10. lv_matnr TYPE matnr,
  11. lv_mtart TYPE mtart,
  12. lv_tax TYPE p DECIMALS VALUE '1.17'.
  13.  
  14. SELECT SINGLE *
  15. FROM mbew
  16. WHERE matnr = p_matnr
  17. AND bwkey = p_werks
  18. AND bwtar = p_charg.
  19.  
  20. IF mbew-vprsv EQ 'S'.
  21. lv_value = mbew-stprs / mbew-peinh.
  22. ELSE.
  23. lv_value = mbew-verpr / mbew-peinh.
  24. ENDIF.
  25.  
  26. SELECT SINGLE mtart INTO lv_mtart FROM mara WHERE matnr = p_matnr.
  27.  
  28. * IF LV_MTART EQ 'Z006'."辅料.
  29. * P_VALUE = LV_VALUE * LV_TAX.
  30. * ELSE.
  31. * P_VALUE = LV_VALUE * P_RATIO * LV_TAX.
  32. * ENDIF.
  33.  
  34. * ---> 定价过程取消税率 1.17 20150426 start
  35. IF lv_mtart EQ 'Z006'."辅料.
  36. p_value = lv_value.
  37. ELSE.
  38. p_value = lv_value * p_ratio.
  39. ENDIF.
  40. * <--- 定价过程取消税率 1.17 20150426 end
  41. ENDFORM. " FRM_GET_MAT_VALUE

创建PO的更多相关文章

  1. 利用MyEclipse自动创建PO类、hbm文件(映射文件)、DAO

    原文地址:http://blog.csdn.net/fangzhibin4712/article/details/7179414 前提条件:表sjzdfl  表sjzdxx (使用数据库MySQL) ...

  2. SAP MM ME21N 创建PO时报错 - Net price in CNY becomes too large –

    SAP MM ME21N 创建PO时报错 - Net price in CNY becomes too large – 笔者所在的项目上,由于客户尚未正式大规模量产,在现阶段,所有的物料基本都是走费用 ...

  3. 「SAP技术」已启用质检物料创建PO时候'STOCK TYPE'没有默认为X?

    「SAP技术」 SAP MM 已启用质检物料创建PO时候'STOCK TYPE'没有默认为X? Part I:SAP 标准行为 1, 物料11002335, QM视图里 01 inspection t ...

  4. 使用bapi创建PO遇到问题(BAPI_PO_CREATE1

    今天用 BAPI_PO_CREATE1创建po. 注意事项: vendor 供应商号:长度必须和系统一致,10位.如 2000025要写成 0002000025传递给参数. POITEM 中的 PO_ ...

  5. BAPI创建PO,禁止净价信息更新

    大家都知道创建PO时,我们如果勾选了"信息更新",则该PO保存后相应的信息记录会把这个PO更新为其最后的凭证,那么这张PO的净价会作为下次创建新PO时净价的默认值. 这样我们设置的 ...

  6. 创建PO/SO

    IF P_ZY EQ 'X'."直营订单 调拨单 PERFORM FRM_INIT_PO_HEADER. PERFORM FRM_INIT_PO_ITEM. PERFORM FRM_INIT ...

  7. BAPI_PO_CREATE1 创建PO ch_memory_complete = ‘x',导致hold on 解决方案,

    1.尝试注释标准逻辑,看会不会有什么问题, ZME_BAPI_PO_CUST IF_EX_ME_BAPI_PO_CREATE_02~INBOUND 里面有个控制很费解 我给注释了 2.改用 BAPI_ ...

  8. 创建第一个Hiberntae工程

    一.前言 很久之前已经对Hibernate有所了解,在项目中进行过简单的应用,基本了解hibernate的简单应用,没有深入的了解,来Shine公司快三个月了,公司的ORM框架就是用Hiberante ...

  9. BOM/ROUTING/PO/WIP等模块常用查询

    常用查询scripts /*bom*/ select p_item.segment1,c_item.segment1,bic.COMPONENT_QUANTITY,bic.COMPONENT_YIEL ...

随机推荐

  1. 清除SVN获取文件的所有.svn文件夹

    Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\清除SVN信息] @=&qu ...

  2. [SAP ABAP开发技术总结]字段符号FIELD-SYMBOLS

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  3. [JAVA设计模式]第四部分:行为模式

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  4. JS——JavaScript Confirm

    function show_confirm(){var r=confirm("Press a button!");if (r==true) { alert("You pr ...

  5. 纯js写验证码

    <html> <head> <meta name="viewport" content="width=device-width" ...

  6. Backbone简介

    backbone-------一个实现了web前端MVC模式的JS库-------官方地址 backbone库要建立在underscore库的基础上---------------官方中文地址----- ...

  7. ubuntu 安装JDK

    下载JDK6安装包,我的为32位系统所以选择jdk-6u35-linux-i586.bin 下载地址:http://www.oracle.com/technetwork/java/javase/dow ...

  8. iOS - NSURLSession 网络请求

    前言 NS_CLASS_AVAILABLE(NSURLSESSION_AVAILABLE, 7_0) @interface NSURLSession : NSObject @available(iOS ...

  9. iOS - UISlider

    前言 NS_CLASS_AVAILABLE_IOS(2_0) __TVOS_PROHIBITED @interface UISlider : UIControl <NSCoding> @a ...

  10. 超实用压力测试工具-ab工具

    在学习ab工具之前,我们需了解几个关于压力测试的概念 吞吐率(Requests per second)概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求 ...