//集运管理-路单查询 Ext.namespace('DsTruckRpt'); DsTruckRpt.MsRptPcHeadQryIndex = function (config) { Ext.applyIf(this, config); this.initUIComponents(); window.DsTruckRpt.MsRptPcHeadQryIndex.superclass.constructor.call(this); }; Ext.extend(DsTruckRpt.MsRptPcHeadQryIndex, Ext.Panel, { PageSize: 30, OprationStatus: null, //仅当弹出界面时使用 SelectedRecord: null, initUIComponents: function () { //定义数据集 this.storeList = Ext.create('Ext.data.Store', { pageSize: this.PageSize, fields: [ { name: 'BILLNO', type: 'string' }, { name: 'GID', type: 'string' }, { name: 'DDCODE', type: 'string' }, { name: 'DDCODE_REF', type: 'string' }, { name: 'DDNAME', type: 'string' }, { name: 'EXPDATE', type: 'string' }, { name: 'CUSTCODE', type: 'string' }, { name: 'CUSTNAME', type: 'string' }, { name: 'TRUCKNO', type: 'string' }, { name: 'MBLNO', type: 'string' }, { name: 'DRVNAME', type: 'string' }, { name: 'DRVNAME_REF', type: 'string' }, { name: 'MOBILE', type: 'string' }, { name: 'CONTAINERTYPE', type: 'string' }, { name: 'CONTAINERTYPE_REF', type: 'string' }, { name: 'CONTAINERQTY', type: 'number' }, { name: 'YARDCODE_REF', type: 'string' }, { name: 'VOYVEG_REF', type: 'string' }, { name: 'DSTAREA', type: 'string' }, { name: 'NOLOADMIL', type: 'number' }, { name: 'OVERLOADMIL', type: 'number' }, { name: 'RATEDFUEL', type: 'number' }, { name: 'REALFUEL', type: 'number' }, { name: 'LRDATE', type: 'string' }, { name: 'USERCODE', type: 'string' }, { name: 'USERNAME', type: 'string' }, { name: 'REFBILLNO', type: 'string' }, { name: 'DETINATION', type: 'string' }, { name: 'CONTAINERNO', type: 'string' }, { name: 'SEALNO', type: 'string' }, { name: 'Ton', type: 'number' }, { name: 'ActualWeight', type: 'number' }, { name: 'IsDoubleREF', type: 'string' } //#region 现在不显示了 // { name: 'JZDATE', type: 'string' }, // // { name: 'ORGCODE', type: 'string' }, // { name: 'ORGNAME', type: 'string' }, // // { name: 'TRUCKNO_REF', type: 'string' }, // // { name: 'CONTAINERQTY', type: 'number' }, // { name: 'VOYVEG', type: 'string' }, // { name: 'VOYVEG_REF', type: 'string' }, // { name: 'ETDATE', type: 'string' }, // { name: 'ENDPORTDATE', type: 'string' }, // // { name: 'YARDCODE', type: 'string' }, // { name: 'YARDCODE_REF', type: 'string' }, // { name: 'YARDNAME', type: 'string' }, // { name: 'RTNYARDCODE', type: 'string' }, // { name: 'RTNYARDCODE_REF', type: 'string' }, // { name: 'RTNYARDNAME', type: 'string' }, // { name: 'BSTYPE', type: 'string' }, // { name: 'BSTYPE_REF', type: 'string' }, // // // { name: 'FACTORYADDR', type: 'string' }, // { name: 'LINKTEL', type: 'string' }, // { name: 'LINKMAN', type: 'string' }, // { name: 'RATEDMIL', type: 'number' }, // // { name: 'FUELQTY', type: 'number' }, // { name: 'REALMIL', type: 'number' }, // // // { name: 'TON', type: 'number' }, // { name: 'AROUNDTON', type: 'number' }, // { name: 'LOADCOUNT', type: 'number' }, // { name: 'ARRIVEDATE', type: 'string' }, // // { name: 'RETURNDATE', type: 'string' }, // { name: 'REFBILLNO', type: 'string' }, // { name: 'REMARK', type: 'string' }, // { name: 'ISDOUBLE', type: 'string' }, // { name: 'REFBILLNOSE', type: 'string' }, // { name: 'CONTAINERTYPESE', type: 'string' }, // { name: 'CONTAINERTYPESE_Ref', type: 'string' }, // { name: 'CONTAINERQTYSE', type: 'number' }, // { name: 'MBLNOSE', type: 'string' }, // { name: 'VOYVEGSE', type: 'string' }, // { name: 'VOYVEGSE_REF', type: 'string' }, // { name: 'ETDATESE', type: 'string' }, // { name: 'ENDPORTDATESE', type: 'string' }, // { name: 'YARDCODESE', type: 'string' }, // { name: 'YARDCODESE_Ref', type: 'string' }, // { name: 'YARDNAMESE', type: 'string' }, // { name: 'DSTAREASE', type: 'string' }, // { name: 'FACTORYADDRSE', type: 'string' }, // { name: 'DETINATIONSE', type: 'string' }, // { name: 'LINKMANSE', type: 'string' }, // { name: 'LINKTELSE', type: 'string' }, // { name: 'RTNYARDCODESE', type: 'string' }, // { name: 'RTNYARDCODESE_REF', type: 'string' }, // { name: 'RTNYARDNAMESE', type: 'string' }, // { name: 'BILLSTATUS', type: 'string' }, // { name: 'BILLSTATUS_REF', type: 'string' }, // { name: 'FEESTATUS', type: 'string' }, // { name: 'FEESTATUS_REF', type: 'string' }, // // { name: 'TOTALMIL', type: 'number' }, // { name: 'TIMEMARK', type: 'number' }, // { name: 'PCBILLTYPE', type: 'string' }, // { name: 'LOADPLACE', type: 'string' }, // { name: 'LOADFUEL', type: 'number' }, // { name: 'NOLOADFUEL', type: 'number' }, // { name: 'RPTDATE', type: 'string' }, //// { name: 'NEADLOADDATE', type: 'string' }, //// { name: 'NEEDARRIVEDATE', type: 'string' }, // { name: 'ARRIVETIME', type: 'string' }, // { name: 'RETURNTIME', type: 'string' }, // { name: 'CUSTLIKEMANCODE', type: 'string' }, // { name: 'CUSTLIKEMANNAME', type: 'string' }, // { name: 'CUSTTEL', type: 'string' }, // { name: 'DRVCODE', type: 'string' } //#endregion ], remoteSort: true, proxy: { type: 'ajax', url: '/TruckMng/MsRptPcHeadQry/QryData', reader: { id: '', root: 'data', totalProperty: 'totalCount' } } }); this.PCCB = Ext.create('Ext.selection.CheckboxModel', { checkOnly: true }); Ext.grid.RowNumberer = Ext.extend(Ext.grid.RowNumberer, { width: 45 }); //定义Grid this.gridList = new Ext.grid.GridPanel({ store: this.storeList, enableHdMenu: false, region: 'center', loadMask: { msg: "数据加载中,请稍等..." }, trackMouseOver: true, disableSelection: false, features: [{ ftype: 'summary'//Ext.grid.feature.Summary表格汇总特性 }], selModel: this.PCCB, columns: [new Ext.grid.RowNumberer(), { sortable: true, dataIndex: 'BILLNO', header: '路单号', width: 130 }, { sortable: true, dataIndex: 'DDCODE_REF', header: '调度', width: 100 }, { sortable: true, dataIndex: 'EXPDATE', header: '派车日期', width: 70 }, { sortable: true, hidden: true, dataIndex: 'CUSTNAME', header: '客户', //summaryType: 'count', width: 120 }, { sortable: true, dataIndex: 'TRUCKNO', header: '车号', //summaryType: 'count', width: 65 }, { sortable: true, dataIndex: 'MBLNO', header: '提单号', //summaryType: 'count', width: 120 }, { sortable: true, dataIndex: 'DRVNAME', header: '司机姓名', width: 65 }, { sortable: true, dataIndex: 'MOBILE', header: '司机手机', width: 76 }, { sortable: true, dataIndex: 'CONTAINERTYPE_REF', header: '箱型', width: 50 }, { sortable: true, dataIndex: 'CONTAINERQTY', header: '箱量', summaryType: 'sum', width: 50 }, { sortable: true, dataIndex: 'YARDCODE_REF', header: '场站', width: 150 }, { sortable: true, dataIndex: 'VOYVEG_REF', header: '船名航次', width: 150 }, { sortable: true, dataIndex: 'DSTAREA', header: '目的地', width: 80 }, { sortable: true, dataIndex: 'DETINATION', header: '工厂地址', width: 200 }, { sortable: true, dataIndex: 'OVERLOADMIL', header: '重驶里程', summaryType: 'sum', width: 60 }, { sortable: true, dataIndex: 'NOLOADMIL', header: '空驶里程', summaryType: 'sum', width: 60 }, { sortable: true, dataIndex: 'Ton', header: '货重(吨)', summaryType: 'average', width: 60 }, { sortable: true, dataIndex: 'ActualWeight', header: '实际重量', summaryType: 'average', width: 60 }, { sortable: true, dataIndex: 'RATEDFUEL', header: '额定油耗', summaryType: 'sum', width: 60 }, { sortable: true, dataIndex: 'REALFUEL', header: '实际油耗', summaryType: 'sum', width: 60 }, { sortable: true, dataIndex: 'IsDoubleREF', header: '是否重回', width: 60 }, { sortable: true, dataIndex: 'USERNAME', header: '录入人', width: 60 }, { sortable: true, dataIndex: 'LRDATE', header: '录入日期', width: 80 }, { sortable: true, dataIndex: 'CONTAINERNO', header: '箱号', width: 80 }, { sortable: true, dataIndex: 'SEALNO', header: '封号', width: 80 } //#region 现在不显示了 // , { // sortable: true, // dataIndex: 'DDCODE', // header: '调度', // width: 60 // } // , { // sortable: true, // dataIndex: 'USERCODE', // header: '用户编码', // width: 60 // } // , { // sortable: true, // dataIndex: 'YARDCODE', // header: '拖箱场站', // renderer: function (value, p, record) { return value + '-' + record.data.YARDCODE_Ref; }, // width: 80 // }, { // sortable: true, // dataIndex: 'YARDNAME', // header: '拖箱场站名称', // width: 80 // } // , { // sortable: true, // dataIndex: 'ORGCODE', // header: '组织编码', // width: 80 // }, { // sortable: true, // dataIndex: 'CONTAINERQTY', // header: '箱量', // width: 100 // }, { // sortable: true, // dataIndex: 'ETDATE', // header: '开船日期', // width: 80 // }, { // sortable: true, // dataIndex: 'ENDPORTDATE', // header: '截港日期', // width: 80 // }, { // sortable: true, // dataIndex: 'RTNYARDCODE', // header: '返箱场站', // renderer: function (value, p, record) { return value + '-' + record.data.RTNYARDCODE_Ref; }, // width: 80 // }, { // sortable: true, // dataIndex: 'RTNYARDNAME', // header: '返箱场站名称', // width: 80 // }, { // sortable: true, // dataIndex: 'BSTYPE', // header: '托单类型', // renderer: function (value, p, record) { return value + '-' + record.data.BSTYPE_Ref; }, // width: 20 // }, { // sortable: true, // dataIndex: 'FACTORYADDR', // header: '拖货地址', // width: 200 // }, { // sortable: true, // dataIndex: 'LINKTEL', // header: '联系电话', // width: 200 // }, { // sortable: true, // dataIndex: 'LINKMAN', // header: '联系人', // width: 200 // }, { // sortable: true, // dataIndex: 'RATEDMIL', // header: '额定里程', // width: 160 // }, { // sortable: true, // dataIndex: 'REALMIL', // header: '实际里程', // width: 160 // }, { // sortable: true, // dataIndex: 'ARRIVEDATE', // header: '到厂日期', // width: 80 // }, { // sortable: true, // dataIndex: 'RETURNDATE', // header: '返回日期', // width: 80 // }, { // sortable: true, // dataIndex: 'REFBILLNO', // header: '相关单据号', // width: 200 // }, { // sortable: true, // dataIndex: 'REMARK', // header: '备注', // width: 200 // }, { // sortable: true, // dataIndex: 'ISDOUBLE', // header: '是否双背', // width: 20 // }, { // sortable: true, // dataIndex: 'REFBILLNOSE', // header: '相关单据号2', // width: 200 // }, { // sortable: true, // dataIndex: 'CONTAINERTYPESE', // header: '箱型2', // renderer: function (value, p, record) { return value + '-' + record.data.CONTAINERTYPESE_Ref; }, // width: 200 // }, { // sortable: true, // dataIndex: 'CONTAINERQTYSE', // header: '箱量2', // width: 100 // }, { // sortable: true, // dataIndex: 'MBLNOSE', // header: '提单号2', // width: 120 // }, { // sortable: true, // dataIndex: 'VOYVEGSE', // header: '船名航次2', // renderer: function (value, p, record) { return value + '-' + record.data.VOYVEGSE_Ref; }, // width: 80 // }, { // sortable: true, // dataIndex: 'ETDATESE', // header: '开船日期2', // width: 80 // }, { // sortable: true, // dataIndex: 'ENDPORTDATESE', // header: '截港日期2', // width: 80 // }, { // sortable: true, // dataIndex: 'YARDCODESE', // header: '场站编码2', // renderer: function (value, p, record) { return value + '-' + record.data.YARDCODESE_Ref; }, // width: 80 // }, { // sortable: true, // dataIndex: 'YARDNAMESE', // header: '场站名称2', // width: 80 // }, { // sortable: true, // dataIndex: 'DSTAREASE', // header: '目的地2', // width: 80 // }, { // sortable: true, // dataIndex: 'FACTORYADDRSE', // header: '拖货地址2', // width: 200 // }, { // sortable: true, // dataIndex: 'DETINATIONSE', // header: '工厂地址2', // width: 200 // }, { // sortable: true, // dataIndex: 'LINKMANSE', // header: '联系人2', // width: 200 // }, { // sortable: true, // dataIndex: 'LINKTELSE', // header: '联系电话2', // width: 200 // }, { // sortable: true, // dataIndex: 'RTNYARDCODESE', // header: '返箱场站2', // renderer: function (value, p, record) { return value + '-' + record.data.RTNYARDCODESE_Ref; }, // width: 80 // }, { // sortable: true, // dataIndex: 'RTNYARDNAMESE', // header: '返箱场站名称2', // width: 80 // }, { // sortable: true, // dataIndex: 'BILLSTATUS', // header: '业务锁定状态', // renderer: function (value, p, record) { return value + '-' + record.data.BILLSTATUS_Ref; }, // width: 120 // }, { // sortable: true, // dataIndex: 'FEESTATUS', // header: '费用锁定状态', // renderer: function (value, p, record) { return value + '-' + record.data.FEESTATUS_Ref; }, // width: 120 // }, { // sortable: true, // dataIndex: 'GID', // header: '惟一编号', // width: 160 // }, { // sortable: true, // dataIndex: 'LOADPLACE', // header: '始发地点', // width: 80 // }, { // sortable: true, // dataIndex: 'LOADFUEL', // header: '重驶油耗', // width: 160 // }, { // sortable: true, // dataIndex: 'NOLOADFUEL', // header: '空驶油耗', // width: 160 // } // , { // sortable: true, // dataIndex: 'RPTDATE', // header: '报表日期', // width: 80 // } //// , { //// sortable: true, //// dataIndex: 'NEADLOADDATE', //// header: '要求起运日期', //// width: 80 //// }, { //// sortable: true, //// dataIndex: 'NEEDARRIVEDATE', //// header: '要求到达日期', //// width: 80 //// } // , { // sortable: true, // dataIndex: 'ARRIVETIME', // header: '到厂时间', // width: 80 // }, { // sortable: true, // dataIndex: 'RETURNTIME', // header: '返回时间', // width: 80 // }, { // sortable: true, // dataIndex: 'CUSTLIKEMANCODE', // header: '客户联系人', // width: 120 // }, { // sortable: true, // dataIndex: 'CUSTLIKEMANNAME', // header: '客户联系人姓名', // width: 120 // }, { // sortable: true, // dataIndex: 'CUSTTEL', // header: '客户联系电话', // width: 160 // }, { // sortable: true, // dataIndex: 'DRVCODE', // header: '驾驶员编码', // width: 60 // } //#endregion ], // paging bar on the bottom bbar: Ext.create('Ext.PagingToolbar', { store: this.storeList, displayInfo: true, displayMsg: '当前显示 {0} - {1}条记录 /共 {2}条记录', emptyMsg: "没有数据" }) }); this.gridList.addListener('itemdblclick', function (dataview, record, item, index, e, b) { this.SelectedRecord = record; this.OprationStatus = 'edit'; DsOpenEditWin("/TruckMng/MsWlPc/Edit"); }, this); //#region formSearch //#region formSearch枚举参照相关 //#endregion this.formSearch = Ext.widget('form', { frame: true, region: 'center', bodyPadding: 5, fieldDefaults: { margins: '2 2 2 2', labelAlign: 'right', flex: 1, labelWidth: 90, msgTarget: 'qtip' }, items: [ {//fieldset 1 xtype: 'container', defaultType: 'textfield', layout: 'anchor', defaults: { anchor: '100%' }, items: [{ xtype: 'container', layout: 'hbox', defaultType: 'textfield', items: [{ fieldLabel: '提单号', name: 'PS_MBLNO' }, { fieldLabel: '司机姓名', name: 'PS_DRVNAME' }, { fieldLabel: '车牌号', name: 'PS_TRUCKNO' } ] }, { xtype: 'container', layout: 'hbox', defaultType: 'textfield', items: [{ fieldLabel: '托单号', name: 'PS_REFBILLNO' }, { fieldLabel: '单据号', name: 'PS_BILLNO' }, { fieldLabel: '组织编码', name: 'OrgCode' } ] }, { xtype: 'container', layout: 'hbox', defaultType: 'textfield', items: [{ fieldLabel: '从派车日期', format: 'Y-m-d', xtype: 'datefield', name: 'PS_EXPDATEBGN' }, { fieldLabel: '到派车日期', format: 'Y-m-d', xtype: 'datefield', name: 'PS_EXPDATEEND' }, { xtype: 'hiddenfield' } ] } ]//end items(fieldset 1) }//end fieldset 1 ]//end root items }); //#endregion formSearch //设定费用菜单 var menu_SetFee = new Ext.menu.Menu({ id: 'PriceMenu', items: [{ text: '设定超重费用', handler: clickHandler_1 }, { text: '超重费用取消', handler: clickHandler_2 }, { text: '设定重回额外费用', handler: clickHandler_3 }, { text: '重回额外费用取消', handler: clickHandler_4 }] }); me = this; function clickHandler_1() { me.SetFee("超重费", "150", "1"); }; function clickHandler_2() { me.SetFee("超重费", "150", "0"); }; function clickHandler_3() { me.SetFee("双背附加费", "600", "1"); }; function clickHandler_4() { me.SetFee("双背附加费", "600", "0"); }; //查询工具条 this.panelBtn = new Ext.Panel({ region: "north", tbar: [ { text: "执行查询", iconCls: "btnrefresh", handler: function (button, event) { this.onRefreshClick(button, event); }, scope: this }, { text: "导出Excel", id: "btnExportExcel", iconCls: 'btnexportexcel', handler: function (button, event) { this.onExportClick(button, event); }, scope: this }, '-', { text: "批量设置费用", menu: menu_SetFee, scope: this } , '-', { id: "btnFeeAuditReject", text: '驳回提交费用业务', tooltip: '驳回提交费用业务', iconCls: "btnrefuse", handler: function (button, event) { this.onAuditRefuseClick(button, event); }, scope: this } ] }); //布局 this.panelTop = new Ext.Panel({ layout: "border", region: "north", height: 125, items: [this.formSearch, this.panelBtn] }); Ext.apply(this, { items: [this.panelTop, this.gridList] }); this.storeList.on('beforeload', function (store) { if (!this.checkSearchCondition()) return; var sql = this.getCondition(); Ext.apply(store.proxy.extraParams, { condition: sql }); }, this); }, //end initUIComponents onAuditRefuseClick: function (button, event) { var sql = " A.GID in (select bsno from ch_fee where FEESTATUS=6)"; this.storeList.load({ params: { start: 0, limit: this.PageSize, condition: sql }, waitMsg: "正在查询数据...", scope: this }); }, onRefreshClick: function (button, event) { if (!this.checkSearchCondition()) return; var sql = this.getCondition(); this.storeList.load({ params: { start: 0, limit: this.PageSize, condition: sql }, waitMsg: "正在查询数据...", scope: this }); }, getCondition: function () { var form = this.formSearch.getForm(); var sql = "B.CustName like '%华泰%'"; // a.PcBillType='6' /* var sqldata = form.getValues(); sql = Ext.JSON.encode(sqldata); */ var mblNo = form.findField('PS_MBLNO').getValue(); sql = sql + getAndConSql(sql, mblNo, " A.MblNo like '%" + mblNo + "%' "); var drvName = form.findField('PS_DRVNAME').getValue(); sql = sql + getAndConSql(sql, drvName, " A.DrvName='" + drvName + "'"); var truckNo = form.findField('PS_TRUCKNO').getValue(); sql = sql + getAndConSql(sql, truckNo, " A.TruckNo='" + truckNo + "'"); var pcBillNo = form.findField('PS_BILLNO').getValue(); sql = sql + getAndConSql(sql, pcBillNo, " A.BillNo like '%" + pcBillNo + "%'"); var billNo = form.findField('PS_REFBILLNO').getValue(); sql = sql + getAndConSql(sql, billNo, " (A.RefBillNo like '%" + billNo + "%' or A.RefBillNobs like '%" + billNo + "%')"); var expDate_Min = form.findField('PS_EXPDATEBGN').getRawValue(); sql = sql + getAndConSql(sql, expDate_Min, " A.ExpDate>='" + expDate_Min + "'"); var expDate_Max = form.findField('PS_EXPDATEEND').getRawValue(); sql = sql + getAndConSql(sql, expDate_Max, " A.ExpDate<='" + expDate_Max + " 23:59:59'"); var orgCode = form.findField('OrgCode').getValue(); sql = sql + getAndConSql(sql, orgCode, "OrgCode like '%" + orgCode + "%'"); return sql; }, checkSearchCondition: function () { var form = this.formSearch.getForm(); if (!form.isValid()) { Ext.Msg.alert('提示', '查询条件赋值错误,请检查。'); return false; } return true; }, OprationSwap: function () { var ret = new Array(); ret[0] = this.OprationStatus; ret[1] = this.storeList; ret[2] = this.SelectedRecord; ret[3] = this.SelectedRecord.data.REFBILLNO; ret[4] = "MsRptPcHeadQryIndex"; return ret; } , onExportClick: function (button, event) { GridExportExcelPage(this.gridList); }, SetFee: function (FeeName, Amount, Type) { var _condition = this.getCondition(); var GIDList = []; var selectedRecords = this.gridList.selModel.getSelection(); for (var i = 0; i < selectedRecords.length; i++) { var rec = selectedRecords[i]; GIDList.push(rec.get('GID')); } var _GIDList = ConvertStringListToJson(GIDList); Ext.Ajax.request({// waitMsg: '正在初始化库存数据...', url: '/TruckMng/MsRptPcHeadQry/SetFee', params: { GIDList: _GIDList, FeeName: FeeName, Amount: Amount, Type: Type }, callback: function (_count) { //alert('初始化完成'); //重新load库存表的store this.storeList.load({ params: { condition: _condition} }); }, scope: this }); //request over } });