uo_workgroup_time.sru 32 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193
  1. $PBExportHeader$uo_workgroup_time.sru
  2. forward
  3. global type uo_workgroup_time from nonvisualobject
  4. end type
  5. end forward
  6. global type uo_workgroup_time from nonvisualobject
  7. end type
  8. global uo_workgroup_time uo_workgroup_time
  9. type variables
  10. PUBLIC PROTECTEDWRITE Long billid
  11. PUBLIC PROTECTEDWRITE String billcode //单据的唯一编号
  12. PUBLIC PROTECTEDWRITE DateTime opdate //建立时间,自动
  13. PUBLIC PROTECTEDWRITE String opemp //建立操作员
  14. PUBLIC PROTECTEDWRITE Int flag = 0 //审核标志
  15. PUBLIC PROTECTEDWRITE DateTime auditdate //审核时间
  16. PUBLIC PROTECTEDWRITE String auditrep //审核操作员
  17. long scid //分部ID
  18. long billtype //单据类型 0 - 工组完成时间 1-生产计划/指令单
  19. String dscrp = ''
  20. String relcode = ''
  21. DateTime billdate
  22. Boolean if_getid_ture = TRUE
  23. Transaction commit_transaction //数据commit事务
  24. s_orderworkgroup_timemx wkpmx[] //明细结构数组
  25. Long it_mxbt = 0 //明细结构数组末指针
  26. Boolean it_newbegin = FALSE //新建标志
  27. Boolean it_updatebegin = FALSE //修改标志
  28. Int uo_option_orderworkgroup_time
  29. end variables
  30. forward prototypes
  31. public function integer save (boolean arg_ifcommit, ref string arg_msg)
  32. public function integer auditing (boolean arg_ifcommit, ref string arg_msg)
  33. public function integer c_auditing (boolean arg_ifcommit, ref string arg_msg)
  34. public function integer p_reset ()
  35. public function integer add_dscrp (long arg_billid, string arg_newdescppart, ref string arg_msg)
  36. public function integer p_getinfo (long arg_billid, ref string arg_msg)
  37. public function integer newbegin ()
  38. public function integer updatebegin (long arg_billid, ref string arg_msg)
  39. public function integer del (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
  40. public function integer p_clearmx ()
  41. public function integer getinfo (long arg_billid, ref string arg_msg)
  42. public function integer acceptmx (long arg_printid, long arg_orderid, string arg_ordercode, long arg_mtrlid, string arg_mtrlcode, string arg_wkpname, long arg_wrkgrpid, long arg_owrkgrpid, datetime arg_old_begindate, datetime arg_new_begindate, datetime arg_old_requiredate, datetime arg_new_requiredate, datetime arg_old_perfinishdate, datetime arg_new_perfinishdate, string arg_mxdscrp, long arg_workgroupid, ref string arg_msg)
  43. end prototypes
  44. public function integer save (boolean arg_ifcommit, ref string arg_msg);Integer rslt = 1,cnt = 0,i
  45. DateTime server_dt
  46. Long ls_newid
  47. String ls_sccode
  48. IF IsNull(dscrp) THEN dscrp = ''
  49. IF IsNull(relcode) THEN relcode = ''
  50. IF it_newbegin = FALSE AND it_updatebegin = FALSE THEN
  51. rslt = 0
  52. arg_msg = "非编辑状态不可以提交"
  53. GOTO ext
  54. END IF
  55. IF it_mxbt = 0 THEN //
  56. rslt = 0
  57. arg_msg = "没有正确明细内容"
  58. GOTO ext
  59. END IF
  60. SELECT Top 1 getdate() INTO :server_dt FROM u_user USING commit_transaction ;
  61. //取得系统时间,借用操作员表
  62. IF commit_transaction.SQLCode <> 0 THEN
  63. rslt = 0
  64. arg_msg = "查询操作失败,日期 "
  65. GOTO ext
  66. END IF
  67. IF f_check_inoutdate(0,billdate,FALSE,arg_msg) = 0 THEN
  68. rslt = 0
  69. GOTO ext
  70. END IF
  71. ////////////////////////////////////////////// //开始区分:新建/更新 处理
  72. IF billid = 0 THEN //新建
  73. ls_newid = f_sys_scidentity(0,"u_orderworkgroup_time","billid",arg_msg,TRUE,id_sqlca)
  74. IF ls_newid <= 0 THEN
  75. rslt = 0
  76. GOTO ext
  77. END IF
  78. //取分部代号
  79. IF f_get_sccode(scid,commit_transaction,ls_sccode,arg_msg) = 0 THEN
  80. rslt = 0
  81. GOTO ext
  82. END IF
  83. //取得新单据编号
  84. IF billtype = 0 THEN
  85. billcode = getid(scid,ls_sccode + 'GT',Date(server_dt),if_getid_ture,commit_transaction)
  86. ELSEIF billtype = 1 THEN
  87. billcode = getid(scid,ls_sccode + 'OT',Date(server_dt),if_getid_ture,commit_transaction)
  88. END IF
  89. IF billcode = "err" THEN
  90. billcode = ''
  91. rslt = 0
  92. arg_msg = "无法获取单编号"+"~n"+commit_transaction.SQLErrText
  93. GOTO ext
  94. END IF
  95. INSERT INTO u_orderworkgroup_time (
  96. billid,
  97. billcode,
  98. billdate,
  99. relcode,
  100. dscrp,
  101. opdate,
  102. opemp,
  103. scid,
  104. billtype)
  105. VALUES (
  106. :ls_newid,
  107. :billcode,
  108. :billdate,
  109. :relcode,
  110. :dscrp,
  111. :server_dt,
  112. :publ_operator,
  113. :scid,
  114. :billtype) USING commit_transaction ;
  115. IF commit_transaction.SQLCode <> 0 THEN
  116. rslt = 0
  117. arg_msg = "因网络或其它原因导致插入操作失败"+"~n"+commit_transaction.SQLErrText
  118. GOTO ext
  119. END IF
  120. billid = ls_newid
  121. FOR i = 1 TO it_mxbt
  122. INSERT INTO u_orderworkgroup_timemx
  123. (billid,
  124. printid,
  125. mtrlid,
  126. orderid,
  127. wkpname,
  128. wrkGrpid,
  129. owrkGrpid,
  130. old_requiredate,
  131. new_requiredate,
  132. mxdscrp,
  133. old_begindate,
  134. new_begindate,
  135. old_perfinishdate,
  136. new_perfinishdate,
  137. workgroupid)
  138. VALUES (
  139. :ls_newid,
  140. :wkpmx[i].printid,
  141. :wkpmx[i].mtrlid,
  142. :wkpmx[i].orderid,
  143. :wkpmx[i].wkpname,
  144. :wkpmx[i].wrkGrpid,
  145. :wkpmx[i].owrkGrpid,
  146. :wkpmx[i].old_requiredate,
  147. :wkpmx[i].new_requiredate,
  148. :wkpmx[i].mxdscrp,
  149. :wkpmx[i].old_begindate,
  150. :wkpmx[i].new_begindate,
  151. :wkpmx[i].old_perfinishdate,
  152. :wkpmx[i].new_perfinishdate,
  153. :wkpmx[i].workgroupid
  154. ) USING commit_transaction;
  155. IF commit_transaction.SQLCode <> 0 THEN
  156. billid = 0 //billid
  157. rslt = 0
  158. arg_msg = "因网络或其它原因导致插入明细操作失败"+"~n"+commit_transaction.SQLErrText
  159. GOTO ext
  160. END IF
  161. NEXT
  162. ELSE //////////////////////////////////////////////// //更新
  163. UPDATE u_orderworkgroup_time
  164. SET billdate = :billdate,
  165. relcode = :relcode,
  166. dscrp = :dscrp,
  167. moddate = :server_dt,
  168. modrep = :publ_operator
  169. WHERE u_orderworkgroup_time.billid = :billid
  170. AND flag = 0 USING commit_transaction;
  171. IF commit_transaction.SQLCode <> 0 THEN
  172. rslt = 0
  173. arg_msg = "因网络或其它原因导致更新单据操作失败"+"~n"+commit_transaction.SQLErrText
  174. GOTO ext
  175. END IF
  176. //删除原有明细
  177. DELETE FROM u_orderworkgroup_timemx
  178. Where u_orderworkgroup_timemx.billid = :billid USING commit_transaction;
  179. IF commit_transaction.SQLCode <> 0 THEN
  180. rslt = 0
  181. arg_msg = "删除旧有明细操作失败"+"~n"+commit_transaction.SQLErrText
  182. GOTO ext
  183. END IF
  184. FOR i = 1 TO it_mxbt
  185. INSERT INTO u_orderworkgroup_timemx
  186. (billid,
  187. printid,
  188. mtrlid,
  189. orderid,
  190. wkpname,
  191. wrkGrpid,
  192. owrkGrpid,
  193. old_requiredate,
  194. new_requiredate,
  195. mxdscrp,
  196. old_begindate,
  197. new_begindate,
  198. old_perfinishdate,
  199. new_perfinishdate,
  200. workgroupid)
  201. VALUES (
  202. :billid,
  203. :wkpmx[i].printid,
  204. :wkpmx[i].mtrlid,
  205. :wkpmx[i].orderid,
  206. :wkpmx[i].wkpname,
  207. :wkpmx[i].wrkGrpid,
  208. :wkpmx[i].owrkGrpid,
  209. :wkpmx[i].old_requiredate,
  210. :wkpmx[i].new_requiredate,
  211. :wkpmx[i].mxdscrp,
  212. :wkpmx[i].old_begindate,
  213. :wkpmx[i].new_begindate,
  214. :wkpmx[i].old_perfinishdate,
  215. :wkpmx[i].new_perfinishdate,
  216. :wkpmx[i].workgroupid
  217. ) USING commit_transaction;
  218. IF commit_transaction.SQLCode <> 0 THEN
  219. billid = 0 //billid
  220. rslt = 0
  221. arg_msg = "因网络或其它原因导致插入明细操作失败"+"~n"+commit_transaction.SQLErrText
  222. GOTO ext
  223. END IF
  224. NEXT
  225. END IF
  226. it_newbegin = FALSE
  227. it_updatebegin = FALSE
  228. ext:
  229. IF rslt = 0 THEN
  230. ROLLBACK USING commit_transaction;
  231. p_clearmx()
  232. ELSEIF rslt = 1 AND arg_ifcommit THEN
  233. COMMIT USING commit_transaction;
  234. END IF
  235. RETURN rslt
  236. end function
  237. public function integer auditing (boolean arg_ifcommit, ref string arg_msg);//====================================================================
  238. // Function: auditing(arg_ifcommit,arg_msg)
  239. //--------------------------------------------------------------------
  240. // Description: 审核单据
  241. //--------------------------------------------------------------------
  242. // Arguments:
  243. // value boolean arg_ifcommit
  244. // reference string arg_msg
  245. //--------------------------------------------------------------------
  246. // Returns: integer
  247. //--------------------------------------------------------------------
  248. // Author: yyx Date: 2003.11.12
  249. //--------------------------------------------------------------------
  250. // Modify History:
  251. //
  252. //====================================================================
  253. Long rslt = 1,cnt = 0,i
  254. Long ls_newid
  255. Long ll_daysafter
  256. DateTime ldt_wrkdate
  257. Decimal ld_order_wrk,ld_orderqty
  258. Long ll_workgroupid
  259. Long ll_j
  260. IF billid = 0 THEN
  261. rslt = 0
  262. arg_msg = "没有审核对象"
  263. GOTO ext
  264. END IF
  265. IF it_newbegin Or it_updatebegin THEN
  266. rslt = 0
  267. arg_msg = "编辑状态下不可以执行审核"
  268. GOTO ext
  269. END IF
  270. IF flag = 1 THEN
  271. rslt = 0
  272. arg_msg = "单据已经审核"
  273. GOTO ext
  274. END IF
  275. UPDATE u_orderworkgroup_time
  276. SET auditrep = :publ_operator,
  277. auditdate = getdate(),
  278. flag = 1
  279. WHERE u_orderworkgroup_time.billid = :billid
  280. And flag = 0 Using commit_transaction;
  281. IF commit_transaction.SQLCode <> 0 THEN
  282. rslt = 0
  283. arg_msg = "因网络或其它原因导致审核单据操作失败"+"~n"+commit_transaction.SQLErrText
  284. GOTO ext
  285. ELSEIF commit_transaction.SQLNRows = 0 THEN
  286. rslt = 0
  287. arg_msg = "单据正在审核,请稍后查询。"+"~n"+commit_transaction.SQLErrText
  288. GOTO ext
  289. END IF
  290. FOR i = 1 To it_mxbt
  291. IF billtype = 0 THEN
  292. UPDATE u_OrderMtrl_workgroup
  293. SET requiredate = :wkpmx[i].new_requiredate,
  294. begindate = :wkpmx[i].new_begindate
  295. WHERE orderid = :wkpmx[i].orderid
  296. AND mtrlid = :wkpmx[i].mtrlid
  297. AND wkpname = :wkpmx[i].wkpname
  298. AND wrkGrpid = :wkpmx[i].wrkGrpid
  299. AND owrkGrpid = :wkpmx[i].owrkGrpid
  300. and workgroupid = :wkpmx[i].workgroupid
  301. AND scid = :scid
  302. Using commit_transaction;
  303. IF commit_transaction.SQLCode <> 0 THEN
  304. arg_msg = '更新物料:'+wkpmx[i].mtrlcode+'工组新要求完成时间失败,原因:'+commit_transaction.SQLErrText
  305. rslt = 0
  306. GOTO ext
  307. END IF
  308. SELECT orderqty INTO :ld_orderqty
  309. FROM u_order_ml
  310. WHERE scid = :scid
  311. AND orderid = :wkpmx[i].orderid
  312. Using commit_transaction;
  313. IF commit_transaction.SQLCode <> 0 THEN
  314. arg_msg = '查询物料:'+wkpmx[i].mtrlcode+'相关生产计划信息失败,原因:'+commit_transaction.SQLErrText
  315. rslt = 0
  316. GOTO ext
  317. END IF
  318. // SELECT workgroupid INTO :ll_workgroupid
  319. // FROM u_OrderMtrl_workgroup
  320. // WHERE orderid = :wkpmx[i].orderid
  321. // AND mtrlid = :wkpmx[i].mtrlid
  322. // AND wkpname = :wkpmx[i].wkpname
  323. // AND wrkGrpid = :wkpmx[i].wrkGrpid
  324. // AND owrkGrpid = :wkpmx[i].owrkGrpid
  325. // AND scid = :scid
  326. // Using commit_transaction;
  327. // IF commit_transaction.SQLCode <> 0 THEN
  328. // arg_msg = '查询物料:'+wkpmx[i].mtrlcode+'相关工组进度信息失败,原因:'+commit_transaction.SQLErrText
  329. // rslt = 0
  330. // GOTO ext
  331. // END IF
  332. //按日期加入进度表
  333. DELETE FROM u_ordermtrl_wrk_jd
  334. WHERE orderid = :wkpmx[i].orderid
  335. AND scid = :scid
  336. AND wrkgrpid = :wkpmx[i].wrkGrpid
  337. AND owrkgrpid = :wkpmx[i].owrkGrpid
  338. And wkpname = :wkpmx[i].wkpname
  339. and workgroupid = :wkpmx[i].workgroupid;
  340. IF sqlca.SQLCode <> 0 THEN
  341. rslt = 0
  342. arg_msg = "删除工组工作量明细表相应记录操作失败"+"~n"+sqlca.SQLErrText
  343. GOTO ext
  344. END IF
  345. ll_daysafter = DaysAfter(Date(wkpmx[i].new_begindate), Date(wkpmx[i].new_requiredate))
  346. IF ll_daysafter + 1 <> 0 THEN
  347. ld_order_wrk = ld_orderqty / (ll_daysafter + 1)
  348. FOR ll_j = 1 To ll_daysafter + 1
  349. ldt_wrkdate = DateTime(RelativeDate(Date(wkpmx[i].new_begindate),ll_j - 1 ),Time(0))
  350. INSERT INTO u_ordermtrl_wrk_jd
  351. (scid,
  352. orderid,
  353. wrkgrpid,
  354. owrkgrpid,
  355. wkpname,
  356. wrkdate,
  357. orderqty,
  358. workgroupid)
  359. VALUES
  360. (:scid,
  361. :wkpmx[i].orderid,
  362. :wkpmx[i].wrkGrpid,
  363. :wkpmx[i].owrkGrpid ,
  364. :wkpmx[i].wkpname,
  365. :ldt_wrkdate,
  366. :ld_order_wrk,
  367. :wkpmx[i].workgroupid);
  368. IF sqlca.SQLCode <> 0 THEN
  369. rslt = 0
  370. arg_msg = "插入工组工作量明细表失败"+"~n"+sqlca.SQLErrText
  371. GOTO ext
  372. END IF
  373. NEXT
  374. END IF
  375. ELSEIF billtype = 1 THEN
  376. UPDATE u_order_ml
  377. SET requiredate = :wkpmx[i].new_requiredate,
  378. orderdate = :wkpmx[i].new_begindate,
  379. perfinishdate = :wkpmx[i].new_perfinishdate
  380. WHERE orderid = :wkpmx[i].orderid
  381. AND mtrlid = :wkpmx[i].mtrlid
  382. AND scid = :scid
  383. Using commit_transaction;
  384. IF commit_transaction.SQLCode <> 0 THEN
  385. arg_msg = '更新计划:'+wkpmx[i].ordercode+'要求完成时间失败,原因:'+commit_transaction.SQLErrText
  386. rslt = 0
  387. GOTO ext
  388. END IF
  389. ll_daysafter = DaysAfter(Date(wkpmx[i].old_requiredate),Date(wkpmx[i].new_requiredate))
  390. IF ll_daysafter <> 0 THEN
  391. UPDATE u_OrderRqMtrl
  392. SET rqdate_ori = rqdate,
  393. edate_ori = edate
  394. WHERE orderid = :wkpmx[i].orderid
  395. And scid = :scid;
  396. IF commit_transaction.SQLCode <> 0 THEN
  397. arg_msg = '更新计划:'+wkpmx[i].ordercode+'要求完成时间失败,原因:'+commit_transaction.SQLErrText
  398. rslt = 0
  399. GOTO ext
  400. END IF
  401. UPDATE u_orderrqmtrl
  402. SET rqdate = DATEADD(day,:ll_daysafter, rqdate),
  403. edate = DATEADD(day,:ll_daysafter, edate)
  404. WHERE orderid = :wkpmx[i].orderid
  405. And scid = :scid;
  406. IF commit_transaction.SQLCode <> 0 THEN
  407. arg_msg = '更新计划:'+wkpmx[i].ordercode+'用料需求时间失败,原因:'+commit_transaction.SQLErrText
  408. rslt = 0
  409. GOTO ext
  410. END IF
  411. UPDATE u_OrderRqMtrl_tree
  412. SET rqdate = DATEADD(day,:ll_daysafter, rqdate),
  413. edate = DATEADD(day,:ll_daysafter, edate)
  414. WHERE orderid = :wkpmx[i].orderid
  415. And scid = :scid;
  416. IF commit_transaction.SQLCode <> 0 THEN
  417. arg_msg = '更新计划:'+wkpmx[i].ordercode+'运算内容用料需求时间失败,原因:'+commit_transaction.SQLErrText
  418. rslt = 0
  419. GOTO ext
  420. END IF
  421. END IF
  422. END IF
  423. NEXT
  424. flag = 1
  425. ext:
  426. IF rslt = 0 THEN
  427. ROLLBACK Using commit_transaction;
  428. ELSEIF rslt = 1 And arg_ifcommit THEN
  429. COMMIT Using commit_transaction;
  430. END IF
  431. RETURN rslt
  432. end function
  433. public function integer c_auditing (boolean arg_ifcommit, ref string arg_msg);//====================================================================
  434. // function: c_auditing(arg_ifcommit,arg_msg)
  435. //--------------------------------------------------------------------
  436. // description: 撤审
  437. //--------------------------------------------------------------------
  438. // arguments:
  439. // value boolean arg_ifcommit
  440. // reference string arg_msg
  441. //--------------------------------------------------------------------
  442. // returns: integer
  443. //--------------------------------------------------------------------
  444. // author: yyx date: 2003.11.19
  445. //--------------------------------------------------------------------
  446. // modify history:
  447. //
  448. //====================================================================
  449. Long rslt = 1,cnt = 0,i
  450. DateTime null_dt,ldt_wrkdate
  451. Long ll_daysafter
  452. decimal ld_order_wrk,ld_orderqty
  453. long ll_workgroupid,ll_j
  454. SetNull(null_dt)
  455. IF billid = 0 THEN
  456. rslt = 0
  457. arg_msg = "没有审核对象"
  458. GOTO ext
  459. END IF
  460. IF it_newbegin OR it_updatebegin THEN
  461. rslt = 0
  462. arg_msg = "编辑状态下不可以执行审核"
  463. GOTO ext
  464. END IF
  465. IF flag = 0 THEN
  466. rslt = 0
  467. arg_msg = "单据还未审核"
  468. GOTO ext
  469. END IF
  470. UPDATE u_orderworkgroup_time
  471. SET auditrep = '',
  472. auditdate = :null_dt,
  473. flag = 0
  474. WHERE u_orderworkgroup_time.billid = :billid
  475. AND flag = 1 USING commit_transaction;
  476. IF commit_transaction.SQLCode <> 0 THEN
  477. rslt = 0
  478. arg_msg = "因网络或其它原因导致审核单据操作失败"+"~n"+commit_transaction.SQLErrText
  479. GOTO ext
  480. ELSEIF commit_transaction.SQLNRows = 0 THEN
  481. rslt = 0
  482. arg_msg = "单据正在撤消审核,请稍后查询。"+"~n"+commit_transaction.SQLErrText
  483. GOTO ext
  484. END IF
  485. FOR i = 1 TO it_mxbt
  486. IF billtype = 0 THEN
  487. UPDATE u_ordermtrl_workgroup
  488. SET requiredate = :wkpmx[i].old_requiredate
  489. WHERE orderid = :wkpmx[i].orderid
  490. AND mtrlid = :wkpmx[i].mtrlid
  491. AND wkpname = :wkpmx[i].wkpname
  492. AND wrkgrpid = :wkpmx[i].wrkGrpid
  493. AND owrkGrpid = :wkpmx[i].owrkGrpid
  494. and workgroupid = :wkpmx[i].workgroupid
  495. AND scid = :scid
  496. USING commit_transaction;
  497. IF commit_transaction.SQLCode <> 0 THEN
  498. arg_msg = '更新源工组要求完成日期失败,原因:'+commit_transaction.SQLErrText
  499. rslt = 0
  500. GOTO ext
  501. END IF
  502. SELECT orderqty INTO :ld_orderqty
  503. FROM u_order_ml
  504. WHERE scid = :scid
  505. AND orderid = :wkpmx[i].orderid
  506. Using commit_transaction;
  507. IF commit_transaction.SQLCode <> 0 THEN
  508. arg_msg = '查询物料:'+wkpmx[i].mtrlcode+'相关生产计划信息失败,原因:'+commit_transaction.SQLErrText
  509. rslt = 0
  510. GOTO ext
  511. END IF
  512. // SELECT workgroupid INTO :ll_workgroupid
  513. // FROM u_OrderMtrl_workgroup
  514. // WHERE orderid = :wkpmx[i].orderid
  515. // AND mtrlid = :wkpmx[i].mtrlid
  516. // AND wkpname = :wkpmx[i].wkpname
  517. // AND wrkGrpid = :wkpmx[i].wrkGrpid
  518. // AND owrkGrpid = :wkpmx[i].owrkGrpid
  519. // AND scid = :scid
  520. // Using commit_transaction;
  521. // IF commit_transaction.SQLCode <> 0 THEN
  522. // arg_msg = '查询物料:'+wkpmx[i].mtrlcode+'相关工组进度信息失败,原因:'+commit_transaction.SQLErrText
  523. // rslt = 0
  524. // GOTO ext
  525. // END IF
  526. //按日期加入进度表
  527. DELETE FROM u_ordermtrl_wrk_jd
  528. WHERE orderid = :wkpmx[i].orderid
  529. AND scid = :scid
  530. AND wrkgrpid = :wkpmx[i].wrkGrpid
  531. AND owrkgrpid = :wkpmx[i].owrkGrpid
  532. And wkpname = :wkpmx[i].wkpname
  533. and workgroupid = :wkpmx[i].workgroupid;
  534. IF sqlca.SQLCode <> 0 THEN
  535. rslt = 0
  536. arg_msg = "删除工组工作量明细表相应记录操作失败"+"~n"+sqlca.SQLErrText
  537. GOTO ext
  538. END IF
  539. ll_daysafter = DaysAfter(Date(wkpmx[i].old_begindate), Date(wkpmx[i].old_requiredate))
  540. IF ll_daysafter + 1 <> 0 THEN
  541. ld_order_wrk = ld_orderqty / (ll_daysafter + 1)
  542. FOR ll_j = 1 To ll_daysafter + 1
  543. ldt_wrkdate = DateTime(RelativeDate(Date(wkpmx[i].old_begindate),ll_j - 1 ),Time(0))
  544. INSERT INTO u_ordermtrl_wrk_jd
  545. (scid,
  546. orderid,
  547. wrkgrpid,
  548. owrkgrpid,
  549. wkpname,
  550. wrkdate,
  551. orderqty,
  552. workgroupid)
  553. VALUES
  554. (:scid,
  555. :wkpmx[i].orderid,
  556. :wkpmx[i].wrkGrpid,
  557. :wkpmx[i].owrkGrpid ,
  558. :wkpmx[i].wkpname,
  559. :ldt_wrkdate,
  560. :ld_order_wrk,
  561. :wkpmx[i].workgroupid);
  562. IF sqlca.SQLCode <> 0 THEN
  563. rslt = 0
  564. arg_msg = "插入工组工作量明细表失败"+"~n"+sqlca.SQLErrText
  565. GOTO ext
  566. END IF
  567. NEXT
  568. END IF
  569. ELSEIF billtype = 1 THEN
  570. UPDATE u_order_ml
  571. SET requiredate = :wkpmx[i].old_requiredate
  572. WHERE orderid = :wkpmx[i].orderid
  573. AND scid = :scid
  574. USING commit_transaction;
  575. IF commit_transaction.SQLCode <> 0 THEN
  576. arg_msg = '更新源生产计划'+wkpmx[i].ordercode+'要求完成日期失败,原因:'+commit_transaction.SQLErrText
  577. rslt = 0
  578. GOTO ext
  579. END IF
  580. UPDATE u_orderrqmtrl
  581. SET rqdate = rqdate_ori,
  582. edate = edate_ori,
  583. rqdate_ori = :null_dt,
  584. edate_ori = :null_dt
  585. WHERE orderid = :wkpmx[i].orderid
  586. AND scid = :scid;
  587. IF commit_transaction.SQLCode <> 0 THEN
  588. arg_msg = '更新计划:'+wkpmx[i].ordercode+'用料需求时间失败,原因:'+commit_transaction.SQLErrText
  589. rslt = 0
  590. GOTO ext
  591. END IF
  592. ll_daysafter = DaysAfter(Date(wkpmx[i].old_requiredate),Date(wkpmx[i].new_requiredate))
  593. IF ll_daysafter <> 0 THEN
  594. UPDATE u_OrderRqMtrl_tree
  595. SET rqdate = DATEADD(day,0 - :ll_daysafter, rqdate),
  596. edate = DATEADD(day,0 - :ll_daysafter, edate)
  597. WHERE orderid = :wkpmx[i].orderid
  598. AND scid = :scid;
  599. IF commit_transaction.SQLCode <> 0 THEN
  600. arg_msg = '更新计划:'+wkpmx[i].ordercode+'运算内容用料需求时间失败,原因:'+commit_transaction.SQLErrText
  601. rslt = 0
  602. GOTO ext
  603. END IF
  604. END IF
  605. END IF
  606. NEXT
  607. flag = 0
  608. ext:
  609. IF rslt = 0 THEN
  610. ROLLBACK USING commit_transaction;
  611. ELSEIF rslt = 1 AND arg_ifcommit THEN
  612. COMMIT USING commit_transaction;
  613. END IF
  614. RETURN rslt
  615. end function
  616. public function integer p_reset ();//int p_reset()
  617. //清除对象及其明细
  618. billid=0
  619. billcode=''
  620. opemp=''
  621. auditrep=''
  622. flag=0
  623. relcode=''
  624. dscrp = ''
  625. it_newbegin=false
  626. it_updatebegin=false
  627. //清除明细
  628. p_clearmx()
  629. return 1
  630. end function
  631. public function integer add_dscrp (long arg_billid, string arg_newdescppart, ref string arg_msg);//add_dscrp(string arg_newdescppart)
  632. //0 fail 1 success
  633. int rslt=1
  634. arg_newdescppart=trim(arg_newdescppart)
  635. if it_updatebegin or it_newbegin then
  636. rslt=0
  637. arg_msg="编辑状态下不可用"
  638. goto ext
  639. end if
  640. if arg_newdescppart='' then
  641. rslt=0
  642. arg_msg="要添加内容为空,操作取消"
  643. goto ext
  644. end if
  645. rslt=p_getinfo(arg_billid,arg_msg)
  646. if rslt=0 then goto ext
  647. if flag=0 then
  648. rslt=0
  649. arg_msg="非审核状态下不可用"
  650. goto ext
  651. end if
  652. update u_orderworkgroup_time
  653. set dscrp = dscrp+' '+:arg_newdescppart
  654. where u_orderworkgroup_time.billid = :arg_billid using commit_transaction;
  655. if commit_transaction.sqlcode<>0 then
  656. rollback using commit_transaction;
  657. rslt=0
  658. arg_msg="因网络或其它原因导致添加单据备注操作失败"+"~n"+commit_transaction.sqlerrtext
  659. goto ext
  660. end if
  661. commit using commit_transaction;
  662. dscrp = dscrp+' '+arg_newdescppart
  663. ext: return (rslt)
  664. end function
  665. public function integer p_getinfo (long arg_billid, ref string arg_msg);//p_getinfo(arg_billid,arg_msg)
  666. //0 失败 1成功
  667. INT rslt=1
  668. IF arg_billid<=0 THEN
  669. rslt=0
  670. arG_MSG="非法单据唯一码"
  671. goto ext
  672. end if
  673. SELECT billcode,
  674. relcode,
  675. flag,
  676. dscrp,
  677. billdate,
  678. scid,
  679. billtype
  680. INTO :billcode,
  681. :relcode,
  682. :flag,
  683. :dscrp,
  684. :billdate,
  685. :scid,
  686. :billtype
  687. FROM u_orderworkgroup_time
  688. WHERE u_orderworkgroup_time.billid = :arg_billid
  689. using commit_transaction;
  690. if commit_transaction.sqlcode<>0 then
  691. rslt=0
  692. arG_MSG="查询操作失败(错误单据唯一码)"+commit_transaction.sqlerrtext
  693. goto ext
  694. end if
  695. billid = arg_billid
  696. ext:
  697. IF rslt=0 THEN p_reset()
  698. return rslt
  699. end function
  700. public function integer newbegin ();//====================================================================
  701. // Function: newbegin(long arg_scid,int arg_billtype,ref string arg_msg)
  702. //--------------------------------------------------------------------
  703. // Description: 从置对象,设定业务类型,准备建立新进仓单
  704. //--------------------------------------------------------------------
  705. // Arguments:
  706. // value long arg_scid
  707. // value integer arg_billtype
  708. // reference string arg_msg
  709. //--------------------------------------------------------------------
  710. // Returns: integer
  711. //--------------------------------------------------------------------
  712. // Author: yyx Date: 2003.11.12
  713. //--------------------------------------------------------------------
  714. // Modify History:
  715. //
  716. //====================================================================
  717. int rslt=1
  718. p_reset()
  719. it_newbegin=true
  720. it_updatebegin=false
  721. return rslt
  722. end function
  723. public function integer updatebegin (long arg_billid, ref string arg_msg);//====================================================================
  724. // function: updatebegin()
  725. //--------------------------------------------------------------------
  726. // description:
  727. //--------------------------------------------------------------------
  728. // arguments:
  729. // value long arg_billid
  730. // reference string arg_msg
  731. //--------------------------------------------------------------------
  732. // returns: integer
  733. //--------------------------------------------------------------------
  734. // author: yyx date: 2004.08.17
  735. //--------------------------------------------------------------------
  736. // modify history:
  737. //
  738. //====================================================================
  739. long rslt = 1
  740. if arg_billid <= 0 then
  741. rslt = 0
  742. goto ext
  743. end if
  744. rslt = p_getinfo(arg_billid,arg_msg)
  745. if rslt = 0 then goto ext
  746. if flag = 1 then
  747. rslt = 0
  748. arg_msg = '单据已经审核,不可以修改'
  749. goto ext
  750. end if
  751. billid = arg_billid
  752. it_newbegin = false
  753. it_updatebegin = true
  754. p_clearmx() //清除明细
  755. ext:
  756. if rslt = 0 then p_reset()
  757. return rslt
  758. end function
  759. public function integer del (long arg_billid, ref string arg_msg, boolean arg_ifcommit);
  760. Int rslt = 1
  761. IF arg_billid <= 0 THEN
  762. rslt = 0
  763. arg_msg = "没有删除对象,操作取消"
  764. GOTO ext
  765. END IF
  766. rslt = p_getinfo(arg_billid,arg_msg)
  767. IF rslt = 0 THEN GOTO ext
  768. IF flag = 1 THEN
  769. rslt = 0
  770. arg_msg = "单据已经审核,不可以删除"
  771. GOTO ext
  772. END IF
  773. DELETE FROM u_orderworkgroup_time
  774. Where u_orderworkgroup_time.billid = :arg_billid USING commit_transaction;
  775. IF commit_transaction.SQLCode <> 0 THEN
  776. rslt = 0
  777. arg_msg = "删除进仓单操作失败"+"~n"+commit_transaction.SQLErrText
  778. GOTO ext
  779. END IF
  780. it_newbegin = FALSE
  781. it_updatebegin = FALSE
  782. ext:
  783. IF rslt = 0 THEN
  784. ROLLBACK USING commit_transaction;
  785. ELSEIF rslt = 1 AND arg_ifcommit THEN
  786. COMMIT USING commit_transaction;
  787. END IF
  788. p_reset()
  789. RETURN rslt
  790. end function
  791. public function integer p_clearmx ();//int p_clearmx()
  792. //清除明细
  793. it_mxbt=0
  794. return 1
  795. end function
  796. public function integer getinfo (long arg_billid, ref string arg_msg);Int rslt = 1,i = 1,no_mxcheck = 0
  797. IF arg_billid <= 0 THEN
  798. rslt = 0
  799. arg_msg = "非法单据唯一码"
  800. GOTO ext
  801. END IF
  802. rslt = p_getinfo(arg_billid,arg_msg)
  803. IF rslt = 0 THEN GOTO ext
  804. //用游标读取明细
  805. DECLARE cur_wkpmx CURSOR FOR
  806. SELECT u_orderworkgroup_timemx.printid,
  807. u_orderworkgroup_timemx.mtrlid,
  808. u_mtrldef.mtrlcode,
  809. u_orderworkgroup_timemx.wkpname,
  810. u_orderworkgroup_timemx.wrkGrpid,
  811. u_orderworkgroup_timemx.owrkGrpid,
  812. u_orderworkgroup_timemx.old_requiredate,
  813. u_orderworkgroup_timemx.new_requiredate,
  814. u_orderworkgroup_timemx.orderid,
  815. u_order_ml.ordercode,
  816. u_orderworkgroup_timemx.mxdscrp,
  817. u_orderworkgroup_timemx.old_begindate,
  818. u_orderworkgroup_timemx.new_begindate,
  819. u_orderworkgroup_timemx.old_perfinishdate,
  820. u_orderworkgroup_timemx.new_perfinishdate,
  821. u_orderworkgroup_timemx.workgroupid
  822. FROM u_orderworkgroup_timemx,u_mtrldef,u_order_ml
  823. WHERE u_orderworkgroup_timemx.billid = :arg_billid AND
  824. u_orderworkgroup_timemx.mtrlid = u_mtrldef.mtrlid AND
  825. u_orderworkgroup_timemx.orderid = u_Order_ml.orderid
  826. USING commit_transaction;
  827. OPEN cur_wkpmx;
  828. FETCH cur_wkpmx INTO :wkpmx[i].printid,:wkpmx[i].mtrlid,
  829. :wkpmx[i].mtrlcode,:wkpmx[i].wkpname,:wkpmx[i].wrkGrpid,:wkpmx[i].owrkGrpid,
  830. :wkpmx[i].old_requiredate,
  831. :wkpmx[i].new_requiredate,:wkpmx[i].orderid,:wkpmx[i].ordercode,:wkpmx[i].mxdscrp,
  832. :wkpmx[i].old_begindate,:wkpmx[i].new_begindate,
  833. :wkpmx[i].old_perfinishdate,:wkpmx[i].new_perfinishdate,:wkpmx[i].workgroupid;
  834. DO WHILE commit_transaction.SQLCode = 0
  835. i++
  836. FETCH cur_wkpmx INTO :wkpmx[i].printid,:wkpmx[i].mtrlid,
  837. :wkpmx[i].mtrlcode,:wkpmx[i].wkpname,:wkpmx[i].wrkGrpid,:wkpmx[i].owrkGrpid,
  838. :wkpmx[i].old_requiredate,
  839. :wkpmx[i].new_requiredate,:wkpmx[i].orderid,:wkpmx[i].ordercode,:wkpmx[i].mxdscrp,
  840. :wkpmx[i].old_begindate,:wkpmx[i].new_begindate,
  841. :wkpmx[i].old_perfinishdate,:wkpmx[i].new_perfinishdate,:wkpmx[i].workgroupid;
  842. LOOP
  843. CLOSE cur_wkpmx;
  844. //检验明细是否读入完整
  845. SELECT count(*) INTO :no_mxcheck
  846. FROM u_orderworkgroup_timemx
  847. WHERE u_orderworkgroup_timemx.billid = :arg_billid
  848. USING commit_transaction;
  849. IF commit_transaction.SQLCode <> 0 THEN
  850. rslt = 0
  851. arg_msg = "查询操作失败,单据明细数量"
  852. GOTO ext
  853. END IF
  854. IF i <> (no_mxcheck+1) THEN
  855. rslt = 0
  856. arg_msg = "查询操作失败,单据明细"
  857. GOTO ext
  858. END IF
  859. billid = arg_billid
  860. it_mxbt = i - 1
  861. it_newbegin = FALSE
  862. it_updatebegin = FALSE
  863. ext:
  864. IF rslt = 0 THEN p_reset()
  865. RETURN rslt
  866. end function
  867. public function integer acceptmx (long arg_printid, long arg_orderid, string arg_ordercode, long arg_mtrlid, string arg_mtrlcode, string arg_wkpname, long arg_wrkgrpid, long arg_owrkgrpid, datetime arg_old_begindate, datetime arg_new_begindate, datetime arg_old_requiredate, datetime arg_new_requiredate, datetime arg_old_perfinishdate, datetime arg_new_perfinishdate, string arg_mxdscrp, long arg_workgroupid, ref string arg_msg);Int rslt = 1
  868. Long cnt = 0,ls_i
  869. String ls_swkpname,ls_owkpname
  870. Int li_iflast
  871. IF uo_option_orderworkgroup_time = -1000 THEN
  872. arg_msg = '选项:[118]工组交接时间精确到小时,读取初始默认值失败,操作取消!'
  873. rslt = 0
  874. GOTO ext
  875. END IF
  876. IF it_newbegin = False And it_updatebegin = False THEN
  877. rslt = 0
  878. arg_msg = "非编辑状态不可以使用,操作取消"
  879. GOTO ext
  880. END IF
  881. //清除空值
  882. IF IsNull(arg_printid) THEN arg_printid = 0
  883. IF IsNull(arg_orderid) THEN arg_orderid = 0
  884. IF IsNull(arg_ordercode) THEN arg_ordercode = ''
  885. IF IsNull(arg_wkpname) THEN arg_wkpname = ''
  886. IF IsNull(arg_mtrlid) THEN arg_mtrlid = 0
  887. IF IsNull(arg_mtrlcode) THEN arg_mtrlcode = ''
  888. IF IsNull(arg_wrkGrpid) THEN arg_wrkGrpid = 0
  889. IF IsNull(arg_owrkGrpid) THEN arg_owrkGrpid = 0
  890. IF IsNull(arg_mxdscrp) THEN arg_mxdscrp = ''
  891. IF IsNull(arg_workgroupid) THEN arg_workgroupid = 0
  892. //检查物料id
  893. SELECT count(*)
  894. INTO :cnt
  895. FROM u_order_ml
  896. WHERE mtrlid = :arg_mtrlid
  897. AND orderid = :arg_orderid
  898. And scid = :scid Using commit_transaction ;
  899. IF commit_transaction.SQLCode <> 0 THEN
  900. rslt = 0
  901. arg_msg = "查询生产计划操作失败,编号:"+arg_mtrlcode
  902. GOTO ext
  903. END IF
  904. //检查工组
  905. IF billtype = 0 THEN //调工组时间单据,检查工组相关信息
  906. SELECT wrkGrpName INTO :ls_swkpname
  907. FROM u_sc_workgroup
  908. Where wrkGrpid = :arg_wrkGrpid;
  909. IF sqlca.SQLCode <> 0 THEN
  910. arg_msg = '查询调出工组名称失败'
  911. rslt = 0
  912. GOTO ext
  913. END IF
  914. SELECT u_ordermtrl_workgroup.iflast
  915. INTO :li_iflast
  916. FROM u_OrderMtrl_workgroup
  917. WHERE u_OrderMtrl_workgroup.wrkGrpid = :arg_wrkgrpid
  918. AND u_OrderMtrl_workgroup.owrkGrpid = :arg_owrkgrpid
  919. AND u_OrderMtrl_workgroup.orderid = :arg_orderid
  920. AND u_OrderMtrl_workgroup.wkpname = :arg_wkpname
  921. AND u_OrderMtrl_workgroup.scid = :scid
  922. and u_OrderMtrl_workgroup.workgroupid = :arg_workgroupid
  923. Using commit_transaction ;
  924. IF commit_transaction.SQLCode <> 0 THEN
  925. rslt = 0
  926. arg_msg = "查询操作失败,工组调拨,计划:"+arg_ordercode+",物料:"+arg_mtrlcode
  927. GOTO ext
  928. END IF
  929. IF li_iflast <> 1 THEN
  930. SELECT wrkGrpName INTO :ls_owkpname
  931. FROM u_sc_workgroup
  932. Where wrkGrpid = :arg_owrkGrpid;
  933. IF sqlca.SQLCode <> 0 THEN
  934. arg_msg = '查询调入工组名称失败'
  935. rslt = 0
  936. GOTO ext
  937. END IF
  938. END IF
  939. cnt = 0
  940. SELECT count(*)
  941. INTO :cnt
  942. FROM u_OrderMtrl_workgroup
  943. WHERE u_OrderMtrl_workgroup.wrkGrpid = :arg_wrkgrpid
  944. AND u_OrderMtrl_workgroup.owrkGrpid = :arg_owrkgrpid
  945. AND u_OrderMtrl_workgroup.orderid = :arg_orderid
  946. AND u_OrderMtrl_workgroup.wkpname = :arg_wkpname
  947. AND u_OrderMtrl_workgroup.scid = :scid
  948. and u_OrderMtrl_workgroup.workgroupid = :arg_workgroupid
  949. Using commit_transaction ;
  950. IF commit_transaction.SQLCode <> 0 THEN
  951. rslt = 0
  952. arg_msg = "查询操作失败,工组调拨,计划:"+arg_ordercode+",物料:"+arg_mtrlcode
  953. GOTO ext
  954. END IF
  955. IF cnt = 0 THEN
  956. rslt = 0
  957. arg_msg = "产品:"+arg_mtrlcode+"不存在工组调拨:"+arg_wkpname+','+ls_swkpname+'→'+ls_owkpname
  958. GOTO ext
  959. END IF
  960. END IF
  961. //if year(date(arg_old_requiredate)) < 2000 or isnull(arg_old_requiredate) then
  962. // rslt = 0
  963. // arg_msg = "缺少源要求完成时间或不合理"
  964. // goto ext
  965. //end if
  966. IF Year(Date(arg_new_requiredate)) < 2000 Or IsNull(arg_new_requiredate) THEN
  967. rslt = 0
  968. arg_msg = "缺少新要求完成时间或不合理"
  969. GOTO ext
  970. END IF
  971. //如果工组交接时间精确到天,则清除小时的内容
  972. IF uo_option_orderworkgroup_time = 0 THEN
  973. arg_new_requiredate = DateTime(Date(arg_new_requiredate),Time(0))
  974. arg_new_begindate = DateTime(Date(arg_new_begindate),Time(0))
  975. END IF
  976. //写入内容
  977. it_mxbt++
  978. wkpmx[it_mxbt].printid = arg_printid
  979. wkpmx[it_mxbt].orderid = arg_orderid
  980. wkpmx[it_mxbt].ordercode = arg_ordercode
  981. wkpmx[it_mxbt].mtrlid = arg_mtrlid
  982. wkpmx[it_mxbt].mtrlcode = arg_mtrlcode
  983. wkpmx[it_mxbt].wrkGrpid = arg_wrkGrpid
  984. wkpmx[it_mxbt].owrkGrpid = arg_owrkGrpid
  985. wkpmx[it_mxbt].wkpname = arg_wkpname
  986. wkpmx[it_mxbt].old_requiredate = arg_old_requiredate
  987. wkpmx[it_mxbt].new_requiredate = arg_new_requiredate
  988. wkpmx[it_mxbt].mxdscrp = arg_mxdscrp
  989. wkpmx[it_mxbt].old_begindate = arg_old_begindate
  990. wkpmx[it_mxbt].new_begindate = arg_new_begindate
  991. wkpmx[it_mxbt].old_perfinishdate = arg_old_perfinishdate
  992. wkpmx[it_mxbt].new_perfinishdate = arg_new_perfinishdate
  993. wkpmx[it_mxbt].workgroupid = arg_workgroupid
  994. ext:
  995. IF rslt = 0 THEN p_clearmx()
  996. Return(rslt)
  997. end function
  998. on uo_workgroup_time.create
  999. call super::create
  1000. TriggerEvent( this, "constructor" )
  1001. end on
  1002. on uo_workgroup_time.destroy
  1003. TriggerEvent( this, "destructor" )
  1004. call super::destroy
  1005. end on
  1006. event constructor;String arg_msg
  1007. String str_optionvalue
  1008. f_get_sys_option_value('118',str_optionvalue,arg_msg)
  1009. uo_option_orderworkgroup_time = Long(str_optionvalue)
  1010. end event