uo_order_plan_tech.sru 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695
  1. $PBExportHeader$uo_order_plan_tech.sru
  2. forward
  3. global type uo_order_plan_tech from nonvisualobject
  4. end type
  5. end forward
  6. global type uo_order_plan_tech from nonvisualobject
  7. end type
  8. global uo_order_plan_tech uo_order_plan_tech
  9. type variables
  10. long uo_billid
  11. string uo_billcode
  12. end variables
  13. forward prototypes
  14. public function integer save (s_order_plan_tech arg_s_plan, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
  15. public function integer p_getflag (long arg_billid, ref integer arg_flag, ref string arg_msg)
  16. public function integer updatebegin (long arg_billid, ref string arg_msg)
  17. public function integer del (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
  18. public function integer audit (long arg_billid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
  19. public function integer caudit (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
  20. public function integer addcmpqty (long arg_billid, decimal arg_addqty, ref string arg_msg, boolean arg_ifcommit)
  21. public function integer add_dscrp (long arg_billid, string arg_newdscrp, ref string arg_msg, boolean arg_ifcommit)
  22. end prototypes
  23. public function integer save (s_order_plan_tech arg_s_plan, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  24. DateTime server_dt
  25. Long ll_billid,ll_wrkGrpid
  26. Decimal ld_orderqty,ld_acmqty
  27. Long cnt
  28. String ls_billcode
  29. String ls_sccode
  30. IF IsNull(arg_s_plan.scid) THEN arg_s_plan.scid = 0
  31. IF IsNull(arg_s_plan.billid) THEN arg_s_plan.billid = 0
  32. IF IsNull(arg_s_plan.rep) THEN arg_s_plan.rep = ''
  33. IF IsNull(arg_s_plan.wrkgrpid) THEN arg_s_plan.wrkgrpid = 0
  34. IF IsNull(arg_s_plan.workgroupid) THEN arg_s_plan.workgroupid = 0
  35. IF IsNull(arg_s_plan.empid) THEN arg_s_plan.empid = 0
  36. IF IsNull(arg_s_plan.orderid) THEN arg_s_plan.orderid = 0
  37. IF IsNull(arg_s_plan.printid) THEN arg_s_plan.printid = 0
  38. IF IsNull(arg_s_plan.parentid) THEN arg_s_plan.parentid = 0
  39. IF IsNull(arg_s_plan.qty) THEN arg_s_plan.qty = 0
  40. IF IsNull(arg_s_plan.aps_plancode) then arg_s_plan.aps_plancode = ''
  41. IF arg_s_plan.wrkgrpid = 0 THEN
  42. arg_msg = '请选择工组'
  43. rslt = 0
  44. GOTO ext
  45. END IF
  46. cnt = 0
  47. SELECT count(*) INTO :cnt
  48. FROM u_sc_workgroup
  49. Where wrkgrpid = :arg_s_plan.wrkgrpid;
  50. IF sqlca.SQLCode <> 0 THEN
  51. arg_msg = '查询工组资料失败,'+sqlca.SQLErrText
  52. rslt = 0
  53. GOTO ext
  54. END IF
  55. IF cnt <> 1 THEN
  56. arg_msg = '工组资料不存在或重复,请检查'
  57. rslt = 0
  58. GOTO ext
  59. END IF
  60. IF arg_s_plan.workgroupid > 0 THEN
  61. SELECT u_workgroup.wrkGrpid INTO :ll_wrkGrpid
  62. FROM u_workgroup
  63. Where u_workgroup.workgroupid = :arg_s_plan.workgroupid;
  64. IF sqlca.SQLCode <> 0 THEN
  65. arg_msg = '查询单据工作中心所属工组资料失败,'+sqlca.SQLErrText
  66. rslt = 0
  67. GOTO ext
  68. END IF
  69. IF ll_wrkGrpid <> arg_s_plan.wrkgrpid THEN
  70. arg_msg = '工作中心所属工组资料与单据工组资料不相符,请检查'
  71. rslt = 0
  72. GOTO ext
  73. END IF
  74. END IF
  75. SELECT orderqty INTO :ld_orderqty
  76. FROM u_OrderMtrl_workgroup_tree
  77. WHERE scid = :arg_s_plan.scid
  78. AND orderid = :arg_s_plan.orderid
  79. And printid = :arg_s_plan.printid;
  80. IF sqlca.SQLCode <> 0 THEN
  81. arg_msg = '查询相关指令单工艺资料失败,'+sqlca.SQLErrText
  82. rslt = 0
  83. GOTO ext
  84. END IF
  85. SELECT count(*) INTO :cnt
  86. FROM u_order_plan_tech
  87. WHERE scid = :arg_s_plan.scid
  88. AND orderid = :arg_s_plan.orderid
  89. AND printid = :arg_s_plan.printid
  90. And billid <> :arg_s_plan.billid;
  91. IF sqlca.SQLCode <> 0 THEN
  92. arg_msg = '查询相关指令单工艺是否已开派工单失败,'+sqlca.SQLErrText
  93. rslt = 0
  94. GOTO ext
  95. END IF
  96. IF cnt > 0 THEN
  97. SELECT isnull(sum(qty),0) INTO :ld_acmqty
  98. FROM u_order_plan_tech
  99. WHERE scid = :arg_s_plan.scid
  100. AND orderid = :arg_s_plan.orderid
  101. AND printid = :arg_s_plan.printid
  102. And billid <> :arg_s_plan.billid;
  103. IF sqlca.SQLCode <> 0 THEN
  104. arg_msg = '查询相关指令单工艺已开派工单数量失败,'+sqlca.SQLErrText
  105. rslt = 0
  106. GOTO ext
  107. END IF
  108. END IF
  109. IF ld_acmqty + arg_s_plan.qty > ld_orderqty THEN
  110. rslt = 0
  111. arg_msg = '相关指令单工艺计划数:'+String(ld_orderqty,'#,##0.##########') + ',已开派工单数量:'+String(ld_acmqty,'#,##0.##########')+',不能再派工:'+String(arg_s_plan.qty,'#,##0.##########')
  112. GOTO ext
  113. END IF
  114. IF arg_s_plan.rep = '' THEN
  115. arg_msg = '请输入经手人'
  116. rslt = 0
  117. GOTO ext
  118. END IF
  119. SELECT Top 1 getdate() Into :server_dt From u_user;
  120. IF sqlca.SQLCode <> 0 THEN
  121. rslt = 0
  122. arg_msg = "查询操作失败,日期 "
  123. GOTO ext
  124. END IF
  125. IF arg_s_plan.billid = 0 THEN
  126. ll_billid = f_sys_scidentity(0,"u_order_plan_tech","billid",arg_msg,True,id_sqlca)
  127. IF ll_billid <= 0 THEN
  128. rslt = 0
  129. GOTO ext
  130. END IF
  131. IF f_get_sccode(arg_s_plan.scid,sqlca,ls_sccode,arg_msg) = 0 THEN
  132. rslt = 0
  133. GOTO ext
  134. END IF
  135. ls_billcode = getid(arg_s_plan.scid,ls_sccode + 'TO',Date(server_dt),False,sqlca)
  136. IF ls_billcode = "err" THEN
  137. rslt = 0
  138. arg_msg = "无法获取单据编号"+"~n"+sqlca.SQLErrText
  139. GOTO ext
  140. END IF
  141. INSERT INTO u_order_plan_tech
  142. (scid,
  143. billid,
  144. billcode,
  145. billdate,
  146. begindate,
  147. enddate,
  148. rep,
  149. wrkgrpid,
  150. workgroupid,
  151. empid,
  152. orderid,
  153. printid,
  154. parentid,
  155. qty,
  156. opemp,
  157. opdate,
  158. aps_plancode)
  159. VALUES (:arg_s_plan.scid,
  160. :ll_billid,
  161. :ls_billcode,
  162. :arg_s_plan.billdate,
  163. :arg_s_plan.begindate,
  164. :arg_s_plan.enddate,
  165. :arg_s_plan.rep,
  166. :arg_s_plan.wrkgrpid,
  167. :arg_s_plan.workgroupid,
  168. :arg_s_plan.empid,
  169. :arg_s_plan.orderid,
  170. :arg_s_plan.printid,
  171. :arg_s_plan.parentid,
  172. :arg_s_plan.qty,
  173. :arg_opemp,
  174. :server_dt,
  175. :arg_s_plan.aps_plancode);
  176. IF sqlca.SQLCode <> 0 THEN
  177. rslt = 0
  178. arg_msg = "因网络或其它原因导致建立单据操作失败"+"~n"+sqlca.SQLErrText
  179. GOTO ext
  180. END IF
  181. uo_billid = ll_billid
  182. ELSE
  183. UPDATE u_order_plan_tech
  184. SET billdate = :arg_s_plan.billdate,
  185. begindate = :arg_s_plan.begindate,
  186. enddate = :arg_s_plan.enddate,
  187. rep = :arg_s_plan.rep,
  188. wrkgrpid = :arg_s_plan.wrkgrpid,
  189. workgroupid = :arg_s_plan.workgroupid,
  190. empid = :arg_s_plan.empid,
  191. orderid = :arg_s_plan.orderid,
  192. printid = :arg_s_plan.printid,
  193. parentid = :arg_s_plan.parentid,
  194. qty = :arg_s_plan.qty,
  195. modemp = :arg_opemp,
  196. moddate = :server_dt,
  197. aps_plancode = :arg_s_plan.aps_plancode
  198. Where billid = :arg_s_plan.billid;
  199. IF sqlca.SQLCode <> 0 Or sqlca.SQLNRows <= 0 THEN
  200. rslt = 0
  201. arg_msg = "因网络或其它原因导致更新单据操作失败"+"~n"+sqlca.SQLErrText
  202. GOTO ext
  203. END IF
  204. uo_billid = arg_s_plan.billid
  205. END IF
  206. ext:
  207. IF rslt = 0 THEN
  208. ROLLBACK;
  209. ELSEIF arg_ifcommit And rslt = 1 THEN
  210. COMMIT;
  211. END IF
  212. RETURN rslt
  213. end function
  214. public function integer p_getflag (long arg_billid, ref integer arg_flag, ref string arg_msg);int rslt = 1
  215. select flag
  216. into :arg_flag
  217. from u_order_plan_tech
  218. where billid = :arg_billid;
  219. if sqlca.sqlcode <> 0 then
  220. ARG_MSG = '查询单据审核标记失败,'+sqlca.SQLErrText
  221. rslt = 0
  222. GOTO ext
  223. END IF
  224. ext:
  225. RETURN rslt
  226. end function
  227. public function integer updatebegin (long arg_billid, ref string arg_msg);Int rslt = 1
  228. Int li_flag
  229. IF arg_billid <= 0 THEN
  230. rslt = 0
  231. arg_msg = '错误单据唯一码'
  232. GOTO ext
  233. END IF
  234. IF p_getflag(arg_billid,li_flag,arg_msg) = 0 THEN
  235. rslt = 0
  236. GOTO ext
  237. END IF
  238. IF li_flag = 1 THEN
  239. rslt = 0
  240. arg_msg = '单据已经审核,不可以修改,要修改请先撤销审核'
  241. GOTO ext
  242. END IF
  243. ext:
  244. RETURN rslt
  245. end function
  246. public function integer del (long arg_billid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  247. Int li_flag
  248. IF arg_billid <= 0 THEN
  249. rslt = 0
  250. arg_msg = '错误单据唯一码'
  251. GOTO ext
  252. END IF
  253. IF p_getflag(arg_billid,li_flag,arg_msg) = 0 THEN
  254. rslt = 0
  255. GOTO ext
  256. END IF
  257. IF li_flag <> 0 THEN
  258. rslt = 0
  259. arg_msg = '单据不是在待审状态,不可以删除'
  260. GOTO ext
  261. END IF
  262. DELETE FROM u_order_plan_tech
  263. WHERE billid = :arg_billid
  264. And flag = 0;
  265. IF sqlca.SQLCode <> 0 THEN
  266. rslt = 0
  267. arg_msg = "删除单据操作失败"+"~n"+sqlca.SQLErrText
  268. GOTO ext
  269. END IF
  270. ext:
  271. IF rslt = 0 THEN
  272. ROLLBACK;
  273. ELSEIF rslt = 1 And arg_ifcommit THEN
  274. COMMIT;
  275. END IF
  276. RETURN rslt
  277. end function
  278. public function integer audit (long arg_billid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  279. Int li_flag
  280. Long ll_scid,ll_orderid,ll_printid
  281. Decimal ld_qty
  282. uo_order_ml uo_order
  283. uo_order = Create uo_order_ml
  284. IF arg_billid <= 0 THEN
  285. rslt = 0
  286. ARG_MSG = '错误单据唯一码'
  287. GOTO ext
  288. END IF
  289. IF p_getflag(arg_billid,li_flag,ARG_MSG) = 0 THEN
  290. rslt = 0
  291. GOTO ext
  292. END IF
  293. IF li_flag <> 0 THEN
  294. rslt = 0
  295. ARG_MSG = '单据不是在待审核状态,不可以再审'
  296. GOTO ext
  297. END IF
  298. SELECT scid,orderid,printid,qty
  299. INTO :ll_scid,:ll_orderid,:ll_printid,:ld_qty
  300. FROM u_order_plan_tech
  301. Where billid = :arg_billid;
  302. IF sqlca.SQLCode <> 0 THEN
  303. rslt = 0
  304. ARG_MSG = '查询派工单相关信息失败,'+sqlca.SQLErrText
  305. GOTO ext
  306. END IF
  307. //更新指令单工艺的已派工数
  308. IF ll_orderid > 0 THEN
  309. IF uo_order.uof_add_ordermtrl_tree_acmpqty(ll_scid,ll_orderid,ll_printid,ld_qty,ARG_MSG,False) = 0 THEN
  310. rslt = 0
  311. GOTO ext
  312. END IF
  313. END IF
  314. /// //
  315. //更新审核标记
  316. UPDATE u_order_plan_tech
  317. SET auditemp = :arg_opemp,
  318. auditdate = getdate(),
  319. flag = 1
  320. WHERE billid = :arg_billid
  321. And flag = 0;
  322. IF sqlca.SQLCode <> 0 THEN
  323. rslt = 0
  324. ARG_MSG = "因网络或其它原因导致单据审核操作失败"+"~n"+sqlca.SQLErrText
  325. GOTO ext
  326. ELSEIF sqlca.SQLNRows = 0 THEN
  327. rslt = 0
  328. ARG_MSG = "单据正在审核,请稍后查询。"+"~n"+sqlca.SQLErrText
  329. GOTO ext
  330. END IF
  331. ext:
  332. IF rslt = 0 THEN
  333. ROLLBACK;
  334. ELSEIF rslt = 1 And arg_ifcommit THEN
  335. COMMIT;
  336. END IF
  337. Destroy uo_order
  338. RETURN rslt
  339. end function
  340. public function integer caudit (long arg_billid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  341. Int li_flag
  342. Decimal ld_fqty
  343. DateTime null_dt
  344. Long ll_scid,ll_orderid,ll_printid
  345. Decimal ld_qty
  346. Long cnt = 0
  347. SetNull(null_dt)
  348. uo_order_ml uo_order
  349. uo_order = Create uo_order_ml
  350. IF arg_billid <= 0 THEN
  351. rslt = 0
  352. ARG_MSG = '错误单据唯一码'
  353. GOTO ext
  354. END IF
  355. IF p_getflag(arg_billid,li_flag,ARG_MSG) = 0 THEN
  356. rslt = 0
  357. GOTO ext
  358. END IF
  359. IF li_flag <> 1 THEN
  360. rslt = 0
  361. ARG_MSG = '单据不是在已审核状态,不可以撤审'
  362. GOTO ext
  363. END IF
  364. SELECT count(*) INTO :cnt
  365. FROM u_finish_tech_mx
  366. Where relid = :arg_billid;
  367. IF sqlca.SQLCode <> 0 THEN
  368. rslt = 0
  369. ARG_MSG = '查询单据是否已开完工单失败,'+sqlca.SQLErrText
  370. GOTO ext
  371. END IF
  372. IF cnt > 0 THEN
  373. rslt = 0
  374. ARG_MSG = '本派工单已开完工单,不能撤审'
  375. GOTO ext
  376. END IF
  377. SELECT fqty INTO :ld_fqty
  378. FROM u_order_plan_tech
  379. Where billid = :arg_billid;
  380. IF sqlca.SQLCode <> 0 THEN
  381. rslt = 0
  382. ARG_MSG = '查询单据已完工数失败,'+sqlca.SQLErrText
  383. GOTO ext
  384. END IF
  385. IF ld_fqty > 0 THEN
  386. rslt = 0
  387. ARG_MSG = '查询单据已有完工数,不能撤审'
  388. GOTO ext
  389. END IF
  390. SELECT scid,orderid,printid,qty
  391. INTO :ll_scid,:ll_orderid,:ll_printid,:ld_qty
  392. FROM u_order_plan_tech
  393. Where billid = :arg_billid;
  394. IF sqlca.SQLCode <> 0 THEN
  395. rslt = 0
  396. ARG_MSG = '查询派工单相关信息失败,'+sqlca.SQLErrText
  397. GOTO ext
  398. END IF
  399. //更新指令单工艺的已派工数
  400. IF ll_orderid > 0 THEN
  401. IF uo_order.uof_add_ordermtrl_tree_acmpqty(ll_scid,ll_orderid,ll_printid,0 - ld_qty,ARG_MSG,False) = 0 THEN
  402. rslt = 0
  403. GOTO ext
  404. END IF
  405. END IF
  406. //更新审核标记
  407. UPDATE u_order_plan_tech
  408. SET auditemp = '',
  409. auditdate = :null_dt,
  410. flag = 0
  411. WHERE billid = :arg_billid
  412. And flag = 1;
  413. IF sqlca.SQLCode <> 0 THEN
  414. rslt = 0
  415. ARG_MSG = "因网络或其它原因导致单据审核操作失败"+"~n"+sqlca.SQLErrText
  416. GOTO ext
  417. ELSEIF sqlca.SQLNRows = 0 THEN
  418. rslt = 0
  419. ARG_MSG = "单据正在审核,请稍后查询。"+"~n"+sqlca.SQLErrText
  420. GOTO ext
  421. END IF
  422. ext:
  423. IF rslt = 0 THEN
  424. ROLLBACK;
  425. ELSEIF rslt = 1 And arg_ifcommit THEN
  426. COMMIT;
  427. END IF
  428. Destroy uo_order
  429. RETURN rslt
  430. end function
  431. public function integer addcmpqty (long arg_billid, decimal arg_addqty, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  432. Int li_flag
  433. Decimal ld_qty,ld_fqty
  434. DateTime null_dt
  435. Long ll_scid,ll_orderid,ll_printid,ll_wrkgrpid
  436. uo_order_ml uo_order
  437. uo_order = Create uo_order_ml
  438. SetNull(null_dt)
  439. IF arg_billid <= 0 THEN
  440. rslt = 0
  441. arg_msg = '错误派工单唯一码'
  442. GOTO ext
  443. END IF
  444. IF arg_addqty = 0 THEN
  445. rslt = 1
  446. GOTO ext
  447. END IF
  448. IF p_getflag(arg_billid,li_flag,arg_msg) = 0 THEN
  449. rslt = 0
  450. GOTO ext
  451. END IF
  452. IF li_flag = 0 THEN
  453. rslt = 0
  454. arg_msg = "派工单未审核,不能操作"
  455. GOTO ext
  456. END IF
  457. SELECT qty, fqty,scid,orderid,printid,wrkgrpid
  458. INTO :ld_qty,:ld_fqty,:ll_scid,:ll_orderid,:ll_printid,:ll_wrkgrpid
  459. FROM u_order_plan_tech
  460. Where billid = :arg_billid;
  461. IF sqlca.SQLCode <> 0 THEN
  462. rslt = 0
  463. arg_msg = '查询派工单已完工数失败,'+sqlca.SQLErrText
  464. GOTO ext
  465. END IF
  466. IF ld_fqty + arg_addqty > ld_qty THEN
  467. rslt = 0
  468. arg_msg = '派工单未完工数只有:'+String(ld_qty - ld_fqty,'#,##0.##########')+',不能完工:'+String(arg_addqty,'#,##0.##########')
  469. GOTO ext
  470. END IF
  471. //更新指令单工艺的完工数
  472. IF ll_orderid > 0 THEN
  473. IF uo_order.uof_add_ordermtrl_tree_sqty(ll_scid,ll_orderid,ll_printid,arg_addqty,arg_msg,False) = 0 THEN
  474. rslt = 0
  475. GOTO ext
  476. END IF
  477. UPDATE u_OrderMtrl_workgroup
  478. SET u_OrderMtrl_workgroup.finishqty = s_qty.minsqty
  479. FROM u_OrderMtrl_workgroup INNER JOIN
  480. (SELECT scid, orderid, swkpid, workgroupid,MIN(sqty) AS minsqty
  481. FROM (SELECT scid, orderid, swkpid,workgroupid, SUM(sqty) AS sqty, relname,
  482. partname
  483. FROM u_OrderMtrl_workgroup_tree
  484. GROUP BY scid, orderid, swkpid, relname, partname,workgroupid) a
  485. GROUP BY scid, orderid, swkpid,workgroupid) s_qty ON
  486. u_OrderMtrl_workgroup.scid = s_qty.scid AND
  487. u_OrderMtrl_workgroup.orderid = s_qty.orderid AND
  488. u_OrderMtrl_workgroup.wrkGrpid = s_qty.swkpid AND
  489. u_OrderMtrl_workgroup.workgroupid = s_qty.workgroupid
  490. WHERE (u_OrderMtrl_workgroup.scid = :ll_scid)
  491. AND (u_OrderMtrl_workgroup.orderid = :ll_orderid)
  492. AND (u_OrderMtrl_workgroup.wrkGrpid = :ll_wrkgrpid);
  493. IF sqlca.SQLCode <> 0 THEN
  494. rslt = 0
  495. arg_msg = '更新工组进度失败,'+sqlca.SQLErrText
  496. GOTO ext
  497. END IF
  498. END IF
  499. UPDATE u_order_plan_tech
  500. SET fqty = fqty + :arg_addqty
  501. Where billid = :arg_billid;
  502. IF sqlca.SQLCode <> 0 THEN
  503. rslt = 0
  504. arg_msg = "因网络或错误产品唯一码导致更新派工单完成数量操作失败"+"~n"+sqlca.SQLErrText
  505. GOTO ext
  506. END IF
  507. IF ld_fqty + arg_addqty = ld_qty THEN
  508. UPDATE u_order_plan_tech
  509. SET flag = 5,
  510. finishdate = getdate()
  511. Where billid = :arg_billid;
  512. IF sqlca.SQLCode <> 0 THEN
  513. rslt = 0
  514. arg_msg = "因网络或错误产品唯一码导致更新派工单完成状态操作失败"+"~n"+sqlca.SQLErrText
  515. GOTO ext
  516. END IF
  517. ELSE
  518. UPDATE u_order_plan_tech
  519. SET flag = 1,
  520. finishdate = :null_dt
  521. Where billid = :arg_billid;
  522. IF sqlca.SQLCode <> 0 THEN
  523. rslt = 0
  524. arg_msg = "因网络或错误产品唯一码导致更新派工单完成状态操作失败"+"~n"+sqlca.SQLErrText
  525. GOTO ext
  526. END IF
  527. END IF
  528. ext:
  529. IF rslt = 0 THEN
  530. ROLLBACK;
  531. ELSEIF arg_ifcommit THEN
  532. COMMIT;
  533. END IF
  534. Destroy uo_order
  535. RETURN rslt
  536. end function
  537. public function integer add_dscrp (long arg_billid, string arg_newdscrp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  538. IF IsNull(arg_newdscrp) Or arg_newdscrp = '' THEN
  539. rslt = 0
  540. arg_msg = '要添加内容为空,操作取消'
  541. GOTO ext
  542. END IF
  543. UPDATE u_order_plan_tech
  544. SET dscrp = dscrp + ' ' + :arg_newdscrp
  545. Where billid = :arg_billid;
  546. IF sqlca.SQLCode <> 0 THEN
  547. rslt = 0
  548. arg_msg = "因网络或其它原因导致添加备注操作失败"+"~n"+sqlca.SQLErrText
  549. GOTO ext
  550. END IF
  551. ext:
  552. IF arg_ifcommit THEN
  553. IF rslt = 1 THEN
  554. COMMIT;
  555. ELSE
  556. ROLLBACK;
  557. END IF
  558. END IF
  559. RETURN rslt
  560. end function
  561. on uo_order_plan_tech.create
  562. call super::create
  563. TriggerEvent( this, "constructor" )
  564. end on
  565. on uo_order_plan_tech.destroy
  566. TriggerEvent( this, "destructor" )
  567. call super::destroy
  568. end on