w_mtrlware_download_ljfieb.srw 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365
  1. $PBExportHeader$w_mtrlware_download_ljfieb.srw
  2. forward
  3. global type w_mtrlware_download_ljfieb from w_publ_choice
  4. end type
  5. type st_sptstr from statictext within w_mtrlware_download_ljfieb
  6. end type
  7. type cb_update from uo_imflatbutton within w_mtrlware_download_ljfieb
  8. end type
  9. end forward
  10. global type w_mtrlware_download_ljfieb from w_publ_choice
  11. integer width = 3813
  12. integer height = 2380
  13. string title = "供应商库存推送"
  14. st_sptstr st_sptstr
  15. cb_update cb_update
  16. end type
  17. global w_mtrlware_download_ljfieb w_mtrlware_download_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_sptid
  28. uo_ljfieb uo_fieb
  29. end variables
  30. on w_mtrlware_download_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_mtrlware_download_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
  61. SELECT CusCode
  62. INTO :ls_cuscode
  63. FROM LJFIEB_CusComm
  64. Where CusCommID = :ins_sendid Using tr_eb_sqlca;
  65. IF tr_eb_sqlca.SQLCode <> 0 THEN
  66. ls_cuscode = ''
  67. END IF
  68. IF Trim(ls_cuscode) = '' THEN
  69. MessageBox('系统提示','供应商信息不明确,请检查')
  70. RETURN
  71. END IF
  72. String ls_sptcode, ls_sptname
  73. String ls_sptmtrlcode,ls_mtrlcode_my,ls_mtrlname_my,ls_mtrlmode_my
  74. Long ll_mtrlid
  75. SELECT sptid, sptcode, name
  76. INTO :ins_sptid,:ls_sptcode,:ls_sptname
  77. FROM u_spt
  78. WHERE commcode = :ls_cuscode
  79. And commsccode = :ins_sendsccode Using sqlca;
  80. IF sqlca.SQLCode <> 0 THEN
  81. MessageBox('系统提示','查询供应商信息失败,请检查通信设置是否正确,'+sqlca.SQLErrText)
  82. RETURN
  83. END IF
  84. st_sptstr.Text = '供应商:['+ls_sptcode+']'+ls_sptname
  85. Long ll_status,ll_Complete
  86. DateTime ld_ConfirmTime
  87. String ls_ConfirmUser
  88. SELECT status,Complete,ConfirmTime,ConfirmUser
  89. INTO :ll_status,:ll_Complete,:ld_ConfirmTime,:ls_ConfirmUser
  90. FROM LJFIEB_packet
  91. Where serialnum = :ins_sn Using tr_eb_sqlca;
  92. IF tr_eb_sqlca.SQLCode <> 0 THEN
  93. MessageBox('Error','查询通信数据失败,'+sqlca.SQLErrText)
  94. RETURN
  95. END IF
  96. IF ll_status <> 5 THEN
  97. cb_update.Enabled = False
  98. END IF
  99. IF ll_Complete = 1 THEN
  100. st_sptstr.Text = st_sptstr.Text + ',本批库存数据已于 '+String(ld_ConfirmTime,'yyyy-mm-dd hh:mm')+' 由 '+ls_ConfirmUser+' 更新到供应商库存列表'
  101. END IF
  102. end event
  103. event open;This.TriggerEvent('ue_before_open')
  104. wf_movetocenter()
  105. if_ue_sort = True
  106. dw_CH.SetTransObject (tr_eb_sqlca)
  107. cb_retrieve.TriggerEvent(Clicked!)
  108. end event
  109. type cb_func from w_publ_choice`cb_func within w_mtrlware_download_ljfieb
  110. boolean visible = false
  111. end type
  112. type cb_exit from w_publ_choice`cb_exit within w_mtrlware_download_ljfieb
  113. integer x = 699
  114. integer width = 165
  115. string text = "退出"
  116. end type
  117. type sle_ch from w_publ_choice`sle_ch within w_mtrlware_download_ljfieb
  118. boolean visible = false
  119. end type
  120. type dw_ch from w_publ_choice`dw_ch within w_mtrlware_download_ljfieb
  121. integer width = 3794
  122. integer height = 1972
  123. string dataobject = "dw_mtrlware_ljfieb"
  124. end type
  125. type st_1 from w_publ_choice`st_1 within w_mtrlware_download_ljfieb
  126. boolean visible = false
  127. end type
  128. type cb_retrieve from w_publ_choice`cb_retrieve within w_mtrlware_download_ljfieb
  129. end type
  130. event cb_retrieve::clicked;dw_ch.retrieve(ins_sn)
  131. end event
  132. type cb_choice from w_publ_choice`cb_choice within w_mtrlware_download_ljfieb
  133. boolean visible = false
  134. integer x = 151
  135. integer width = 549
  136. string text = "更新供应商库存列表"
  137. string normalpicname = "update.BMP"
  138. end type
  139. type ln_bar from w_publ_choice`ln_bar within w_mtrlware_download_ljfieb
  140. end type
  141. type ln_bar2 from w_publ_choice`ln_bar2 within w_mtrlware_download_ljfieb
  142. end type
  143. type r_bar from w_publ_choice`r_bar within w_mtrlware_download_ljfieb
  144. end type
  145. type ln_1 from w_publ_choice`ln_1 within w_mtrlware_download_ljfieb
  146. end type
  147. type ln_2 from w_publ_choice`ln_2 within w_mtrlware_download_ljfieb
  148. end type
  149. type st_sptstr from statictext within w_mtrlware_download_ljfieb
  150. integer x = 27
  151. integer y = 188
  152. integer width = 3685
  153. integer height = 72
  154. boolean bringtotop = true
  155. integer textsize = -9
  156. integer weight = 400
  157. fontcharset fontcharset = gb2312charset!
  158. fontpitch fontpitch = variable!
  159. string facename = "宋体"
  160. long textcolor = 33554432
  161. long backcolor = 134217739
  162. string text = "供应商:"
  163. boolean focusrectangle = false
  164. end type
  165. type cb_update from uo_imflatbutton within w_mtrlware_download_ljfieb
  166. integer x = 151
  167. integer width = 549
  168. integer height = 164
  169. integer taborder = 30
  170. boolean bringtotop = true
  171. string text = "更新供应商库存列表"
  172. string normalpicname = "update.BMP"
  173. integer picsize = 16
  174. toolbaralignment pic_align = alignattop!
  175. boolean border = false
  176. end type
  177. event clicked;call super::clicked;Long ll_scid,ll_mtrlwareid,ll_mtrlid
  178. String ls_mtrlcode,ls_mtrlname,ls_storagename
  179. String ls_status,ls_woodcode,ls_pcode
  180. String ls_plancode,ls_mtrlcuscode,ls_location
  181. Decimal ld_notauditnoallocqty
  182. DateTime ld_senddate,ld_senddate_ori
  183. Long ll_i
  184. FOR ll_i = 1 To dw_ch.RowCount()
  185. ll_scid = dw_ch.Object.scid[ll_i]
  186. ll_mtrlwareid = dw_ch.Object.mtrlwareid[ll_i]
  187. ll_mtrlid = dw_ch.Object.mtrlid[ll_i]
  188. ls_mtrlcode = dw_ch.Object.mtrlcode[ll_i]
  189. ls_mtrlname = dw_ch.Object.mtrlname[ll_i]
  190. ls_storagename = dw_ch.Object.storagename[ll_i]
  191. ls_status = dw_ch.Object.status[ll_i]
  192. ls_woodcode = dw_ch.Object.woodcode[ll_i]
  193. ls_pcode = dw_ch.Object.pcode[ll_i]
  194. ls_plancode = dw_ch.Object.plancode[ll_i]
  195. ls_mtrlcuscode = dw_ch.Object.mtrlcuscode[ll_i]
  196. ls_location = dw_ch.Object.Location[ll_i]
  197. ld_notauditnoallocqty = dw_ch.Object.notauditnoallocqty[ll_i]
  198. ld_senddate = dw_ch.Object.scid[ll_i]
  199. SELECT senddate INTO :ld_senddate_ori
  200. FROM u_mtrlware_propel
  201. WHERE sptid = :ins_sptid
  202. AND scid = :ll_scid
  203. And mtrlwareid = :ll_mtrlwareid ;
  204. IF sqlca.SQLCode <> 0 THEN
  205. IF sqlca.SQLCode = 100 THEN
  206. INSERT INTO u_mtrlware_propel
  207. (sptid,
  208. scid,
  209. mtrlwareid,
  210. mtrlid,
  211. mtrlcode,
  212. mtrlname,
  213. storagename,
  214. status,
  215. woodcode,
  216. pcode,
  217. plancode,
  218. mtrlcuscode,
  219. location,
  220. notauditnoallocqty,
  221. senddate)
  222. VALUES (:ins_sptid,
  223. :ll_scid,
  224. :ll_mtrlwareid,
  225. :ll_mtrlid,
  226. :ls_mtrlcode,
  227. :ls_mtrlname,
  228. :ls_storagename,
  229. :ls_status,
  230. :ls_woodcode,
  231. :ls_pcode,
  232. :ls_plancode,
  233. :ls_mtrlcuscode,
  234. :ls_location,
  235. :ld_notauditnoallocqty,
  236. :ld_senddate);
  237. IF sqlca.SQLCode <> 0 THEN
  238. ROLLBACK;
  239. MessageBox('Error','插入供应商库存信息失败,供应商产品编码:'+ls_mtrlcode+',供应商产品名称:'+ls_mtrlname)
  240. RETURN
  241. END IF
  242. ELSE
  243. ROLLBACK;
  244. MessageBox('Error','查询供应商库存信息失败,供应商产品编码:'+ls_mtrlcode+',供应商产品名称:'+ls_mtrlname)
  245. RETURN
  246. END IF
  247. ELSE
  248. IF ld_senddate > ld_senddate_ori THEN
  249. UPDATE u_mtrlware_propel
  250. SET notauditnoallocqty = :ld_notauditnoallocqty,
  251. senddate = :ld_senddate
  252. WHERE sptid = :ins_sptid
  253. AND scid = :ll_scid
  254. And mtrlwareid = :ll_mtrlwareid;
  255. IF sqlca.SQLCode <> 0 THEN
  256. ROLLBACK;
  257. MessageBox('Error','更新供应商库存信息失败,供应商产品编码:'+ls_mtrlcode+',供应商产品名称:'+ls_mtrlname)
  258. RETURN
  259. END IF
  260. END IF
  261. END IF
  262. NEXT
  263. COMMIT;
  264. //更新本地通信记录
  265. UPDATE LJFIEB_packet
  266. SET status = 6,
  267. Complete = 1,
  268. ConfirmTime = getdate(),
  269. ConfirmUser = :publ_operator
  270. Where SerialNum = :ins_sn Using tr_eb_sqlca;
  271. IF tr_eb_sqlca.SQLCode <> 0 THEN
  272. ROLLBACK Using tr_eb_sqlca;
  273. MessageBox('Error','更新本地通信记录失败,'+tr_eb_sqlca.SQLErrText)
  274. RETURN
  275. END IF
  276. String ls_SerialNum
  277. SELECT TOP 1 NEWID() INTO :ls_SerialNum
  278. From u_user Using sqlca;
  279. IF sqlca.SQLCode <> 0 THEN
  280. ROLLBACK Using sqlca;
  281. MessageBox('Error','生成序列号失败,'+sqlca.SQLErrText)
  282. RETURN
  283. END IF
  284. IF IsNull(ls_SerialNum) THEN ls_SerialNum = ''
  285. IF ls_SerialNum = '' THEN
  286. MessageBox('Error','错误的发送序列号')
  287. RETURN
  288. END IF
  289. String arg_msg
  290. 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
  291. MessageBox('系统提示','发送确认指令失败 '+arg_msg)
  292. RETURN
  293. END IF
  294. MessageBox('系统提示','更新供应商库存成功!')
  295. close(parent)
  296. end event