w_mtrldef_edit_price.srw 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518
  1. $PBExportHeader$w_mtrldef_edit_price.srw
  2. forward
  3. global type w_mtrldef_edit_price from w_publ_easyq
  4. end type
  5. type cb_save from uo_imflatbutton within w_mtrldef_edit_price
  6. end type
  7. type dw_his from u_dw_rbtnfilter within w_mtrldef_edit_price
  8. end type
  9. type cb_other from uo_imflatbutton within w_mtrldef_edit_price
  10. end type
  11. type tv_1 from uo_tv_mtrltype within w_mtrldef_edit_price
  12. end type
  13. type cbx_1 from checkbox within w_mtrldef_edit_price
  14. end type
  15. type cb_edit from uo_imflatbutton within w_mtrldef_edit_price
  16. end type
  17. end forward
  18. global type w_mtrldef_edit_price from w_publ_easyq
  19. string title = "产品及物料价格设定"
  20. event ue_update_inware_price ( )
  21. event ue_update_wfjg ( )
  22. event ue_cmpl_dftmtrlcost ( )
  23. event ue_cmpl_planprice ( )
  24. event ue_cmpl_dftempcost ( )
  25. event ue_update_inware_price_2 ( )
  26. event ue_lmsalepricetoplanprice ( )
  27. event ue_lmbuypricetoplanprice ( )
  28. event ue_costtoplanprice ( )
  29. event ue_inwarebuyplanprice ( )
  30. event ue_update_outware_price_2 ( )
  31. cb_save cb_save
  32. dw_his dw_his
  33. cb_other cb_other
  34. tv_1 tv_1
  35. cbx_1 cbx_1
  36. cb_edit cb_edit
  37. end type
  38. global w_mtrldef_edit_price w_mtrldef_edit_price
  39. type variables
  40. string ls_handtype
  41. long cur_isuse = 1
  42. end variables
  43. forward prototypes
  44. public function integer wf_face ()
  45. end prototypes
  46. event ue_update_inware_price();IF NOT sys_power_issuper THEN
  47. MessageBox(publ_operator,'非超级用户,没有使用权限!')
  48. RETURN
  49. END IF
  50. IF MessageBox ("询问","是否确定更新未结存进仓单价?",Question!,YesNo! ) = 2 THEN
  51. RETURN
  52. END IF
  53. String ls_msg
  54. Long ll_storageid
  55. OPEN(w_mtrldef_edit_price_updatebill)
  56. ll_storageid = Message.DoubleParm
  57. IF ll_storageid = 0 THEN RETURN
  58. //更新进仓单价
  59. UPDATE u_inwaremx
  60. SET u_inwaremx.fprice = u_mtrldef.planprice,
  61. u_inwaremx.planprice = u_mtrldef.planprice,
  62. u_inwaremx.price = u_mtrldef.planprice,
  63. u_inwaremx.cost = u_mtrldef.planprice,
  64. u_inwaremx.uprice = u_mtrldef.planprice/u_inwaremx.rate
  65. FROM u_inware,u_inwaremx,u_mtrldef
  66. WHERE ( u_inware.scid = u_inwaremx.scid )
  67. AND ( u_inware.inwareid = u_inwaremx.inwareid )
  68. AND ( u_inware.storageid = :ll_storageid )
  69. AND ( u_mtrldef.mtrlid = u_inwaremx.mtrlid )
  70. AND ( u_mtrldef.mtrlorigin = 0 )
  71. AND ( u_mtrldef.planprice <> 0 )
  72. AND ( u_inware.balcdateint = 0 )
  73. and u_mtrldef.mtrlorigin <> 2
  74. AND ( u_inware.billtype = 3
  75. OR u_inware.billtype = 8
  76. OR u_inware.billtype = 9
  77. OR u_inware.billtype = 12
  78. OR u_inware.billtype = 20 );
  79. IF sqlca.SQLCode <> 0 THEN
  80. ls_msg = sqlca.SQLErrText
  81. ROLLBACK;
  82. MessageBox(publ_operator,'更新进仓单价失败'+ls_msg)
  83. RETURN
  84. END IF
  85. //更新出仓单价
  86. UPDATE u_outwaremx
  87. SET u_outwaremx.cost = u_mtrldef.planprice,
  88. u_outwaremx.costamt = round(u_mtrldef.planprice * u_outwaremx.qty,2)
  89. FROM u_outware,u_outwaremx,u_mtrldef
  90. WHERE ( u_outware.scid = u_outwaremx.scid )
  91. AND ( u_outware.outwareid = u_outwaremx.outwareid )
  92. AND ( u_outware.storageid = :ll_storageid )
  93. AND ( u_mtrldef.mtrlid = u_outwaremx.mtrlid )
  94. AND ( u_mtrldef.mtrlorigin = 0 )
  95. AND ( u_mtrldef.planprice <> 0 )
  96. AND ( u_outware.balcdateint = 0 )
  97. and u_mtrldef.mtrlorigin <> 2;
  98. IF sqlca.SQLCode <> 0 THEN
  99. ls_msg = sqlca.SQLErrText
  100. ROLLBACK;
  101. MessageBox(publ_operator,'更新出仓单价失败'+ls_msg)
  102. RETURN
  103. END IF
  104. //更新库存表
  105. UPDATE u_mtrlware
  106. SET u_mtrlware.wareamt = round(u_mtrlware.noallocqty * u_mtrldef.planprice,2),
  107. u_mtrlware.cost = u_mtrldef.planprice
  108. FROM u_mtrlware,u_mtrldef
  109. WHERE ( u_mtrlware.mtrlid = u_mtrldef.mtrlid )
  110. AND ( u_mtrlware.storageid = :ll_storageid )
  111. AND ( u_mtrldef.mtrlorigin = 0 )
  112. AND ( u_mtrldef.planprice <> 0 )
  113. and u_mtrldef.mtrlorigin <> 2;
  114. IF sqlca.SQLCode <> 0 THEN
  115. ls_msg = sqlca.SQLErrText
  116. ROLLBACK;
  117. MessageBox(publ_operator,'更新结存表进仓金额失败,'+ls_msg)
  118. RETURN
  119. END IF
  120. //更新结存表
  121. UPDATE u_warebalc
  122. SET u_warebalc.incamt = round(u_warebalc.incqty * u_mtrldef.planprice,2),
  123. u_warebalc.bgamt = round(u_warebalc.bgqty * u_mtrldef.planprice,2),
  124. u_warebalc.desamt = round(u_warebalc.desqty * u_mtrldef.planprice,2),
  125. u_warebalc.balcamt = round(u_warebalc.balcqty * u_mtrldef.planprice,2)
  126. FROM u_warebalc,u_mtrldef
  127. WHERE u_warebalc.mtrlid = u_mtrldef.mtrlid
  128. AND ( u_mtrldef.mtrlorigin = 0 )
  129. AND ( u_mtrldef.planprice <> 0 )
  130. AND ( u_warebalc.storageid = :ll_storageid )
  131. AND ( u_warebalc.balcdateint = 0 )
  132. and u_mtrldef.mtrlorigin <> 2;
  133. IF sqlca.SQLCode <> 0 THEN
  134. ls_msg = sqlca.SQLErrText
  135. ROLLBACK;
  136. MessageBox(publ_operator,'更新结存表进仓金额失败,'+ls_msg)
  137. RETURN
  138. END IF
  139. ////更新生产计划领料明细
  140. //UPDATE u_OrderRqMtrl_scll
  141. // SET u_OrderRqMtrl_scll.costamt = round(u_mtrldef.planprice * u_OrderRqMtrl_scll.DstrQty,2)
  142. // FROM u_OrderRqMtrl_scll,u_mtrldef
  143. // WHERE ( u_mtrldef.mtrlid = u_OrderRqMtrl_scll.mtrlid )
  144. // AND ( u_mtrldef.mtrlorigin = 0 );
  145. //IF sqlca.SQLCode <> 0 THEN
  146. // ls_msg = sqlca.SQLErrText
  147. // ROLLBACK;
  148. // MessageBox(publ_operator,'更新生产计划领料成本失败'+ls_msg)
  149. // RETURN
  150. //END IF
  151. //更新生产计划领料明细
  152. UPDATE u_OrderRqMtrl
  153. SET u_OrderRqMtrl.costamt = round(u_mtrldef.planprice * u_OrderRqMtrl.DstrQty,2)
  154. FROM u_OrderRqMtrl,u_mtrldef
  155. WHERE ( u_mtrldef.mtrlid = u_OrderRqMtrl.mtrlid )
  156. and u_mtrldef.mtrlorigin = 0
  157. AND ( u_mtrldef.planprice <> 0 ) ;
  158. IF sqlca.SQLCode <> 0 THEN
  159. ls_msg = sqlca.SQLErrText
  160. ROLLBACK;
  161. MessageBox(publ_operator,'更新生产计划领料需求成本失败'+ls_msg)
  162. RETURN
  163. END IF
  164. COMMIT;
  165. MessageBox(publ_operator,'操作完成')
  166. end event
  167. event ue_update_wfjg();IF Not sys_power_issuper THEN
  168. MessageBox(publ_operator,'非超级用户,没有使用权限!')
  169. RETURN
  170. END IF
  171. IF MessageBox ("询问","是否确定更新外协商库存、结存金额?",Question!,YesNo! ) = 2 THEN
  172. RETURN
  173. END IF
  174. String ls_msg
  175. Long ll_storageid
  176. //更新库存表
  177. UPDATE ow_wfjgware
  178. SET ow_wfjgware.wareamt = round(ow_wfjgware.noallocqty * u_mtrldef.planprice,2),
  179. ow_wfjgware.cost = u_mtrldef.planprice
  180. FROM ow_wfjgware,u_mtrldef
  181. WHERE ( ow_wfjgware.mtrlid = u_mtrldef.mtrlid )
  182. AND ( u_mtrldef.mtrlorigin = 0 )
  183. And u_mtrldef.mtrlorigin <> 2;
  184. IF sqlca.SQLCode <> 0 THEN
  185. ls_msg = sqlca.SQLErrText
  186. ROLLBACK;
  187. MessageBox(publ_operator,'更新外协商库存金额失败,'+ls_msg)
  188. RETURN
  189. END IF
  190. //更新结存表
  191. UPDATE ow_wfjgbalc
  192. SET ow_wfjgbalc.bgamt = round(ow_wfjgbalc.bgqty * u_mtrldef.planprice,2),
  193. ow_wfjgbalc.inamt = round(ow_wfjgbalc.inqty * u_mtrldef.planprice,2),
  194. ow_wfjgbalc.thamt = round(ow_wfjgbalc.thqty * u_mtrldef.planprice,2),
  195. ow_wfjgbalc.outamt = round(ow_wfjgbalc.outqty * u_mtrldef.planprice,2),
  196. ow_wfjgbalc.reoutamt = round(ow_wfjgbalc.reoutqty * u_mtrldef.planprice,2),
  197. ow_wfjgbalc.balcamt = round(ow_wfjgbalc.balcqty * u_mtrldef.planprice,2),
  198. ow_wfjgbalc.wasteamt = round(ow_wfjgbalc.wasteqty * u_mtrldef.planprice,2),
  199. ow_wfjgbalc.pypkamt = round(ow_wfjgbalc.pypkqty * u_mtrldef.planprice,2)
  200. FROM ow_wfjgbalc,u_mtrldef
  201. WHERE ow_wfjgbalc.mtrlid = u_mtrldef.mtrlid
  202. AND ( u_mtrldef.mtrlorigin = 0 )
  203. AND ( ow_wfjgbalc.balcdateint = 0 )
  204. And u_mtrldef.mtrlorigin <> 2;
  205. IF sqlca.SQLCode <> 0 THEN
  206. ls_msg = sqlca.SQLErrText
  207. ROLLBACK;
  208. MessageBox(publ_operator,'更新外协商结存表失败,'+ls_msg)
  209. RETURN
  210. END IF
  211. COMMIT;
  212. String arg_msg
  213. f_setsysoplog('产品及物料价格设定','更新外协商库存、结存金额',arg_msg,True)
  214. MessageBox(publ_operator,'操作完成')
  215. end event
  216. event ue_cmpl_dftmtrlcost();IF MessageBox ("询问","是否确定按物料清单统计默认物料成本?",Question!,YesNo! ) = 2 THEN
  217. RETURN
  218. END IF
  219. Int rslt = 1
  220. Long i
  221. Long ll_mtrlid
  222. Dec lde_dftmtrlcost
  223. String arg_msg, err_msg
  224. uo_mtrldef uo_mtrl
  225. uo_mtrl = Create uo_mtrldef
  226. uo_mtrl.commit_transaction = sqlca
  227. Open(w_sys_wait_jdt)
  228. w_sys_wait_jdt.wf_accepttol(dw_1.RowCount())
  229. dw_1.SetRedraw(False)
  230. FOR i = 1 To dw_1.RowCount()
  231. w_sys_wait_jdt.wf_inc(i)
  232. w_sys_wait_jdt.wf_set_msg('正在计算,请稍后......')
  233. ll_mtrlid = dw_1.Object.mtrlid[i]
  234. lde_dftmtrlcost = 0
  235. IF uo_mtrl.uof_pfdpf_cost(ll_mtrlid, lde_dftmtrlcost, 1, arg_msg) = 0 THEN
  236. err_msg = '行:'+String(i)+','+arg_msg+'~r~n'
  237. lde_dftmtrlcost = 0
  238. END IF
  239. dw_1.Object.dftmtrlcost[i] = lde_dftmtrlcost
  240. NEXT
  241. dw_1.SetRedraw(True)
  242. Close(w_sys_wait_jdt)
  243. Destroy uo_mtrl
  244. IF rslt = 0 THEN
  245. OpenWithParm(w_message_err, err_msg)
  246. //messagebox('','计算错误~r~n'+arg_msg)
  247. ELSE
  248. MessageBox('系统提示','计算成功')
  249. END IF
  250. end event
  251. event ue_cmpl_planprice();IF MessageBox ("询问","是否确定按默认总成本更新计划价?",Question!,YesNo! ) = 2 THEN
  252. RETURN
  253. END IF
  254. Long i
  255. Open(w_sys_wait_jdt)
  256. w_sys_wait_jdt.wf_accepttol(dw_1.RowCount())
  257. dw_1.SetRedraw(False)
  258. FOR i = 1 To dw_1.RowCount()
  259. w_sys_wait_jdt.wf_inc(i)
  260. w_sys_wait_jdt.wf_set_msg('正在计算,请稍后......')
  261. dw_1.Object.planprice[i] = dw_1.Object.tolcost[i]
  262. NEXT
  263. dw_1.SetRedraw(True)
  264. Close(w_sys_wait_jdt)
  265. end event
  266. event ue_cmpl_dftempcost();IF MessageBox ("询问","是否确定按工价表统计默认人力成本?",Question!,YesNo! ) = 2 THEN
  267. RETURN
  268. END IF
  269. Int rslt = 1
  270. Long i
  271. Long ll_mtrlid
  272. Dec lde_dftempcost
  273. String arg_msg, err_msg
  274. uo_mtrldef uo_mtrl
  275. uo_mtrl = Create uo_mtrldef
  276. uo_mtrl.commit_transaction = sqlca
  277. Open(w_sys_wait_jdt)
  278. w_sys_wait_jdt.wf_accepttol(dw_1.RowCount())
  279. dw_1.SetRedraw(False)
  280. FOR i = 1 To dw_1.RowCount()
  281. w_sys_wait_jdt.wf_inc(i)
  282. w_sys_wait_jdt.wf_set_msg('正在计算,请稍后......')
  283. ll_mtrlid = dw_1.Object.mtrlid[i]
  284. lde_dftempcost = 0
  285. IF uo_mtrl.uof_pfdpf_empcost(ll_mtrlid, lde_dftempcost, 1, arg_msg) = 0 THEN
  286. err_msg = '行:'+String(i)+','+arg_msg+'~r~n'
  287. lde_dftempcost = 0
  288. END IF
  289. dw_1.Object.dftempcost[i] = lde_dftempcost
  290. NEXT
  291. dw_1.SetRedraw(True)
  292. Close(w_sys_wait_jdt)
  293. Destroy uo_mtrl
  294. IF rslt = 0 THEN
  295. OpenWithParm(w_message_err, err_msg)
  296. ELSE
  297. MessageBox('系统提示','计算人力成本成功')
  298. END IF
  299. end event
  300. event ue_update_inware_price_2();IF Not sys_power_issuper THEN
  301. MessageBox(publ_operator,'非超级用户,没有使用权限!')
  302. RETURN
  303. END IF
  304. IF MessageBox ("询问","是否确定更新未结存进仓仓成本单价?",Question!,YesNo! ) = 2 THEN
  305. RETURN
  306. END IF
  307. Int rslt = 1
  308. String arg_msg
  309. Long ll_storageid
  310. Int li_mtrlorigin_0, li_mtrlorigin_3, li_mtrlorigin_2
  311. String ls_update_string
  312. String ls_mtrlorigin_string
  313. Open(w_mtrldef_edit_price_updatebill_2)
  314. s_edit_index_tran s_rslt
  315. s_rslt = Message.PowerObjectParm
  316. ll_storageid = s_rslt.b_long
  317. IF ll_storageid = 0 THEN RETURN
  318. li_mtrlorigin_0 = s_rslt.c_long
  319. li_mtrlorigin_3 = s_rslt.d_long
  320. li_mtrlorigin_2 = s_rslt.e_long
  321. ls_mtrlorigin_string = ""
  322. IF li_mtrlorigin_0 = 1 THEN
  323. ls_mtrlorigin_string += "0,"
  324. END IF
  325. IF li_mtrlorigin_2 = 1 THEN
  326. ls_mtrlorigin_string += "2,"
  327. END IF
  328. IF li_mtrlorigin_3 = 1 THEN
  329. ls_mtrlorigin_string += "3,"
  330. END IF
  331. IF ls_mtrlorigin_string <> "" THEN
  332. ls_mtrlorigin_string = Left(ls_mtrlorigin_string, Len(ls_mtrlorigin_string) - 1)
  333. END IF
  334. //更新进仓单价
  335. ls_update_string = ""
  336. ls_update_string += " UPDATE u_inwaremx "
  337. ls_update_string += " SET u_inwaremx.fprice = u_mtrldef.planprice, "
  338. ls_update_string += " u_inwaremx.planprice = u_mtrldef.planprice, "
  339. ls_update_string += " u_inwaremx.price = u_mtrldef.planprice, "
  340. ls_update_string += " u_inwaremx.cost = u_mtrldef.planprice, "
  341. ls_update_string += " u_inwaremx.uprice = u_mtrldef.planprice/u_inwaremx.rate "
  342. ls_update_string += " FROM u_inware,u_inwaremx,u_mtrldef "
  343. ls_update_string += " WHERE ( u_inware.scid = u_inwaremx.scid ) "
  344. ls_update_string += " AND ( u_inware.inwareid = u_inwaremx.inwareid ) "
  345. ls_update_string += " AND ( u_inware.storageid = "+String(ll_storageid)+" or "+String(ll_storageid)+" = -1 ) "
  346. ls_update_string += " AND ( u_mtrldef.mtrlid = u_inwaremx.mtrlid ) "
  347. ls_update_string += " AND ( u_inware.balcdateint = 0 ) "
  348. ls_update_string += " AND ( u_mtrldef.planprice <> 0 ) "
  349. ls_update_string += " AND (u_mtrldef.mtrlorigin in ( "+ls_mtrlorigin_string+" )) "
  350. ls_update_string += " AND ( u_inware.billtype in ( 3,4,8,9,12,15,20)) "
  351. EXECUTE Immediate :ls_update_string;
  352. IF sqlca.SQLCode <> 0 THEN
  353. arg_msg = '更新进仓单价失败,'+sqlca.SQLErrText
  354. rslt = 0
  355. GOTO ext
  356. END IF
  357. //更新出仓单价
  358. ls_update_string = ""
  359. ls_update_string += " UPDATE u_outwaremx "
  360. ls_update_string += " SET u_outwaremx.cost = u_mtrldef.planprice, "
  361. ls_update_string += " u_outwaremx.costamt = round(u_mtrldef.planprice * u_outwaremx.qty,2) "
  362. ls_update_string += " FROM u_outware,u_outwaremx,u_mtrldef "
  363. ls_update_string += " WHERE ( u_outware.scid = u_outwaremx.scid ) "
  364. ls_update_string += " AND ( u_outware.outwareid = u_outwaremx.outwareid ) "
  365. ls_update_string += " AND ( u_mtrldef.mtrlid = u_outwaremx.mtrlid ) "
  366. ls_update_string += " AND ( u_outware.storageid = "+String(ll_storageid)+" or "+String(ll_storageid)+" = -1 ) "
  367. ls_update_string += " AND ( u_outware.balcdateint = 0 ) "
  368. ls_update_string += " AND ( u_mtrldef.planprice <> 0 ) "
  369. ls_update_string += " AND (u_mtrldef.mtrlorigin in ( "+ls_mtrlorigin_string+" )) "
  370. EXECUTE Immediate :ls_update_string;
  371. IF sqlca.SQLCode <> 0 THEN
  372. arg_msg = '更新出仓单价失败,'+sqlca.SQLErrText
  373. rslt = 0
  374. GOTO ext
  375. END IF
  376. //更新库存表
  377. ls_update_string = ""
  378. ls_update_string += " UPDATE u_mtrlware "
  379. ls_update_string += " SET u_mtrlware.wareamt = round(u_mtrlware.noallocqty * u_mtrldef.planprice,2), "
  380. ls_update_string += " u_mtrlware.cost = u_mtrldef.planprice "
  381. ls_update_string += " FROM u_mtrlware,u_mtrldef "
  382. ls_update_string += " WHERE ( u_mtrlware.mtrlid = u_mtrldef.mtrlid ) "
  383. ls_update_string += " AND ( u_mtrldef.planprice <> 0 ) "
  384. ls_update_string += " AND ( u_mtrlware.storageid = "+String(ll_storageid)+" or "+String(ll_storageid)+" = -1 ) "
  385. ls_update_string += " AND (u_mtrldef.mtrlorigin in ( "+ls_mtrlorigin_string+" )) "
  386. EXECUTE Immediate :ls_update_string;
  387. IF sqlca.SQLCode <> 0 THEN
  388. arg_msg = '更新库存表库存金额失败,'+sqlca.SQLErrText
  389. rslt = 0
  390. GOTO ext
  391. END IF
  392. //更新结存表
  393. ls_update_string = ""
  394. ls_update_string += " UPDATE u_warebalc "
  395. ls_update_string += " SET u_warebalc.bgamt = round(u_warebalc.bgqty * u_mtrldef.planprice,2), "
  396. ls_update_string += " u_warebalc.incamt = round(u_warebalc.incqty * u_mtrldef.planprice,2), "
  397. ls_update_string += " u_warebalc.desamt = round(u_warebalc.desqty * u_mtrldef.planprice,2), "
  398. ls_update_string += " u_warebalc.balcamt = round(u_warebalc.balcqty * u_mtrldef.planprice,2) "
  399. ls_update_string += " FROM u_warebalc,u_mtrldef "
  400. ls_update_string += " WHERE u_warebalc.mtrlid = u_mtrldef.mtrlid "
  401. ls_update_string += " AND ( u_warebalc.storageid = "+String(ll_storageid)+" or "+String(ll_storageid)+" = -1 ) "
  402. ls_update_string += " AND ( u_warebalc.balcdateint = 0 ) "
  403. ls_update_string += " AND ( u_mtrldef.planprice <> 0 ) "
  404. ls_update_string += " AND (u_mtrldef.mtrlorigin in ( "+ls_mtrlorigin_string+" )) "
  405. EXECUTE Immediate :ls_update_string;
  406. IF sqlca.SQLCode <> 0 THEN
  407. arg_msg = '更新结存金额失败,'+sqlca.SQLErrText
  408. rslt = 0
  409. GOTO ext
  410. END IF
  411. //更新生产计划领料明细
  412. ls_update_string = ""
  413. ls_update_string += " UPDATE u_OrderRqMtrl "
  414. ls_update_string += " SET u_OrderRqMtrl.costamt = round(u_mtrldef.planprice * u_OrderRqMtrl.DstrQty,2) "
  415. ls_update_string += " FROM u_OrderRqMtrl,u_mtrldef "
  416. ls_update_string += " WHERE ( u_mtrldef.mtrlid = u_OrderRqMtrl.mtrlid ) "
  417. ls_update_string += " AND ( u_mtrldef.planprice <> 0 ) "
  418. ls_update_string += " AND (u_mtrldef.mtrlorigin in ( "+ls_mtrlorigin_string+" )) "
  419. EXECUTE Immediate :ls_update_string;
  420. IF sqlca.SQLCode <> 0 THEN
  421. arg_msg = '更新生产计划领料需求成本失败,'+sqlca.SQLErrText
  422. rslt = 0
  423. GOTO ext
  424. END IF
  425. //外协单据
  426. ls_update_string = ""
  427. ext:
  428. IF rslt = 1 THEN
  429. COMMIT;
  430. MessageBox(publ_operator,'操作完成')
  431. ELSE
  432. ROLLBACK;
  433. MessageBox(publ_operator,arg_msg)
  434. END IF
  435. /*
  436. IF NOT sys_power_issuper THEN
  437. MessageBox(publ_operator,'非超级用户,没有使用权限!')
  438. RETURN
  439. END IF
  440. String ls_msg
  441. Long ll_storageid
  442. int li_mtrlorigin_0, li_mtrlorigin_3, li_mtrlorigin_2
  443. OPEN(w_mtrldef_edit_price_updatebill)
  444. s_edit_index_tran s_rslt
  445. s_rslt = Message.PowerObjectparm
  446. //ll_storageid = Message.DoubleParm
  447. ll_storageid = s_rslt.b_long
  448. IF ll_storageid = 0 THEN RETURN
  449. li_mtrlorigin_0 = s_rslt.c_long
  450. li_mtrlorigin_3 = s_rslt.d_long
  451. li_mtrlorigin_2 = s_rslt.e_long
  452. //
  453. // AND (( :li_mtrlorigin_0 = 1 or u_mtrldef.mtrlorigin = 0 )
  454. // or ( :li_mtrlorigin_2 = 1 or u_mtrldef.mtrlorigin = 2 )
  455. // or ( :li_mtrlorigin_3 = 1 or u_mtrldef.mtrlorigin = 3 ))
  456. //更新进仓单价
  457. UPDATE u_inwaremx
  458. SET u_inwaremx.fprice = u_mtrldef.planprice,
  459. u_inwaremx.planprice = u_mtrldef.planprice,
  460. u_inwaremx.price = u_mtrldef.planprice,
  461. u_inwaremx.cost = u_mtrldef.planprice,
  462. u_inwaremx.uprice = u_mtrldef.planprice/u_inwaremx.rate
  463. FROM u_inware,u_inwaremx,u_mtrldef
  464. WHERE ( u_inware.scid = u_inwaremx.scid )
  465. AND ( u_inware.inwareid = u_inwaremx.inwareid )
  466. AND ( u_inware.storageid = :ll_storageid )
  467. AND ( u_mtrldef.mtrlid = u_inwaremx.mtrlid )
  468. AND ( u_inware.balcdateint = 0 )
  469. AND (( :li_mtrlorigin_0 = 1 or u_mtrldef.mtrlorigin = 0 )
  470. or ( :li_mtrlorigin_2 = 1 or u_mtrldef.mtrlorigin = 2 )
  471. or ( :li_mtrlorigin_3 = 1 or u_mtrldef.mtrlorigin = 3 ))
  472. AND ( u_inware.billtype = 3
  473. OR u_inware.billtype = 4
  474. OR u_inware.billtype = 8
  475. OR u_inware.billtype = 9
  476. OR u_inware.billtype = 12
  477. OR u_inware.billtype = 15
  478. OR u_inware.billtype = 20 );
  479. IF sqlca.SQLCode <> 0 THEN
  480. ls_msg = sqlca.SQLErrText
  481. ROLLBACK;
  482. MessageBox(publ_operator,'更新进仓单价失败'+ls_msg)
  483. RETURN
  484. END IF
  485. //更新出仓单价
  486. UPDATE u_outwaremx
  487. SET u_outwaremx.cost = u_mtrldef.planprice,
  488. u_outwaremx.costamt = round(u_mtrldef.planprice * u_outwaremx.qty,2)
  489. FROM u_outware,u_outwaremx,u_mtrldef
  490. WHERE ( u_outware.scid = u_outwaremx.scid )
  491. AND ( u_outware.outwareid = u_outwaremx.outwareid )
  492. AND ( u_outware.storageid = :ll_storageid )
  493. AND ( u_mtrldef.mtrlid = u_outwaremx.mtrlid )
  494. AND ( u_mtrldef.mtrlorigin = 0 )
  495. AND ( u_outware.balcdateint = 0 )
  496. and u_mtrldef.mtrlorigin <> 2;
  497. IF sqlca.SQLCode <> 0 THEN
  498. ls_msg = sqlca.SQLErrText
  499. ROLLBACK;
  500. MessageBox(publ_operator,'更新出仓单价失败'+ls_msg)
  501. RETURN
  502. END IF
  503. //更新库存表
  504. UPDATE u_mtrlware
  505. SET u_mtrlware.wareamt = round(u_mtrlware.noallocqty * u_mtrldef.planprice,2),
  506. u_mtrlware.cost = u_mtrldef.planprice
  507. FROM u_mtrlware,u_mtrldef
  508. WHERE ( u_mtrlware.mtrlid = u_mtrldef.mtrlid )
  509. AND ( u_mtrlware.storageid = :ll_storageid )
  510. AND ( u_mtrldef.mtrlorigin = 0 )
  511. and u_mtrldef.mtrlorigin <> 2;
  512. IF sqlca.SQLCode <> 0 THEN
  513. ls_msg = sqlca.SQLErrText
  514. ROLLBACK;
  515. MessageBox(publ_operator,'更新结存表进仓金额失败,'+ls_msg)
  516. RETURN
  517. END IF
  518. //更新结存表
  519. UPDATE u_warebalc
  520. SET u_warebalc.incamt = round(u_warebalc.incqty * u_mtrldef.planprice,2),
  521. u_warebalc.bgamt = round(u_warebalc.bgqty * u_mtrldef.planprice,2),
  522. u_warebalc.desamt = round(u_warebalc.desqty * u_mtrldef.planprice,2),
  523. u_warebalc.balcamt = round(u_warebalc.balcqty * u_mtrldef.planprice,2)
  524. FROM u_warebalc,u_mtrldef
  525. WHERE u_warebalc.mtrlid = u_mtrldef.mtrlid
  526. AND ( u_mtrldef.mtrlorigin = 0 )
  527. AND ( u_warebalc.storageid = :ll_storageid )
  528. AND ( u_warebalc.balcdateint = 0 )
  529. and u_mtrldef.mtrlorigin <> 2;
  530. IF sqlca.SQLCode <> 0 THEN
  531. ls_msg = sqlca.SQLErrText
  532. ROLLBACK;
  533. MessageBox(publ_operator,'更新结存表进仓金额失败,'+ls_msg)
  534. RETURN
  535. END IF
  536. ////更新生产计划领料明细
  537. //UPDATE u_OrderRqMtrl_scll
  538. // SET u_OrderRqMtrl_scll.costamt = round(u_mtrldef.planprice * u_OrderRqMtrl_scll.DstrQty,2)
  539. // FROM u_OrderRqMtrl_scll,u_mtrldef
  540. // WHERE ( u_mtrldef.mtrlid = u_OrderRqMtrl_scll.mtrlid )
  541. // AND ( u_mtrldef.mtrlorigin = 0 );
  542. //IF sqlca.SQLCode <> 0 THEN
  543. // ls_msg = sqlca.SQLErrText
  544. // ROLLBACK;
  545. // MessageBox(publ_operator,'更新生产计划领料成本失败'+ls_msg)
  546. // RETURN
  547. //END IF
  548. //更新生产计划领料明细
  549. UPDATE u_OrderRqMtrl
  550. SET u_OrderRqMtrl.costamt = round(u_mtrldef.planprice * u_OrderRqMtrl.DstrQty,2)
  551. FROM u_OrderRqMtrl,u_mtrldef
  552. WHERE ( u_mtrldef.mtrlid = u_OrderRqMtrl.mtrlid )
  553. and u_mtrldef.mtrlorigin = 0 ;
  554. IF sqlca.SQLCode <> 0 THEN
  555. ls_msg = sqlca.SQLErrText
  556. ROLLBACK;
  557. MessageBox(publ_operator,'更新生产计划领料需求成本失败'+ls_msg)
  558. RETURN
  559. END IF
  560. //外协单据
  561. COMMIT;
  562. MessageBox(publ_operator,'操作完成')
  563. */
  564. end event
  565. event ue_lmsalepricetoplanprice();IF MessageBox ("询问","是否确定按设定售价更新计划价?",Question!,YesNo! ) = 2 THEN
  566. RETURN
  567. END IF
  568. Int rslt = 1
  569. Long i
  570. Long ll_mtrlid
  571. Dec lde_lmsaleprice
  572. String arg_msg, err_msg
  573. Open(w_sys_wait_jdt)
  574. w_sys_wait_jdt.wf_accepttol(dw_1.RowCount())
  575. dw_1.SetRedraw(False)
  576. FOR i = 1 To dw_1.RowCount()
  577. w_sys_wait_jdt.wf_inc(i)
  578. w_sys_wait_jdt.wf_set_msg('正在计算,请稍后......')
  579. ll_mtrlid = dw_1.Object.mtrlid[i]
  580. lde_lmsaleprice = 0
  581. SELECT lmsaleprice INTO :lde_lmsaleprice
  582. FROM u_mtrldef
  583. Where mtrlid = :ll_mtrlid;
  584. IF sqlca.SQLCode <> 0 THEN
  585. lde_lmsaleprice = 0
  586. END IF
  587. IF IsNull(lde_lmsaleprice) THEN lde_lmsaleprice = 0
  588. dw_1.Object.planprice[i] = lde_lmsaleprice
  589. NEXT
  590. dw_1.SetRedraw(True)
  591. Close(w_sys_wait_jdt)
  592. IF rslt = 0 THEN
  593. OpenWithParm(w_message_err, err_msg)
  594. //messagebox('','计算错误~r~n'+arg_msg)
  595. ELSE
  596. MessageBox('系统提示','计算成功')
  597. END IF
  598. end event
  599. event ue_lmbuypricetoplanprice();IF MessageBox ("询问","是否确定按设定购价更新计划价?",Question!,YesNo! ) = 2 THEN
  600. RETURN
  601. END IF
  602. Int rslt = 1
  603. Long i
  604. Long ll_mtrlid
  605. Dec lde_lmbuyprice
  606. String arg_msg, err_msg
  607. Open(w_sys_wait_jdt)
  608. w_sys_wait_jdt.wf_accepttol(dw_1.RowCount())
  609. dw_1.SetRedraw(False)
  610. FOR i = 1 To dw_1.RowCount()
  611. w_sys_wait_jdt.wf_inc(i)
  612. w_sys_wait_jdt.wf_set_msg('正在计算,请稍后......')
  613. ll_mtrlid = dw_1.Object.mtrlid[i]
  614. lde_lmbuyprice = 0
  615. SELECT lmbuyprice INTO :lde_lmbuyprice
  616. FROM u_mtrldef
  617. Where mtrlid = :ll_mtrlid;
  618. IF sqlca.SQLCode <> 0 THEN
  619. lde_lmbuyprice = 0
  620. END IF
  621. IF IsNull(lde_lmbuyprice) THEN lde_lmbuyprice = 0
  622. dw_1.Object.planprice[i] = lde_lmbuyprice
  623. NEXT
  624. dw_1.SetRedraw(True)
  625. Close(w_sys_wait_jdt)
  626. IF rslt = 0 THEN
  627. OpenWithParm(w_message_err, err_msg)
  628. //messagebox('','计算错误~r~n'+arg_msg)
  629. ELSE
  630. MessageBox('系统提示','计算成功')
  631. END IF
  632. end event
  633. event ue_costtoplanprice();IF MessageBox ("询问","是否确定按仓库成本价更新计划价?",Question!,YesNo! ) = 2 THEN
  634. RETURN
  635. END IF
  636. Int rslt = 1
  637. Long i
  638. Long ll_mtrlid
  639. Dec lde_cost
  640. String arg_msg, err_msg
  641. Long ll_storageid
  642. Open(w_storage_ch)
  643. ll_storageid = Message.DoubleParm
  644. IF ll_storageid = 0 THEN RETURN
  645. Open(w_sys_wait_jdt)
  646. w_sys_wait_jdt.wf_accepttol(dw_1.RowCount())
  647. dw_1.SetRedraw(False)
  648. FOR i = 1 To dw_1.RowCount()
  649. w_sys_wait_jdt.wf_inc(i)
  650. w_sys_wait_jdt.wf_set_msg('正在计算,请稍后......')
  651. ll_mtrlid = dw_1.Object.mtrlid[i]
  652. lde_cost = 0
  653. SELECT top 1 cost
  654. INTO :lde_cost
  655. FROM u_mtrlware
  656. WHERE storageid = :ll_storageid
  657. And mtrlid = :ll_mtrlid;
  658. IF sqlca.SQLCode <> 0 THEN
  659. lde_cost = 0
  660. END IF
  661. IF IsNull(lde_cost) THEN lde_cost = 0
  662. dw_1.Object.planprice[i] = lde_cost
  663. NEXT
  664. dw_1.SetRedraw(True)
  665. Close(w_sys_wait_jdt)
  666. IF rslt = 0 THEN
  667. OpenWithParm(w_message_err, err_msg)
  668. //messagebox('','计算错误~r~n'+arg_msg)
  669. ELSE
  670. MessageBox('系统提示','计算成功')
  671. END IF
  672. end event
  673. event ue_inwarebuyplanprice();String err_msg
  674. Long i,rslt = 1
  675. Long ll_mtrlid
  676. String ls_msg
  677. Long ll_storageid
  678. Decimal lde_lmbuyprice
  679. s_edit_index_tran s_ch_tran //传递参数使用
  680. Open(w_mtrldef_edit_price_inwarebuyplanprice)
  681. s_ch_tran = Message.PowerObjectParm
  682. IF Date(s_ch_tran.first_date) = Date('1900-01-01') THEN RETURN
  683. Open(w_sys_wait_jdt)
  684. w_sys_wait_jdt.wf_accepttol(dw_1.RowCount())
  685. dw_1.SetRedraw(False)
  686. FOR i = 1 To dw_1.RowCount()
  687. w_sys_wait_jdt.wf_inc(i)
  688. w_sys_wait_jdt.wf_set_msg('正在计算,请稍后......')
  689. ll_mtrlid = dw_1.Object.mtrlid[i]
  690. lde_lmbuyprice = 0
  691. SELECT
  692. CASE when IsNull(SUM(uqty),0) = 0 THEN 0 ELSE SUM(uamt) / SUM(uqty) END Into :lde_lmbuyprice
  693. From u_inwaremx
  694. Inner join
  695. u_inware On u_inware.scid = u_inwaremx.scid And
  696. u_inware.inwareid = u_inwaremx.inwareid
  697. Where u_inware.billtype = 1 And
  698. u_inware.flag = 1 And
  699. (u_inware.indate >= :s_ch_tran.first_date and u_inware.indate <= :s_ch_tran.end_date) and
  700. mtrlid = :ll_mtrlid;
  701. IF sqlca.SQLCode <> 0 THEN
  702. lde_lmbuyprice = 0
  703. END IF
  704. IF IsNull(lde_lmbuyprice) THEN lde_lmbuyprice = 0
  705. dw_1.Object.planprice[i] = lde_lmbuyprice
  706. NEXT
  707. dw_1.SetRedraw(True)
  708. Close(w_sys_wait_jdt)
  709. IF rslt = 0 THEN
  710. OpenWithParm(w_message_err, err_msg)
  711. ELSE
  712. MessageBox('系统提示','计算成功')
  713. END IF
  714. end event
  715. event ue_update_outware_price_2();IF Not sys_power_issuper THEN
  716. MessageBox(publ_operator,'非超级用户,没有使用权限!')
  717. RETURN
  718. END IF
  719. IF MessageBox ("询问","是否确定更新未结存出仓仓成本单价?",Question!,YesNo! ) = 2 THEN
  720. RETURN
  721. END IF
  722. Int rslt = 1
  723. String arg_msg
  724. Long ll_storageid
  725. Int li_mtrlorigin_0, li_mtrlorigin_3, li_mtrlorigin_2
  726. String ls_update_string
  727. String ls_mtrlorigin_string
  728. Open(w_mtrldef_edit_price_ud_outware_planprice)
  729. s_edit_index_tran s_rslt
  730. s_rslt = Message.PowerObjectParm
  731. IF Date(s_rslt.first_date) = Date('1900-01-01') THEN RETURN
  732. ll_storageid = s_rslt.b_long
  733. IF ll_storageid = 0 THEN RETURN
  734. //更新出仓单价
  735. ls_update_string = ""
  736. ls_update_string += " UPDATE u_outwaremx "
  737. ls_update_string += " SET u_outwaremx.cost = u_mtrldef.planprice, "
  738. ls_update_string += " u_outwaremx.costamt = round(u_mtrldef.planprice * u_outwaremx.qty,2) "
  739. ls_update_string += " FROM u_outware,u_outwaremx,u_mtrldef "
  740. ls_update_string += " WHERE ( u_outware.scid = u_outwaremx.scid ) "
  741. ls_update_string += " AND ( u_outware.outwareid = u_outwaremx.outwareid ) "
  742. ls_update_string += " AND ( u_mtrldef.mtrlid = u_outwaremx.mtrlid ) "
  743. ls_update_string += " AND ( u_outware.storageid = "+String(ll_storageid)+" or "+String(ll_storageid)+" = -1 ) "
  744. ls_update_string += " AND ( u_outware.balcdateint = 0 ) "
  745. ls_update_string += " AND ( u_mtrldef.planprice <> 0 ) "
  746. ls_update_string += " AND ( u_outware.outdate >= '" + string(s_rslt.first_date,'yyyy-mm-dd hh:mm:ss') + "'" + " and u_outware.outdate <= '" + string(s_rslt.end_date,'yyyy-mm-dd hh:mm:ss') + "'" + " ) "
  747. //messagebox('',string(ls_update_string))
  748. EXECUTE Immediate :ls_update_string;
  749. IF sqlca.SQLCode <> 0 THEN
  750. arg_msg = '更新出仓单价失败,'+sqlca.SQLErrText
  751. rslt = 0
  752. GOTO ext
  753. END IF
  754. //更新结存表
  755. ls_update_string = ""
  756. ls_update_string += " UPDATE u_warebalc "
  757. ls_update_string += " SET u_warebalc.bgamt = round(u_warebalc.bgqty * u_mtrldef.planprice,2), "
  758. ls_update_string += " u_warebalc.incamt = round(u_warebalc.incqty * u_mtrldef.planprice,2), "
  759. ls_update_string += " u_warebalc.desamt = round(u_warebalc.desqty * u_mtrldef.planprice,2), "
  760. ls_update_string += " u_warebalc.balcamt = round(u_warebalc.balcqty * u_mtrldef.planprice,2) "
  761. ls_update_string += " FROM u_warebalc,u_mtrldef "
  762. ls_update_string += " WHERE u_warebalc.mtrlid = u_mtrldef.mtrlid "
  763. ls_update_string += " AND ( u_warebalc.storageid = "+String(ll_storageid)+" or "+String(ll_storageid)+" = -1 ) "
  764. ls_update_string += " AND ( u_warebalc.balcdateint = 0 ) "
  765. ls_update_string += " AND ( u_mtrldef.planprice <> 0 ) "
  766. EXECUTE Immediate :ls_update_string;
  767. IF sqlca.SQLCode <> 0 THEN
  768. arg_msg = '更新结存金额失败,'+sqlca.SQLErrText
  769. rslt = 0
  770. GOTO ext
  771. END IF
  772. ext:
  773. IF rslt = 1 THEN
  774. COMMIT;
  775. MessageBox(publ_operator,'操作完成')
  776. ELSE
  777. ROLLBACK;
  778. MessageBox(publ_operator,arg_msg)
  779. END IF
  780. end event
  781. public function integer wf_face ();cb_1.Enabled = NOT dw_edit_mode
  782. cb_save.Enabled = dw_edit_mode
  783. cb_func.Enabled = NOT dw_edit_mode
  784. cb_psetup.Enabled = NOT dw_edit_mode
  785. cb_2.Enabled = NOT dw_edit_mode
  786. cbx_yl.Enabled = NOT dw_edit_mode
  787. cbx_1.Enabled = NOT dw_edit_mode
  788. IF dw_edit_mode THEN
  789. dw_1.SetTabOrder('planprice',10)
  790. dw_1.SetTabOrder('u_mtrldef_lmsaleprice',20)
  791. dw_1.SetTabOrder('u_mtrldef_lmbuyprice',30)
  792. dw_1.SetTabOrder('dftmtrlcost',40)
  793. dw_1.SetTabOrder('dftempcost',50)
  794. dw_1.SetTabOrder('dftsccost',60)
  795. dw_1.SetTabOrder('dftglcost',70)
  796. dw_1.SetTabOrder('wfjgcost',80)
  797. dw_1.SetTabOrder('othercost',90)
  798. cb_edit.Text = '放弃'
  799. cb_edit.normalpicname = 'Undo.bmp'
  800. ELSE
  801. dw_1.SetTabOrder('planprice',0)
  802. dw_1.SetTabOrder('u_mtrldef_lmsaleprice',0)
  803. dw_1.SetTabOrder('u_mtrldef_lmbuyprice',0)
  804. dw_1.SetTabOrder('dftmtrlcost',0)
  805. dw_1.SetTabOrder('dftempcost',0)
  806. dw_1.SetTabOrder('dftsccost',0)
  807. dw_1.SetTabOrder('dftglcost',0)
  808. dw_1.SetTabOrder('wfjgcost',0)
  809. dw_1.SetTabOrder('othercost',0)
  810. cb_edit.Text = '修改'
  811. cb_edit.normalpicname = 'OPEN.bmp'
  812. END IF
  813. cb_edit.of_init_draw()
  814. cb_edit.of_paint()
  815. cb_edit.TriggerEvent('ue_textchange')
  816. RETURN 1
  817. end function
  818. on w_mtrldef_edit_price.create
  819. int iCurrent
  820. call super::create
  821. this.cb_save=create cb_save
  822. this.dw_his=create dw_his
  823. this.cb_other=create cb_other
  824. this.tv_1=create tv_1
  825. this.cbx_1=create cbx_1
  826. this.cb_edit=create cb_edit
  827. iCurrent=UpperBound(this.Control)
  828. this.Control[iCurrent+1]=this.cb_save
  829. this.Control[iCurrent+2]=this.dw_his
  830. this.Control[iCurrent+3]=this.cb_other
  831. this.Control[iCurrent+4]=this.tv_1
  832. this.Control[iCurrent+5]=this.cbx_1
  833. this.Control[iCurrent+6]=this.cb_edit
  834. end on
  835. on w_mtrldef_edit_price.destroy
  836. call super::destroy
  837. destroy(this.cb_save)
  838. destroy(this.dw_his)
  839. destroy(this.cb_other)
  840. destroy(this.tv_1)
  841. destroy(this.cbx_1)
  842. destroy(this.cb_edit)
  843. end on
  844. event resize;call super::resize;tv_1.height = dw_1.height - dw_his.height - 10
  845. dw_his.y = tv_1.y + tv_1.height
  846. end event
  847. event ue_before_open;call super::ue_before_open;if_ue_sentdataout = TRUE
  848. dw_his.SetTransObject (sqlca)
  849. IF sys_option_planprice_directinput = 1 THEN
  850. dw_1.Modify('planprice.Protect = 0')
  851. ELSE
  852. dw_1.Modify('planprice.Protect = 1')
  853. END IF
  854. IF Not(f_power_ind(1381)) THEN
  855. dw_1.Modify('dftmtrlcost.Protect = 1')
  856. END IF
  857. IF Not(f_power_ind(1382)) THEN
  858. dw_1.Modify('dftempcost.Protect = 1')
  859. END IF
  860. IF Not(f_power_ind(1383)) THEN
  861. dw_1.Modify('dftsccost.Protect = 1')
  862. END IF
  863. IF Not(f_power_ind(1384)) THEN
  864. dw_1.Modify('dftglcost.Protect = 1')
  865. END IF
  866. end event
  867. type cb_func from w_publ_easyq`cb_func within w_mtrldef_edit_price
  868. end type
  869. event cb_func::clicked;m_Dfc_Control_PopupMenu dmPopupMenu
  870. string menustr
  871. if if_ue_retr then
  872. menustr="Text=查询~tEvent=ue_retr"
  873. end if
  874. if if_ue_filter then
  875. if len(trim(menustr))=0 then
  876. menustr="Text=高级筛选~tEvent=ue_filter"
  877. else
  878. menustr=menustr + "|" + "Text=高级筛选~tEvent=ue_filter"
  879. end if
  880. end if
  881. if if_ue_sort then
  882. if len(trim(menustr))=0 then
  883. menustr="Text=排序~tEvent=ue_sort"
  884. else
  885. menustr=menustr + "|" + "Text=排序~tEvent=ue_sort"
  886. end if
  887. end if
  888. if menustr<>"" and if_ue_sentdataout then menustr=menustr + "|" + "Text=-"
  889. if if_ue_sentdataout then
  890. if len(trim(menustr))=0 then
  891. menustr="Text=数据发送~tEvent=ue_sentdataout"
  892. else
  893. menustr=menustr + "|" + "Text=数据发送~tEvent=ue_sentdataout"
  894. end if
  895. end if
  896. if len(trim(menustr))<>0 then
  897. dmPopupMenu = Create m_Dfc_Control_PopupMenu
  898. dmPopupMenu.mf_BuildMenu(This, menustr)
  899. dmPopupMenu.mf_PopMenu()
  900. Destroy dmPopupMenu
  901. end if
  902. end event
  903. type cb_exit from w_publ_easyq`cb_exit within w_mtrldef_edit_price
  904. integer x = 1408
  905. end type
  906. type cb_2 from w_publ_easyq`cb_2 within w_mtrldef_edit_price
  907. integer x = 1106
  908. integer taborder = 100
  909. boolean bringtotop = true
  910. end type
  911. type cb_psetup from w_publ_easyq`cb_psetup within w_mtrldef_edit_price
  912. integer x = 850
  913. boolean bringtotop = true
  914. end type
  915. type cb_1 from w_publ_easyq`cb_1 within w_mtrldef_edit_price
  916. boolean bringtotop = true
  917. end type
  918. event cb_1::clicked;call super::clicked;dw_1.Retrieve(cur_isuse,ls_handtype)
  919. end event
  920. type st_3 from w_publ_easyq`st_3 within w_mtrldef_edit_price
  921. boolean visible = false
  922. integer x = 823
  923. integer y = 368
  924. end type
  925. type st_4 from w_publ_easyq`st_4 within w_mtrldef_edit_price
  926. boolean visible = false
  927. integer x = 1170
  928. integer y = 508
  929. end type
  930. type em_1 from w_publ_easyq`em_1 within w_mtrldef_edit_price
  931. boolean visible = false
  932. integer x = 736
  933. integer y = 436
  934. integer taborder = 110
  935. end type
  936. type em_2 from w_publ_easyq`em_2 within w_mtrldef_edit_price
  937. boolean visible = false
  938. integer x = 1253
  939. integer y = 428
  940. integer taborder = 140
  941. end type
  942. type ddlb_yl from w_publ_easyq`ddlb_yl within w_mtrldef_edit_price
  943. integer x = 1824
  944. integer y = 12
  945. end type
  946. type cbx_yl from w_publ_easyq`cbx_yl within w_mtrldef_edit_price
  947. integer x = 1614
  948. integer y = 16
  949. end type
  950. type dw_1 from w_publ_easyq`dw_1 within w_mtrldef_edit_price
  951. integer x = 1157
  952. integer y = 300
  953. integer width = 1897
  954. integer height = 1440
  955. string dataobject = "dw_mtrldef_edit_price"
  956. end type
  957. event dw_1::rowfocuschanged;IF currentrow <=0 THEN RETURN
  958. this.selectrow(0,false)
  959. this.selectrow(currentrow,true)
  960. end event
  961. event dw_1::clicked;call super::clicked;IF row <= 0 THEN RETURN
  962. This.SelectRow(0,False)
  963. This.SetRow(row)
  964. This.SelectRow(row,True)
  965. end event
  966. event dw_1::doubleclicked;call super::doubleclicked;IF row = 0 THEN RETURN
  967. Long ll_mtrlid
  968. ll_mtrlid = dw_1.Object.mtrlid[row]
  969. dw_his.SetRedraw(FALSE)
  970. dw_his.Retrieve(ll_mtrlid)
  971. dw_his.SetRedraw(TRUE)
  972. end event
  973. type sle_mtrl from w_publ_easyq`sle_mtrl within w_mtrldef_edit_price
  974. end type
  975. type sle_cust from w_publ_easyq`sle_cust within w_mtrldef_edit_price
  976. end type
  977. type st_mtrl from w_publ_easyq`st_mtrl within w_mtrldef_edit_price
  978. end type
  979. type st_cust from w_publ_easyq`st_cust within w_mtrldef_edit_price
  980. end type
  981. type cbx_loginretr from w_publ_easyq`cbx_loginretr within w_mtrldef_edit_price
  982. end type
  983. type pb_em1 from w_publ_easyq`pb_em1 within w_mtrldef_edit_price
  984. boolean visible = false
  985. end type
  986. type pb_em2 from w_publ_easyq`pb_em2 within w_mtrldef_edit_price
  987. boolean visible = false
  988. end type
  989. type pb_2 from w_publ_easyq`pb_2 within w_mtrldef_edit_price
  990. boolean visible = false
  991. end type
  992. type cb_help from w_publ_easyq`cb_help within w_mtrldef_edit_price
  993. integer x = 1257
  994. end type
  995. type cb_copyself from w_publ_easyq`cb_copyself within w_mtrldef_edit_price
  996. boolean visible = false
  997. end type
  998. type gb_1 from w_publ_easyq`gb_1 within w_mtrldef_edit_price
  999. end type
  1000. type ln_bar from w_publ_easyq`ln_bar within w_mtrldef_edit_price
  1001. end type
  1002. type ln_bar2 from w_publ_easyq`ln_bar2 within w_mtrldef_edit_price
  1003. end type
  1004. type r_bar from w_publ_easyq`r_bar within w_mtrldef_edit_price
  1005. end type
  1006. type ln_1 from w_publ_easyq`ln_1 within w_mtrldef_edit_price
  1007. end type
  1008. type ln_2 from w_publ_easyq`ln_2 within w_mtrldef_edit_price
  1009. end type
  1010. type ln_3 from w_publ_easyq`ln_3 within w_mtrldef_edit_price
  1011. end type
  1012. type ln_4 from w_publ_easyq`ln_4 within w_mtrldef_edit_price
  1013. end type
  1014. type cb_save from uo_imflatbutton within w_mtrldef_edit_price
  1015. integer x = 302
  1016. integer width = 151
  1017. integer height = 164
  1018. integer taborder = 20
  1019. boolean bringtotop = true
  1020. boolean enabled = false
  1021. string text = "保存"
  1022. string normalpicname = "save.bmp"
  1023. integer picsize = 16
  1024. toolbaralignment pic_align = alignattop!
  1025. boolean border = false
  1026. end type
  1027. event clicked;call super::clicked;IF Not f_power_ind(723) THEN
  1028. MessageBox('提示',sys_msg_pow, Information!, OK! )
  1029. RETURN
  1030. END IF
  1031. int rslt = 1
  1032. Long i
  1033. dw_1.AcceptText()
  1034. Decimal ld_planprice
  1035. Decimal last_planprice
  1036. Long mtrlid
  1037. Open(w_sys_wait_jdt)
  1038. w_sys_wait_jdt.wf_accepttol(dw_1.RowCount())
  1039. FOR i = 1 To dw_1.RowCount()
  1040. w_sys_wait_jdt.wf_inc(i)
  1041. w_sys_wait_jdt.wf_set_msg('正在保存数据,请稍后......')
  1042. last_planprice = dw_1.Object.planprice.Original[i]
  1043. ld_planprice = dw_1.Object.planprice[i]
  1044. IF last_planprice <> ld_planprice THEN
  1045. mtrlid = dw_1.Object.mtrlid[i]
  1046. INSERT INTO u_planprice_his (
  1047. billid,
  1048. mtrlid,
  1049. lastprice,
  1050. planprice,
  1051. relcode,
  1052. reason,
  1053. changedtime,
  1054. changedemp,
  1055. printid,
  1056. status,
  1057. woodcode,
  1058. pcode)
  1059. VALUES(
  1060. 0,
  1061. :mtrlid,
  1062. :last_planprice,
  1063. :ld_planprice,
  1064. '',
  1065. '产品计划价设定',
  1066. getdate(),
  1067. :publ_operator,
  1068. 0,
  1069. '',
  1070. '',
  1071. '');
  1072. IF SQLca.SQLCode <> 0 THEN
  1073. rslt = 0
  1074. ROLLBACK;
  1075. MessageBox('提示','插入计划价变更历史表失败!', Information!, OK! )
  1076. GOTO ext
  1077. END IF
  1078. END IF
  1079. NEXT
  1080. IF dw_1.Update() = 1 THEN
  1081. COMMIT;
  1082. MessageBox('提示','保存成功!', Information!, OK! )
  1083. ELSE
  1084. rslt = 0
  1085. ROLLBACK;
  1086. MessageBox('提示','保存失败!', Information!, OK! )
  1087. END IF
  1088. ext:
  1089. Close(w_sys_wait_jdt)
  1090. IF rslt = 0 THEN
  1091. RETURN
  1092. ELSE
  1093. dw_edit_mode = Not dw_edit_mode
  1094. wf_face()
  1095. RETURN
  1096. END IF
  1097. end event
  1098. type dw_his from u_dw_rbtnfilter within w_mtrldef_edit_price
  1099. integer y = 844
  1100. integer width = 1152
  1101. integer height = 892
  1102. integer taborder = 30
  1103. boolean bringtotop = true
  1104. string dataobject = "dw_planprice_his"
  1105. boolean controlmenu = true
  1106. boolean minbox = true
  1107. boolean maxbox = true
  1108. boolean hscrollbar = true
  1109. boolean vscrollbar = true
  1110. end type
  1111. event clicked;call super::clicked;IF row <=0 THEN RETURN
  1112. this.selectrow(0,false)
  1113. this.selectrow(row,true)
  1114. end event
  1115. type cb_other from uo_imflatbutton within w_mtrldef_edit_price
  1116. integer x = 603
  1117. integer width = 247
  1118. integer height = 164
  1119. integer taborder = 30
  1120. boolean bringtotop = true
  1121. string text = "辅助功能"
  1122. string normalpicname = "other.BMP"
  1123. integer picsize = 16
  1124. toolbaralignment pic_align = alignattop!
  1125. boolean border = false
  1126. end type
  1127. event clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu
  1128. String menustr
  1129. IF dw_edit_mode THEN
  1130. menustr = "Text=按物料清单统计默认物料成本~tEvent=ue_cmpl_dftmtrlcost"
  1131. menustr += "|" + "Text=按工价表统计默认人力成本~tEvent=ue_cmpl_dftempcost"
  1132. menustr += "|" + "Text=按默认总成本更新计划价~tEvent=ue_cmpl_planprice"
  1133. menustr += "|" + "Text=-"
  1134. menustr += "|" + "Text=取仓库成本价更新计划价~tEvent=ue_costtoplanprice"
  1135. menustr += "|" + "Text=取设定售价更新计划价~tEvent=ue_lmsalepricetoplanprice"
  1136. menustr += "|" + "Text=取设定购价价更新计划价~tEvent=ue_lmbuypricetoplanprice"
  1137. menustr += "|" + "Text=-"
  1138. menustr += "|" + "Text=取时间段内的采购均价更新计划价~tEvent=ue_inwarebuyplanprice"
  1139. ELSE
  1140. menustr += "|" + "Text=更新未结存进仓单价~tEvent=ue_update_inware_price"
  1141. menustr += "|" + "Text=更新未结存进仓仓成本单价~tEvent=ue_update_inware_price_2"
  1142. menustr += "|" + "Text=更新外协商库存、结存金额~tEvent=ue_update_wfjg"
  1143. menustr += "|" + "Text=-"
  1144. menustr += "|" + "Text=更新时间段内未结存出仓仓成本单价~tEvent=ue_update_outware_price_2"
  1145. END IF
  1146. IF Len(Trim(menustr)) <> 0 THEN
  1147. dmPopupMenu = CREATE m_Dfc_Control_PopupMenu
  1148. dmPopupMenu.mf_BuildMenu(THIS, menustr)
  1149. dmPopupMenu.mf_PopMenu()
  1150. DESTROY dmPopupMenu
  1151. END IF
  1152. end event
  1153. type tv_1 from uo_tv_mtrltype within w_mtrldef_edit_price
  1154. integer y = 300
  1155. integer width = 1152
  1156. integer height = 540
  1157. integer taborder = 120
  1158. boolean bringtotop = true
  1159. integer textsize = -9
  1160. fontcharset fontcharset = gb2312charset!
  1161. fontfamily fontfamily = anyfont!
  1162. string facename = "宋体"
  1163. end type
  1164. event selectionchanged;call super::selectionchanged;ls_handtype = THIS.uo_cur_info.handtype
  1165. ls_handtype += '%'
  1166. cb_1.TriggerEvent(CLICKED!)
  1167. end event
  1168. type cbx_1 from checkbox within w_mtrldef_edit_price
  1169. integer x = 9
  1170. integer y = 212
  1171. integer width = 384
  1172. integer height = 56
  1173. boolean bringtotop = true
  1174. integer textsize = -9
  1175. integer weight = 400
  1176. fontcharset fontcharset = gb2312charset!
  1177. fontpitch fontpitch = variable!
  1178. string facename = "宋体"
  1179. long textcolor = 33554432
  1180. long backcolor = 134217739
  1181. string text = "只显示有效"
  1182. boolean checked = true
  1183. end type
  1184. event clicked;IF cbx_1.Checked THEN
  1185. cur_isuse = 1
  1186. ELSE
  1187. cur_isuse = -1
  1188. END IF
  1189. cb_1.triggerevent(clicked!)
  1190. end event
  1191. type cb_edit from uo_imflatbutton within w_mtrldef_edit_price
  1192. integer x = 453
  1193. integer width = 151
  1194. integer height = 164
  1195. integer taborder = 40
  1196. boolean bringtotop = true
  1197. string text = "修改"
  1198. string normalpicname = "open.bmp"
  1199. integer picsize = 16
  1200. toolbaralignment pic_align = alignattop!
  1201. boolean border = false
  1202. end type
  1203. event clicked;call super::clicked;IF Not f_power_ind(723) THEN
  1204. MessageBox('提示',sys_msg_pow, Information!, OK! )
  1205. RETURN
  1206. END IF
  1207. IF dw_edit_mode THEN
  1208. IF MessageBox('提示','是否要确定放弃保存资料', question!, YesNo!, 2) = 2 THEN
  1209. RETURN
  1210. END IF
  1211. END IF
  1212. dw_edit_mode = NOT dw_edit_mode
  1213. wf_face()
  1214. IF NOT dw_edit_mode THEN
  1215. cb_1.TriggerEvent(Clicked!)
  1216. END IF
  1217. end event