$PBExportHeader$w_taobao_bills.srw forward global type w_taobao_bills from w_publ_base_style end type type dw_1 from u_dw_rbtnfilter within w_taobao_bills end type type ddlb_1 from dropdownlistbox within w_taobao_bills end type type cbx_1 from checkbox within w_taobao_bills end type type cb_reflash from uo_imflatbutton within w_taobao_bills end type type st_1 from statictext within w_taobao_bills end type type sle_1 from singlelineedit within w_taobao_bills end type type ddlb_2 from dropdownlistbox within w_taobao_bills end type type st_msg from statictext within w_taobao_bills end type type ln_1 from line within w_taobao_bills end type type ln_2 from line within w_taobao_bills end type end forward global type w_taobao_bills from w_publ_base_style integer width = 3410 integer height = 2076 string title = "淘宝订单管理" boolean maxbox = true boolean resizable = true windowstate windowstate = maximized! event ue_accept_saletask ( ) event ue_stop_saletask ( ) event ue_continue_saletask ( ) event ue_saletask_directsend ( ) event ue_cancel_directsend ( ) dw_1 dw_1 ddlb_1 ddlb_1 cbx_1 cbx_1 cb_reflash cb_reflash st_1 st_1 sle_1 sle_1 ddlb_2 ddlb_2 st_msg st_msg ln_1 ln_1 ln_2 ln_2 end type global w_taobao_bills w_taobao_bills type variables long ins_index long ins_subtype = 1 end variables forward prototypes public function integer wf_stop_task (string arg_tid, ref string arg_msg) public function integer wf_continue_task (string arg_tid, ref string arg_msg) public function integer wf_directsend_task (string arg_tid, ref string arg_msg) public function integer wf_cancel_directsend (string arg_tid, ref string arg_msg) end prototypes event ue_accept_saletask();// 接受淘宝订单成正式订单 // 逐个淘宝订单接受成正式订单,出错时在当行显示错误原因 IF Not uo_power_spi.f_taobao_bills_accept(sys_msg_pow) THEN MessageBox(publ_operator, sys_msg_pow) RETURN END IF Long i String ls_tid, ls_preid = '', arg_msg = '', ls_taskcode = '' uo_saletask_import uo_import uo_import = Create uo_saletask_import Boolean hasErr = False FOR i = 1 To dw_1.RowCount() dw_1.Object.errmsg[i] = '' NEXT FOR i = 1 To dw_1.RowCount() IF dw_1.Object.ch[i] = 0 THEN CONTINUE dw_1.ScrollToRow(i) ls_tid = dw_1.Object.tb_trade_tid[i] IF ls_tid = ls_preid THEN // DONE: 记录前面的结果 dw_1.Object.u_saletask_taskcode[i] = ls_taskcode dw_1.Object.errmsg[i] = arg_msg CONTINUE END IF arg_msg = '' ls_taskcode = '' IF uo_import.uf_accept_taobao(ls_tid, Ref arg_msg, Ref ls_taskcode) <> 1 THEN dw_1.Object.u_saletask_taskcode[i] = ls_taskcode dw_1.Object.errmsg[i] = arg_msg hasErr = True END IF dw_1.Object.u_saletask_taskcode[i] = ls_taskcode dw_1.Object.errmsg[i] = arg_msg ls_preid = ls_tid NEXT Destroy uo_import IF hasErr THEN MessageBox('ERROR', '处理有错,请查看错误列') ELSE MessageBox('OK', '全部处理完成') cb_reflash.TriggerEvent(Clicked!) END IF end event event ue_stop_saletask();IF Not uo_power_spi.f_taobao_bills_stop(sys_msg_pow) THEN MessageBox(publ_operator, sys_msg_pow) RETURN END IF Long i String ls_tid, ls_preid = '', arg_msg = '' Boolean hasErr = False FOR i = 1 To dw_1.RowCount() dw_1.Object.errmsg[i] = '' NEXT FOR i = 1 To dw_1.RowCount() IF dw_1.Object.ch[i] = 0 THEN CONTINUE dw_1.ScrollToRow(i) ls_tid = dw_1.Object.tb_trade_tid[i] IF ls_tid = ls_preid THEN // DONE: 记录前面的结果 dw_1.Object.errmsg[i] = arg_msg CONTINUE END IF arg_msg = '' IF wf_stop_task(ls_tid, Ref arg_msg) <> 1 THEN dw_1.Object.errmsg[i] = arg_msg hasErr = True END IF dw_1.Object.errmsg[i] = arg_msg ls_preid = ls_tid NEXT IF hasErr THEN MessageBox('ERROR', '处理有错,请查看错误列') ELSE MessageBox('OK', '全部处理完成') cb_reflash.TriggerEvent(Clicked!) END IF end event event ue_continue_saletask();IF Not uo_power_spi.f_taobao_bills_continue(sys_msg_pow) THEN MessageBox(publ_operator, sys_msg_pow) RETURN END IF Long i String ls_tid, ls_preid = '', arg_msg = '' Boolean hasErr = False FOR i = 1 To dw_1.RowCount() dw_1.Object.errmsg[i] = '' NEXT FOR i = 1 To dw_1.RowCount() IF dw_1.Object.ch[i] = 0 THEN CONTINUE dw_1.ScrollToRow(i) ls_tid = dw_1.Object.tb_trade_tid[i] IF ls_tid = ls_preid THEN // DONE: 记录前面的结果 dw_1.Object.errmsg[i] = arg_msg CONTINUE END IF arg_msg = '' IF wf_continue_task(ls_tid, Ref arg_msg) <> 1 THEN dw_1.Object.errmsg[i] = arg_msg hasErr = True END IF dw_1.Object.errmsg[i] = arg_msg ls_preid = ls_tid NEXT IF hasErr THEN MessageBox('ERROR', '处理有错,请查看错误列') ELSE MessageBox('OK', '全部处理完成') cb_reflash.TriggerEvent(Clicked!) END IF end event event ue_saletask_directsend();IF Not uo_power_spi.f_taobao_bills_directsend(sys_msg_pow) THEN MessageBox(publ_operator, sys_msg_pow) RETURN END IF Long i String ls_tid, ls_preid = '', arg_msg = '' Boolean hasErr = False FOR i = 1 To dw_1.RowCount() dw_1.Object.errmsg[i] = '' NEXT FOR i = 1 To dw_1.RowCount() IF dw_1.Object.ch[i] = 0 THEN CONTINUE dw_1.ScrollToRow(i) ls_tid = dw_1.Object.tb_trade_tid[i] IF ls_tid = ls_preid THEN // DONE: 记录前面的结果 dw_1.Object.errmsg[i] = arg_msg CONTINUE END IF arg_msg = '' IF wf_directsend_task(ls_tid, Ref arg_msg) <> 1 THEN dw_1.Object.errmsg[i] = arg_msg hasErr = True END IF dw_1.Object.errmsg[i] = arg_msg ls_preid = ls_tid NEXT IF hasErr THEN MessageBox('ERROR', '处理有错,请查看错误列') ELSE MessageBox('OK', '全部处理完成') cb_reflash.TriggerEvent(Clicked!) END IF end event event ue_cancel_directsend();IF Not uo_power_spi.f_taobao_bills_cancel_directsend(sys_msg_pow) THEN MessageBox(publ_operator, sys_msg_pow) RETURN END IF Long i String ls_tid, ls_preid = '', arg_msg = '' Boolean hasErr = False FOR i = 1 To dw_1.RowCount() dw_1.Object.errmsg[i] = '' NEXT FOR i = 1 To dw_1.RowCount() IF dw_1.Object.ch[i] = 0 THEN CONTINUE dw_1.ScrollToRow(i) ls_tid = dw_1.Object.tb_trade_tid[i] IF ls_tid = ls_preid THEN // DONE: 记录前面的结果 dw_1.Object.errmsg[i] = arg_msg CONTINUE END IF arg_msg = '' IF wf_cancel_directsend(ls_tid, Ref arg_msg) <> 1 THEN dw_1.Object.errmsg[i] = arg_msg hasErr = True END IF dw_1.Object.errmsg[i] = arg_msg ls_preid = ls_tid NEXT IF hasErr THEN MessageBox('ERROR', '处理有错,请查看错误列') ELSE MessageBox('OK', '全部处理完成') cb_reflash.TriggerEvent(Clicked!) END IF end event public function integer wf_stop_task (string arg_tid, ref string arg_msg);Int rslt = 1 UPDATE eb_saletask_import SET stopflag = 1, stopemp = :publ_operator, stopdate = getdate() WHERE im_type = 5 AND tid = :arg_tid And stopflag = 0 AND directSend = 0; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '中止淘宝订单失败,' + sqlca.SQLErrText GOTO ext END IF IF sqlca.SQLNRows = 0 THEN rslt = 0 arg_msg = '淘宝订单不存在或已被处理' GOTO ext END IF ext: IF rslt = 1 THEN COMMIT; ELSE ROLLBACK; END IF RETURN rslt end function public function integer wf_continue_task (string arg_tid, ref string arg_msg);Int rslt = 1 UPDATE eb_saletask_import SET stopflag = 0, stopemp = '', stopdate = null WHERE im_type = 5 AND tid = :arg_tid And stopflag = 1; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '继续淘宝订单失败,' + sqlca.SQLErrText GOTO ext END IF IF sqlca.SQLNRows = 0 THEN rslt = 0 arg_msg = '淘宝订单不存在或不在中止状态' GOTO ext END IF ext: IF rslt = 1 THEN COMMIT; ELSE ROLLBACK; END IF RETURN rslt end function public function integer wf_directsend_task (string arg_tid, ref string arg_msg);Int rslt = 1 Int cnt = 0 SELECT COUNT(0) INTO :cnt FROM eb_saletask_import INNER JOIN u_SaleTask ON eb_saletask_import.taskcode = u_SaleTask.TaskCode Where (eb_saletask_import.im_type = 5) And (eb_saletask_import.tid = :arg_tid); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询订单是否已经接受失败,' + sqlca.SQLErrText GOTO ext END IF IF cnt > 0 THEN rslt = 0 arg_msg = '已经接受订单,不能直接发货' GOTO ext END IF UPDATE eb_saletask_import SET directSend = 1, directEmp = :publ_operator, directDate = getdate() WHERE im_type = 5 AND tid = :arg_tid AND directSend = 0 And stopflag = 0; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '标记淘宝订单直接发货失败,' + sqlca.SQLErrText GOTO ext END IF IF sqlca.SQLNRows = 0 THEN rslt = 0 arg_msg = '淘宝订单不存在或已经被处理' GOTO ext END IF ext: IF rslt = 1 THEN COMMIT; ELSE ROLLBACK; END IF RETURN rslt end function public function integer wf_cancel_directsend (string arg_tid, ref string arg_msg);Int rslt = 1 UPDATE eb_saletask_import SET directSend = 0, directEmp = '', directDate = null WHERE im_type = 5 AND tid = :arg_tid AND directSend = 1 AND sendflag = 0; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '取消淘宝订单直接发货失败,' + sqlca.SQLErrText GOTO ext END IF IF sqlca.SQLNRows = 0 THEN rslt = 0 arg_msg = '淘宝订单不存在或已经被处理或已发货' GOTO ext END IF ext: IF rslt = 1 THEN COMMIT; ELSE ROLLBACK; END IF RETURN rslt end function on w_taobao_bills.create int iCurrent call super::create this.dw_1=create dw_1 this.ddlb_1=create ddlb_1 this.cbx_1=create cbx_1 this.cb_reflash=create cb_reflash this.st_1=create st_1 this.sle_1=create sle_1 this.ddlb_2=create ddlb_2 this.st_msg=create st_msg this.ln_1=create ln_1 this.ln_2=create ln_2 iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.dw_1 this.Control[iCurrent+2]=this.ddlb_1 this.Control[iCurrent+3]=this.cbx_1 this.Control[iCurrent+4]=this.cb_reflash this.Control[iCurrent+5]=this.st_1 this.Control[iCurrent+6]=this.sle_1 this.Control[iCurrent+7]=this.ddlb_2 this.Control[iCurrent+8]=this.st_msg this.Control[iCurrent+9]=this.ln_1 this.Control[iCurrent+10]=this.ln_2 end on on w_taobao_bills.destroy call super::destroy destroy(this.dw_1) destroy(this.ddlb_1) destroy(this.cbx_1) destroy(this.cb_reflash) destroy(this.st_1) destroy(this.sle_1) destroy(this.ddlb_2) destroy(this.st_msg) destroy(this.ln_1) destroy(this.ln_2) end on event ue_before_open;call super::ue_before_open;dw_1.SetTransObject(sqlca) end event event resize;call super::resize;ln_1.endx = this.width ln_2.endx = this.width dw_1.width = this.workspacewidth() - dw_1.X dw_1.height = this.workspaceheight() - dw_1.y st_msg.Width = this.workspacewidth() - st_msg.x end event event open;call super::open;ddlb_1.selectitem(1) ddlb_2.selectitem(1) ddlb_1.Trigger event selectionchanged(1) this.triggerevent('timer') timer(5) end event event timer;call super::timer;String ls_all = '', ls_im_userid Long i = 0 DECLARE cur1 CURSOR FOR SELECT im_userid FROM eb_user WHERE im_type = 5 And (tokendate Is Null Or GETDATE() > DATEADD(ss, expires_in, tokendate)); OPEN cur1; FETCH cur1 Into :ls_im_userid; DO WHILE sqlca.SQLCode = 0 i++ ls_all += ',' + ls_im_userid FETCH cur1 Into :ls_im_userid; LOOP CLOSE cur1; IF i = 0 THEN st_msg.Text = '' ELSE st_msg.Text = '淘宝账号授权已经过期,请通知相关人员重新授权' + ls_all END IF Long cnt = 0 SELECT COUNT(0) INTO :cnt FROM eb_saletask_import INNER JOIN tb_order ON eb_saletask_import.im_id = tb_order.oid AND eb_saletask_import.im_type = 5 LEFT OUTER JOIN u_mtrldef ON eb_saletask_import.mtrlid = u_mtrldef.mtrlid LEFT OUTER JOIN tb_sku ON tb_order.sku_id = tb_sku.sku_id WHERE eb_saletask_import.im_type = 5 AND tb_order.status = 'WAIT_SELLER_SEND_GOODS' AND ( (u_mtrldef.mtrlid IS NULL) OR ( (u_mtrldef.mtrlid > 0) AND (tb_order.sku_id <> '') AND ( eb_saletask_import.status <> tb_sku.outer_status OR eb_saletask_import.woodcode <> tb_sku.outer_woodcode OR eb_saletask_import.pcode <> tb_sku.outer_pcode ) ) )And (eb_saletask_import.stopflag = 0); IF sqlca.SQLCode <> 0 THEN cnt = 0 END IF IF cnt > 0 THEN IF i = 0 THEN st_msg.Text = "还有"+String(cnt)+"张异常单未处理" ELSE st_msg.Text = st_msg.Text + ",还有"+String(cnt)+"张异常单未处理" END IF END IF end event type cb_func from w_publ_base_style`cb_func within w_taobao_bills integer x = 151 integer width = 192 string text = "功能&F" string normalpicname = "p2.BMP" end type event cb_func::clicked;m_Dfc_Control_PopupMenu dmPopupMenu String menustr menustr = '' IF ddlb_1.Text = '未处理' THEN IF ddlb_2.Text = '订单未接受' THEN menustr = menustr + "Text=接受订单~tEvent=ue_accept_saletask" menustr = menustr + "|Text=直接发货~tEvent=ue_saletask_directsend" ELSEIF ddlb_2.Text = '未打印快递单' Or ddlb_2.Text = '未发货' THEN menustr = menustr + "Text=取消直接发货~tEvent=ue_cancel_directsend" END IF IF menustr <> '' THEN menustr = menustr + "|" END IF menustr = menustr + "Text=中止订单~tEvent=ue_stop_saletask" ELSEIF ddlb_1.Text = '中止' THEN menustr = "Text=继续订单~tEvent=ue_continue_saletask" END IF IF Len(Trim(menustr)) <> 0 THEN dmPopupMenu = Create m_Dfc_Control_PopupMenu dmPopupMenu.mf_BuildMenu(This, menustr) dmPopupMenu.mf_PopMenu() Destroy dmPopupMenu END IF end event type cb_exit from w_publ_base_style`cb_exit within w_taobao_bills integer x = 343 end type type ln_bar from w_publ_base_style`ln_bar within w_taobao_bills end type type ln_bar2 from w_publ_base_style`ln_bar2 within w_taobao_bills end type type r_bar from w_publ_base_style`r_bar within w_taobao_bills end type type dw_1 from u_dw_rbtnfilter within w_taobao_bills integer y = 280 integer width = 3314 integer height = 1640 integer taborder = 20 boolean bringtotop = true string dataobject = "dw_taobao_bills" boolean hscrollbar = true boolean vscrollbar = true boolean hsplitscroll = true boolean rbutton_filter_use = true boolean rbutton_setposition_use = true boolean titleclick_sort_use = true end type event rowfocuschanged;call super::rowfocuschanged;This.SelectRow(0, False) Long row row = This.GetRow() IF row > 0 THEN This.SelectRow(row, True) END IF end event event clicked;call super::clicked;IF row > 0 THEN This.SetRow(row) this.selectrow(row, true) END IF end event type ddlb_1 from dropdownlistbox within w_taobao_bills integer y = 180 integer width = 681 integer height = 1032 integer taborder = 30 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 string text = "未处理" boolean sorted = false boolean vscrollbar = true string item[] = {"未处理","已处理","已申请退款","中止","异常单"} borderstyle borderstyle = stylelowered! end type event selectionchanged;ins_index = index ddlb_2.Enabled = (ins_index = 1) cb_reflash.TriggerEvent(clicked!) end event type cbx_1 from checkbox within w_taobao_bills integer x = 754 integer y = 196 integer width = 274 integer height = 56 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 67108864 string text = "全选" end type event clicked;Long ll_check IF This.Checked THEN ll_check = 1 ELSE ll_check = 0 END IF Long i FOR i = 1 To dw_1.RowCount() dw_1.Object.ch[i] = ll_check NEXT end event event constructor;window ll_win ll_win = GetParent() this.backcolor = ll_win.backcolor end event type cb_reflash from uo_imflatbutton within w_taobao_bills integer width = 151 integer height = 164 integer taborder = 30 boolean bringtotop = true string text = "刷新" string normalpicname = "refresh.BMP" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;String ls_tid ls_tid = sle_1.Text IF Pos(ls_tid, '%') <= 0 THEN ls_tid = '%' + ls_tid + '%' dw_1.Retrieve(ins_index, ls_tid, ins_subtype) end event type st_1 from statictext within w_taobao_bills integer x = 1143 integer y = 200 integer width = 402 integer height = 48 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 67108864 string text = "淘宝主订单号含" boolean focusrectangle = false end type event constructor;window ll_win ll_win = GetParent() this.backcolor = ll_win.backcolor end event type sle_1 from singlelineedit within w_taobao_bills integer x = 1536 integer y = 180 integer width = 526 integer height = 84 integer taborder = 40 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 borderstyle borderstyle = stylelowered! end type type ddlb_2 from dropdownlistbox within w_taobao_bills integer x = 2080 integer y = 180 integer width = 741 integer height = 452 integer taborder = 50 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 boolean sorted = false string item[] = {"订单未接受","订单未审","订单已审","未打印快递单","未发货","全部"} borderstyle borderstyle = stylelowered! end type event selectionchanged;ins_subtype = Index IF ins_subtype = 6 THEN ins_subtype = 0 END IF cb_reflash.TriggerEvent(Clicked!) end event type st_msg from statictext within w_taobao_bills integer x = 526 integer y = 76 integer width = 2679 integer height = 72 boolean bringtotop = true integer textsize = -14 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 255 long backcolor = 67108864 boolean focusrectangle = false end type event constructor;this.backcolor = 14215660 end event type ln_1 from line within w_taobao_bills long linecolor = 268435456 integer linethickness = 4 integer beginy = 268 integer endx = 2007 integer endy = 268 end type type ln_2 from line within w_taobao_bills long linecolor = 16777215 integer linethickness = 4 integer beginy = 272 integer endx = 2039 integer endy = 272 end type