uo_spt.sru 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101
  1. $PBExportHeader$uo_spt.sru
  2. forward
  3. global type uo_spt from nonvisualobject
  4. end type
  5. end forward
  6. global type uo_spt from nonvisualobject
  7. end type
  8. global uo_spt uo_spt
  9. type variables
  10. Long uo_sptid
  11. end variables
  12. forward prototypes
  13. public function integer uof_add_item (s_item_cust_spt arg_s_item, ref string arg_msg, boolean arg_ifcommit)
  14. public function integer uof_del_spt (long arg_sptid, ref string arg_msg, boolean arg_ifcommit)
  15. public function integer uof_add_rep (s_spt_rep arg_s_spt_rep, ref string arg_msg, boolean arg_ifcommit)
  16. public function integer uof_add_spt (s_spt arg_s_spt, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
  17. public function integer uof_code_find (long arg_id, string arg_code, ref string arg_msg)
  18. public function integer uof_del_rep (long arg_repid, ref string arg_msg, boolean arg_ifcommit)
  19. public function integer uof_add_sample (s_cust_sample arg_s_spt_sample, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
  20. public function integer uof_del_sample (long arg_sampleid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
  21. public function integer uof_change_state (long arg_sptid, integer arg_state, ref string arg_msg, boolean arg_ifcommit)
  22. public function integer uof_audit (long arg_sptid, string arg_emp, ref string arg_msg, boolean arg_ifcommit)
  23. public function integer uof_secaudit (long arg_sptid, string arg_emp, ref string arg_msg, boolean arg_ifcommit)
  24. public function integer uof_c_secaudit (long arg_sptid, ref string arg_msg, boolean arg_ifcommit)
  25. public function integer uof_c_audit (long arg_sptid, ref string arg_msg, boolean arg_ifcommit)
  26. end prototypes
  27. public function integer uof_add_item (s_item_cust_spt arg_s_item, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  28. Long cnt,ll_repid
  29. IF IsNull(arg_s_item.itemid) THEN arg_s_item.itemid = 0
  30. IF IsNull(arg_s_item.relid) THEN arg_s_item.relid = 0
  31. IF IsNull(arg_s_item.reltype) THEN arg_s_item.reltype = 0
  32. IF IsNull(arg_s_item.dscrp) THEN arg_s_item.dscrp = ''
  33. cnt = 0
  34. SELECT count(*) INTO :cnt
  35. FROM u_item_cust_spt_def
  36. Where itemid = :arg_s_item.itemid;
  37. IF sqlca.SQLCode <> 0 THEN
  38. arg_msg = '查询辅助项目资料失败,'+sqlca.SQLErrText
  39. rslt = 0
  40. GOTO ext
  41. END IF
  42. cnt = 0
  43. IF arg_s_item.reltype = 0 THEN
  44. arg_msg = '错误的项目类型'
  45. rslt = 0
  46. GOTO ext
  47. ELSE
  48. SELECT count(*) INTO :cnt
  49. FROM u_spt
  50. Where sptid = :arg_s_item.relid;
  51. IF sqlca.SQLCode <> 0 THEN
  52. arg_msg = '查询供应商资料失败,'+sqlca.SQLErrText
  53. rslt = 0
  54. GOTO ext
  55. END IF
  56. END IF
  57. UPDATE u_item_cust_spt
  58. SET dscrp = :arg_s_item.dscrp
  59. WHERE itemid = :arg_s_item.itemid
  60. AND relid = :arg_s_item.relid
  61. AND reltype = :arg_s_item.reltype;
  62. IF sqlca.SQLCode = 0 THEN
  63. IF sqlca.SQLNRows = 0 THEN
  64. INSERT INTO u_item_cust_spt
  65. (itemid,
  66. relid,
  67. reltype,
  68. dscrp)
  69. VALUES(:arg_s_item.itemid,
  70. :arg_s_item.relid,
  71. :arg_s_item.reltype,
  72. :arg_s_item.dscrp);
  73. IF sqlca.SQLCode <> 0 THEN
  74. arg_msg = '建立辅助项目资料失败,'+sqlca.SQLErrText
  75. rslt = 0
  76. GOTO ext
  77. END IF
  78. END IF
  79. ELSE
  80. arg_msg = '更新辅助项目资料失败,'+sqlca.SQLErrText
  81. rslt = 0
  82. GOTO ext
  83. END IF
  84. ext:
  85. IF rslt = 0 THEN
  86. ROLLBACK;
  87. ELSEIF rslt = 1 AND arg_ifcommit THEN
  88. COMMIT;
  89. END IF
  90. RETURN rslt
  91. end function
  92. public function integer uof_del_spt (long arg_sptid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  93. Long cnt
  94. cnt = 0
  95. SELECT count(*) INTO :cnt
  96. FROM u_spt
  97. Where sptid = :arg_sptid;
  98. IF sqlca.SQLCode <> 0 THEN
  99. arg_msg = '查询供应商资料失败,'+sqlca.SQLErrText
  100. rslt = 0
  101. GOTO ext
  102. END IF
  103. cnt = 0
  104. SELECT count(*) INTO :cnt
  105. FROM u_buytask Where sptid = :arg_sptid ;
  106. IF sqlca.SQLCode <> 0 THEN
  107. arg_msg = "数据查询操作失败!(请重试!)"
  108. rslt = 0
  109. GOTO ext
  110. END IF
  111. IF cnt > 0 THEN
  112. arg_msg = "该资料已经使用于订货单记录,不可以删除!"
  113. rslt = 0
  114. GOTO ext
  115. END IF
  116. cnt = 0
  117. SELECT COUNT(*) INTO :cnt
  118. FROM u_inware Where u_inware.sptid = :arg_sptid
  119. and billtype = 1;
  120. IF sqlca.SQLCode <> 0 THEN
  121. arg_msg = "数据查询操作失败!(请重试!)"
  122. rslt = 0
  123. GOTO ext
  124. END IF
  125. IF cnt > 0 THEN
  126. arg_msg = "该资料已经使用于出仓记录,不可以删除!"
  127. rslt = 0
  128. GOTO ext
  129. END IF
  130. cnt = 0
  131. SELECT count(*) INTO :cnt
  132. FROM u_order_wfjg Where sptid = :arg_sptid ;
  133. IF sqlca.SQLCode <> 0 THEN
  134. arg_msg = "数据查询操作失败!(请重试!)"
  135. rslt = 0
  136. GOTO ext
  137. END IF
  138. IF cnt > 0 THEN
  139. arg_msg = "该资料已经使用于外协计划,不可以删除!"
  140. rslt = 0
  141. GOTO ext
  142. END IF
  143. cnt = 0
  144. SELECT count(*) INTO :cnt
  145. FROM ow_wfjg_in Where sptid = :arg_sptid ;
  146. IF sqlca.SQLCode <> 0 THEN
  147. arg_msg = "数据查询操作失败!(请重试!)"
  148. rslt = 0
  149. GOTO ext
  150. END IF
  151. IF cnt > 0 THEN
  152. arg_msg = "该资料已经使用于外协收货单,不可以删除!"
  153. rslt = 0
  154. GOTO ext
  155. END IF
  156. cnt = 0
  157. SELECT count(*) INTO :cnt
  158. FROM ow_wfjg_out Where sptid = :arg_sptid ;
  159. IF sqlca.SQLCode <> 0 THEN
  160. arg_msg = "数据查询操作失败!(请重试!)"
  161. rslt = 0
  162. GOTO ext
  163. END IF
  164. IF cnt > 0 THEN
  165. arg_msg = "该资料已经使用于外协发出单,不可以删除!"
  166. rslt = 0
  167. GOTO ext
  168. END IF
  169. cnt = 0
  170. SELECT COUNT(*) INTO :cnt
  171. FROM u_bmstpay Where sptid = :arg_sptid ;
  172. IF sqlca.SQLCode <> 0 THEN
  173. arg_msg = "数据查询操作失败!(请重试!)"
  174. rslt = 0
  175. GOTO ext
  176. END IF
  177. IF cnt > 0 THEN
  178. arg_msg = "该资料已经使用于应付帐,不可以删除!"
  179. rslt = 0
  180. GOTO ext
  181. END IF
  182. IF f_check_spt_balcamt(arg_sptid,arg_msg) = 0 THEN
  183. rslt = 0
  184. GOTO ext
  185. END IF
  186. DELETE FROM u_item_cust_spt
  187. Where relid = :arg_sptid
  188. and reltype = 1;
  189. IF sqlca.SQLCode <> 0 THEN
  190. arg_msg = '删除供应商辅助项目资料失败,'+sqlca.SQLErrText
  191. rslt = 0
  192. GOTO ext
  193. END IF
  194. DELETE FROM u_spt_rep Where sptid = :arg_sptid;
  195. IF sqlca.SQLCode <> 0 THEN
  196. arg_msg = '删除供应商联系资料失败,'+sqlca.SQLErrText
  197. rslt = 0
  198. GOTO ext
  199. END IF
  200. DELETE FROM u_spt Where sptid = :arg_sptid;
  201. IF sqlca.SQLCode <> 0 THEN
  202. arg_msg = '删除供应商资料失败,'+sqlca.SQLErrText
  203. rslt = 0
  204. GOTO ext
  205. END IF
  206. ext:
  207. IF rslt = 0 THEN
  208. ROLLBACK;
  209. ELSEIF rslt = 1 AND arg_ifcommit THEN
  210. COMMIT;
  211. END IF
  212. RETURN rslt
  213. end function
  214. public function integer uof_add_rep (s_spt_rep arg_s_spt_rep, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  215. Long cnt,ll_repid
  216. IF IsNull(arg_s_spt_rep.repname) THEN arg_s_spt_rep.repname = ''
  217. IF IsNull(arg_s_spt_rep.duty) THEN arg_s_spt_rep.duty = ''
  218. IF IsNull(arg_s_spt_rep.sex) THEN arg_s_spt_rep.sex = ''
  219. IF IsNull(arg_s_spt_rep.officetel) THEN arg_s_spt_rep.officetel = ''
  220. IF IsNull(arg_s_spt_rep.handtel) THEN arg_s_spt_rep.handtel = ''
  221. IF IsNull(arg_s_spt_rep.faxno) THEN arg_s_spt_rep.faxno = ''
  222. IF IsNull(arg_s_spt_rep.email) THEN arg_s_spt_rep.email = ''
  223. IF IsNull(arg_s_spt_rep.qqcode) THEN arg_s_spt_rep.qqcode = ''
  224. IF IsNull(arg_s_spt_rep.msncode) THEN arg_s_spt_rep.msncode = ''
  225. IF IsNull(arg_s_spt_rep.dscrp) THEN arg_s_spt_rep.dscrp = ''
  226. IF IsNull(arg_s_spt_rep.ljmail) THEN arg_s_spt_rep.ljmail = ''
  227. IF arg_s_spt_rep.repname = '' THEN
  228. arg_msg = '请输入联系人名称'
  229. rslt = 0
  230. GOTO ext
  231. END IF
  232. SELECT count(*) INTO :cnt
  233. FROM u_spt
  234. Where sptid = :arg_s_spt_rep.sptid;
  235. IF sqlca.SQLCode <> 0 THEN
  236. arg_msg = '查询供应商资料失败,'+sqlca.SQLErrText
  237. rslt = 0
  238. GOTO ext
  239. END IF
  240. IF arg_s_spt_rep.repid = 0 THEN
  241. ll_repid = f_sys_scidentity(0,"u_spt_rep","repid",arg_msg,TRUE,id_sqlca)
  242. IF ll_repid <= 0 THEN
  243. rslt = 0
  244. GOTO ext
  245. END IF
  246. INSERT INTO u_spt_rep
  247. (repid,
  248. sptid,
  249. repname,
  250. duty,
  251. sex,
  252. officetel,
  253. handtel,
  254. faxno,
  255. email,
  256. qqcode,
  257. msncode,
  258. dscrp,
  259. ljmail)
  260. VALUES(:ll_repid,
  261. :arg_s_spt_rep.sptid,
  262. :arg_s_spt_rep.repname,
  263. :arg_s_spt_rep.duty,
  264. :arg_s_spt_rep.sex,
  265. :arg_s_spt_rep.officetel,
  266. :arg_s_spt_rep.handtel,
  267. :arg_s_spt_rep.faxno,
  268. :arg_s_spt_rep.email,
  269. :arg_s_spt_rep.qqcode,
  270. :arg_s_spt_rep.msncode,
  271. :arg_s_spt_rep.dscrp,
  272. :arg_s_spt_rep.ljmail);
  273. IF sqlca.SQLCode <> 0 THEN
  274. arg_msg = '建立联系人失败,'+sqlca.SQLErrText
  275. rslt = 0
  276. GOTO ext
  277. END IF
  278. ELSE
  279. UPDATE u_spt_rep
  280. SET repname = :arg_s_spt_rep.repname,
  281. duty = :arg_s_spt_rep.duty,
  282. sex = :arg_s_spt_rep.sex,
  283. officetel = :arg_s_spt_rep.officetel,
  284. handtel = :arg_s_spt_rep.handtel,
  285. faxno = :arg_s_spt_rep.faxno,
  286. email = :arg_s_spt_rep.email,
  287. qqcode = :arg_s_spt_rep.qqcode,
  288. msncode = :arg_s_spt_rep.msncode,
  289. dscrp = :arg_s_spt_rep.dscrp,
  290. ljmail = :arg_s_spt_rep.ljmail
  291. Where repid = :arg_s_spt_rep.repid;
  292. IF sqlca.SQLCode <> 0 THEN
  293. arg_msg = '更新联系人失败,'+sqlca.SQLErrText
  294. rslt = 0
  295. GOTO ext
  296. END IF
  297. END IF
  298. ext:
  299. IF rslt = 0 THEN
  300. ROLLBACK;
  301. ELSEIF rslt = 1 AND arg_ifcommit THEN
  302. COMMIT;
  303. END IF
  304. RETURN rslt
  305. end function
  306. public function integer uof_add_spt (s_spt arg_s_spt, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  307. Long cnt,ll_sptid,ll_i,ll_repid
  308. String ls_cusareaname,ls_areaname
  309. IF IsNull(arg_s_spt.sptid) THEN arg_s_spt.sptid = 0
  310. IF IsNull(arg_s_spt.sptcode) THEN arg_s_spt.sptcode = ''
  311. IF IsNull(arg_s_spt.Name) THEN arg_s_spt.Name = ''
  312. IF IsNull(arg_s_spt.spttype) THEN arg_s_spt.spttype = ''
  313. IF IsNull(arg_s_spt.rep) THEN arg_s_spt.rep = ''
  314. IF IsNull(arg_s_spt.tele) THEN arg_s_spt.tele = ''
  315. IF IsNull(arg_s_spt.tele1) THEN arg_s_spt.tele1 = ''
  316. IF IsNull(arg_s_spt.bank) THEN arg_s_spt.bank = ''
  317. IF IsNull(arg_s_spt.cunt) THEN arg_s_spt.cunt = ''
  318. IF IsNull(arg_s_spt.Address) THEN arg_s_spt.Address = ''
  319. IF IsNull(arg_s_spt.code) THEN arg_s_spt.code = ''
  320. IF IsNull(arg_s_spt.dscrp) THEN arg_s_spt.dscrp = ''
  321. IF IsNull(arg_s_spt.inuse) THEN arg_s_spt.inuse = 0
  322. IF IsNull(arg_s_spt.faxno) THEN arg_s_spt.faxno = ''
  323. IF IsNull(arg_s_spt.email) THEN arg_s_spt.email = ''
  324. IF IsNull(arg_s_spt.sptkind) THEN arg_s_spt.sptkind = 0
  325. IF IsNull(arg_s_spt.picktype) THEN arg_s_spt.picktype = ''
  326. IF IsNull(arg_s_spt.banktypeid) THEN arg_s_spt.banktypeid = 0
  327. IF IsNull(arg_s_spt.pickdays) THEN arg_s_spt.pickdays = ''
  328. IF IsNull(arg_s_spt.styleid) THEN arg_s_spt.styleid = 0
  329. IF IsNull(arg_s_spt.spttypeid) THEN arg_s_spt.spttypeid = 0
  330. IF IsNull(arg_s_spt.buyemp) THEN arg_s_spt.buyemp = ''
  331. IF IsNull(arg_s_spt.State) THEN arg_s_spt.State = 1
  332. IF IsNull(arg_s_spt.grade) THEN arg_s_spt.grade = ''
  333. IF IsNull(arg_s_spt.moneyid) THEN arg_s_spt.moneyid = 0
  334. IF IsNull(arg_s_spt.transday) THEN arg_s_spt.transday = 0
  335. IF IsNull(arg_s_spt.ljmail) THEN arg_s_spt.ljmail = ''
  336. IF IsNull(arg_s_spt.ifbalc) THEN arg_s_spt.ifbalc = 0
  337. IF IsNull(arg_s_spt.aifmb_flag) THEN arg_s_spt.aifmb_flag = 0
  338. IF arg_s_spt.sptcode = '' THEN
  339. arg_msg = '请输入供应商编号!'
  340. rslt = 0
  341. GOTO ext
  342. END IF
  343. IF arg_s_spt.Name = '' THEN
  344. arg_msg = '请输入供应商名称!'
  345. rslt = 0
  346. GOTO ext
  347. END IF
  348. IF arg_s_spt.spttypeid <= 0 THEN
  349. arg_msg = '请选择供应商类别!'
  350. rslt = 0
  351. GOTO ext
  352. END IF
  353. cnt = 0
  354. SELECT count(*) INTO :cnt
  355. FROM u_spt
  356. WHERE name = :arg_s_spt.Name
  357. And sptid <> :arg_s_spt.sptid;
  358. IF sqlca.SQLCode <> 0 THEN
  359. arg_msg = '查询供应商名称是否重复失败'
  360. rslt = 0
  361. GOTO ext
  362. END IF
  363. IF cnt > 0 THEN
  364. arg_msg = '供应商名称重复,请检查供应商资料'
  365. rslt = 0
  366. GOTO ext
  367. END IF
  368. cnt = 0
  369. SELECT count(*) INTO :cnt
  370. FROM cw_currency
  371. Where moneyid = :arg_s_spt.moneyid;
  372. IF sqlca.SQLCode <> 0 THEN
  373. arg_msg = '查询币种失败'
  374. rslt = 0
  375. GOTO ext
  376. END IF
  377. IF cnt = 0 THEN
  378. arg_msg = '币种资料不存在'
  379. rslt = 0
  380. GOTO ext
  381. END IF
  382. IF arg_s_spt.transday < 0 THEN
  383. arg_msg = '不合理的标准运输时间'
  384. rslt = 0
  385. GOTO ext
  386. END IF
  387. IF arg_s_spt.inuse = 0 And arg_s_spt.sptid > 0 THEN
  388. IF f_check_spt_balcamt(arg_s_spt.sptid,arg_msg) = 0 THEN
  389. rslt = 0
  390. GOTO ext
  391. END IF
  392. END IF
  393. IF arg_s_spt.sptid = 0 THEN
  394. ll_sptid = f_sys_scidentity(0,"u_spt","sptid",arg_msg,True,id_sqlca)
  395. IF ll_sptid <= 0 THEN
  396. rslt = 0
  397. GOTO ext
  398. END IF
  399. INSERT INTO u_spt
  400. (sptid,
  401. sptcode,
  402. name,
  403. spttype,
  404. rep,
  405. tele,
  406. tele1,
  407. bank,
  408. cunt,
  409. address,
  410. code,
  411. dscrp,
  412. faxno,
  413. inuse,
  414. email,
  415. sptkind,
  416. picktype,
  417. banktypeid,
  418. pickdays,
  419. styleid,
  420. opdate,
  421. opemp,
  422. spttypeid,
  423. buyemp,
  424. state,
  425. grade,
  426. moneyid,
  427. transday,
  428. ljmail,
  429. ifbalc,
  430. aifmb_flag)
  431. VALUES(:ll_sptid,
  432. :arg_s_spt.sptcode,
  433. :arg_s_spt.name,
  434. :arg_s_spt.spttype,
  435. :arg_s_spt.rep,
  436. :arg_s_spt.tele,
  437. :arg_s_spt.tele1,
  438. :arg_s_spt.bank,
  439. :arg_s_spt.cunt,
  440. :arg_s_spt.address,
  441. :arg_s_spt.code,
  442. :arg_s_spt.dscrp,
  443. :arg_s_spt.faxno,
  444. :arg_s_spt.inuse,
  445. :arg_s_spt.email,
  446. :arg_s_spt.sptkind,
  447. :arg_s_spt.picktype,
  448. :arg_s_spt.banktypeid,
  449. :arg_s_spt.pickdays,
  450. :arg_s_spt.styleid,
  451. getdate(),
  452. :arg_opemp,
  453. :arg_s_spt.spttypeid,
  454. :arg_s_spt.buyemp,
  455. :arg_s_spt.state,
  456. :arg_s_spt.grade,
  457. :arg_s_spt.moneyid,
  458. :arg_s_spt.transday,
  459. :arg_s_spt.ljmail,
  460. :arg_s_spt.ifbalc,
  461. :arg_s_spt.aifmb_flag);
  462. IF sqlca.SQLCode <> 0 THEN
  463. arg_msg = '建立供应商资料失败,'+sqlca.SQLErrText
  464. rslt = 0
  465. GOTO ext
  466. END IF
  467. uo_sptid = ll_sptid
  468. ELSE
  469. UPDATE u_spt
  470. SET sptcode = :arg_s_spt.sptcode,
  471. name = :arg_s_spt.name,
  472. spttype = :arg_s_spt.spttype,
  473. rep = :arg_s_spt.rep,
  474. tele = :arg_s_spt.tele,
  475. tele1 = :arg_s_spt.tele1,
  476. bank = :arg_s_spt.bank,
  477. cunt = :arg_s_spt.cunt,
  478. address = :arg_s_spt.address,
  479. code = :arg_s_spt.code,
  480. dscrp = :arg_s_spt.dscrp,
  481. faxno = :arg_s_spt.faxno,
  482. inuse = :arg_s_spt.inuse,
  483. email = :arg_s_spt.email,
  484. sptkind = :arg_s_spt.sptkind,
  485. picktype = :arg_s_spt.picktype,
  486. banktypeid = :arg_s_spt.banktypeid,
  487. pickdays = :arg_s_spt.pickdays,
  488. styleid = :arg_s_spt.styleid,
  489. moddate = getdate(),
  490. modemp = :arg_opemp,
  491. spttypeid = :arg_s_spt.spttypeid,
  492. buyemp = :arg_s_spt.buyemp,
  493. state = :arg_s_spt.state,
  494. grade = :arg_s_spt.grade,
  495. moneyid = :arg_s_spt.moneyid,
  496. transday = :arg_s_spt.transday,
  497. ljmail = :arg_s_spt.ljmail,
  498. ifbalc = :arg_s_spt.ifbalc,
  499. aifmb_flag = :arg_s_spt.aifmb_flag
  500. Where sptid = :arg_s_spt.sptid;
  501. IF sqlca.SQLCode <> 0 THEN
  502. arg_msg = '更新供应商资料失败,'+sqlca.SQLErrText
  503. rslt = 0
  504. GOTO ext
  505. END IF
  506. uo_sptid = arg_s_spt.sptid
  507. END IF
  508. ext:
  509. IF rslt = 0 THEN
  510. ROLLBACK;
  511. ELSEIF rslt = 1 And arg_ifcommit THEN
  512. COMMIT;
  513. END IF
  514. RETURN rslt
  515. end function
  516. public function integer uof_code_find (long arg_id, string arg_code, ref string arg_msg);Int rslt = 1
  517. long cnt
  518. SELECT count(*) INTO :cnt
  519. FROM u_spt
  520. WHERE sptid <> :arg_id
  521. AND sptcode = :arg_code;
  522. IF sqlca.SQLCode <> 0 THEN
  523. arg_msg = '查询供应商编号:'+arg_code+',是否已用失败,'+sqlca.SQLErrText
  524. rslt = 0
  525. GOTO ext
  526. END IF
  527. IF cnt > 0 THEN
  528. arg_msg = '查询供应商编号:'+arg_code+',已用,请重新输入'
  529. rslt = 0
  530. GOTO ext
  531. END IF
  532. ext:
  533. RETURN rslt
  534. end function
  535. public function integer uof_del_rep (long arg_repid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  536. DELETE FROM u_spt_rep Where repid = :arg_repid;
  537. IF sqlca.SQLCode <> 0 THEN
  538. arg_msg = '删除供应商联系人失败,'+sqlca.SQLErrText
  539. rslt = 0
  540. GOTO ext
  541. END IF
  542. ext:
  543. IF rslt = 0 THEN
  544. ROLLBACK;
  545. ELSEIF rslt = 1 AND arg_ifcommit THEN
  546. COMMIT;
  547. END IF
  548. RETURN rslt
  549. end function
  550. public function integer uof_add_sample (s_cust_sample arg_s_spt_sample, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  551. Long cnt,ll_sampleid
  552. IF IsNull(arg_s_spt_sample.saler) THEN arg_s_spt_sample.saler = ''
  553. IF IsNull(arg_s_spt_sample.mtrlid) THEN arg_s_spt_sample.mtrlid = 0
  554. IF IsNull(arg_s_spt_sample.samplecontent) THEN arg_s_spt_sample.samplecontent = ''
  555. IF IsNull(arg_s_spt_sample.cusid) THEN arg_s_spt_sample.cusid = 0
  556. IF IsNull(arg_s_spt_sample.sampleid) THEN arg_s_spt_sample.sampleid = 0
  557. IF IsNull(arg_s_spt_sample.qty) THEN arg_s_spt_sample.qty = 0
  558. IF arg_s_spt_sample.saler = '' THEN
  559. arg_msg = '请输入经手人'
  560. rslt = 0
  561. GOTO ext
  562. END IF
  563. cnt = 0
  564. SELECT count(*) INTO :cnt
  565. FROM u_spt
  566. Where sptid = :arg_s_spt_sample.cusid;
  567. IF sqlca.SQLCode <> 0 THEN
  568. arg_msg = '查询供应商资料失败,'+sqlca.SQLErrText
  569. rslt = 0
  570. GOTO ext
  571. END IF
  572. IF cnt = 0 THEN
  573. arg_msg = '供应商资料不存在或重复'
  574. rslt = 0
  575. GOTO ext
  576. END IF
  577. cnt = 0
  578. SELECT count(*) INTO :cnt
  579. FROM u_mtrldef
  580. Where mtrlid = :arg_s_spt_sample.mtrlid;
  581. IF sqlca.SQLCode <> 0 THEN
  582. arg_msg = '查询物料资料失败,'+sqlca.SQLErrText
  583. rslt = 0
  584. GOTO ext
  585. END IF
  586. IF cnt = 0 THEN
  587. arg_msg = '物料资料不存在或重复'
  588. rslt = 0
  589. GOTO ext
  590. END IF
  591. IF arg_s_spt_sample.sampleid = 0 THEN
  592. ll_sampleid = f_sys_scidentity(0,"u_cust_sample","sampleid",arg_msg,TRUE,id_sqlca)
  593. IF ll_sampleid <= 0 THEN
  594. rslt = 0
  595. GOTO ext
  596. END IF
  597. INSERT INTO u_cust_sample
  598. (sampleid,
  599. cusid,
  600. saler,
  601. sampledate,
  602. mtrlid,
  603. samplecontent,
  604. qty,
  605. opdate,
  606. opemp,
  607. kind)
  608. VALUES(:ll_sampleid,
  609. :arg_s_spt_sample.cusid,
  610. :arg_s_spt_sample.saler,
  611. :arg_s_spt_sample.sampledate,
  612. :arg_s_spt_sample.mtrlid,
  613. :arg_s_spt_sample.samplecontent,
  614. :arg_s_spt_sample.qty,
  615. getdate(),
  616. :arg_opemp,
  617. 1);
  618. IF sqlca.SQLCode <> 0 THEN
  619. arg_msg = '建立供应商样版失败,'+sqlca.SQLErrText
  620. rslt = 0
  621. GOTO ext
  622. END IF
  623. ELSE
  624. UPDATE u_cust_sample
  625. SET saler = :arg_s_spt_sample.saler,
  626. sampledate = :arg_s_spt_sample.sampledate,
  627. mtrlid = :arg_s_spt_sample.mtrlid,
  628. samplecontent = :arg_s_spt_sample.samplecontent,
  629. qty = :arg_s_spt_sample.qty,
  630. moddate = getdate(),
  631. modemp = :arg_opemp
  632. Where sampleid = :arg_s_spt_sample.sampleid;
  633. IF sqlca.SQLCode <> 0 THEN
  634. arg_msg = '更新供应商样版失败,'+sqlca.SQLErrText
  635. rslt = 0
  636. GOTO ext
  637. END IF
  638. END IF
  639. ext:
  640. IF rslt = 0 THEN
  641. ROLLBACK;
  642. ELSEIF rslt = 1 AND arg_ifcommit THEN
  643. COMMIT;
  644. END IF
  645. RETURN rslt
  646. end function
  647. public function integer uof_del_sample (long arg_sampleid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  648. String ls_opemp
  649. SELECT opemp INTO :ls_opemp
  650. FROM u_cust_sample
  651. Where sampleid = :arg_sampleid;
  652. IF sqlca.SQLCode <> 0 THEN
  653. arg_msg = '查询供应商样版失败,'+sqlca.SQLErrText
  654. rslt = 0
  655. GOTO ext
  656. END IF
  657. IF NOT sys_power_issuper AND arg_opemp <> ls_opemp THEN
  658. arg_msg = '不是资料建立人或系统管理员,不能删除'
  659. rslt = 0
  660. GOTO ext
  661. END IF
  662. DELETE FROM u_cust_sample Where sampleid = :arg_sampleid;
  663. IF sqlca.SQLCode <> 0 THEN
  664. arg_msg = '删除供应商样版失败,'+sqlca.SQLErrText
  665. rslt = 0
  666. GOTO ext
  667. END IF
  668. ext:
  669. IF rslt = 0 THEN
  670. ROLLBACK;
  671. ELSEIF rslt = 1 AND arg_ifcommit THEN
  672. COMMIT;
  673. END IF
  674. RETURN rslt
  675. end function
  676. public function integer uof_change_state (long arg_sptid, integer arg_state, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1,li_state
  677. SELECT state INTO :li_state
  678. FROM u_spt
  679. Where sptid = :arg_sptid;
  680. IF sqlca.SQLCode <> 0 THEN
  681. arg_msg = '查询供应商资料失败,'+sqlca.SQLErrText
  682. rslt = 0
  683. GOTO ext
  684. END IF
  685. IF arg_state = 1 THEN
  686. IF li_state = 1 THEN
  687. arg_msg = '供应商资料已成为正式供应商资料,不能再操作'
  688. rslt = 0
  689. GOTO ext
  690. END IF
  691. UPDATE u_spt SET state = 1
  692. WHERE sptid = :arg_sptid
  693. AND State <> 1;
  694. IF sqlca.SQLCode <> 0 THEN
  695. arg_msg = '更新供应商资料类型失败,'+sqlca.SQLErrText
  696. rslt = 0
  697. GOTO ext
  698. END IF
  699. ELSEif arg_state = 0 THEN
  700. IF li_state = 0 THEN
  701. arg_msg = '供应商资料已成为非正式供应商资料,不能再操作'
  702. rslt = 0
  703. GOTO ext
  704. END IF
  705. UPDATE u_spt SET state = 0
  706. WHERE sptid = :arg_sptid
  707. AND State <> 0;
  708. IF sqlca.SQLCode <> 0 THEN
  709. arg_msg = '更新供应商资料类型失败,'+sqlca.SQLErrText
  710. rslt = 0
  711. GOTO ext
  712. END IF
  713. ELSEif arg_state = 2 THEN
  714. IF li_state = 2 THEN
  715. arg_msg = '供应商资料成为黑名单供应商资料,不能再操作'
  716. rslt = 0
  717. GOTO ext
  718. END IF
  719. UPDATE u_spt SET state = 2
  720. WHERE sptid = :arg_sptid
  721. AND State <> 2;
  722. IF sqlca.SQLCode <> 0 THEN
  723. arg_msg = '更新供应商资料类型失败,'+sqlca.SQLErrText
  724. rslt = 0
  725. GOTO ext
  726. END IF
  727. END IF
  728. ext:
  729. IF rslt = 0 THEN
  730. ROLLBACK;
  731. ELSEIF rslt = 1 AND arg_ifcommit THEN
  732. COMMIT;
  733. END IF
  734. RETURN rslt
  735. end function
  736. public function integer uof_audit (long arg_sptid, string arg_emp, ref string arg_msg, boolean arg_ifcommit);Int li_flag
  737. Int rslt = 1
  738. Select flag
  739. Into :li_flag
  740. From u_spt
  741. Where sptid = :arg_sptid;
  742. If sqlca.SQLCode <> 0 Then
  743. rslt = 0
  744. arg_msg = '查询供应商审核状态失败,'+sqlca.SQLErrText
  745. Goto ext
  746. End If
  747. If li_flag <> 0 Then
  748. rslt = 0
  749. arg_msg = '供应商不是在待审核状态,不能审核'
  750. Goto ext
  751. End If
  752. Update u_spt
  753. Set flag = 1 ,
  754. auditemp = :arg_emp,
  755. auditdate = getdate()
  756. Where sptid = :arg_sptid
  757. And flag = 0 ;
  758. If sqlca.SQLCode = 0 Then
  759. If sqlca.SQLNRows = 0 Then
  760. rslt = 0
  761. arg_msg = '供应商正在审核,请刷新 '+sqlca.SQLErrText
  762. Goto ext
  763. End If
  764. Else
  765. rslt = 0
  766. arg_msg = '供应商审核失败 '+sqlca.SQLErrText
  767. Goto ext
  768. End If
  769. ext:
  770. If rslt = 0 Then
  771. Rollback;
  772. ElseIf rslt = 1 And arg_ifcommit Then
  773. Commit;
  774. End If
  775. Return rslt
  776. end function
  777. public function integer uof_secaudit (long arg_sptid, string arg_emp, ref string arg_msg, boolean arg_ifcommit);Int li_flag
  778. Int rslt = 1
  779. Select flag
  780. Into :li_flag
  781. From u_spt
  782. Where sptid = :arg_sptid;
  783. If sqlca.SQLCode <> 0 Then
  784. rslt = 0
  785. arg_msg = '查询供应商审核状态失败,'+sqlca.SQLErrText
  786. Goto ext
  787. End If
  788. If li_flag <> 1 Then
  789. rslt = 0
  790. arg_msg = '供应商不是在待终审状态,不能终审'
  791. Goto ext
  792. End If
  793. Update u_spt
  794. Set flag = 2 ,
  795. secauditemp = :arg_emp,
  796. secauditdate = getdate(),
  797. state = 1
  798. Where sptid = :arg_sptid
  799. And flag = 1 ;
  800. If sqlca.SQLCode = 0 Then
  801. If sqlca.SQLNRows = 0 Then
  802. rslt = 0
  803. arg_msg = '供应商正在审核,请刷新 '+sqlca.SQLErrText
  804. Goto ext
  805. End If
  806. Else
  807. rslt = 0
  808. arg_msg = '供应商审核失败 '+sqlca.SQLErrText
  809. Goto ext
  810. End If
  811. ext:
  812. If rslt = 0 Then
  813. Rollback;
  814. ElseIf rslt = 1 And arg_ifcommit Then
  815. Commit;
  816. End If
  817. Return rslt
  818. end function
  819. public function integer uof_c_secaudit (long arg_sptid, ref string arg_msg, boolean arg_ifcommit);Int li_flag
  820. Int rslt = 1
  821. datetime ld_nulldt
  822. setnull(ld_nulldt)
  823. Select flag
  824. Into :li_flag
  825. From u_spt
  826. Where sptid = :arg_sptid;
  827. If sqlca.SQLCode <> 0 Then
  828. rslt = 0
  829. arg_msg = '查询供应商审核状态失败,'+sqlca.SQLErrText
  830. Goto ext
  831. End If
  832. If li_flag <> 2 Then
  833. rslt = 0
  834. arg_msg = '供应商不是在终审状态,不能撤终审'
  835. Goto ext
  836. End If
  837. Update u_spt
  838. Set flag = 1 ,
  839. secauditemp = '',
  840. secauditdate = :ld_nulldt,
  841. state = 0
  842. Where sptid = :arg_sptid
  843. And flag = 2 ;
  844. If sqlca.SQLCode = 0 Then
  845. If sqlca.SQLNRows = 0 Then
  846. rslt = 0
  847. arg_msg = '供应商正在撤审,请刷新 '+sqlca.SQLErrText
  848. Goto ext
  849. End If
  850. Else
  851. rslt = 0
  852. arg_msg = '供应商撤终审失败 '+sqlca.SQLErrText
  853. Goto ext
  854. End If
  855. ext:
  856. If rslt = 0 Then
  857. Rollback;
  858. ElseIf rslt = 1 And arg_ifcommit Then
  859. Commit;
  860. End If
  861. Return rslt
  862. end function
  863. public function integer uof_c_audit (long arg_sptid, ref string arg_msg, boolean arg_ifcommit);Int li_flag
  864. Int rslt = 1
  865. datetime ld_nulldt
  866. setnull(ld_nulldt)
  867. Select flag
  868. Into :li_flag
  869. From u_spt
  870. Where sptid = :arg_sptid;
  871. If sqlca.SQLCode <> 0 Then
  872. rslt = 0
  873. arg_msg = '查询供应商审核状态失败,'+sqlca.SQLErrText
  874. Goto ext
  875. End If
  876. If li_flag <> 1 Then
  877. rslt = 0
  878. arg_msg = '供应商不是在待终审状态,不能撤初审'
  879. Goto ext
  880. End If
  881. Update u_spt
  882. Set flag = 0 ,
  883. auditemp = '',
  884. auditdate = :ld_nulldt
  885. Where sptid = :arg_sptid
  886. And flag = 1 ;
  887. If sqlca.SQLCode = 0 Then
  888. If sqlca.SQLNRows = 0 Then
  889. rslt = 0
  890. arg_msg = '供应商正在撤审,请刷新 '+sqlca.SQLErrText
  891. Goto ext
  892. End If
  893. Else
  894. rslt = 0
  895. arg_msg = '供应商撤初审失败 '+sqlca.SQLErrText
  896. Goto ext
  897. End If
  898. ext:
  899. If rslt = 0 Then
  900. Rollback;
  901. ElseIf rslt = 1 And arg_ifcommit Then
  902. Commit;
  903. End If
  904. Return rslt
  905. end function
  906. on uo_spt.create
  907. call super::create
  908. TriggerEvent( this, "constructor" )
  909. end on
  910. on uo_spt.destroy
  911. TriggerEvent( this, "destructor" )
  912. call super::destroy
  913. end on