w_saletaskmx_redate_ljfieb.srw 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472
  1. $PBExportHeader$w_saletaskmx_redate_ljfieb.srw
  2. forward
  3. global type w_saletaskmx_redate_ljfieb from w_publ_base
  4. end type
  5. type dw_1 from u_dw_rbtnfilter within w_saletaskmx_redate_ljfieb
  6. end type
  7. type cb_p_set from uo_imflatbutton within w_saletaskmx_redate_ljfieb
  8. end type
  9. type cb_ok from uo_imflatbutton within w_saletaskmx_redate_ljfieb
  10. end type
  11. type mle_1 from multilineedit within w_saletaskmx_redate_ljfieb
  12. end type
  13. type sle_1 from singlelineedit within w_saletaskmx_redate_ljfieb
  14. end type
  15. type st_1 from statictext within w_saletaskmx_redate_ljfieb
  16. end type
  17. type st_2 from statictext within w_saletaskmx_redate_ljfieb
  18. end type
  19. type ln_bar from line within w_saletaskmx_redate_ljfieb
  20. end type
  21. type ln_bar2 from line within w_saletaskmx_redate_ljfieb
  22. end type
  23. type r_bar from rectangle within w_saletaskmx_redate_ljfieb
  24. end type
  25. end forward
  26. global type w_saletaskmx_redate_ljfieb from w_publ_base
  27. integer width = 3611
  28. integer height = 2380
  29. string title = "销售订单交期确认"
  30. boolean minbox = false
  31. windowtype windowtype = response!
  32. event ue_p_ch ( )
  33. event ue_p_not_ch ( )
  34. event ue_p_rqdate ( )
  35. event ue_p_reason ( )
  36. dw_1 dw_1
  37. cb_p_set cb_p_set
  38. cb_ok cb_ok
  39. mle_1 mle_1
  40. sle_1 sle_1
  41. st_1 st_1
  42. st_2 st_2
  43. ln_bar ln_bar
  44. ln_bar2 ln_bar2
  45. r_bar r_bar
  46. end type
  47. global w_saletaskmx_redate_ljfieb w_saletaskmx_redate_ljfieb
  48. type variables
  49. long ins_scid,ins_taskid
  50. uo_ljfieb uo_fieb
  51. end variables
  52. event ue_p_ch();long ll_i
  53. dw_1.setredraw(false)
  54. for ll_i = 1 to dw_1.rowcount()
  55. dw_1.object.ch[ll_i] = 1
  56. next
  57. dw_1.setredraw(true)
  58. end event
  59. event ue_p_not_ch();long ll_i
  60. dw_1.setredraw(false)
  61. for ll_i = 1 to dw_1.rowcount()
  62. dw_1.object.ch[ll_i] = 0
  63. next
  64. dw_1.setredraw(true)
  65. end event
  66. event ue_p_rqdate();long ll_i
  67. if messagebox('询问','是否确定按首行批设置交货日期?',question!,yesno!) = 2 then return
  68. dw_1.setredraw(false)
  69. for ll_i = 1 to dw_1.rowcount()
  70. if ll_i = 1 then continue
  71. dw_1.object.requiredate[ll_i] = dw_1.object.requiredate[1]
  72. next
  73. dw_1.setredraw(true)
  74. end event
  75. event ue_p_reason();long ll_i
  76. if messagebox('询问','是否确定按首行批设置改期原因?',question!,yesno!) = 2 then return
  77. dw_1.setredraw(false)
  78. for ll_i = 1 to dw_1.rowcount()
  79. if ll_i = 1 then continue
  80. dw_1.object.delayreason[ll_i] = dw_1.object.delayreason[1]
  81. next
  82. dw_1.setredraw(true)
  83. end event
  84. on w_saletaskmx_redate_ljfieb.create
  85. int iCurrent
  86. call super::create
  87. this.dw_1=create dw_1
  88. this.cb_p_set=create cb_p_set
  89. this.cb_ok=create cb_ok
  90. this.mle_1=create mle_1
  91. this.sle_1=create sle_1
  92. this.st_1=create st_1
  93. this.st_2=create st_2
  94. this.ln_bar=create ln_bar
  95. this.ln_bar2=create ln_bar2
  96. this.r_bar=create r_bar
  97. iCurrent=UpperBound(this.Control)
  98. this.Control[iCurrent+1]=this.dw_1
  99. this.Control[iCurrent+2]=this.cb_p_set
  100. this.Control[iCurrent+3]=this.cb_ok
  101. this.Control[iCurrent+4]=this.mle_1
  102. this.Control[iCurrent+5]=this.sle_1
  103. this.Control[iCurrent+6]=this.st_1
  104. this.Control[iCurrent+7]=this.st_2
  105. this.Control[iCurrent+8]=this.ln_bar
  106. this.Control[iCurrent+9]=this.ln_bar2
  107. this.Control[iCurrent+10]=this.r_bar
  108. end on
  109. on w_saletaskmx_redate_ljfieb.destroy
  110. call super::destroy
  111. destroy(this.dw_1)
  112. destroy(this.cb_p_set)
  113. destroy(this.cb_ok)
  114. destroy(this.mle_1)
  115. destroy(this.sle_1)
  116. destroy(this.st_1)
  117. destroy(this.st_2)
  118. destroy(this.ln_bar)
  119. destroy(this.ln_bar2)
  120. destroy(this.r_bar)
  121. end on
  122. event open;call super::open;uo_fieb = create uo_ljfieb
  123. uo_fieb.commit_transaction = sys_email_sqlca
  124. s_edit_index_tran s_tran
  125. s_tran = message.powerobjectparm
  126. ins_scid = s_tran.b_long
  127. ins_taskid = s_tran.c_long
  128. dw_1.settransobject(sqlca)
  129. dw_1.retrieve(ins_scid,ins_taskid)
  130. end event
  131. event close;call super::close;destroy uo_fieb
  132. end event
  133. event resize;call super::resize;ln_bar.endx = this.width
  134. ln_bar2.endx = this.width
  135. r_bar.width = this.width
  136. end event
  137. type cb_func from w_publ_base`cb_func within w_saletaskmx_redate_ljfieb
  138. boolean visible = false
  139. end type
  140. type cb_exit from w_publ_base`cb_exit within w_saletaskmx_redate_ljfieb
  141. integer x = 462
  142. integer width = 178
  143. integer height = 164
  144. integer picsize = 16
  145. toolbaralignment pic_align = alignattop!
  146. boolean border = false
  147. end type
  148. type dw_1 from u_dw_rbtnfilter within w_saletaskmx_redate_ljfieb
  149. integer x = 9
  150. integer y = 180
  151. integer width = 3579
  152. integer height = 1260
  153. integer taborder = 20
  154. boolean bringtotop = true
  155. string dataobject = "dw_saletaskmx_redate_ljfieb"
  156. boolean hscrollbar = true
  157. boolean vscrollbar = true
  158. boolean hsplitscroll = true
  159. end type
  160. event rowfocuschanged;call super::rowfocuschanged; IF currentrow <= 0 THEN RETURN
  161. THIS.SelectRow(0,FALSE)
  162. THIS.SelectRow(currentrow,TRUE)
  163. this.setrow(currentrow)
  164. end event
  165. event rbuttondown;call super::rbuttondown; Long ll_row,ll_column
  166. ll_row = This.GetRow()
  167. ll_column = This.GetColumn()
  168. IF ll_row <= 0 THEN RETURN
  169. IF ll_column <= 0 THEN RETURN
  170. IF Left( This.Describe( dwo.Name+ ".coltype"),4) = 'date' THEN
  171. s_calender_arg s_calender
  172. s_calender.PointerX = This.PointerX()
  173. s_calender.PointerY = This.PointerY()
  174. s_calender.X = This.X + Parent.X
  175. s_calender.Y = This.Y + Parent.Y
  176. OpenWithParm(w_calendar,s_calender)
  177. This.SetItem(ll_row,ll_column,id_date_selected)
  178. END IF
  179. end event
  180. type cb_p_set from uo_imflatbutton within w_saletaskmx_redate_ljfieb
  181. integer x = 5
  182. integer width = 219
  183. integer height = 164
  184. integer taborder = 30
  185. boolean bringtotop = true
  186. string text = "批设置"
  187. string normalpicname = "update2.BMP"
  188. integer picsize = 16
  189. toolbaralignment pic_align = alignattop!
  190. boolean border = false
  191. end type
  192. event clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu
  193. String menustr
  194. menustr = "Text=批设置发送~tEvent=ue_p_ch"
  195. menustr = menustr + "|" + "Text=批设置不发送~tEvent=ue_p_not_ch"
  196. menustr = menustr + "|" + "Text=-"
  197. menustr = menustr + "|" + "Text=批设定交货日期~tEvent=ue_p_rqdate"
  198. menustr = menustr + "|" + "Text=批设定改期原因~tEvent=ue_p_reason"
  199. IF Len(Trim(menustr)) <> 0 THEN
  200. dmPopupMenu = Create m_Dfc_Control_PopupMenu
  201. dmPopupMenu.mf_BuildMenu(This, menustr)
  202. dmPopupMenu.mf_PopMenu()
  203. Destroy dmPopupMenu
  204. END IF
  205. end event
  206. type cb_ok from uo_imflatbutton within w_saletaskmx_redate_ljfieb
  207. integer x = 229
  208. integer width = 219
  209. integer height = 164
  210. integer taborder = 30
  211. boolean bringtotop = true
  212. string text = "提交"
  213. string normalpicname = "ok.BMP"
  214. integer picsize = 16
  215. toolbaralignment pic_align = alignattop!
  216. boolean border = false
  217. end type
  218. event clicked;call super::clicked;IF MessageBox('询问','确定要修改交货日期并通知客户吗?',question!,yesno!) = 2 THEN RETURN
  219. dw_1.AcceptText()
  220. String ls_fiebrelcode
  221. Long ll_cusid
  222. Long ll_i,ll_mxbt = 0
  223. String ls_Summary,ls_Postscript,ls_Remark
  224. String arg_msg
  225. DateTime ldt_requiredate
  226. Long ll_printid
  227. string ls_taskcode
  228. s_buytaskmx_feedback_ljfieb arg_s_mx[]
  229. FOR ll_i = 1 To dw_1.RowCount()
  230. IF dw_1.Object.ch[ll_i] = 1 THEN
  231. ll_mxbt++
  232. arg_s_mx[ll_mxbt].printid = dw_1.Object.u_saletaskmx_printid[ll_i]
  233. arg_s_mx[ll_mxbt].spt_Requiredate = dw_1.Object.requiredate[ll_i]
  234. arg_s_mx[ll_mxbt].sptmtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_i]
  235. arg_s_mx[ll_mxbt].sptmtrlname = dw_1.Object.mtrlname[ll_i]
  236. arg_s_mx[ll_mxbt].sptmtrlmode = dw_1.Object.u_mtrldef_mtrlmode[ll_i]
  237. arg_s_mx[ll_mxbt].delayreason = dw_1.Object.delayreason[ll_i]
  238. arg_s_mx[ll_mxbt].spt_uqty = dw_1.Object.saleqty[ll_i]
  239. arg_s_mx[ll_mxbt].unit = dw_1.Object.u_mtrldef_unit[ll_i]
  240. arg_s_mx[ll_mxbt].status = dw_1.Object.u_saletaskmx_status[ll_i]
  241. arg_s_mx[ll_mxbt].woodcode = dw_1.Object.u_saletaskmx_woodcode[ll_i]
  242. arg_s_mx[ll_mxbt].pcode = dw_1.Object.u_saletaskmx_pcode[ll_i]
  243. ls_Summary = ls_Summary + Trim(arg_s_mx[ll_mxbt].sptmtrlcode) + ' 交期调整为:'+String(arg_s_mx[ll_mxbt].spt_Requiredate,'yyyy-mm-dd') + ','
  244. END IF
  245. NEXT
  246. IF lena(ls_Summary) > 500 THEN ls_Summary = LeftA(ls_Summary,490) + '......'
  247. IF ll_mxbt = 0 THEN
  248. MessageBox('系统提示','请选择要发送的明细行')
  249. RETURN
  250. END IF
  251. SELECT fiebrelcode,cusid,taskcode
  252. INTO :ls_fiebrelcode,:ll_cusid,:ls_taskcode
  253. FROM u_saletask
  254. WHERE scid = :ins_scid
  255. And taskid = :ins_taskid ;
  256. IF sqlca.SQLCode <> 0 THEN
  257. MessageBox('Error','查询销售订单信息失败,'+sqlca.SQLErrText)
  258. RETURN
  259. END IF
  260. ls_Postscript = mle_1.Text
  261. ls_Remark = sle_1.Text
  262. FOR ll_i = 1 To dw_1.RowCount()
  263. ldt_requiredate = dw_1.Object.requiredate[ll_i]
  264. ll_printid = dw_1.Object.u_saletaskmx_printid[ll_i]
  265. UPDATE u_saletaskmx
  266. SET requiredate = :ldt_requiredate
  267. WHERE scid = :ins_scid
  268. AND taskid = :ins_taskid
  269. And printid = :ll_printid Using sqlca;
  270. IF sqlca.SQLCode <> 0 THEN
  271. ROLLBACK;
  272. MessageBox('Error','第'+String(ll_i)+'行,更新交货日期失败 '+sqlca.SQLErrText)
  273. RETURN
  274. END IF
  275. NEXT
  276. DateTime ld_requestdate_max
  277. SELECT max(requiredate)
  278. INTO :ld_requestdate_max
  279. FROM u_SaleTaskMx
  280. WHERE taskid = :ins_taskid
  281. AND scid = :ins_scid using sqlca;
  282. IF sqlca.SQLCode <> 0 THEN
  283. ROLLBACK;
  284. MessageBox('Error','查询明细最迟交货日期失败,'+sqlca.SQLErrText)
  285. RETURN
  286. END IF
  287. UPDATE u_SaleTask
  288. SET requiredate = :ld_requestdate_max
  289. WHERE taskid = :ins_taskid
  290. AND scid = :ins_scid using sqlca;
  291. IF sqlca.SQLCode <> 0 THEN
  292. ROLLBACK;
  293. MessageBox('Error','更新主表交货日期失败,'+sqlca.SQLErrText)
  294. RETURN
  295. END IF
  296. COMMIT Using sqlca;
  297. f_setsysoplog('销售订单','销售订单变更交货日期,ID:'+String(ins_taskid)+',code:'+ls_taskcode+'(通过电子商务交期确认功能)',arg_msg,TRUE)
  298. IF uo_fieb.feedback_rqdate(arg_s_mx,ll_cusid,ls_fiebrelcode,ls_Summary,ls_Postscript,ls_Remark,arg_msg,True) = 0 THEN
  299. MessageBox('Error',arg_msg )
  300. RETURN
  301. END IF
  302. MessageBox('系统提示','提交成功!')
  303. Close(Parent)
  304. end event
  305. type mle_1 from multilineedit within w_saletaskmx_redate_ljfieb
  306. integer x = 27
  307. integer y = 1500
  308. integer width = 3538
  309. integer height = 544
  310. integer taborder = 30
  311. boolean bringtotop = true
  312. integer textsize = -9
  313. integer weight = 400
  314. fontcharset fontcharset = gb2312charset!
  315. fontpitch fontpitch = variable!
  316. string facename = "宋体"
  317. long textcolor = 33554432
  318. boolean vscrollbar = true
  319. boolean autovscroll = true
  320. end type
  321. type sle_1 from singlelineedit within w_saletaskmx_redate_ljfieb
  322. integer x = 219
  323. integer y = 2060
  324. integer width = 3374
  325. integer height = 84
  326. integer taborder = 40
  327. boolean bringtotop = true
  328. integer textsize = -9
  329. integer weight = 400
  330. fontcharset fontcharset = gb2312charset!
  331. fontpitch fontpitch = variable!
  332. string facename = "宋体"
  333. long textcolor = 33554432
  334. end type
  335. type st_1 from statictext within w_saletaskmx_redate_ljfieb
  336. integer x = 32
  337. integer y = 1444
  338. integer width = 155
  339. integer height = 48
  340. boolean bringtotop = true
  341. integer textsize = -9
  342. integer weight = 400
  343. fontcharset fontcharset = gb2312charset!
  344. fontpitch fontpitch = variable!
  345. string facename = "宋体"
  346. long textcolor = 33554432
  347. long backcolor = 134217739
  348. string text = "附言"
  349. boolean focusrectangle = false
  350. end type
  351. type st_2 from statictext within w_saletaskmx_redate_ljfieb
  352. integer x = 46
  353. integer y = 2076
  354. integer width = 160
  355. integer height = 48
  356. boolean bringtotop = true
  357. integer textsize = -9
  358. integer weight = 400
  359. fontcharset fontcharset = gb2312charset!
  360. fontpitch fontpitch = variable!
  361. string facename = "宋体"
  362. long textcolor = 33554432
  363. long backcolor = 134217739
  364. string text = "备注"
  365. boolean focusrectangle = false
  366. end type
  367. type ln_bar from line within w_saletaskmx_redate_ljfieb
  368. long linecolor = 268435456
  369. integer linethickness = 4
  370. integer beginy = 172
  371. integer endx = 3200
  372. integer endy = 172
  373. end type
  374. type ln_bar2 from line within w_saletaskmx_redate_ljfieb
  375. long linecolor = 16777215
  376. integer linethickness = 4
  377. integer beginx = 9
  378. integer beginy = 176
  379. integer endx = 3273
  380. integer endy = 176
  381. end type
  382. type r_bar from rectangle within w_saletaskmx_redate_ljfieb
  383. long linecolor = 16777215
  384. integer linethickness = 4
  385. long fillcolor = 1073741824
  386. integer x = 3351
  387. integer width = 87
  388. integer height = 68
  389. end type
  390. event constructor;this.fillcolor = 14215660
  391. this.linecolor = 14215660
  392. this.x = -1
  393. this.y = -1
  394. this.height = ln_bar.beginy - 5
  395. end event