w_buytask_rqdate_rece_fx.srw 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568
  1. $PBExportHeader$w_buytask_rqdate_rece_fx.srw
  2. $PBExportComments$客户采购订单交期变更单接收界面
  3. forward
  4. global type w_buytask_rqdate_rece_fx from w_publ_base_style
  5. end type
  6. type dw_1 from u_dw_rbtnfilter within w_buytask_rqdate_rece_fx
  7. end type
  8. type cb_ok from uo_imflatbutton within w_buytask_rqdate_rece_fx
  9. end type
  10. type cbx_ch_all from checkbox within w_buytask_rqdate_rece_fx
  11. end type
  12. type st_1 from statictext within w_buytask_rqdate_rece_fx
  13. end type
  14. type st_comname from statictext within w_buytask_rqdate_rece_fx
  15. end type
  16. type cb_retrieve from uo_imflatbutton within w_buytask_rqdate_rece_fx
  17. end type
  18. end forward
  19. global type w_buytask_rqdate_rece_fx from w_publ_base_style
  20. integer width = 4686
  21. integer height = 1812
  22. string title = "采购订单交期变更"
  23. boolean minbox = false
  24. windowtype windowtype = response!
  25. long backcolor = 16777215
  26. boolean center = true
  27. event ue_p_dealflag_t ( )
  28. event ue_p_rqdate_re_t ( )
  29. event ue_p_reason_re_t ( )
  30. dw_1 dw_1
  31. cb_ok cb_ok
  32. cbx_ch_all cbx_ch_all
  33. st_1 st_1
  34. st_comname st_comname
  35. cb_retrieve cb_retrieve
  36. end type
  37. global w_buytask_rqdate_rece_fx w_buytask_rqdate_rece_fx
  38. type variables
  39. s_open_packet s_tran
  40. end variables
  41. forward prototypes
  42. public function integer wf_retrieve ()
  43. public function integer wf_chk (ref string arg_msg)
  44. end prototypes
  45. event ue_p_dealflag_t();// 批设置处理方式
  46. long curRow
  47. curRow = dw_1.GetRow()
  48. if (curRow <= 0) then return
  49. dw_1.AcceptText()
  50. dw_1.SetRedraw(false)
  51. long dealflag, i
  52. dealflag = dw_1.Object.dealflag[curRow]
  53. for i = 1 to dw_1.RowCount()
  54. if (dw_1.Object.editable[i] <> 1) then continue
  55. if (dw_1.Object.ch[i] <> 1) then continue
  56. dw_1.Object.dealflag[i] = dealflag
  57. next
  58. dw_1.AcceptText()
  59. dw_1.SetRedraw(true)
  60. end event
  61. event ue_p_rqdate_re_t();// 批设置回复交期
  62. long curRow
  63. curRow = dw_1.GetRow()
  64. if (curRow <= 0) then return
  65. dw_1.AcceptText()
  66. dw_1.SetRedraw(false)
  67. long i
  68. datetime rqdate_re
  69. rqdate_re = dw_1.Object.rqdate_re[curRow]
  70. for i = 1 to dw_1.RowCount()
  71. if (dw_1.Object.editable[i] <> 1) then continue
  72. if (dw_1.Object.ch[i] <> 1) then continue
  73. dw_1.Object.rqdate_re[i] = rqdate_re
  74. next
  75. dw_1.AcceptText()
  76. dw_1.SetRedraw(true)
  77. end event
  78. event ue_p_reason_re_t();// 批设置回复原因
  79. long curRow
  80. curRow = dw_1.GetRow()
  81. if (curRow <= 0) then return
  82. dw_1.AcceptText()
  83. dw_1.SetRedraw(false)
  84. long i
  85. string reason_re
  86. reason_re = dw_1.Object.reason_re[curRow]
  87. for i = 1 to dw_1.RowCount()
  88. if (dw_1.Object.editable[i] <> 1) then continue
  89. if (dw_1.Object.ch[i] <> 1) then continue
  90. dw_1.Object.reason_re[i] = reason_re
  91. next
  92. dw_1.AcceptText()
  93. dw_1.SetRedraw(true)
  94. end event
  95. public function integer wf_retrieve ();int rslt = 1
  96. dw_1.Reset()
  97. string arg_msg
  98. oleobject obj, parm, list, item
  99. parm = FXAppCom.CreatePbDictionary()
  100. parm.SetString('token', app_token_fx)
  101. //parm.SetString('sendsccode', s_tran.sendsccode)
  102. //parm.SetString('adduser', s_tran.adduser)
  103. parm.SetString('sendcusid', s_tran.sendcusid)
  104. parm.SetInt('receivereltype', s_tran.receivereltype)
  105. parm.SetInt('receiverelid', s_tran.receiverelid)
  106. obj = FXAppCom.GetBuytaskRqdate(parm, ref arg_msg)
  107. if (arg_msg <> '') then
  108. rslt = 0
  109. MessageBox('提示', '获取采购订单交期变更信息有误:' + arg_msg)
  110. goto ext
  111. end if
  112. //long complete
  113. //complete = obj.GetInt('complete')
  114. //if (complete = 1) then
  115. // cb_ok.Enabled = false
  116. //end if
  117. long i, row, tmp_dealflag
  118. dw_1.SetRedraw(false)
  119. list = obj.GetPBArray('list')
  120. for i = 1 to list.Count
  121. row = dw_1.InsertRow(0)
  122. item = list.GetPBDictionary(i - 1)
  123. // dw_1.Object.ch[row] = item.GetString('ch')
  124. // dw_1.Object.ifmatch[row] = item.GetString('ifmatch')
  125. dw_1.Object.serialnum[row] = item.GetString('serialnum')
  126. dw_1.Object.AddUser[row] = item.GetString('AddUser')
  127. dw_1.Object.scid[row] = item.GetInt('scid')
  128. dw_1.Object.taskid[row] = item.GetInt('taskid')
  129. dw_1.Object.taskcode[row] = item.GetString('taskcode')
  130. dw_1.Object.printid[row] = item.GetInt('printid')
  131. dw_1.Object.mtrlid[row] = item.GetInt('mtrlid')
  132. dw_1.Object.mtrlcode[row] = item.GetString('mtrlcode')
  133. dw_1.Object.mtrlname[row] = item.GetString('mtrlname')
  134. dw_1.Object.mtrlmode[row] = item.GetString('mtrlmode')
  135. dw_1.Object.status[row] = item.GetString('status')
  136. dw_1.Object.woodcode[row] = item.GetString('woodcode')
  137. dw_1.Object.pcode[row] = item.GetString('pcode')
  138. dw_1.Object.qty[row] = item.GetDouble('qty')
  139. dw_1.Object.qty_consigned[row] = item.GetDouble('qty_consigned')
  140. dw_1.Object.unit[row] = item.GetString('unit')
  141. dw_1.Object.mxdscrp[row] = item.GetString('mxdscrp')
  142. dw_1.Object.plancode[row] = item.GetString('plancode')
  143. dw_1.Object.reason[row] = item.GetString('reason')
  144. dw_1.Object.reason_re[row] = item.GetString('reason_re')
  145. dw_1.Object.tid[row] = item.GetString('tid')
  146. dw_1.Object.Summary[row] = item.GetString('Summary')
  147. dw_1.Object.Postscript[row] = item.GetString('Postscript')
  148. dw_1.Object.Remark[row] = item.GetString('Remark')
  149. if (not IsNull(item.GetDateTime('rqdate_ori'))) then
  150. dw_1.Object.rqdate_ori[row] = item.GetDateTime('rqdate_ori')
  151. end if
  152. if (not IsNull(item.GetDateTime('rqdate_expect'))) then
  153. dw_1.Object.rqdate_expect[row] = item.GetDateTime('rqdate_expect')
  154. end if
  155. if (not IsNull(item.GetDateTime('rqdate_re'))) then
  156. dw_1.Object.rqdate_re[row] = item.GetDateTime('rqdate_re')
  157. else
  158. if (not IsNull(item.GetDateTime('rqdate_expect'))) then
  159. dw_1.Object.rqdate_re[row] = item.GetDateTime('rqdate_expect')
  160. end if
  161. end if
  162. if (not IsNull(item.GetDateTime('AddTime'))) then
  163. dw_1.Object.AddTime[row] = item.GetDateTime('AddTime')
  164. end if
  165. tmp_dealflag = item.GetInt('dealflag')
  166. dw_1.Object.dealflag[row] = tmp_dealflag
  167. if (tmp_dealflag = 0 or tmp_dealflag = 3) then // 0-未处理 3-暂不处理
  168. dw_1.Object.editable[row] = 1 // 未处理状态下,可编辑
  169. dw_1.Object.ch[row] = 1
  170. else
  171. dw_1.Object.editable[row] = 0
  172. end if
  173. if (not IsNull(item.GetInt('myprintid'))) then
  174. if (item.GetInt('myprintid') > 0) then
  175. dw_1.Object.ifmatch[row] = 1 // 匹配
  176. else
  177. dw_1.Object.ifmatch[row] = 0
  178. dw_1.Object.dealflag[row] = 2 // 不匹配的拒绝
  179. // dw_1.Object.editable[row] = 0 // 不匹配状态下,不可编辑
  180. end if
  181. else
  182. dw_1.Object.ifmatch[row] = 0
  183. dw_1.Object.dealflag[row] = 2 // 不匹配的拒绝
  184. end if
  185. next
  186. dw_1.AcceptText()
  187. dw_1.SetRedraw(true)
  188. ext:
  189. return rslt
  190. end function
  191. public function integer wf_chk (ref string arg_msg);int rslt = 1
  192. // 检查:匹配项,同意-日期一致
  193. // 检查:不匹配项,不能选择同意
  194. long i, dealflag, ifmatch
  195. datetime rqdate_re, rqdate_expect
  196. for i = 1 to dw_1.RowCount()
  197. if (dw_1.Object.editable[i] = 0) then continue
  198. dealflag = dw_1.Object.dealflag[i]
  199. ifmatch = dw_1.Object.ifmatch[i]
  200. rqdate_re = dw_1.Object.rqdate_re[i]
  201. rqdate_expect = dw_1.Object.rqdate_expect[i]
  202. if (dealflag = 1) then // 匹配同意项
  203. if (ifmatch <> 1) then
  204. rslt = 0
  205. arg_msg += '第' + string(i) + '行,不匹配项不能选择"同意"的处理方式,默认选择"拒绝";~r~n'
  206. elseif (IsNull(rqdate_re)) then
  207. rslt = 0
  208. arg_msg += '第' + string(i) + '行,回复交期不能为空;~r~n'
  209. elseif (rqdate_re <> rqdate_expect) then
  210. rslt = 0
  211. arg_msg += '第' + string(i) + '行,(匹配同意项)回复交期与期望变更交期不一致;~r~n'
  212. end if
  213. end if
  214. next
  215. return rslt
  216. end function
  217. on w_buytask_rqdate_rece_fx.create
  218. int iCurrent
  219. call super::create
  220. this.dw_1=create dw_1
  221. this.cb_ok=create cb_ok
  222. this.cbx_ch_all=create cbx_ch_all
  223. this.st_1=create st_1
  224. this.st_comname=create st_comname
  225. this.cb_retrieve=create cb_retrieve
  226. iCurrent=UpperBound(this.Control)
  227. this.Control[iCurrent+1]=this.dw_1
  228. this.Control[iCurrent+2]=this.cb_ok
  229. this.Control[iCurrent+3]=this.cbx_ch_all
  230. this.Control[iCurrent+4]=this.st_1
  231. this.Control[iCurrent+5]=this.st_comname
  232. this.Control[iCurrent+6]=this.cb_retrieve
  233. end on
  234. on w_buytask_rqdate_rece_fx.destroy
  235. call super::destroy
  236. destroy(this.dw_1)
  237. destroy(this.cb_ok)
  238. destroy(this.cbx_ch_all)
  239. destroy(this.st_1)
  240. destroy(this.st_comname)
  241. destroy(this.cb_retrieve)
  242. end on
  243. event open;call super::open;s_tran = Message.PowerObjectParm
  244. if IsNUll(s_tran) then
  245. MessageBox('提示', '打开方式有误')
  246. Close(this)
  247. return
  248. end if
  249. if (not IsValid(s_tran)) then
  250. MessageBox('提示', '打开方式无效')
  251. Close(this)
  252. return
  253. end if
  254. string arg_msg
  255. if (f_find_fx_user_power(50, ref arg_msg) <> 1) then // 50-采购订单协商
  256. MessageBox('权限提示', arg_msg)
  257. Close(this)
  258. return
  259. end if
  260. //sle_comname.Text = s_tran.comname
  261. //sle_adduser.Text = s_tran.adduser
  262. //sle_addtime.Text = string(s_tran.addtime, 'yyyy-MM-dd hh:mm:ss')
  263. st_comname.Text = s_tran.comname
  264. //st_adduser.Text = s_tran.adduser
  265. if (wf_retrieve( ) = 0) then
  266. Close(this)
  267. end if
  268. end event
  269. event resize;call super::resize;dw_1.Width = this.workspacewidth( )
  270. dw_1.Height = this.workspaceheight( ) - dw_1.Y
  271. cb_exit.X = this.workspacewidth( ) - cb_exit.Width
  272. end event
  273. type cb_func from w_publ_base_style`cb_func within w_buytask_rqdate_rece_fx
  274. boolean visible = false
  275. integer x = 640
  276. boolean enabled = false
  277. string normalpicname = "setting.BMP"
  278. integer picsize = 16
  279. end type
  280. type cb_exit from w_publ_base_style`cb_exit within w_buytask_rqdate_rece_fx
  281. integer x = 2130
  282. end type
  283. type ln_bar from w_publ_base_style`ln_bar within w_buytask_rqdate_rece_fx
  284. end type
  285. type ln_bar2 from w_publ_base_style`ln_bar2 within w_buytask_rqdate_rece_fx
  286. end type
  287. type r_bar from w_publ_base_style`r_bar within w_buytask_rqdate_rece_fx
  288. end type
  289. type dw_1 from u_dw_rbtnfilter within w_buytask_rqdate_rece_fx
  290. integer y = 284
  291. integer width = 4448
  292. integer height = 1284
  293. integer taborder = 20
  294. boolean bringtotop = true
  295. string dataobject = "dw_tempbuytask_rqdate"
  296. boolean hscrollbar = true
  297. boolean vscrollbar = true
  298. boolean hsplitscroll = true
  299. boolean rbutton_filter_use = true
  300. boolean rbutton_setposition_use = true
  301. boolean titleclick_sort_use = true
  302. end type
  303. event clicked;call super::clicked;if (row > 0) then
  304. this.SelectRow(0, false)
  305. this.SelectRow(row, true)
  306. this.SetRow(row)
  307. end if
  308. end event
  309. event rowfocuschanged;call super::rowfocuschanged;if (currentrow > 0) then
  310. this.SelectRow(0, false)
  311. this.SelectRow(currentrow, true)
  312. this.SetRow(currentrow)
  313. end if
  314. end event
  315. event doubleclicked;call super::doubleclicked;string dwoname
  316. dwoname = dwo.Name
  317. row = this.GetRow()
  318. if (dwoname = 'dealflag_t' or dwoname = 'rqdate_re_t' or dwoname = 'reason_re_t') then
  319. if (this.IsSelected(row)) then
  320. parent.PostEvent('ue_p_' + dwoname)
  321. else
  322. MessageBox('提示', '使用批设置功能,请选中一行作为批设置的取值')
  323. end if
  324. else
  325. end if
  326. //if (row > 0) then
  327. //
  328. //end if
  329. end event
  330. type cb_ok from uo_imflatbutton within w_buytask_rqdate_rece_fx
  331. integer x = 155
  332. integer width = 151
  333. integer height = 164
  334. integer taborder = 20
  335. boolean bringtotop = true
  336. string normalpicname = "ok.bmp"
  337. integer picsize = 16
  338. toolbaralignment pic_align = alignattop!
  339. boolean border = false
  340. end type
  341. event clicked;call super::clicked;dw_1.SetFilter('')
  342. dw_1.Filter()
  343. dw_1.AcceptText()
  344. if (dw_1.RowCount() <= 0) then return
  345. string arg_msg
  346. if (wf_chk(ref arg_msg) <> 1) then
  347. OpenWithParm(w_message_err, arg_msg)
  348. return
  349. end if
  350. long findRow, ifSend = 0
  351. string findStr, postscript
  352. findStr = 'editable = 1 and (dealflag = 1 or dealflag = 2)' // 1-同意变更 2-拒绝
  353. findRow = dw_1.Find(findStr, 1, dw_1.RowCount())
  354. if (findRow > 0) then // 存在回复项
  355. ifSend = 1
  356. findStr = 'editable = 1 and dealflag = 1' // 1-同意变更
  357. findRow = dw_1.Find(findStr, 1, dw_1.RowCount())
  358. if (findRow > 0) then
  359. if (f_find_fx_user_power(51, ref arg_msg) <> 1) then // 51-采购订单交期变更确认
  360. MessageBox('权限提示', arg_msg)
  361. return
  362. end if
  363. end if
  364. findStr = 'editable = 1 and dealflag = 2' // 2-拒绝
  365. findRow = dw_1.Find(findStr, 1, dw_1.RowCount())
  366. if (findRow > 0) then
  367. if (f_find_fx_user_power(52, ref arg_msg) <> 1) then // 52-采购订单交期变更拒绝
  368. MessageBox('权限提示', arg_msg)
  369. return
  370. end if
  371. end if
  372. s_open_packet s_ret
  373. OpenWithParm(w_packet_msg_edit_fx, arg_msg)
  374. s_ret = Message.PowerObjectParm
  375. if (s_ret.returnflag = 0) then
  376. MessageBox('提示', '操作取消')
  377. return
  378. end if
  379. postscript = s_ret.postscript
  380. if IsNull(postscript) then
  381. postscript = ''
  382. end if
  383. if (Len(postscript) > 500) then
  384. MessageBox('提示', '留言板信息超长(500),请进行删减')
  385. return
  386. end if
  387. end if
  388. long i
  389. oleobject parm, ReqList, item
  390. parm = FXAppCom.CreatePbDictionary()
  391. ReqList = FXAppCom.NewPBArray()
  392. for i = 1 to dw_1.RowCount()
  393. // 选取变更项:可编辑、1-同意/2-拒绝/3-暂不处理
  394. if (dw_1.Object.editable[i] = 0) then continue // 不可编辑
  395. if (dw_1.Object.dealflag[i] = 0) then continue // 0-未处理
  396. item = FXAppCom.CreatePbDictionary()
  397. item.SetString('serialnumstr', dw_1.Object.SerialNum[i])
  398. item.SetInt('scid', dw_1.Object.scid[i])
  399. item.SetInt('taskid', dw_1.Object.taskid[i])
  400. item.SetString('taskcode', dw_1.Object.taskcode[i])
  401. item.SetString('tid', dw_1.Object.tid[i])
  402. item.SetInt('printid', dw_1.Object.printid[i])
  403. item.SetInt('dealflag', dw_1.Object.dealflag[i])
  404. item.SetInt('ifmatch', dw_1.Object.ifmatch[i])
  405. item.SetDateTime('rqdate_re', dw_1.Object.rqdate_re[i])
  406. item.SetString('reason_re', dw_1.Object.reason_re[i])
  407. ReqList.AddObject(item)
  408. next
  409. parm.SetString('token', app_token_fx)
  410. parm.SetString('sendcusid', s_tran.sendcusid)
  411. parm.SetInt('receivereltype', s_tran.receivereltype)
  412. parm.SetInt('receiverelid', s_tran.receiverelid)
  413. parm.SetString('postscript', postscript)
  414. parm.SetInt('ifsend', ifSend)
  415. parm.SetObject('reqlist', ReqList)
  416. FXAppCom.ReBuytaskRqdate(parm, ref arg_msg)
  417. if (arg_msg <> '') then
  418. MessageBox('提示', '回复交期变更信息失败:' + arg_msg)
  419. else
  420. MessageBox('提示', '操作成功')
  421. Close(parent)
  422. end if
  423. end event
  424. type cbx_ch_all from checkbox within w_buytask_rqdate_rece_fx
  425. integer x = 27
  426. integer y = 200
  427. integer width = 206
  428. integer height = 60
  429. boolean bringtotop = true
  430. integer textsize = -9
  431. integer weight = 400
  432. fontcharset fontcharset = gb2312charset!
  433. fontpitch fontpitch = variable!
  434. string facename = "宋体"
  435. long textcolor = 33554432
  436. long backcolor = 16777215
  437. string text = "全选"
  438. end type
  439. event clicked;long ch
  440. if (this.Checked) then
  441. ch = 1
  442. else
  443. ch = 0
  444. end if
  445. long i
  446. for i = 1 to dw_1.RowCount()
  447. if (dw_1.Object.editable[i] = 1) then
  448. dw_1.Object.ch[i] = ch
  449. end if
  450. next
  451. end event
  452. type st_1 from statictext within w_buytask_rqdate_rece_fx
  453. integer x = 315
  454. integer y = 204
  455. integer width = 315
  456. integer height = 48
  457. boolean bringtotop = true
  458. integer textsize = -9
  459. integer weight = 400
  460. fontcharset fontcharset = gb2312charset!
  461. fontpitch fontpitch = variable!
  462. string facename = "宋体"
  463. long textcolor = 33554432
  464. long backcolor = 16777215
  465. string text = "发送方企业:"
  466. boolean focusrectangle = false
  467. end type
  468. type st_comname from statictext within w_buytask_rqdate_rece_fx
  469. integer x = 617
  470. integer y = 204
  471. integer width = 795
  472. integer height = 48
  473. boolean bringtotop = true
  474. integer textsize = -9
  475. integer weight = 400
  476. fontcharset fontcharset = gb2312charset!
  477. fontpitch fontpitch = variable!
  478. string facename = "宋体"
  479. long textcolor = 33554432
  480. long backcolor = 16777215
  481. string text = "____"
  482. boolean focusrectangle = false
  483. end type
  484. type cb_retrieve from uo_imflatbutton within w_buytask_rqdate_rece_fx
  485. integer width = 151
  486. integer height = 164
  487. integer taborder = 30
  488. boolean bringtotop = true
  489. string text = "刷新"
  490. string normalpicname = "refresh.bmp"
  491. integer picsize = 16
  492. toolbaralignment pic_align = alignattop!
  493. boolean border = false
  494. end type
  495. event clicked;call super::clicked;wf_retrieve()
  496. end event