123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869 |
- $PBExportHeader$w_buytask_custom_view_fx.srw
- $PBExportComments$定制产品销售订单(查看/编辑)
- forward
- global type w_buytask_custom_view_fx from w_publ_base
- end type
- type cb_addmx from commandbutton within w_buytask_custom_view_fx
- end type
- type cb_delmx from commandbutton within w_buytask_custom_view_fx
- end type
- type uo_tab from uo_fx_saletask_custom_tab within w_buytask_custom_view_fx
- end type
- type uo_tab from uo_fx_saletask_custom_tab within w_buytask_custom_view_fx
- end type
- type dw_main from datawindow within w_buytask_custom_view_fx
- end type
- type dw_mx from u_dw_rbtnfilter within w_buytask_custom_view_fx
- end type
- end forward
- global type w_buytask_custom_view_fx from w_publ_base
- integer width = 3666
- integer height = 2800
- string title = "定制产品销售订单"
- boolean minbox = false
- windowtype windowtype = response!
- long backcolor = 16777215
- boolean center = true
- event ue_tab_fj_upload ( )
- cb_addmx cb_addmx
- cb_delmx cb_delmx
- uo_tab uo_tab
- dw_main dw_main
- dw_mx dw_mx
- end type
- global w_buytask_custom_view_fx w_buytask_custom_view_fx
- type variables
- s_fx_saletask ins_tran
- long ins_mxPrintid = 0 // 新建订单时,记录订单明细当前最大明细数
- long ins_ret = 0 // 关闭时,父窗口 0-无需刷新 1-刷新
- end variables
- forward prototypes
- private subroutine wf_address_ch ()
- private subroutine wf_add_mx ()
- private subroutine wf_taborder ()
- private subroutine wf_face ()
- public function integer wf_save (s_fx_saletask a_tran, ref string arg_msg)
- private subroutine wf_add_saletask (long a_mode)
- public subroutine wf_add_saletaskmx ()
- public function integer wf_cancel (string a_reason, ref string arg_msg)
- end prototypes
- event ue_tab_fj_upload();// uo_tab附件页【上传】按钮事件
- long ll_row, ll_printid, ll_dftFjtype
- ll_row = dw_mx.GetRow()
- if (ll_row <= 0) then
- MessageBox('提示', '请选择订单明细以确定上传附件的对应明细项')
- return
- end if
- ll_printid = dw_mx.Object.printid[ll_row]
- if (ins_tran.status <> 4) then // 非待付款状态
- ll_dftFjtype = 2 // 下单附件
- else
- ll_dftFjtype = 0 // 付款凭证
- end if
- OpenWithParm(w_fjtype_ch_fx, ll_dftFjtype)
- ll_dftFjtype = Message.DoubleParm
- if (ll_dftFjtype = - 1) then return
- oleobject parm, ret, fullNamesArr, namesArr, extsArr, md5sArr
- parm = FXAppCom.CreatePbDictionary()
- parm.SetString('filter', '')
- parm.SetString('ifMulti', 1)
- ret = FXAppCom.OpenFiles(parm)
- long ll_cnt, ll_insertRow, ll_i
- datetime ldt_now = DateTime(Today(), Now())
- string ls_md5s_arr[], ls_filepaths_arr[]
- ll_cnt = ret.GetInt('cnt')
- if (ll_cnt > 0) then
- fullNamesArr = ret.GetPBArray('fullNamesArr')
- namesArr = ret.GetPBArray('namesArr')
- extsArr = ret.GetPBArray('extsArr')
- md5sArr = ret.GetPBArray('md5sArr')
-
- uo_tab.tabpage_fj.dw_fj.SetRedraw(false)
- for ll_i = 1 to ll_cnt
- ll_insertRow = uo_tab.tabpage_fj.dw_fj.InsertRow(0)
-
- uo_tab.tabpage_fj.dw_fj.Object.mxprintid[ll_insertRow] = ll_printid
- uo_tab.tabpage_fj.dw_fj.Object.fjtype[ll_insertRow] = ll_dftFjtype
- uo_tab.tabpage_fj.dw_fj.Object.filename[ll_insertRow] = namesArr.GetString(ll_i - 1)
- uo_tab.tabpage_fj.dw_fj.Object.dscrp[ll_insertRow] = ''
- uo_tab.tabpage_fj.dw_fj.Object.opemp[ll_insertRow] = app_username
- uo_tab.tabpage_fj.dw_fj.Object.opdate[ll_insertRow] = ldt_now
- uo_tab.tabpage_fj.dw_fj.Object.ch[ll_insertRow] = 0
- uo_tab.tabpage_fj.dw_fj.Object.fjprintid[ll_insertRow] = 0
- uo_tab.tabpage_fj.dw_fj.Object.fileType[ll_insertRow] = extsArr.GetString(ll_i - 1)
- uo_tab.tabpage_fj.dw_fj.Object.filemd5[ll_insertRow] = md5sArr.GetString(ll_i - 1)
- uo_tab.tabpage_fj.dw_fj.Object.filepath[ll_insertRow] = fullNamesArr.GetString(ll_i - 1)
-
- ls_md5s_arr[ll_i] = md5sArr.GetString(ll_i - 1)
- ls_filepaths_arr[ll_i] = fullNamesArr.GetString(ll_i - 1)
- next
- uo_tab.tabpage_fj.dw_fj.AcceptText()
- uo_tab.tabpage_fj.dw_fj.SetRedraw(true)
-
- ins_ret = 1
- end if
- end event
- private subroutine wf_address_ch ();// 收货人地址选择
- long ll_row
- ll_row = dw_main.GetRow()
- if (ll_row <= 0) then return
- s_fx_address s_tran
- Open(w_address_ch_fx)
- s_tran = Message.PowerObjectParm
- if (not IsNull(s_tran)) then
- if (IsValid(s_tran)) then
- if (s_tran.addressid > 0) then
- dw_main.Object.addressid[ll_row] = s_tran.addressid
- dw_main.Object.cus_rep[ll_row] = s_tran.cus_rep
- dw_main.Object.cus_tele[ll_row] = s_tran.cus_tele
- dw_main.Object.cus_address[ll_row] = s_tran.cus_address
-
- dw_main.AcceptText()
- end if
- end if
- end if
- end subroutine
- private subroutine wf_add_mx ();// 添加明细
- if (not if_modify_mode) then return
- if (ins_tran.taskid > 0 and dw_mx.RowCount() >= 1) then return
- s_fx_mtrldef s_tran
- Open(w_mtrl_custom_ch_by_sptcomid_fx)
- s_tran = Message.PowerObjectParm
- if (IsNull(s_tran)) then return
- if (not IsValid(s_tran)) then return
- if (not s_tran.ifselect) then return
- long ll_i, ll_insertRow
- dw_mx.SetRedraw(false)
- for ll_i = 1 to UpperBound(s_tran.fxmtrlid)
- ll_insertRow = dw_mx.InsertRow(0)
-
- ins_mxPrintid++
- dw_mx.Object.printid[ll_insertRow] = ins_mxPrintid
- dw_mx.Object.mb_mtrlcode[ll_insertRow] = s_tran.mtrlcode[ll_i]
- dw_mx.Object.mb_mtrlname[ll_insertRow] = s_tran.mtrlname[ll_i]
- dw_mx.Object.mb_mtrlmode[ll_insertRow] = s_tran.mtrlmode[ll_i]
- dw_mx.Object.qty[ll_insertRow] = 1
- dw_mx.Object.requiredate[ll_insertRow] = DateTime(Today(), Now())
- dw_mx.Object.mxdscrp[ll_insertRow] = ''
- dw_mx.Object.mxdscrp2[ll_insertRow] = ''
- dw_mx.Object.fxmtrlid_ori[ll_insertRow] = s_tran.fxmtrlid[ll_i]
- dw_mx.Object.fxmtrlid[ll_insertRow] = s_tran.fxmtrlid[ll_i]
- dw_mx.Object.mtrlid_ori[ll_insertRow] = s_tran.mtrlid[ll_i]
- dw_mx.Object.mtrlid[ll_insertRow] = s_tran.mtrlid[ll_i]
- // dw_mx.Object.status[ll_insertRow] = ''
- // dw_mx.Object.woodcode[ll_insertRow] = ''
- // dw_mx.Object.pcode[ll_insertRow] = ''
- next
- dw_mx.AcceptText()
- dw_mx.SetRedraw(true)
- end subroutine
- private subroutine wf_taborder ();//
- long ll_i, ll_step
- if (if_modify_mode) then
- ll_step = 10
- else
- ll_step = 0
- end if
- ll_i = 0
- ll_i += ll_step
- dw_mx.SetTaborder('qty', ll_i)
- ll_i += ll_step
- dw_mx.SetTaborder('requiredate', ll_i)
- ll_i += ll_step
- dw_mx.SetTaborder('mxdscrp', ll_i)
- ll_i += ll_step
- dw_mx.SetTaborder('mxdscrp2', ll_i)
- end subroutine
- private subroutine wf_face ();if (if_modify_mode) then
- cb_addmx.Visible = true
- cb_addmx.Enabled = true
- cb_delmx.Visible = true
- cb_delmx.Enabled = true
- else
- cb_addmx.Visible = false
- cb_addmx.Enabled = false
- cb_delmx.Visible = false
- cb_delmx.Enabled = false
- end if
- if (ins_tran.taskid <= 0) then
- cb_func.Text = '新建'
- cb_func.normalpicname = 'new.bmp'
- elseif (ins_tran.status = 0) then
- cb_func.Text = '退回'
- cb_func.normalpicname = 'Undo.bmp'
- elseif (ins_tran.status = 2) then
- cb_func.Text = '重建'
- cb_func.normalpicname = 'new.bmp'
- elseif (ins_tran.status = 4) then // 待付款[4]
- cb_func.Text = '审核'
- cb_func.normalpicname = 'audit.bmp'
- elseif (ins_tran.status = 8) then // 已发货[8]
- cb_func.Text = '收货'
- cb_func.normalpicname = 'audit.bmp'
- else
- cb_func.Visible = false
- cb_func.Enabled = false
- end if
- cb_func.of_init_draw()
- cb_func.of_paint()
- cb_func.TriggerEvent('ue_textchange')
- end subroutine
- public function integer wf_save (s_fx_saletask a_tran, ref string arg_msg);// 新建/退回订单保存
- int rslt = 1
- arg_msg = ''
- if (IsNull(a_tran.cus_rep)) then a_tran.cus_rep = ''
- if (IsNull(a_tran.cus_tele)) then a_tran.cus_tele = ''
- if (IsNull(a_tran.cus_address)) then a_tran.cus_address = ''
- if (IsNull(a_tran.temp1)) then a_tran.temp1 = ''
- if (IsNull(a_tran.temp2)) then a_tran.temp2 = ''
- if (IsNull(a_tran.temp3)) then a_tran.temp3 = ''
- if (a_tran.cus_rep = '' &
- or a_tran.cus_rep = '' &
- or a_tran.cus_rep = '') then
- rslt = 0
- arg_msg = '收货人/联系电话/收货地址不能为空'
- goto ext
- end if
- long ll_i
- if (IsNull(a_tran.mx)) then
- rslt = 0
- arg_msg = '没有订单明细(null)'
- goto ext
- end if
- if (UpperBound(a_tran.mx) <= 0) then
- rslt = 0
- arg_msg = '没有订单明细(0)'
- goto ext
- end if
- for ll_i = 1 to UpperBound(a_tran.mx)
- if (a_tran.mx[ll_i].qty <= 0) then
- rslt = 0
- arg_msg += '明细行:' + string(ll_i) + '数量有误;~r~n'
- end if
- next
- if (rslt <> 1) then goto ext
- // 1-先上传新增附件的md5,与服务器对比,2-返回服务器没有的md5,再上传附件数据
- long ll_index = 0
- string ls_arr_1_md5[], ls_arr_1_filepath[]
- if (not IsNull(a_tran.fj)) then
- for ll_i = 1 to UpperBound(a_tran.fj)
- if (a_tran.fj[ll_i].fjprintid <= 0) then
- ll_index++
- ls_arr_1_md5[ll_index] = a_tran.fj[ll_i].filemd5
- ls_arr_1_filepath[ll_index] = a_tran.fj[ll_i].filepath
- end if
- next
- end if
- if (UpperBound(ls_arr_1_md5) > 0) then
- if (f_chkfxfilemapwithmd5andupload(ls_arr_1_md5, ls_arr_1_filepath, ref arg_msg) <> 1) then
- rslt = 0
- goto ext
- end if
- end if
- // 保存订单
- oleobject req, rsp
- oleobject taskinfo, items, fjs, item
- oleobject mtrlitem
- // 主表
- taskinfo = FXAppCom.CreatePbDictionary()
- taskinfo.SetInt('taskid', a_tran.taskid)
- taskinfo.SetInt('billtype', a_tran.billtype)
- taskinfo.SetString('cus_rep', a_tran.cus_rep)
- taskinfo.SetString('cus_tele', a_tran.cus_tele)
- taskinfo.SetString('cus_address', a_tran.cus_address)
- taskinfo.SetString('temp1', a_tran.temp1)
- taskinfo.SetString('temp2', a_tran.temp2)
- taskinfo.SetString('temp3', a_tran.temp3)
- // 订单明细
- items = FXAppCom.NewPBArray()
- for ll_i = 1 to UpperBound(a_tran.mx)
- item = FXAppCom.CreatePbDictionary()
- item.SetInt('printid', a_tran.mx[ll_i].printid)
- item.SetDouble('num', a_tran.mx[ll_i].qty)
- item.SetInt('cartitemid', 0)
- item.SetString('status', '')
- item.SetString('woodcode', '')
- item.SetString('pcode', '')
- item.SetString('mxdscrp', a_tran.mx[ll_i].mxdscrp)
- item.SetString('mxdscrp2', a_tran.mx[ll_i].mxdscrp2)
- //mtrlitem
- mtrlitem = FXAppCom.CreatePbDictionary()
- mtrlitem.SetInt('fxmtrlid', a_tran.mx[ll_i].fxmtrlid)
- mtrlitem.SetInt('fxmtrlid_ori', a_tran.mx[ll_i].fxmtrlid_ori)
- mtrlitem.SetInt('mtrlid_ori', a_tran.mx[ll_i].mtrlid_ori)
- mtrlitem.SetInt('mtrlid_erp', a_tran.mx[ll_i].mtrlid)
- mtrlitem.SetDateTime('requiredate', a_tran.mx[ll_i].requiredate)
-
- item.SetObject('mtrlitem', mtrlitem)
-
- items.AddObject(item)
- next
- // 订单附件
- fjs = FXAppCom.NewPBArray()
- for ll_i = 1 to UpperBound(a_tran.fj)
- item = FXAppCom.CreatePbDictionary()
- item.SetInt('fjprintid', a_tran.fj[ll_i].fjprintid)
- item.SetInt('mxprintid', a_tran.fj[ll_i].mxprintid)
- item.SetInt('fjType', a_tran.fj[ll_i].fjType)
- item.SetString('dscrp', a_tran.fj[ll_i].dscrp)
- item.SetString('fileName', a_tran.fj[ll_i].fileName)
- item.SetString('fileType', a_tran.fj[ll_i].fileType)
- item.SetString('filemd5', a_tran.fj[ll_i].filemd5)
- //item.SetString('filepath', a_tran.fj[ll_i].filepath)
-
- fjs.AddObject(item)
- next
- // 提交
- req = FXAppCom.CreatePbDictionary()
- req.SetString('token', app_token_fx)
- req.SetObject('taskinfo', taskinfo)
- req.SetObject('items', items)
- req.SetObject('fjs', fjs)
- rsp = FXAppCom.DoExecute('SaveTask', req)
- arg_msg = rsp.GetString('ErrMsg')
- if (arg_msg <> '') then
- rslt = 0
- goto ext
- end if
- ext:
- return rslt
- end function
- private subroutine wf_add_saletask (long a_mode);// 新建/查看退回订单
- // a_mode 0-新建 1-查看/退回
- dw_main.Reset()
- long ll_insertRow
- ll_insertRow = dw_main.InsertRow(0)
- if (a_mode = 0) then // 新建
- dw_main.Object.status[ll_insertRow] = 0
- dw_main.Object.cus_rep[ll_insertRow] = ''
- dw_main.Object.cus_tele[ll_insertRow] = ''
- dw_main.Object.cus_address[ll_insertRow] = ''
- dw_main.Object.temp1[ll_insertRow] = ''
- dw_main.Object.temp2[ll_insertRow] = ''
- dw_main.Object.temp3[ll_insertRow] = ''
- dw_main.Object.opemp[ll_insertRow] = app_username
- dw_main.Object.opdate[ll_insertRow] = DateTime(Today(), Now())
- else // 查看/退回
- dw_main.Object.gpCode[ll_insertRow] = ins_tran.gpCode
- dw_main.Object.tid[ll_insertRow] = ins_tran.tid
- dw_main.Object.status[ll_insertRow] = ins_tran.status
- dw_main.Object.cus_rep[ll_insertRow] = ins_tran.cus_rep
- dw_main.Object.cus_tele[ll_insertRow] = ins_tran.cus_tele
- dw_main.Object.cus_address[ll_insertRow] = ins_tran.cus_address
- dw_main.Object.temp1[ll_insertRow] = ins_tran.temp1
- dw_main.Object.temp2[ll_insertRow] = ins_tran.temp2
- dw_main.Object.temp3[ll_insertRow] = ins_tran.temp3
- dw_main.Object.opemp[ll_insertRow] = ins_tran.opemp
- dw_main.Object.opdate[ll_insertRow] = ins_tran.opdate
- dw_main.Object.modemp[ll_insertRow] = ins_tran.modemp
- dw_main.Object.moddate[ll_insertRow] = ins_tran.moddate
-
- dw_main.Object.erpstatus[ll_insertRow] = ins_tran.erpstatus
- dw_main.Object.freight[ll_insertRow] = ins_tran.freight
- dw_main.Object.freight_tele[ll_insertRow] = ins_tran.freight_tele
- dw_main.Object.replyrqdate[ll_insertRow] = ins_tran.replyrqdate
- dw_main.Object.addCost[ll_insertRow] = ins_tran.addCost
- dw_main.Object.erpConfirmEmp[ll_insertRow] = ins_tran.erpConfirmEmp
- dw_main.Object.erpConfirmDate[ll_insertRow] = ins_tran.erpConfirmDate
- dw_main.Object.splitEmp[ll_insertRow] = ins_tran.splitEmp
- dw_main.Object.splitDate[ll_insertRow] = ins_tran.splitDate
- dw_main.Object.splitConfirmEmp[ll_insertRow] = ins_tran.splitConfirmEmp
- dw_main.Object.splitConfirmDate[ll_insertRow] = ins_tran.splitConfirmDate
- dw_main.Object.price_emp[ll_insertRow] = ins_tran.price_emp
- dw_main.Object.priceDate[ll_insertRow] = ins_tran.priceDate
- dw_main.Object.priceConfirmEmp[ll_insertRow] = ins_tran.priceConfirmEmp
- dw_main.Object.priceConfirmDate[ll_insertRow] = ins_tran.priceConfirmDate
- dw_main.Object.payConfirmEmp[ll_insertRow] = ins_tran.payConfirmEmp
- dw_main.Object.payConfirmDate[ll_insertRow] = ins_tran.payConfirmDate
-
- dw_main.Object.taskid[ll_insertRow] = ins_tran.taskid
- dw_main.Object.sptcomid[ll_insertRow] = ins_tran.sptcomid
- dw_main.Object.cuscomid[ll_insertRow] = ins_tran.cuscomid
- dw_main.Object.buyer_name[ll_insertRow] = ins_tran.buyer_name
- dw_main.Object.buyer_tele[ll_insertRow] = ins_tran.buyer_tele
- // dw_main.Object.temp4[ll_insertRow] = ins_tran.temp4
- // dw_main.Object.temp5[ll_insertRow] = ins_tran.temp5
- // dw_main.Object.temp6[ll_insertRow] = ins_tran.temp6
- // dw_main.Object.replydscrp[ll_insertRow] = ins_tran.replydscrp
- // dw_main.Object.replydate[ll_insertRow] = ins_tran.replydate
- // dw_main.Object.confirmemp[ll_insertRow] = ins_tran.confirmemp
- // dw_main.Object.confirmdate[ll_insertRow] = ins_tran.confirmdate
- // dw_main.Object.outwarecode[ll_insertRow] = ins_tran.outwarecode
- // dw_main.Object.fstatus[ll_insertRow] = ins_tran.fstatus
- dw_main.Object.billtype[ll_insertRow] = ins_tran.billtype
- dw_main.Object.taskdate[ll_insertRow] = ins_tran.taskdate
- dw_main.Object.taskcode[ll_insertRow] = ins_tran.taskcode
- dw_main.Object.requiredate[ll_insertRow] = ins_tran.requiredate
- dw_main.Object.addressid[ll_insertRow] = 0
- end if
- dw_main.AcceptText()
- end subroutine
- public subroutine wf_add_saletaskmx ();// 获取订单明细
- dw_mx.Reset()
- string arg_msg
- oleobject req, rsp
- req = FXAppCom.CreatePbDictionary()
- req.SetString('token', app_token_fx)
- req.SetInt('taskid', ins_tran.taskid)
- rsp = FXAppCom.DoExecute('GetBuytaskmx', req)
- arg_msg = rsp.GetString('ErrMsg')
- if (arg_msg <> '') then
- MessageBox('提示', arg_msg)
- return
- end if
- oleobject item, list
- list = rsp.GetPBArray('mxs')
- long ll_i, ll_insertRow
- for ll_i = 1 to list.Count
- item = list.GetPBDictionary(ll_i - 1)
- ll_insertRow = dw_mx.InsertRow(0)
-
- dw_mx.Object.printid[ll_insertRow] = item.GetInt('printid')
- dw_mx.Object.mb_mtrlcode[ll_insertRow] = item.GetString('mb_mtrlcode')
- dw_mx.Object.mb_mtrlname[ll_insertRow] = item.GetString('mb_mtrlname')
- dw_mx.Object.mb_mtrlmode[ll_insertRow] = item.GetString('mb_mtrlmode')
- dw_mx.Object.qty[ll_insertRow] = item.GetDouble('qty')
- if (not IsNull(item.GetDateTime('requiredate'))) then
- dw_mx.Object.requiredate[ll_insertRow] = item.GetDateTime('requiredate')
- end if
- dw_mx.Object.mxdscrp[ll_insertRow] = item.GetString('mxdscrp')
- dw_mx.Object.mxdscrp2[ll_insertRow] = item.GetString('mxdscrp2')
- dw_mx.Object.price[ll_insertRow] = item.GetDouble('price')
- dw_mx.Object.mtrlcode[ll_insertRow] = item.GetString('mtrlcode')
- dw_mx.Object.mtrlname[ll_insertRow] = item.GetString('mtrlname')
- dw_mx.Object.mtrlmode[ll_insertRow] = item.GetString('mtrlmode')
- dw_mx.Object.plancode[ll_insertRow] = item.GetString('plancode')
- dw_mx.Object.mtrlcuscode[ll_insertRow] = item.GetString('mtrlcuscode')
- dw_mx.Object.cus_receiveqty[ll_insertRow] = item.GetDouble('cus_receiveqty')
- dw_mx.Object.qty_ready[ll_insertRow] = item.GetDouble('qty_ready')
- dw_mx.Object.outQty[ll_insertRow] = item.GetDouble('outQty')
- if (not IsNull(item.GetDateTime('outDate'))) then
- dw_mx.Object.outDate[ll_insertRow] = item.GetDateTime('outDate')
- end if
- dw_mx.Object.stopQty[ll_insertRow] = item.GetDouble('stopQty')
- dw_mx.Object.stopEmp[ll_insertRow] = item.GetString('stopEmp')
- if (not IsNull(item.GetDateTime('stopDate'))) then
- dw_mx.Object.stopDate[ll_insertRow] = item.GetDateTime('stopDate')
- end if
- dw_mx.Object.stopReason[ll_insertRow] = item.GetString('stopReason')
-
- dw_mx.Object.status[ll_insertRow] = item.GetString('status')
- dw_mx.Object.woodcode[ll_insertRow] = item.GetString('woodcode')
- dw_mx.Object.pcode[ll_insertRow] = item.GetString('pcode')
- if (not IsNull(item.GetDateTime('qty_ready_opdate'))) then
- dw_mx.Object.qty_ready_opdate[ll_insertRow] = item.GetDateTime('qty_ready_opdate')
- end if
- dw_mx.Object.taskid[ll_insertRow] = item.GetInt('taskid')
- dw_mx.Object.mxcode[ll_insertRow] = item.GetString('mxcode')
- dw_mx.Object.mtrlid[ll_insertRow] = item.GetInt('mtrlid')
- dw_mx.Object.fxmtrlid[ll_insertRow] = item.GetInt('fxmtrlid')
- dw_mx.Object.qty_ready_userid[ll_insertRow] = item.GetInt('qty_ready_userid')
- dw_mx.Object.fxmtrlid_ori[ll_insertRow] = item.GetInt('fxmtrlid_ori')
- dw_mx.Object.mtrlid_ori[ll_insertRow] = item.GetInt('mtrlid_ori')
- next
- end subroutine
- public function integer wf_cancel (string a_reason, ref string arg_msg);// 取消(退回)订单
- int rslt = 1
- arg_msg = ''
- if (IsNull(a_reason)) then a_reason = ''
- if (a_reason = '') then
- rslt = 0
- arg_msg = '订单取消原因不能为空'
- goto ext
- end if
- oleobject req, rsp
- req = FXAppCom.CreatePbDictionary()
- req.SetString('token', app_token_fx)
- req.SetInt('taskid', ins_tran.taskid)
- req.SetString('reason', a_reason)
- rsp = FXAppCom.DoExecute('CancelTask', req)
- arg_msg = rsp.GetString('ErrMsg')
- if (arg_msg <> '') then
- rslt = 0
- goto ext
- end if
- ext:
- return rslt
- end function
- on w_buytask_custom_view_fx.create
- int iCurrent
- call super::create
- this.cb_addmx=create cb_addmx
- this.cb_delmx=create cb_delmx
- this.uo_tab=create uo_tab
- this.dw_main=create dw_main
- this.dw_mx=create dw_mx
- iCurrent=UpperBound(this.Control)
- this.Control[iCurrent+1]=this.cb_addmx
- this.Control[iCurrent+2]=this.cb_delmx
- this.Control[iCurrent+3]=this.uo_tab
- this.Control[iCurrent+4]=this.dw_main
- this.Control[iCurrent+5]=this.dw_mx
- end on
- on w_buytask_custom_view_fx.destroy
- call super::destroy
- destroy(this.cb_addmx)
- destroy(this.cb_delmx)
- destroy(this.uo_tab)
- destroy(this.dw_main)
- destroy(this.dw_mx)
- end on
- event open;call super::open;ins_tran = Message.PowerObjectParm
- if (IsNull(ins_tran)) then
- Close(this)
- return
- end if
- if (not IsValid(ins_tran)) then
- Close(this)
- return
- end if
- if ((ins_tran.taskid <= 0 and ins_tran.status = 0) or (ins_tran.status = 2)) then // 编辑状态
- if_modify_mode = true
-
- dw_main.DataObject = 'dw_fx_buytask_custom_new'
- if (ins_tran.taskid <= 0) then // 新建
- wf_add_saletask(0)
- else // 退回
- wf_add_saletask(1)
- wf_add_saletaskmx()
- end if
- else
- if_modify_mode = false
-
- dw_main.DataObject = 'dw_fx_buytask_custom_view'
- wf_add_saletask(1)
- wf_add_saletaskmx()
- end if
- uo_tab.post event ue_init_with_tid(ins_tran.taskid, ins_tran.status, ins_tran.tid, this)
- wf_face()
- wf_taborder()
- this.post event resize(0, 0, 0)
- end event
- event resize;call super::resize;dw_main.Width = this.workspacewidth()
- dw_mx.Width = this.workspacewidth()
- uo_tab.Width = this.workspacewidth()
- if (if_modify_mode) then
- dw_main.Height = 724
-
- dw_mx.Y = cb_addmx.Y + 100
- dw_mx.Height = 600
- else
- dw_main.Height = 1088
-
- dw_mx.Y = dw_main.Y + dw_main.Height + 2
- dw_mx.Height = 360
- end if
- uo_tab.Y = dw_mx.Y + dw_mx.Height + 10
- uo_tab.Height = this.workspaceheight() - uo_tab.Y - 160
- uo_tab.post event ue_resize()
- end event
- event close;call super::close;CloseWithReturn(this, ins_ret)
- end event
- type cb_func from w_publ_base`cb_func within w_buytask_custom_view_fx
- integer x = 2999
- integer y = 2596
- integer taborder = 60
- string normalpicname = "new.bmp"
- integer picsize = 16
- end type
- event cb_func::clicked;call super::clicked;s_fx_saletask s_main
- s_fx_saletaskmx s_mx, s_empty_mx
- s_fx_saletask_fj s_fj, s_empty_fj
- s_inputbox s_input
- string ls_ret
- long ll_row, ll_i
- string arg_msg
- if ((ins_tran.taskid <= 0 and ins_tran.status = 0) or (ins_tran.status = 2)) then // 新建/重新下单
- dw_main.AcceptText()
- dw_mx.SetFilter('')
- dw_mx.Filter()
- dw_mx.AcceptText()
- uo_tab.tabpage_fj.dw_fj.SetFilter('')
- uo_tab.tabpage_fj.dw_fj.Filter()
- uo_tab.tabpage_fj.dw_fj.AcceptText()
-
- ll_row = dw_main.GetRow()
- if (ll_row <= 0) then
- MessageBox('提示', '获取当前单据信息失败,请联系开发人员')
- return
- end if
- s_main.taskid = ins_tran.taskid
- s_main.billtype = 1 // 定制产品订单
- s_main.cus_rep = Trim(dw_main.Object.cus_rep[ll_row])
- s_main.cus_tele = Trim(dw_main.Object.cus_tele[ll_row])
- s_main.cus_address = Trim(dw_main.Object.cus_address[ll_row])
- s_main.temp1 = Trim(dw_main.Object.temp1[ll_row])
- s_main.temp2 = Trim(dw_main.Object.temp2[ll_row])
- s_main.temp3 = Trim(dw_main.Object.temp3[ll_row])
-
- if (dw_mx.RowCount() <= 0) then
- MessageBox('提示', '没有订单明细')
- return
- end if
- for ll_i = 1 to dw_mx.RowCount()
- s_mx = s_empty_mx
-
- s_mx.printid = dw_mx.Object.printid[ll_i]
- s_mx.qty = dw_mx.Object.qty[ll_i]
- s_mx.requiredate = dw_mx.Object.requiredate[ll_i]
- s_mx.fxmtrlid_ori = dw_mx.Object.fxmtrlid_ori[ll_i]
- s_mx.fxmtrlid = dw_mx.Object.fxmtrlid[ll_i]
- s_mx.mtrlid_ori = dw_mx.Object.mtrlid_ori[ll_i]
- s_mx.mtrlid = dw_mx.Object.mtrlid[ll_i]
- s_mx.mxdscrp = Trim(dw_mx.Object.mxdscrp[ll_i])
- s_mx.mxdscrp2 = Trim(dw_mx.Object.mxdscrp2[ll_i])
- // s_mx.status = dw_mx.Object.status[ll_i]
- // s_mx.woodcode = dw_mx.Object.woodcode[ll_i]
- // s_mx.pcode = dw_mx.Object.pcode[ll_i]
-
- s_main.mx[ll_i] = s_mx
- next
-
- for ll_i = 1 to uo_tab.tabpage_fj.dw_fj.RowCount()
- s_fj = s_empty_fj
-
- s_fj.fjprintid = uo_tab.tabpage_fj.dw_fj.Object.fjprintid[ll_i]
- s_fj.mxprintid = uo_tab.tabpage_fj.dw_fj.Object.mxprintid[ll_i]
- s_fj.fjType = uo_tab.tabpage_fj.dw_fj.Object.fjType[ll_i]
- s_fj.dscrp = Trim(uo_tab.tabpage_fj.dw_fj.Object.dscrp[ll_i])
- s_fj.fileName = uo_tab.tabpage_fj.dw_fj.Object.fileName[ll_i]
- s_fj.fileType = uo_tab.tabpage_fj.dw_fj.Object.fileType[ll_i]
- s_fj.filemd5 = uo_tab.tabpage_fj.dw_fj.Object.filemd5[ll_i]
- s_fj.filepath = uo_tab.tabpage_fj.dw_fj.Object.filepath[ll_i]
-
- s_main.fj[ll_i] = s_fj
- next
-
- if (wf_save(s_main, ref arg_msg) <> 1) then
- MessageBox('提示', '订单保存失败:' + arg_msg)
- else
- ins_ret = 1
- MessageBox('提示', '订单保存成功')
- Close(parent)
- end if
- elseif (ins_tran.taskid > 0 and ins_tran.status = 0) then // 退回
- s_input.title = '取消原因'
- s_input.old_text = '退回订单'
- OpenWithParm(w_inputbox, s_input)
- ls_ret = Message.StringParm
- if (ls_ret = '') then
- MessageBox('提示', '请填写退回原因')
- return
- end if
- if (MessageBox('提示', '确认退回当前订单?', Question!, YesNo!) <> 1) then return
- if (wf_cancel(ls_ret, ref arg_msg) <> 1) then
- MessageBox('提示', '订单退回失败:' + arg_msg)
- else
- ins_ret = 1
- MessageBox('提示', '订单退回成功')
- Close(parent)
- end if
- elseif (ins_tran.status = 4) then // 审核
- // TODO:检查付款凭证
- //wf_audit()
- elseif (ins_tran.status = 8) then // 收货
-
- end if
- end event
- type cb_exit from w_publ_base`cb_exit within w_buytask_custom_view_fx
- integer x = 3314
- integer y = 2596
- integer taborder = 70
- end type
- type cb_addmx from commandbutton within w_buytask_custom_view_fx
- integer x = 23
- integer y = 744
- integer width = 288
- integer height = 80
- integer taborder = 20
- boolean bringtotop = true
- integer textsize = -9
- integer weight = 400
- fontcharset fontcharset = gb2312charset!
- fontpitch fontpitch = variable!
- string facename = "宋体"
- string text = "添加"
- end type
- event clicked;wf_add_mx()
- end event
- type cb_delmx from commandbutton within w_buytask_custom_view_fx
- integer x = 325
- integer y = 744
- integer width = 288
- integer height = 80
- integer taborder = 30
- boolean bringtotop = true
- integer textsize = -9
- integer weight = 400
- fontcharset fontcharset = gb2312charset!
- fontpitch fontpitch = variable!
- string facename = "宋体"
- string text = "删除"
- end type
- event clicked;if (not if_modify_mode) then return
- long ll_row, ll_printid
- ll_row = dw_mx.GetRow()
- if (ll_row <= 0) then
- Messagebox('提示', '请选择需要删除的明细行')
- return
- end if
- ll_printid = dw_mx.Object.printid[ll_row]
- dw_mx.DeleteRow(ll_row)
- // 删除相应的附件
- uo_tab.post event ue_tab_fj_del(ll_printid)
- if (dw_mx.RowCount() > 0 and ll_row <= dw_mx.RowCount()) then
- dw_mx.SetRow(ll_row)
- dw_mx.SelectRow(0, false)
- dw_mx.SelectRow(ll_row, true)
- end if
- end event
- type uo_tab from uo_fx_saletask_custom_tab within w_buytask_custom_view_fx
- integer y = 1456
- integer width = 3653
- integer height = 1116
- integer taborder = 50
- boolean bringtotop = true
- end type
- type dw_main from datawindow within w_buytask_custom_view_fx
- integer width = 3657
- integer height = 724
- integer taborder = 10
- boolean bringtotop = true
- string title = "none"
- string dataobject = "dw_fx_buytask_custom_new"
- boolean livescroll = true
- end type
- event clicked;if (if_modify_mode) then
- if (dwo.Name = 'b_cus') then // 收货人地址管理
- wf_address_ch()
- end if
- end if
- end event
- event doubleclicked;if (if_modify_mode) then
- if (dwo.Name = 'cus_rep' &
- or dwo.Name = 'cus_tele' &
- or dwo.Name = 'cus_address') then // 收货人地址管理
- wf_address_ch()
- end if
- end if
- end event
- type dw_mx from u_dw_rbtnfilter within w_buytask_custom_view_fx
- integer y = 844
- integer width = 3657
- integer height = 360
- integer taborder = 40
- boolean bringtotop = true
- string dataobject = "dw_fx_buytaskmx_custom"
- boolean hscrollbar = true
- boolean vscrollbar = true
- boolean hsplitscroll = true
- borderstyle borderstyle = stylebox!
- boolean rbutton_filter_use = true
- boolean rbutton_setposition_use = true
- boolean titleclick_sort_use = true
- end type
- event doubleclicked;call super::doubleclicked;if (if_modify_mode and dwo.Type = 'datawindow') then
- wf_add_mx()
- end if
- end event
- event clicked;call super::clicked;if (row > 0) then
- this.SetRow(row)
- this.SelectRow(0, false)
- this.SelectRow(row, true)
- end if
- end event
- event rowfocuschanged;call super::rowfocuschanged;if (currentrow > 0) then
- this.SetRow(currentrow)
- this.SelectRow(0, false)
- this.SelectRow(currentrow, true)
- end if
- end event
|