w_mtrl_match_ljfieb.srw 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396
  1. $PBExportHeader$w_mtrl_match_ljfieb.srw
  2. forward
  3. global type w_mtrl_match_ljfieb from w_publ_choice
  4. end type
  5. type st_sptstr from statictext within w_mtrl_match_ljfieb
  6. end type
  7. type cb_update from uo_imflatbutton within w_mtrl_match_ljfieb
  8. end type
  9. end forward
  10. global type w_mtrl_match_ljfieb from w_publ_choice
  11. integer width = 3113
  12. integer height = 2380
  13. string title = "产品编码匹配信息反馈"
  14. st_sptstr st_sptstr
  15. cb_update cb_update
  16. end type
  17. global w_mtrl_match_ljfieb w_mtrl_match_ljfieb
  18. type variables
  19. Transaction tr_eb_sqlca
  20. s_packet_ljfieb s_inscust
  21. string ins_sn
  22. long ins_sendid,ins_receid
  23. string ins_sendsccode,ins_reccesccode
  24. string ins_RelatedCode
  25. datetime ins_addtime
  26. string ins_adduser
  27. long ins_cusid,ins_sptid
  28. uo_ljfieb uo_fieb
  29. end variables
  30. on w_mtrl_match_ljfieb.create
  31. int iCurrent
  32. call super::create
  33. this.st_sptstr=create st_sptstr
  34. this.cb_update=create cb_update
  35. iCurrent=UpperBound(this.Control)
  36. this.Control[iCurrent+1]=this.st_sptstr
  37. this.Control[iCurrent+2]=this.cb_update
  38. end on
  39. on w_mtrl_match_ljfieb.destroy
  40. call super::destroy
  41. destroy(this.st_sptstr)
  42. destroy(this.cb_update)
  43. end on
  44. event ue_before_open;call super::ue_before_open;tr_eb_sqlca = sys_email_sqlca // 电子商务连接
  45. IF sys_email_sqlca.DBHandle() = 0 THEN
  46. MessageBox('Error','电子商务数据库连接失败,请检查')
  47. RETURN
  48. END IF
  49. uo_fieb = Create uo_ljfieb
  50. uo_fieb.commit_transaction = tr_eb_sqlca
  51. s_inscust = Message.PowerObjectParm
  52. ins_sn = s_inscust.serialnum
  53. ins_sendid = s_inscust.sendcuscommid
  54. ins_receid = s_inscust.receivecuscommid
  55. ins_sendsccode = s_inscust.sendsccode
  56. ins_reccesccode = s_inscust.receivesccode
  57. ins_RelatedCode = s_inscust.RelatedCode
  58. ins_addtime = s_inscust.addtime
  59. ins_adduser = s_inscust.adduser
  60. String ls_cuscode_comm
  61. SELECT CusCode
  62. INTO :ls_cuscode_comm
  63. FROM LJFIEB_CusComm
  64. Where CusCommID = :ins_sendid Using tr_eb_sqlca;
  65. IF tr_eb_sqlca.SQLCode <> 0 THEN
  66. ls_cuscode_comm = ''
  67. END IF
  68. IF Trim(ls_cuscode_comm) = '' THEN
  69. MessageBox('系统提示','客户信息不明确,请检查')
  70. RETURN
  71. END IF
  72. String ls_cuscode, ls_cusname
  73. string ls_sptcode, ls_sptname
  74. String ls_sptmtrlcode,ls_mtrlcode_my,ls_mtrlname_my,ls_mtrlmode_my
  75. Long ll_mtrlid
  76. SELECT cusid, cuscode, name
  77. INTO :ins_cusid,:ls_cuscode,:ls_cusname
  78. FROM u_cust
  79. WHERE commcode = :ls_cuscode_comm
  80. And commsccode = :ins_sendsccode Using sqlca;
  81. IF sqlca.SQLCode <> 0 THEN
  82. ins_cusid = 0
  83. ls_cuscode = ''
  84. ls_cusname = ''
  85. // MessageBox('系统提示','查询客户信息失败,请检查通信设置是否正确,'+sqlca.SQLErrText)
  86. // RETURN
  87. END IF
  88. SELECT sptid, sptcode, name
  89. INTO :ins_sptid,:ls_sptcode,:ls_sptname
  90. FROM u_spt
  91. WHERE commcode = :ls_cuscode_comm
  92. And commsccode = :ins_sendsccode Using sqlca;
  93. IF sqlca.SQLCode <> 0 THEN
  94. ins_sptid = 0
  95. ls_sptcode = ''
  96. ls_sptname = ''
  97. // MessageBox('系统提示','查询客户信息失败,请检查通信设置是否正确,'+sqlca.SQLErrText)
  98. // RETURN
  99. END IF
  100. if ins_cusid = 0 and ins_sptid = 0 then
  101. MessageBox('系统提示','查询客户(供应商)信息失败,请检查通信设置是否正确,'+sqlca.SQLErrText)
  102. RETURN
  103. end if
  104. string ls_msg = ''
  105. if ins_cusid > 0 then
  106. ls_msg = '客户:['+ls_cuscode+']'+ls_cusname
  107. end if
  108. if ins_sptid > 0 then
  109. if ins_cusid > 0 then
  110. ls_msg += ';'
  111. end if
  112. ls_msg += '供应商:['+ls_sptcode+']'+ls_sptname
  113. end if
  114. st_sptstr.Text = ls_msg
  115. Long ll_status,ll_Complete
  116. DateTime ld_ConfirmTime
  117. String ls_ConfirmUser
  118. SELECT status,Complete,ConfirmTime,ConfirmUser
  119. INTO :ll_status,:ll_Complete,:ld_ConfirmTime,:ls_ConfirmUser
  120. FROM LJFIEB_packet
  121. Where serialnum = :ins_sn Using tr_eb_sqlca;
  122. IF tr_eb_sqlca.SQLCode <> 0 THEN
  123. MessageBox('Error','查询通信数据失败,'+sqlca.SQLErrText)
  124. RETURN
  125. END IF
  126. IF ll_status <> 5 THEN
  127. cb_update.Enabled = False
  128. END IF
  129. IF ll_Complete = 1 THEN
  130. st_sptstr.Text = st_sptstr.Text + ',本批反馈信息已于 '+String(ld_ConfirmTime,'yyyy-mm-dd hh:mm')+' 由 '+ls_ConfirmUser+' 更新到客户物料别名'
  131. END IF
  132. end event
  133. event open;This.TriggerEvent('ue_before_open')
  134. wf_movetocenter()
  135. if_ue_sort = True
  136. dw_CH.SetTransObject (tr_eb_sqlca)
  137. cb_retrieve.TriggerEvent(Clicked!)
  138. end event
  139. type cb_func from w_publ_choice`cb_func within w_mtrl_match_ljfieb
  140. boolean visible = false
  141. end type
  142. type cb_exit from w_publ_choice`cb_exit within w_mtrl_match_ljfieb
  143. integer x = 864
  144. integer width = 165
  145. string text = "退出"
  146. end type
  147. type sle_ch from w_publ_choice`sle_ch within w_mtrl_match_ljfieb
  148. boolean visible = false
  149. end type
  150. type dw_ch from w_publ_choice`dw_ch within w_mtrl_match_ljfieb
  151. integer width = 3081
  152. integer height = 1972
  153. string dataobject = "dw_mtrl_match_ljfieb"
  154. end type
  155. type st_1 from w_publ_choice`st_1 within w_mtrl_match_ljfieb
  156. boolean visible = false
  157. end type
  158. type cb_retrieve from w_publ_choice`cb_retrieve within w_mtrl_match_ljfieb
  159. end type
  160. event cb_retrieve::clicked;dw_ch.retrieve(ins_sn)
  161. end event
  162. type cb_choice from w_publ_choice`cb_choice within w_mtrl_match_ljfieb
  163. boolean visible = false
  164. integer x = 151
  165. integer width = 549
  166. string text = "更新供应商库存列表"
  167. string normalpicname = "update.BMP"
  168. end type
  169. type ln_bar from w_publ_choice`ln_bar within w_mtrl_match_ljfieb
  170. end type
  171. type ln_bar2 from w_publ_choice`ln_bar2 within w_mtrl_match_ljfieb
  172. end type
  173. type r_bar from w_publ_choice`r_bar within w_mtrl_match_ljfieb
  174. end type
  175. type ln_1 from w_publ_choice`ln_1 within w_mtrl_match_ljfieb
  176. end type
  177. type ln_2 from w_publ_choice`ln_2 within w_mtrl_match_ljfieb
  178. end type
  179. type st_sptstr from statictext within w_mtrl_match_ljfieb
  180. integer x = 27
  181. integer y = 188
  182. integer width = 3040
  183. integer height = 72
  184. boolean bringtotop = true
  185. integer textsize = -9
  186. integer weight = 400
  187. fontcharset fontcharset = gb2312charset!
  188. fontpitch fontpitch = variable!
  189. string facename = "宋体"
  190. long textcolor = 33554432
  191. long backcolor = 134217739
  192. string text = "供应商:"
  193. boolean focusrectangle = false
  194. end type
  195. type cb_update from uo_imflatbutton within w_mtrl_match_ljfieb
  196. integer x = 151
  197. integer width = 713
  198. integer height = 164
  199. integer taborder = 30
  200. boolean bringtotop = true
  201. string text = "更新客户(供应商)物料别名"
  202. string normalpicname = "update.BMP"
  203. integer picsize = 16
  204. toolbaralignment pic_align = alignattop!
  205. boolean border = false
  206. end type
  207. event clicked;call super::clicked;String ls_mtrlcode_spt,ls_mtrlcode_self,ls_mtrlname_self,ls_mtrlmode_self
  208. Long ll_mtrlid
  209. String arg_msg
  210. Long ll_i
  211. FOR ll_i = 1 To dw_ch.RowCount()
  212. ls_mtrlcode_spt = dw_ch.Object.mtrlcode_spt[ll_i]
  213. ls_mtrlcode_self = dw_ch.Object.mtrlcode_self[ll_i]
  214. ls_mtrlname_self = dw_ch.Object.mtrlname_self[ll_i]
  215. ls_mtrlmode_self = dw_ch.Object.mtrlmode_self[ll_i]
  216. SELECT mtrlid INTO :ll_mtrlid
  217. FROM u_mtrldef
  218. Where mtrlcode = :ls_mtrlcode_spt;
  219. IF sqlca.SQLCode <> 0 THEN
  220. arg_msg = arg_msg +'~r~n'+'第'+String(ll_i)+'行,查询本地资料信息失败,'+sqlca.SQLErrText
  221. CONTINUE
  222. END IF
  223. IF ins_cusid > 0 THEN
  224. UPDATE u_cusmtrlname
  225. SET cusmtrlcode = :ls_mtrlcode_self,
  226. cusmtrlname = :ls_mtrlname_self,
  227. cusmtrlmode = :ls_mtrlmode_self
  228. WHERE cusid = :ins_cusid
  229. And mtrlid = :ll_mtrlid;
  230. IF sqlca.SQLCode = 0 THEN
  231. IF sqlca.SQLNRows = 0 THEN
  232. INSERT INTO u_cusmtrlname
  233. (cusid,
  234. mtrlid,
  235. cusmtrlcode,
  236. cusmtrlname,
  237. cusmtrlmode)
  238. VALUES (:ins_cusid,
  239. :ll_mtrlid,
  240. :ls_mtrlcode_self,
  241. :ls_mtrlname_self,
  242. :ls_mtrlmode_self);
  243. IF sqlca.SQLCode <> 0 THEN
  244. arg_msg = arg_msg +'~r~n'+'第'+String(ll_i)+'行,新增客户物料别名信息失败,'+sqlca.SQLErrText
  245. GOTO _upspt
  246. END IF
  247. END IF
  248. ELSE
  249. arg_msg = arg_msg +'~r~n'+'第'+String(ll_i)+'行,更新客户物料别名信息失败,'+sqlca.SQLErrText
  250. GOTO _upspt
  251. END IF
  252. END IF
  253. _upspt:
  254. IF ins_sptid > 0 THEN
  255. UPDATE u_sptmtrlname
  256. SET sptmtrlcode = :ls_mtrlcode_self,
  257. sptmtrlname = :ls_mtrlname_self,
  258. sptmtrlmode = :ls_mtrlmode_self
  259. WHERE sptid = :ins_sptid
  260. And mtrlid = :ll_mtrlid;
  261. IF sqlca.SQLCode = 0 THEN
  262. IF sqlca.SQLNRows = 0 THEN
  263. INSERT INTO u_sptmtrlname
  264. (sptid,
  265. mtrlid,
  266. sptmtrlcode,
  267. sptmtrlname,
  268. sptmtrlmode)
  269. VALUES (:ins_sptid,
  270. :ll_mtrlid,
  271. :ls_mtrlcode_self,
  272. :ls_mtrlname_self,
  273. :ls_mtrlmode_self);
  274. IF sqlca.SQLCode <> 0 THEN
  275. arg_msg = arg_msg +'~r~n'+'第'+String(ll_i)+'行,新增供应商物料别名信息失败,'+sqlca.SQLErrText
  276. CONTINUE
  277. END IF
  278. END IF
  279. ELSE
  280. arg_msg = arg_msg +'~r~n'+'第'+String(ll_i)+'行,更新供应商物料别名信息失败,'+sqlca.SQLErrText
  281. CONTINUE
  282. END IF
  283. END IF
  284. NEXT
  285. COMMIT;
  286. //更新本地通信记录
  287. UPDATE LJFIEB_packet
  288. SET status = 6,
  289. Complete = 1,
  290. ConfirmTime = getdate(),
  291. ConfirmUser = :publ_operator
  292. Where SerialNum = :ins_sn Using tr_eb_sqlca;
  293. IF tr_eb_sqlca.SQLCode <> 0 THEN
  294. ROLLBACK Using tr_eb_sqlca;
  295. MessageBox('Error','更新本地通信记录失败,'+tr_eb_sqlca.SQLErrText)
  296. RETURN
  297. END IF
  298. String ls_SerialNum
  299. SELECT TOP 1 NEWID() INTO :ls_SerialNum
  300. From u_user Using sqlca;
  301. IF sqlca.SQLCode <> 0 THEN
  302. ROLLBACK Using sqlca;
  303. MessageBox('Error','生成序列号失败,'+sqlca.SQLErrText)
  304. RETURN
  305. END IF
  306. IF IsNull(ls_SerialNum) THEN ls_SerialNum = ''
  307. IF ls_SerialNum = '' THEN
  308. MessageBox('Error','错误的发送序列号')
  309. RETURN
  310. END IF
  311. IF uo_fieb.add_packet(ls_SerialNum,'',ins_receid,ins_reccesccode,ins_sendid,ins_sendsccode,6,'更新物料匹配信息','','',ins_sn,ins_RelatedCode,0,arg_msg,True) = 0 THEN
  312. MessageBox('系统提示','发送确认指令失败 '+arg_msg)
  313. RETURN
  314. END IF
  315. MessageBox('系统提示','更新客户(供应商)物料别名成功!')
  316. Close(Parent)
  317. end event