Ext.namespace('Shipping'); Shipping.MsPrice_ContractEdit = function (config) { Ext.applyIf(this, config); this.initUIComponents(); window.Shipping.MsPrice_ContractEdit.superclass.constructor.call(this); }; Ext.extend(Shipping.MsPrice_ContractEdit, Ext.Panel, { parentWin: null, opStatus: 'add', StoreList: null, editRecord: null, Editdata: null, MainEditRecord: null, stroplb: '合约管理',///与视图 V_op_bs 的OPLBNAME相同 依赖于枚举类型96005 isfen: false, PageSize: 100, selectWay: { ID: '0',BSNO:'', PODLOAD: '', PORTDISCHARGE: '', VIA: '', VIA2: '' }, initUIComponents: function () { this.serialNo = 0; //this.bodyDel = []; this.itemindex = 1; this.initloaddata = 0; this.accdatesameetd = 0; this.MsPeriod = null; this.SALEORDERDEPTBYOP = 0; this.formname = "MsPrice_ContractEdit"; _this = this; parentWin = window.parent.opener; mainWin = getMainForm(parentWin); opflex = 0.6;//上方几个用户下拉框 《操作》等的宽度 ViaWidth = 90;//中转港信息的的标签宽度 //#region 信息加载 //权限范围 this.StoreOpRange = Ext.create('DsExt.ux.RefTableStore', { model: 'MsOP', proxy: { url: '/MvcShipping/MsBaseInfo/GetOpIDRang' } }); //this.StoreOpRange.load({ params: { optype: "modOrderManagement" } }); //#region 船公司 this.storeCARRIER = Ext.create('DsExt.ux.RefTableStore', { model: 'DsShipping.ux.CustomRefModel', proxy: { url: '/CommMng/BasicDataRef/GetCustomRefListCARRIER' } }); //this.storeCARRIER.loadData(mainWin.GetPubStore("INFOCLIENT_CARRIER").data.items); this.comboxCARRIER = Ext.create('DsExt.ux.RefTableCombox', { fieldLabel: '船公司', store: this.storeCARRIER, forceSelection: true, //queryMode: 'remote', //minChars: 1, //queryParam: 'CODENAME', name: 'CARRIER', valueField: 'CustName', displayField: 'CodeAndName' }); //#endregion //#region 起运港 目的港 this.storeCodeLoadport = Ext.create('DsExt.ux.RefTableStore', { model: 'DsShipping.ux.CodeLoadportModel', proxy: { url: '/CommMng/BasicDataRef/GetCodeLoadportList' } }); //this.storeCodeLoadport.loadData(mainWin.GetPubStore("CODE_PORTLOAD").data.items); this.comboxPORTLOAD = Ext.create('DsExt.ux.RefTableCombox', { //flex:1, //fieldLabel: '起运港', matchFieldWidth: false, forceSelection: true, store: this.storeCodeLoadport, name: 'PORTLOAD', valueField: 'PORT', displayField: 'CodeAndName' }); this.storeCodePort = Ext.create('DsExt.ux.RefTableStore', { model: 'DsShipping.ux.CodeDisportModel', proxy: { url: '/CommMng/BasicDataRef/GetCodeDisportListRm' } }); //this.storeCodePort.loadData(mainWin.GetPubStore("CODE_PORTDISCHARGE").data.items); this.comboxPORTDISCHARGE = Ext.create('DsExt.ux.RefTableCombox', { //fieldLabel: '目的港', queryMode: 'remote', minChars: 2, queryParam: 'PORT', matchFieldWidth: false, forceSelection: true, store: this.storeCodePort, name: 'PORTDISCHARGE', valueField: 'PORT', displayField: 'CodeAndName', listeners: { scope: this, blur: function (field, The, eOpts) { field.setRawValue(field.value); }, 'select': function (combo, records, eOpts) { } , //beforequery: function (e) { // return FilterCombox(e, 2);//在beforequery使用此方法 //}, specialkey: function (field, e) { } } }); this.storeVIA = Ext.create('DsExt.ux.RefTableStore', { model: 'DsShipping.ux.CodeDisportModel', proxy: { url: '/CommMng/BasicDataRef/GetCodeDisportListRm' } }); //this.storeVIA.loadData(mainWin.GetPubStore("CODE_PORTDISCHARGE").data.items); this.comboxVIA = Ext.create('DsExt.ux.RefTableCombox', { //fieldLabel: '中转港', queryMode: 'remote', minChars: 2, queryParam: 'PORT', matchFieldWidth: false, forceSelection: true, store: this.storeVIA, name: 'PORTDISCHARGE', valueField: 'PORT', displayField: 'CodeAndName', listeners: { scope: this, blur: function (field, The, eOpts) { field.setRawValue(field.value); }, 'select': function (combo, records, eOpts) { } , //beforequery: function (e) { // return FilterCombox(e, 2);//在beforequery使用此方法 //}, specialkey: function (field, e) { } } }); this.storeVIA2 = Ext.create('DsExt.ux.RefTableStore', { model: 'DsShipping.ux.CodeDisportModel', proxy: { url: '/CommMng/BasicDataRef/GetCodeDisportListRm' } }); //this.storeVIA2.loadData(mainWin.GetPubStore("CODE_PORTDISCHARGE").data.items); this.comboxVIA2 = Ext.create('DsExt.ux.RefTableCombox', { //fieldLabel: '中转港', queryMode: 'remote', minChars: 2, queryParam: 'PORT', matchFieldWidth: false, forceSelection: true, store: this.storeVIA2, name: 'PORTDISCHARGE', valueField: 'PORT', displayField: 'CodeAndName', listeners: { scope: this, blur: function (field, The, eOpts) { field.setRawValue(field.value); }, 'select': function (combo, records, eOpts) { } , //beforequery: function (e) { // return FilterCombox(e, 2);//在beforequery使用此方法 //}, specialkey: function (field, e) { } } }); //#endregion //#region 费用名称 this.storeFeeNameRef = Ext.create('DsExt.ux.RefTableStore', { model: 'DsShipping.ux.FeeTypeRefModel', proxy: { url: '/MvcShipping/MsChFee/GetFeeTypeRefListNew' } }); this.comboxFeeNameRef = Ext.create('DsExt.ux.DCombox', { store: this.storeFeeNameRef, minChars: 1, matchFieldWidth: false, forceSelection: true, //queryParam: 'Name', lazyRender: false, name: 'FeeName', valueField: 'Name', displayField: 'CodeAndName' }); //#endregion //加载业务信息 //#endregion //#region 起运港列表 this.columnLoad = [ { sortable: true, dataIndex: 'PORT', header: '起运港列表', width: 240 } ]; this.storePortLoad = Ext.create('Ext.data.Store', { pageSize: 9999, model: 'PORTLOADmb', remoteSort: false, proxy: { type: 'ajax', url: '', reader: { id: 'PORT', root: 'data', totalProperty: 'totalCount' } } }); this.formPortLoad = new Ext.grid.GridPanel({ flex: 1, height:200, store: this.storePortLoad, enableHdMenu: false, region: 'center', loadMask: { msg: "数据加载中,请稍等..." }, trackMouseOver: true, disableSelection: false, selType: 'cellmodel', columns: this.columnLoad }); //#endregion //#region 目的港列表 this.columnDischarge = [ { sortable: true, dataIndex: 'PORT', header: '目的港列表', width: 240 } ]; this.storePortDischarge = Ext.create('Ext.data.Store', { pageSize: 9999, model: 'PORTDISCHARGEmb', remoteSort: false, proxy: { type: 'ajax', url: '', reader: { id: 'PORT', root: 'data', totalProperty: 'totalCount' } } }); this.formPortDischarge = new Ext.grid.GridPanel({ store: this.storePortDischarge, flex: 1, height: 200, enableHdMenu: false, region: 'center', loadMask: { msg: "数据加载中,请稍等..." }, trackMouseOver: true, disableSelection: false, selType: 'cellmodel', columns: this.columnDischarge }); //#endregion //#region 主表信息 this.formHead = Ext.widget('form', { //layout: "border", region: 'north', height:100, title:'合约信息', //height:300, frame: true, bodyPadding: 5, //collapsed: false, //collapsible: true, trackResetOnLoad: true, fieldDefaults: { margins: '2 3 2 0', labelAlign: 'right', flex: 1, labelWidth: 65, msgTarget: 'qtip' }, items: [ { //第一格 xtype: 'container', //title:'委托信息', defaultType: 'textfield', layout: 'anchor', defaults: { anchor: '100%' }, items: [ { xtype: 'container', layout: 'hbox', defaultType: 'textfield', items: [ { fieldLabel: 'TIMEMARK', name: 'TIMEMARK', hidden: true }, { fieldLabel: 'CSTATUS', name: 'CSTATUS', hidden: true }, { fieldLabel: 'MadePrice', name: 'MadePrice', hidden: true }, { fieldLabel: '合约编号', flex: 1, allowBlank: false, name: 'CONTRACTNO' }, { fieldLabel: '约号编码', flex: 1,readOnly:true, name: 'BSNO' }, this.comboxCARRIER , { fieldLabel: '生效日期', format: 'Y-m-d', flex: 0.5, xtype: 'datefield', name: 'EFFECTIVEDATE' }, { fieldLabel: '失效时间', format: 'Y-m-d', flex: 0.5, xtype: 'datefield', name: 'VALIDDATE' } ] } ] }, { //第2格 xtype: 'container',hidden:true, defaultType: 'textfield', layout: 'hbox', defaults: { anchor: '100%' }, items: [ { xtype: 'fieldset', title: '起运港', defaultType: 'textfield', layout: 'anchor', defaults: { anchor: '100%' }, flex:1, items: [ { xtype: 'container', layout: 'hbox', defaultType: 'textfield', defaults: { anchor: '100%' }, items: [ { xtype: 'container', layout: 'anchor', flex:1, defaults: { anchor: '100%' }, defaultType: 'textfield', items: [ //this.comboxPORTLOAD, { xtype: 'container', layout: 'hbox', defaults: { anchor: '100%' }, items: [ { xtype: 'hiddenfield', flex:4 }, { xtype: 'container', layout: 'anchor', flex:1, items: [ { xtype: 'button', //text: "tianjia",//添加 id: "btnedit_right", //iconCls: "edit_right", cls: "arrow_right", width: 26, height: 26, handler: function (button, event) { port = _this.formHead.getForm().findField("PORTLOAD").getValue(); _this.PortLoadListAdd(port); }, scope: this }, { xtype: 'hiddenfield', width: 20 }, { xtype: 'button', id: "btnedit_left", cls: "arrow_red_left", width: 26, height: 26, handler: function (button, event) { _this.PortLoadListDel(); }, scope: this }] } ] } ] } , this.formPortLoad ] }] }, { xtype: 'fieldset', title: '目的港', defaultType: 'textfield', layout: 'anchor', flex: 1, items: [ { xtype: 'container', layout: 'hbox', defaultType: 'textfield', defaults: { anchor: '100%' }, items: [ { xtype: 'container', layout: 'anchor', flex: 1, defaults: { anchor: '100%' }, defaultType: 'textfield', items: [ //this.comboxPORTDISCHARGE, { xtype: 'container', layout: 'hbox', defaults: { anchor: '100%' }, items: [ { xtype: 'hiddenfield', flex: 4 }, { xtype: 'container', layout: 'anchor', flex: 1, items: [ { xtype: 'button', //text: "tianjia",//添加 id: "btnedit_right2", //iconCls: "edit_right", cls: "arrow_right", width: 26, height: 26, handler: function (button, event) { port = _this.formHead.getForm().findField("PORTDISCHARGE").getValue(); _this.PortDischargeListAdd(port); }, scope: this }, { xtype: 'hiddenfield', width: 20 }, { xtype: 'button', id: "btnedit_left2", cls: "arrow_red_left", width: 26, height: 26, handler: function (button, event) { _this.PortDischargeListDel(); }, scope: this }] } ] } ] } , this.formPortDischarge ] } ] } ] } , { //第3格 xtype: 'container', defaultType: 'textfield', layout: 'anchor', defaults: { anchor: '100%' }, items: [ { fieldLabel: '备注', name: 'REMARK' } ] } ]//end items(fieldset 1) }); //end this.formHead //#endregion //#region 路径表 this.cellEditing_Way = Ext.create('Ext.grid.plugin.CellEditing', { clicksToEdit: 1 }); this.column_Way = [ { dataIndex: 'ID', header: 'ID', width: 80,hidden: true }, { sortable: true, dataIndex: 'BSNO', header: 'BSNO', width: 80, hidden: true }, { sortable: true, dataIndex: 'PODLOAD', header: '起运港', width: 120, editor: this.comboxPORTLOAD }, { sortable: true, dataIndex: 'PORTDISCHARGE', header: '目的港', width: 120, editor: this.comboxPORTDISCHARGE }, { sortable: true, dataIndex: 'VIA', header: '中转港', width: 120, editor: this.comboxVIA }, { sortable: true, dataIndex: 'VIA2', header: '中转港2', width: 120, editor: this.comboxVIA2 }, { sortable: true, dataIndex: 'ETD', header: 'ETD', width: 120, editor: { xtype:'textfield', selectOnFocus: true } }, { sortable: true, dataIndex: 'TT', header: 'TT', width: 60, editor: { xtype: 'numberfield', selectOnFocus: true, //得到焦点时自动选择文本 allowDecimals: false //允许输入小数 //decimalPrecision: 2 //允许保留的小数位数,并四舍五入 } } ]; this.storeWay = Ext.create('Ext.data.Store', { pageSize: this.PageSize, model: 'Waymb', remoteSort: false, //groupField: 'GroupDate', proxy: { type: 'ajax', //url: '/TruckMng/MsRptPcHeadOperate/QryData_ADL', url: '/MvcShipping/MsPrice/GetContractWayList', //this.storeList.proxy.url = '/TruckMng/MsRptPcHeadOperate/QryData_ADL'; reader: { id: 'ID', root: 'data', totalProperty: 'totalCount' } } }); var _this = this; this.formWay = new Ext.grid.GridPanel({ store: this.storeWay, region: "center", flex:2, loadMask: { msg: "数据加载中,请稍等..." }, trackMouseOver: true, disableSelection: false, plugins: [this.cellEditing_Way], //selModel: //this.cargoCheckBoxModel, selType: 'cellmodel', //features: [{ // ftype: 'summary'//Ext.grid.feature.Summary表格汇总特性 //}], tbar: [ { text: '增加明细', tooltip: '如果要复制增加一条,请先选中要复制的记录,再点击增加明细', id: "btnaddWay", iconCls: "btnadddetail", handler: function (button, event) { //this.Save('4'); this.onAddWayClick(); }, scope: this }, '-', { text: '删除明细', tooltip: '删除明细为直接执行,删除后不需要再次点击保存', id: 'btndelWay', iconCls: "btndeletedetail", handler: function (button, event) { this.onDelWayClick(button, event); }, scope: this }, '-',{ id: 'btnSaveDetail_1', text: "保存", iconCls: "btnsave", handler: function (button, event) { this.SaveDetail(); }, scope: this } ], columns: this.column_Way , bbar: [Ext.create('Ext.PagingToolbar', { store: this.storeWay, displayInfo: true, displayMsg: '当前显示 {0} - {1}条记录 /共 {2}条记录', emptyMsg: "没有数据" })] }); this.formWay.reconfigure(this.storeWay, this.column_Way); //#endregion //#region 合约运价明细 this.cellEditing = Ext.create('Ext.grid.plugin.CellEditing', { clicksToEdit: 1 }); //this.cargoCheckBoxModel = Ext.create('Ext.selection.CheckboxModel'); this.column = [ { dataIndex: 'GID', header: 'GID', width: 80,hidden: true }, { sortable: true, dataIndex: 'BSNO', header: 'BSNO', width: 80, hidden: true }, { sortable: true, dataIndex: 'PODLOAD', header: 'PODLOAD', width: 80, hidden: true }, { sortable: true, dataIndex: 'PORTDISCHARGE', header: 'PORTDISCHARGE', width: 80, hidden: true }, { sortable: true, dataIndex: 'VIA', header: 'VIA', width: 80, hidden: true }, { sortable: true, dataIndex: 'VIA2', header: 'VIA2', width: 80, hidden: true }, { sortable: true, dataIndex: 'SEQUENCE', header: '顺序号', width: 40, editor: { xtype: 'numberfield', selectOnFocus: true, //得到焦点时自动选择文本 allowDecimals: false //允许输入小数 //decimalPrecision: 2 //允许保留的小数位数,并四舍五入 } }, { sortable: true, dataIndex: 'FEENAME', header: '费用名称', width: 80, editor: this.comboxFeeNameRef }, { sortable: true, dataIndex: 'CTN0', header: '小柜', width: 80, editor: { xtype: 'numberfield', allowDecimals: true, //允许输入小数 decimalPrecision: 2, nanText: '请输入有效小数', selectOnFocus: true, minValue: 0 }, renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) { value = usMoney(value, 2, '', true); return value; }, summaryType: 'sum', align: 'right', summaryRenderer: function (value, cellmeta, record, rowIndex, columnIndex, store) { value = usMoney(value, 2, '', true); return value; } }, { sortable: true, dataIndex: 'CTN1', header: '大柜', width: 80, editor: { xtype: 'numberfield', allowDecimals: true, //允许输入小数 decimalPrecision: 2, nanText: '请输入有效小数', selectOnFocus: true, minValue: 0 }, renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) { value = usMoney(value, 2, '', true); return value; }, summaryType: 'sum', align: 'right', summaryRenderer: function (value, cellmeta, record, rowIndex, columnIndex, store) { value = usMoney(value, 2, '', true); return value; } }, { sortable: true, dataIndex: 'CTN2', header: '超高', width: 80, editor: { xtype: 'numberfield', allowDecimals: true, //允许输入小数 decimalPrecision: 2, nanText: '请输入有效小数', selectOnFocus: true, minValue: 0 }, renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) { value = usMoney(value, 2, '', true); return value; }, summaryType: 'sum', align: 'right', summaryRenderer: function (value, cellmeta, record, rowIndex, columnIndex, store) { value = usMoney(value, 2, '', true); return value; } }, { sortable: true, dataIndex: 'CTN3', header: '小冻', width: 80, editor: { xtype: 'numberfield', allowDecimals: true, //允许输入小数 decimalPrecision: 2, nanText: '请输入有效小数', selectOnFocus: true, minValue: 0 }, renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) { value = usMoney(value, 2, '', true); return value; }, summaryType: 'sum', align: 'right', summaryRenderer: function (value, cellmeta, record, rowIndex, columnIndex, store) { value = usMoney(value, 2, '', true); return value; } }, { sortable: true, dataIndex: 'CTN4', header: '超冻', width: 80, editor: { xtype: 'numberfield', allowDecimals: true, //允许输入小数 decimalPrecision: 2, nanText: '请输入有效小数', selectOnFocus: true, minValue: 0 }, renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) { value = usMoney(value, 2, '', true); return value; }, summaryType: 'sum', align: 'right', summaryRenderer: function (value, cellmeta, record, rowIndex, columnIndex, store) { value = usMoney(value, 2, '', true); return value; } } ]; this.storeBody = Ext.create('Ext.data.Store', { pageSize: this.PageSize, model: 'MsPrice_Contract_Detailmb', remoteSort: false, //groupField: 'GroupDate', proxy: { type: 'ajax', //url: '/TruckMng/MsRptPcHeadOperate/QryData_ADL', url: '/MvcShipping/MsPrice/GetContractDetailList', //this.storeList.proxy.url = '/TruckMng/MsRptPcHeadOperate/QryData_ADL'; reader: { id: 'GID', root: 'data', totalProperty: 'totalCount' } } }); this.formDetail = new Ext.grid.GridPanel({ store: this.storeBody, enableHdMenu: false, region: "center", flex:3, //title: '运价明细', loadMask: { msg: "数据加载中,请稍等..." }, trackMouseOver: true, disableSelection: false, plugins: [this.cellEditing], //selModel: //this.cargoCheckBoxModel, selType: 'cellmodel', features: [{ ftype: 'summary'//Ext.grid.feature.Summary表格汇总特性 }], tbar: [ { text: '增加明细', tooltip: '增加明细', id:"btnadddetail", iconCls: "btnadddetail", handler: function (button, event) { this.onAddDetailClick(button, event); }, scope: this }, '-', { text: '删除明细', tooltip: '删除明细', id: 'btndeletedetail', iconCls: "btndeletedetail", handler: function (button, event) { this.onDelDetailClick(button, event); }, scope: this }, '-', { id: 'btnSaveDetail_2', text: "保存", iconCls: "btnsave", handler: function (button, event) { this.SaveDetail(); }, scope: this } ], columns: this.column, bbar: [Ext.create('Ext.PagingToolbar', { store: this.storeBody, displayInfo: true, displayMsg: '当前显示 {0} - {1}条记录 /共 {2}条记录', emptyMsg: "没有数据" })] }); this.storeBody_Model = Ext.create('Ext.data.Store', { pageSize: this.PageSize, model: 'MsPrice_Contract_Detailmb', remoteSort: false, //groupField: 'GroupDate', proxy: { type: 'ajax', //url: '/TruckMng/MsRptPcHeadOperate/QryData_ADL', url: '/MvcShipping/MsPrice/GetContractDetailList', //this.storeList.proxy.url = '/TruckMng/MsRptPcHeadOperate/QryData_ADL'; reader: { id: 'GID', root: 'data', totalProperty: 'totalCount' } } }); this.cellEditing_Model = Ext.create('Ext.grid.plugin.CellEditing', { clicksToEdit: 1 }); this.formDetail_Model = new Ext.grid.GridPanel({ store: this.storeBody_Model, enableHdMenu: false, region: "center", //flex: 3, //title: '运价明细', loadMask: { msg: "数据加载中,请稍等..." }, trackMouseOver: true, disableSelection: false, plugins: [this.cellEditing_Model], //selModel: //this.cargoCheckBoxModel, selType: 'cellmodel', features: [{ ftype: 'summary'//Ext.grid.feature.Summary表格汇总特性 }], tbar: [ { text: '增加明细', tooltip: '增加明细', id: "btnadddetail_Model", iconCls: "btnadddetail", handler: function (button, event) { this.onAddDetailClick(button, event); }, scope: this }, '-', { text: '删除明细', tooltip: '删除明细', id: 'btndeletedetail_Model', iconCls: "btndeletedetail", handler: function (button, event) { this.onDelDetailClick_Model(button, event); }, scope: this } ], columns: this.column, bbar: [Ext.create('Ext.PagingToolbar', { store: this.storeBody_Model, displayInfo: true, displayMsg: '当前显示 {0} - {1}条记录 /共 {2}条记录', emptyMsg: "没有数据" })] }); //#endregion //#region 目的港免箱期 this.cellEditing_PortDetention = Ext.create('Ext.grid.plugin.CellEditing', { clicksToEdit: 1 }); this.column_PortDetention = [ { dataIndex: 'ID', header: 'ID', width: 80, hidden: true }, { sortable: true, dataIndex: 'BSNO', header: 'BSNO', width: 80, hidden: true }, { sortable: true, dataIndex: 'PORTDISCHARGE', header: '目的港', width: 160, editor: this.comboxPORTDISCHARGE }, { sortable: true, dataIndex: 'CTN0', header: '小柜', width: 200, editor: { xtype: 'textfield', selectOnFocus: true } }, { sortable: true, dataIndex: 'CTN1', header: '大柜', width: 200, editor: { xtype: 'textfield', selectOnFocus: true } }, { sortable: true, dataIndex: 'CTN2', header: '超高', width: 200, editor: { xtype: 'textfield', selectOnFocus: true } }, { sortable: true, dataIndex: 'CTN3', header: '小冻', width: 200, editor: { xtype: 'textfield', selectOnFocus: true } }, { sortable: true, dataIndex: 'CTN4', header: '超冻', width: 200, editor: { xtype: 'textfield', selectOnFocus: true } } ]; this.storePortDetention = Ext.create('Ext.data.Store', { pageSize: this.PageSize, model: 'PortDetentionmb', remoteSort: false, //groupField: 'GroupDate', proxy: { type: 'ajax', //url: '/TruckMng/MsRptPcHeadOperate/QryData_ADL', url: '/MvcShipping/MsPrice/GetContractPortDetentionList', //this.storeList.proxy.url = '/TruckMng/MsRptPcHeadOperate/QryData_ADL'; reader: { id: 'ID', root: 'data', totalProperty: 'totalCount' } } }); this.formPortDetention = new Ext.grid.GridPanel({ store: this.storePortDetention, title:"目的港免箱期", region: "center", flex: 2, loadMask: { msg: "数据加载中,请稍等..." }, trackMouseOver: true, disableSelection: false, plugins: [this.cellEditing_PortDetention], //selModel: //this.cargoCheckBoxModel, selType: 'cellmodel', //features: [{ // ftype: 'summary'//Ext.grid.feature.Summary表格汇总特性 //}], tbar: [ { text: '增加明细', id: "btnaddPD", iconCls: "btnadddetail", handler: function (button, event) { //this.Save('4'); this.onAddPortDetentionClick(); }, scope: this }, '-', { text: '删除明细', tooltip: '删除明细为直接执行,删除后不需要再次点击保存', id: 'btndelPD', iconCls: "btndeletedetail", handler: function (button, event) { this.onDelPortDetentionClick(button, event); }, scope: this } ], columns: this.column_PortDetention , bbar: [Ext.create('Ext.PagingToolbar', { store: this.storeWay, displayInfo: true, displayMsg: '当前显示 {0} - {1}条记录 /共 {2}条记录', emptyMsg: "没有数据" })] }); this.formPortDetention.reconfigure(this.storePortDetention, this.column_PortDetention); //#endregion //#region 按钮Toolbar this.panelBtn = new Ext.Panel({ region: "north", height:28, tbar: [ { id: 'btnESave', text: "保存", iconCls: "btnsave", handler: function (button, event) { this.Save('0'); }, scope: this }, { id: 'btnESaveAndClose', text: "保存并关闭", handler: function (button, event) { this.Save('1'); }, scope: this }, { text: "关闭", handler: function (button, event) { window.close(); }, scope: this } , '-', { id: 'btnCopyNew', text: "复制新建", iconCls: "btncopy", handler: function (button, event) { this.Save('2'); }, scope: this }, '-', { id: 'btnLock', text: "锁定", handler: function (button, event) { this.PushState("3101"); }, scope: this }, { id: 'btnUnlock', text: "解锁", handler: function (button, event) { this.PushState("3100"); }, scope: this }, '-', { text: "生成运价",id:"btnMAKEPRICE", handler: function (button, event) { this.MakePrice(); }, scope: this }, '-', { text: "打印", iconCls: "btnprint", handler: function (button, event) { this.Print(); }, scope: this }] }); //end 按钮Toolbar //#endregion //#region 框架结构 this.panel_Way = new Ext.Panel({ layout: "border", region: "west", frame: true, split: true, //width:520, flex: 5, title: "港口信息", items: [ this.formWay ] }); this.page_1 = new Ext.Panel({ layout: "border", region: "center", id:"pnlModel", //frame: true, //split: true, //flex: 3, title: "费用模板", items: [ this.formDetail_Model ] }); this.page_2 = new Ext.Panel({ layout: "border", region: "center", id:"pnlFee", //frame: true, //split: true, //flex: 3, title: "费用信息", items: [ this.formDetail ] }); this.panelTab_Fee = new Ext.tab.Panel({ layout: "border", region: "center", split: true, flex: 4, items: [this.page_1, this.page_2], listeners: { scope: this, 'beforetabchange': function (tabPanel, newCard, oldCard, eOpts) { if (oldCard.id == "pnlModel") { var feemodify = _this.storeBody_Model.getModifiedRecords(); if (feemodify.length>0) { //_this.Save('3'); } } if (oldCard.id == "pndFee") { var feemodify = _this.storeBody.getModifiedRecords(); if (feemodify.length > 0) { //_this.Save('3'); } } if (newCard.id == "pndFee") { //看看左边路径表是否有选中值 var selectedRecords = this.formWay.selModel.getSelection(); if (selectedRecords.length > 0) { record = selectedRecords[0]; var bsno = _this.Editdata.BSNO; var PODLOAD = record.data.PODLOAD; var PORTDISCHARGE = record.data.PORTDISCHARGE; var VIA = record.data.VIA; var VIA2 = record.data.VIA2; _this.loadDetail(bsno); } } } } }); this.panelBottom = new Ext.Panel({ layout: "border", title:"运价信息", region: 'center', items: [ this.panel_Way , this.panelTab_Fee ] }); this.panelTab_All = new Ext.tab.Panel({ layout: "border", region: "center", split: true, flex: 4, items: [this.panelBottom, this.formPortDetention] }); this.panelHead = new Ext.Panel({ border: true, region: 'north', height: 126, items: [ this.panelBtn, this.formHead ] }); Ext.apply(this, { items: [ this.panelHead, this.panelTab_All ] }); //#endregion //this.LoadInitData(); this.InitData(); //#region 绑定方法 this.formWay.on('edit', function (editor, e, eOpts) { this.WayAfterEdit(editor, e, eOpts); }, this); this.formWay.getSelectionModel().on('select', function (model, record, index) { if (record.data.ID == this.selectWay.ID) return;//同一行选中不做处理 //如果左右两边有一边没有保存 先save(4) //var feemodify1 = _this.storeBody.getModifiedRecords(); //var feemodify2 = _this.storeWay.getModifiedRecords(); //var feemodify3 = _this.storeBody_Model.getModifiedRecords(); //if (feemodify1.length + feemodify2.length + feemodify3.length>0) { // _this.Save('3'); //} //如新选中的行 BSNO = this.editRecord.get("BSNO"); this.selectWay.ID = record.data.ID; this.selectWay.BSNO = record.data.BSNO; this.selectWay.PODLOAD = record.data.PODLOAD; this.selectWay.PORTDISCHARGE = record.data.PORTDISCHARGE; this.selectWay.VIA = record.data.VIA; this.selectWay.VIA2 = record.data.VIA2; this.selectWay.ETD = record.data.ETD; this.selectWay.TT = record.data.TT; _this.loadDetail(BSNO); setTabActive(this.panelTab_Fee, "pnlFee"); }, this); this.storeWay.on('beforeload', function (store) { BSNO = this.editRecord.get('BSNO'); sql = " BSNO='" + BSNO + "' "; Ext.apply(store.proxy.extraParams, { condition: sql }); }, this); //#endregion }, //end initUIComponents //#region 加载事件 InitData: function () { var condition = ''; _this = this; if (parentWin) { var ret = parentWin.OprationSwap(); this.opStatus = ret[0]; this.StoreList = ret[1]; this.editRecord = ret[2]; _storeFeeNameRef = ret[3]; this.storeFeeNameRef.loadData(_storeFeeNameRef.data.items); // ret[5] = this.storeCustCode; //ret[6] = this.storeCodeLoadport; // ret[7] = this.storePORTDISCHARGE; _storeCustCode = ret[5]; this.storeCARRIER.loadData(_storeCustCode.data.items); _storeCodeLoadport = ret[6]; this.storeCodeLoadport.loadData(_storeCodeLoadport.data.items); //_storePORTDISCHARGE = ret[7]; //this.storeCodePort.loadData(_storePORTDISCHARGE.data.items); //this.storePortDischarge.loadData(_storePORTDISCHARGE.data.items); //this.storeVIA.loadData(_storePORTDISCHARGE.data.items); //this.storeVIA2.loadData(_storePORTDISCHARGE.data.items); } if (this.opStatus == 'edit') { Headcondition = "BSNO='" + this.editRecord.get('BSNO') + "'"; Bodycondition = this.editRecord.get('BSNO'); } else { Headcondition = ""; Bodycondition = "**"; } this.LoadData(this.opStatus, Headcondition, Bodycondition); }, //end InitData LoadData: function (opStatus, condition, BSNO) { this.serialNo = 0; //this.bodyDel = []; this.opStatus = opStatus; if (this.opStatus == 'edit') { //var BSNO = this.editRecord.get('BSNO').toString().trim(); if (BSNO != "") { document.title = "合约序列号:" + this.editRecord.get('BSNO').toString().trim(); } } Ext.Ajax.request({ waitMsg: '正在查询主表数据...', url: '/MvcShipping/MsPrice/GetContractData', params: { handle: opStatus, condition: condition }, callback: function (options, success, response) { if (success) { var result = Ext.JSON.decode(response.responseText); if (!result.Success) { Ext.Msg.show({ title: '提示', msg: result.Message, icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK }); return; } this.Editdata = result.data; //this.LoadInit(data); this.formHead.getForm().reset(); this.formHead.getForm().setValues(this.Editdata); //this.ShowPort(this.Editdata); this.SetLockStatus(this.Editdata); this.GetEditStatus(); } else { Ext.MessageBox.alert('请求出现错误,请重试', response.responseText); } }, scope: this }); this.loadBody(BSNO); }, SetLockStatus: function (data) { //if (isTrue(data.FEESTATUS)) // this.formHead.getForm().findField('FEESTATUSREF').setValue("是"); //else // this.formHead.getForm().findField('FEESTATUSREF').setValue("否"); //if (isTrue(data.BSSTATUS)) // this.formHead.getForm().findField('BSSTATUSREF').setValue("是"); //else // this.formHead.getForm().findField('BSSTATUSREF').setValue("否"); if (data.CSTATUS == '3101') { this.setLock(); } else { this.setUnlock(); } }, setLock() { Ext.getCmp("btnLock").disable(); Ext.getCmp("btnUnlock").enable(); Ext.getCmp("btnESave").disable(); Ext.getCmp("btnESaveAndClose").disable(); Ext.getCmp("btnadddetail").disable(); Ext.getCmp("btndeletedetail").disable(); Ext.getCmp("btnaddWay").disable(); Ext.getCmp("btndelWay").disable(); Ext.getCmp("btnadddetail_Model").disable(); Ext.getCmp("btndeletedetail_Model").disable(); }, setUnlock() { Ext.getCmp("btnLock").enable(); Ext.getCmp("btnUnlock").disable(); Ext.getCmp("btnESave").enable(); Ext.getCmp("btnESaveAndClose").enable(); Ext.getCmp("btnadddetail").enable(); Ext.getCmp("btndeletedetail").enable(); Ext.getCmp("btnaddWay").enable(); Ext.getCmp("btndelWay").enable(); Ext.getCmp("btnadddetail_Model").enable(); Ext.getCmp("btndeletedetail_Model").enable(); } , loadBody: function (BSNO) { //this.loadDetail_Model(BSNO); this.storeWay.load({ params: { condition: " BSNO='" + BSNO + "' " } , callback: function (options, success, response) { //如果之前选中了一条 则继续选中 _this.storeWay.each(function (rec) { if (rec.get("PODLOAD") == _this.selectWay.PODLOAD && rec.get("PORTDISCHARGE") == _this.selectWay.PORTDISCHARGE && rec.get("VIA") == _this.selectWay.VIA && rec.get("VIA2") == _this.selectWay.VIA2) { _this.formWay.getSelectionModel().select(rec, true); _this.loadDetail(BSNO); } }); } }); this.loadPortDetention(BSNO); this.loadDetail_Model(BSNO); }, loadWay: function (BSNO,Type) { //this.loadDetail_Model(BSNO); this.storeWay.load({ params: { condition: " BSNO='" + BSNO + "' " } , callback: function (options, success, response) { if (Type == "4") { //代表这是新增路径之后的载入 需要改为选中第一个没有PORTDISCHARGE的 _this.storeWay.each(function (rec) { if ( rec.get("PORTDISCHARGE") == "") { _this.formWay.getSelectionModel().select(rec, true); } }); } else { //如果之前选中了一条 则继续选中 _this.storeWay.each(function (rec) { if (rec.get("PODLOAD") == _this.selectWay.PODLOAD && rec.get("PORTDISCHARGE") == _this.selectWay.PORTDISCHARGE && rec.get("VIA") == _this.selectWay.VIA && rec.get("VIA2") == _this.selectWay.VIA2) { _this.formWay.getSelectionModel().select(rec, true); } }); } } }); }, loadDetail_Model: function (BSNO) { _this = this; condition_Model = " BSNO='" + BSNO + "' and isnull(PODLOAD,'')='' and isnull(PORTDISCHARGE,'')='' and isnull(VIA,'')='' and isnull(VIA2,'')='' "; this.storeBody_Model.load({ params: { condition: condition_Model } , callback: function (options, success, response) { } }); }, loadDetail: function (BSNO) { _this = this; condition_Detail = " BSNO='" + BSNO + "' and PODLOAD='" + this.selectWay.PODLOAD + "' and PORTDISCHARGE='" + this.selectWay.PORTDISCHARGE + "' and VIA='" + this.selectWay.VIA + "'" + " and VIA2='" + this.selectWay.VIA2 + "'"; if (!isNullorEmpty(_this.selectWay.PODLOAD) || !isNullorEmpty(_this.selectWay.PORTDISCHARGE)) { _this.storeBody.load({ params: { condition: condition_Detail } , callback: function (options, success, response) { if (_this.storeBody.getCount() == 0 && _this.storeBody_Model.getCount() > 0) { _this.storeBody_Model.each(function (record) { newdetail = Ext.create('MsPrice_Contract_Detailmb', { 'GID': NewGuid(), 'SEQUENCE': record.data.SEQUENCE, 'BSNO': '', 'FEENAME': record.data.FEENAME, 'CTN0': '0',//record.data.CTN0 'CTN1': '0', 'CTN2': '0', 'CTN3': '0', 'CTN4': '0', 'PODLOAD': _this.selectWay.PODLOAD, 'PORTDISCHARGE': _this.selectWay.PORTDISCHARGE, 'VIA': _this.selectWay.VIA, 'VIA2': _this.selectWay.VIA2 }); _this.storeBody.add(newdetail); }); _this.storeBody.each(function (record) { _this.storeBody_Model.each(function (modelrecord) { if (modelrecord.data.FEENAME == record.data.FEENAME) { record.set('CTN0',modelrecord.data.CTN0); record.set('CTN1',modelrecord.data.CTN1); record.set('CTN2',modelrecord.data.CTN2); record.set('CTN3',modelrecord.data.CTN3); record.set('CTN4',modelrecord.data.CTN4); } }); }); } } }); } }, loadPortDetention: function (BSNO) { _this = this; condition_Detail = " BSNO='" + BSNO + "' "; _this.storePortDetention.load({ params: { condition: condition_Detail } , callback: function (options, success, response) { } }); }, //#region 显示港口列表 ShowPort: function (data) { this.storePortLoad.removeAll(); var arr = data.PORTLOADCOMMASTR.split(';'); if (arr.length > 0) { for (_i = 0; _i < arr.length; _i++) { this.PortLoadListAdd(arr[_i]); } } this.storePortDischarge.removeAll(); var arr2 = data.PORTDISCHARGECOMMASTR.split(';'); if (arr.length > 0) { for (_i = 0; _i < arr2.length; _i++) { this.PortDischargeListAdd(arr2[_i]); } } }, PortLoadListAdd: function (PORT) { if (isNullorEmpty(PORT)) return; item = Ext.create('PORTLOADmb', { 'PORT': PORT }); var field = this.storePortLoad.findRecord('PORT', PORT, 0, false, false, true); if (!field) { this.storePortLoad.add(item); } }, PortDischargeListAdd: function (PORT) { if (isNullorEmpty(PORT)) return; item = Ext.create('PORTDISCHARGEmb', { 'PORT': PORT }); var field = this.storePortDischarge.findRecord('PORT', PORT, 0, false, false, true); if (!field) { this.storePortDischarge.add(item); } }, PortLoadListDel: function () { var selections = this.formPortLoad.getSelectionModel().getSelection(); if (selections.length == 0) { return; } var delrecord = selections[0]; this.storePortLoad.remove(delrecord); }, PortDischargeListDel: function (PORT) { var selections = this.formPortDischarge.getSelectionModel().getSelection(); if (selections.length == 0) { return; } var delrecord = selections[0]; this.storePortDischarge.remove(delrecord); }, PortLoadGetStr: function () { var result = ""; this.storePortLoad.each(function (record) { if (!isNullorEmpty(result)) result += ";"; result += record.get('PORT'); }); return result; }, PortDischargeGetStr: function () { var result = ""; this.storePortDischarge.each(function (record) { if (!isNullorEmpty(result)) result += ";"; result += record.get('PORT'); }); return result; }, //#endregion // end LoadDate //#endregion LoadInitData: function () { }, //#region 保存/添加/删除 Save: function (type) { var Form = this.formHead.getForm(); if (!Form.isValid() ) { return; } var data = Form.getValues(); //data.PORTLOADCOMMASTR = this.PortLoadGetStr(); //data.PORTDISCHARGECOMMASTR = this.PortDischargeGetStr(); var Bodydatas = []; for (var i = 0; i < this.storeBody_Model.getCount(); i += 1) { var member = this.storeBody_Model.getAt(i); Bodydatas.push(member); } for (var i = 0; i < this.storeBody.getCount(); i += 1) { var member = this.storeBody.getAt(i); if (isNullorEmpty(member.get("PODLOAD")) || isNullorEmpty(member.get("PODLOAD"))) { } else { Bodydatas.push(member); } } var jsonBody = ConvertRecordsToJson(Bodydatas); var Waydatas = []; for (var i = 0; i < this.storeWay.getCount(); i += 1) { var member = this.storeWay.getAt(i); if (isNullorEmpty(member.data.PODLOAD) || isNullorEmpty(member.data.PORTDISCHARGE)) { Ext.Msg.show({ title: '错误', msg: '运输路径必须包括起运港和目的港', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); return; } Waydatas.push(member); } var jsonWay = ConvertRecordsToJson(Waydatas); var PDdatas = []; for (var i = 0; i < this.storePortDetention.getCount(); i += 1) { var member = this.storePortDetention.getAt(i); if (isNullorEmpty(member.data.PORTDISCHARGE) ) { Ext.Msg.show({ title: '错误', msg: '请选择目的港', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); return; } PDdatas.push(member); } var jsonPortTention = ConvertRecordsToJson(PDdatas); Ext.Msg.wait('正在保存数据, 请稍侯..'); Ext.Ajax.request({ waitMsg: '正在保存数据...', url: '/MvcShipping/MsPrice/SaveContract_ef', scope: this, params: { opstatus: this.opStatus, data: Ext.JSON.encode(data), Body: jsonBody, Way: jsonWay, PORTDETENTION:jsonPortTention }, callback: function (options, success, response) { if (success) { Ext.MessageBox.hide(); var jsonresult = Ext.JSON.decode(response.responseText); if (jsonresult.Success) { var returnData = jsonresult.Data; this.Editdata = returnData; this.Editdata.EFFECTIVEDATE = this.Editdata.EFFECTIVEDATE.replace(" 00:00:00", ""); this.Editdata.VALIDDATE = this.Editdata.VALIDDATE.replace(" 00:00:00", ""); this.formHead.getForm().reset(); this.formHead.getForm().setValues(this.Editdata); if (this.opStatus == 'add') { var arrNewRecords = this.StoreList.add(returnData); this.editRecord = arrNewRecords[0]; this.opStatus = 'edit'; } else if (this.opStatus == 'edit') { var editp = Ext.create('MsPrice_ContractIndexmb', returnData); this.editRecord.fields.each(function (field) { if (field.persist) { name = field.name; if (name != 'BSNO') this.editRecord.set(name, editp.get(name)); } }, this); this.editRecord.commit(); //this.Editdata = result.data; } this.GetEditStatus(); if (type == '0') { //this.storeBody.removeAll(); this.loadBody(this.editRecord.get('BSNO').toString().trim()); //this.loadDetail(this.editRecord.get('BSNO')); } else if (type == '1') { window.close(); } else if (type == '2') { this.CopyNew(this.editRecord.get('BSNO')); } else if (type == '3') { BSNO = this.editRecord.get('BSNO'); //this.loadDetail_Model(BSNO); this.loadDetail(BSNO); } else if (type == '4') { BSNO = this.editRecord.get('BSNO'); //this.loadDetail_Model(BSNO); this.storeWay.load({ params: { condition: " BSNO='" + BSNO + "' " } , callback: function (options, success, response) { _this.storeWay.each(function (rec) { if (rec.get("PODLOAD") == _this.selectWay.PODLOAD && rec.get("PORTDISCHARGE") == _this.selectWay.PORTDISCHARGE && rec.get("VIA") == _this.selectWay.VIA && rec.get("VIA2") == _this.selectWay.VIA2) _this.formWay.getSelectionModel().select(rec, true); }); _this.onAddWayClick(); } }); this.storeBody.removeAll(); this.loadDetail(this.editRecord.get('BSNO')); } } else { Ext.Msg.show({ title: '错误', msg: jsonresult.Message, icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); } } else { Ext.Msg.show({ title: '请重试', msg: '服务器响应出错', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); } } }); }, //end save CopyNew: function (OLDBSNO) { Ext.Msg.wait('正在保存数据, 请稍侯..'); Ext.Ajax.request({ waitMsg: '正在保存数据...', url: '/MvcShipping/MsPrice/CopyNew_Contract', scope: this, params: { OLDBSNO: OLDBSNO }, callback: function (options, success, response) { if (success) { Ext.MessageBox.hide(); var jsonresult = Ext.JSON.decode(response.responseText); if (jsonresult.Success) { var returnData = jsonresult.Data; this.Editdata = returnData; this.formHead.getForm().reset(); this.formHead.getForm().setValues(this.Editdata); var arrNewRecords = this.StoreList.add(returnData); this.editRecord = arrNewRecords[0]; } } } }); } , SaveDetail: function (type) { var Form = this.formHead.getForm(); var _this = this; if (!Form.isValid()) { return; } var data = Form.getValues(); var Way = this.selectWay; if (this.opStatus != 'edit') { Ext.Msg.show({ title: '错误', msg: "该功能仅用于明细修改,请先保存此业务。", icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); return; } for (var i = 0; i < this.storeWay.getCount(); i += 1) { var member = this.storeWay.getAt(i); if (isNullorEmpty(member.data.PODLOAD) || isNullorEmpty(member.data.PORTDISCHARGE)) { Ext.Msg.show({ title: '错误', msg: '运输路径必须包括起运港和目的港', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); return; } if (Way.ID == member.data.ID) { Way = member.data; break; } } //data.PORTLOADCOMMASTR = this.PortLoadGetStr(); //data.PORTDISCHARGECOMMASTR = this.PortDischargeGetStr(); var Bodydatas = []; for (var i = 0; i < this.storeBody_Model.getCount(); i += 1) { var member = this.storeBody_Model.getAt(i); Bodydatas.push(member); } for (var i = 0; i < this.storeBody.getCount(); i += 1) { var member = this.storeBody.getAt(i); if (isNullorEmpty(member.get("PODLOAD")) || isNullorEmpty(member.get("PODLOAD"))) { } else { Bodydatas.push(member); } } var jsonBody = ConvertRecordsToJson(Bodydatas); Ext.Msg.wait('正在保存数据, 请稍侯..'); Ext.Ajax.request({ waitMsg: '正在保存数据...', url: '/MvcShipping/MsPrice/SaveContract_Detail', scope: this, params: { opstatus: this.opStatus, data: Ext.JSON.encode(data), Body: jsonBody, Way: Ext.JSON.encode(Way), Type: type }, callback: function (options, success, response) { if (success) { Ext.MessageBox.hide(); var jsonresult = Ext.JSON.decode(response.responseText); if (jsonresult.Success) { var returnData = jsonresult.Data; this.loadWay(this.editRecord.get('BSNO').toString().trim(), "4"); this.loadDetail(this.editRecord.get('BSNO').toString().trim()); } else { Ext.Msg.show({ title: '错误', msg: jsonresult.Message, icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); } } else { Ext.Msg.show({ title: '请重试', msg: '服务器响应出错', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); } } }); }, //end save AddDetail: function (type) { var Form = this.formHead.getForm(); var _this = this; if (!Form.isValid()) { return; } var data = Form.getValues(); var Way = this.selectWay; if (this.opStatus != 'edit') { Ext.Msg.show({ title: '错误', msg: "该功能仅用于明细修改,请先保存此业务。", icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); return; } for (var i = 0; i < this.storeWay.getCount(); i += 1) { var member = this.storeWay.getAt(i); if (isNullorEmpty(member.data.PODLOAD) || isNullorEmpty(member.data.PORTDISCHARGE)) { Ext.Msg.show({ title: '错误', msg: '运输路径必须包括起运港和目的港', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); return; } if (Way.ID == member.data.ID) { Way = member.data; break; } } //data.PORTLOADCOMMASTR = this.PortLoadGetStr(); //data.PORTDISCHARGECOMMASTR = this.PortDischargeGetStr(); var Bodydatas = []; for (var i = 0; i < this.storeBody_Model.getCount(); i += 1) { var member = this.storeBody_Model.getAt(i); Bodydatas.push(member); } for (var i = 0; i < this.storeBody.getCount(); i += 1) { var member = this.storeBody.getAt(i); if (isNullorEmpty(member.get("PODLOAD")) || isNullorEmpty(member.get("PODLOAD"))) { } else { Bodydatas.push(member); } } var jsonBody = ConvertRecordsToJson(Bodydatas); Ext.Msg.wait('正在保存数据, 请稍侯..'); Ext.Ajax.request({ waitMsg: '正在保存数据...', url: '/MvcShipping/MsPrice/SaveContract_Detail', scope: this, params: { opstatus: this.opStatus, data: Ext.JSON.encode(data), Body: jsonBody, Way: Ext.JSON.encode(Way) }, callback: function (options, success, response) { if (success) { Ext.MessageBox.hide(); var jsonresult = Ext.JSON.decode(response.responseText); if (jsonresult.Success) { var returnData = jsonresult.Data; this.loadBody(this.editRecord.get('BSNO').toString().trim()); if (type == '4') { var selectedRecords = this.formWay.selModel.getSelection(); if (selectedRecords.length > 0) { record = selectedRecords[0]; this.CopyAddWayClick(record.data); //return; } else { this.AddWayClick(); } } } else { Ext.Msg.show({ title: '错误', msg: jsonresult.Message, icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); } } else { Ext.Msg.show({ title: '请重试', msg: '服务器响应出错', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); } } }); }, //end save //#endregion //#region 合约明细 添加/复制添加/删除 onAddDetailClick: function (button, event) { if (this.panelTab_Fee.getActiveTab().id == "pnlFee") { this.doAddDetailClick(button, event); } if (this.panelTab_Fee.getActiveTab().id == "pnlModel") { this.doAddDetailModelClick(button, event); } }, doAddDetailClick: function (button, event) { //20191009 首先判断是否已选中一行 如有 则将其作为参数 传递给onCopy 以实现复制添加 _this = this; var selectedRecords = this.formDetail.selModel.getSelection(); if (selectedRecords.length > 0) { record = selectedRecords[0]; this.onCopyAddClick(record.data); //return; } else { var linenum = this.storeBody.getCount() + 1; var _r = this.reLine(); var record = Ext.create('MsPrice_Contract_Detailmb', { 'GID': NewGuid(), 'SEQUENCE': linenum, 'BSNO': '', 'FEENAME': '', 'CTN0': '0', 'CTN1': '0', 'CTN2': '0', 'CTN3': '0', 'CTN4': '0', 'PODLOAD': _this.selectWay.PODLOAD, 'PORTDISCHARGE': _this.selectWay.PORTDISCHARGE, 'VIA': _this.selectWay.VIA, 'VIA2': _this.selectWay.VIA2 }); this.storeBody.add(record); var n = this.storeBody.getCount(); this.cellEditing.startEditByPosition({ row: n - 1, column: 4 }); } }, doAddDetailModelClick: function (button, event) { var linenum = this.storeBody_Model.getCount() + 1; var _r = this.reLine(); var record = Ext.create('MsPrice_Contract_Detailmb', { 'GID': NewGuid(), 'SEQUENCE': linenum, 'BSNO': '', 'FEENAME': '', 'CTN0': '0', 'CTN1': '0', 'CTN2': '0', 'CTN3': '0', 'CTN4': '0', 'PODLOAD': '', 'PORTDISCHARGE': '', 'VIA': '' }); this.storeBody_Model.add(record); var n = this.storeBody_Model.getCount(); this.cellEditing_Model.startEditByPosition({ row: n - 1, column: 4 }); }, onCopyAddClick: function (oldrecord) { var linenum = this.storeBody.getCount() + 1; var _r = this.reLine(); var record = Ext.create('MsPrice_Contract_Detailmb', { 'GID': NewGuid(), 'SEQUENCE': linenum, 'BSNO': '', 'FEENAME': oldrecord.FEENAME, 'CTN0': oldrecord.CTN0, 'CTN1': oldrecord.CTN1, 'CTN2': oldrecord.CTN2, 'CTN3': oldrecord.CTN3, 'CTN4': oldrecord.CTN4 }); this.storeBody.add(record); var n = this.storeBody.getCount(); this.cellEditing.startEditByPosition({ row: n - 1, column: 4 }); }, onDelDetailClick: function (button, event) { var selectedRecords = this.formDetail.selModel.getSelection(); this.doDelDetail(selectedRecords); }, onDelDetailClick_Model: function (button, event) { var selectedRecords = this.formDetail_Model.selModel.getSelection(); this.doDelDetail(selectedRecords); }, doDelDetail: function (selectedRecords) { Ext.MessageBox.confirm('提示', '确定删除记录吗?', function (btn) { if (btn == 'yes') { var GIDList = ""; for (var i = 0; i < selectedRecords.length; i++) { var rec = selectedRecords[i]; if (GIDList != "") { GIDList += ","; } GIDList += "'" + rec.data.GID + "'"; } Ext.Msg.wait('正在保存数据, 请稍侯..'); Ext.Ajax.request({ waitMsg: '正在保存数据...', url: '/MvcShipping/MsPrice/DelContractDetail', scope: this, params: { data: Ext.JSON.encode(this.Editdata), GID: GIDList }, callback: function (options, success, response) { Ext.MessageBox.hide(); var jsonresult = Ext.JSON.decode(response.responseText); if (jsonresult.Success) { this.loadBody(this.editRecord.get('BSNO')); //this.loadDetail(this.editRecord.get('BSNO')); } else { Ext.Msg.show({ title: '请重试', msg: jsonresult.Message, icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); } } }); } }, this); }, reLine: function (button, event) { var _L = 1; this.storeBody.each(function (record) { var ln = _L + ""; _L = _L + 1; record.set('SEQUENCE', ln); }); }, //#endregion //#region 运输路径 添加/复制添加/删除 onAddWayClick: function (button, event) { //20191009 首先判断是否已选中一行 如有 则将其作为参数 传递给onCopy 以实现复制添加 //20210325 如果是全新的 则执行save(4)//如果是编辑 则执行savedetail4 if (this.opStatus == 'add') { this.Save('4'); } else { this.SaveDetail('4'); } }, AddWayClick: function () { var linenum = this.storeWay.getCount() + 1; var record = Ext.create('Waymb', { 'ID': '', 'BSNO': '', 'PODLOAD': '', 'PORTDISCHARGE': '', 'VIA': '', 'VIA2': '' }); this.storeWay.add(record); this.selectWay = record.data; var n = this.storeWay.getCount(); this.cellEditing_Way.startEditByPosition({ row: n - 1, column: 2 }); this.storeBody.removeAll(); if (this.storeBody_Model.getCount() > 0) { this.storeBody_Model.each(function (record) { newdetail = Ext.create('MsPrice_Contract_Detailmb', { 'GID': '', 'SEQUENCE': record.data.SEQUENCE, 'BSNO': '', 'FEENAME': record.data.FEENAME, 'CTN0': record.data.CTN0, 'CTN1': record.data.CTN1, 'CTN2': record.data.CTN2, 'CTN3': record.data.CTN3, 'CTN4': record.data.CTN4, 'PODLOAD': '', 'PORTDISCHARGE': '', 'VIA': '' }); _this.storeBody.add(newdetail); }); this.storeBody.each(function (record) { record.set("GID", NewGuid()); }); } }, CopyAddWayClick: function (oldrecord) { var linenum = this.storeWay.getCount() + 1; var record = Ext.create('Waymb', { 'ID': '', 'BSNO': '', 'PODLOAD': oldrecord.PODLOAD, 'PORTDISCHARGE': '', 'VIA': '', 'VIA2': '' }); this.storeWay.add(record); this.selectWay = record.data; var n = this.storeWay.getCount(); this.cellEditing_Way.startEditByPosition({ row: n - 1, column: 2 }); this.storeBody.removeAll(); if (this.storeBody_Model.getCount() > 0) { this.storeBody_Model.each(function (record) { newdetail = Ext.create('MsPrice_Contract_Detailmb', { 'GID': '', 'SEQUENCE': record.data.SEQUENCE, 'BSNO': '', 'FEENAME': record.data.FEENAME, 'CTN0': record.data.CTN0, 'CTN1': record.data.CTN1, 'CTN2': record.data.CTN2, 'CTN3': record.data.CTN3, 'CTN4': record.data.CTN4, 'PODLOAD': oldrecord.PODLOAD, 'PORTDISCHARGE': '', 'VIA': '' }); _this.storeBody.add(newdetail); }); this.storeBody.each(function (record) { record.set("GID", NewGuid()); }); } }, onDelWayClick: function (button, event) { //注意需要先判断是否已生成运价 var selectedRecords = this.formWay.selModel.getSelection(); Ext.MessageBox.confirm('提示', '确定删除记录吗?', function (btn) { if (btn == 'yes') { var GIDList = ""; for (var i = 0; i < selectedRecords.length; i++) { var rec = selectedRecords[i]; if (GIDList != "") { GIDList += ","; } GIDList += "" + rec.data.ID + ""; } Ext.Msg.wait('正在保存数据, 请稍侯..'); Ext.Ajax.request({ waitMsg: '正在保存数据...', url: '/MvcShipping/MsPrice/DelContractWay', scope: this, params: { data: Ext.JSON.encode(this.Editdata), ID: GIDList }, callback: function (options, success, response) { Ext.MessageBox.hide(); var jsonresult = Ext.JSON.decode(response.responseText); if (jsonresult.Success) { //var returnData = jsonresult.Data; //this.Editdata = returnData; this.loadBody(this.editRecord.get('BSNO')); this.ClearSelectWay(); //this.loadDetail(this.editRecord.get('BSNO')); //this.formHead.getForm().reset(); //this.formHead.getForm().setValues(this.Editdata); //this.loadBody(" BSNO='" + this.editRecord.get('BSNO').toString().trim() + "' "); } else { Ext.Msg.show({ title: '请重试', msg: jsonresult.Message, icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); } } }); } }, this); }, ClearSelectWay() { this.selectWay.ID = "0"; this.selectWay.BSNO = ""; this.selectWay.PODLOAD = ""; this.selectWay.PORTDISCHARGE = ""; this.selectWay.VIA = ""; this.selectWay.VIA2 = ""; this.selectWay.ETD = ""; this.selectWay.TT = "0"; }, //#endregion //#region 运输路径 添加/复制添加/删除 onAddPortDetentionClick: function (button, event) { var selectedRecords = this.formPortDetention.selModel.getSelection(); if (selectedRecords.length > 0) { record = selectedRecords[0]; this.CopyAddPortDetentionClick(record.data); //return; } else { this.AddPortDetentionClick(); } }, AddPortDetentionClick: function () { var linenum = this.storePortDetention.getCount() + 1; var record = Ext.create('PortDetentionmb', { 'ID': '', 'BSNO': '', 'PORTDISCHARGE': '', 'CTN0': '', 'CTN1': '', 'CTN2': '', 'CTN3': '', 'CTN4': '' }); this.storePortDetention.add(record); }, CopyAddPortDetentionClick: function (oldrecord) { var linenum = this.storeWay.getCount() + 1; var record = Ext.create('PortDetentionmb', { 'ID': '', 'BSNO': '', 'PORTDISCHARGE': '', 'CTN0': oldrecord.CTN0, 'CTN1': oldrecord.CTN1, 'CTN2': oldrecord.CTN2, 'CTN3': oldrecord.CTN3, 'CTN4': oldrecord.CTN4 }); this.storePortDetention.add(record); }, onDelPortDetentionClick: function (button, event) { var selectedRecords = this.formPortDetention.selModel.getSelection(); Ext.MessageBox.confirm('提示', '确定删除记录吗?', function (btn) { if (btn == 'yes') { var GIDList = ""; for (var i = 0; i < selectedRecords.length; i++) { var rec = selectedRecords[i]; if (GIDList != "") { GIDList += ","; } GIDList += "" + rec.data.ID + ""; } Ext.Msg.wait('正在保存数据, 请稍侯..'); Ext.Ajax.request({ waitMsg: '正在保存数据...', url: '/MvcShipping/MsPrice/DelContractPORTDETENTION', scope: this, params: { data: Ext.JSON.encode(this.Editdata), ID: GIDList }, callback: function (options, success, response) { Ext.MessageBox.hide(); var jsonresult = Ext.JSON.decode(response.responseText); if (jsonresult.Success) { this.loadPortDetention(this.editRecord.get('BSNO')); } else { Ext.Msg.show({ title: '请重试', msg: jsonresult.Message, icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); } } }); } }, this); }, //#endregion //#region 锁定 解锁 PushState: function (execution) { _this = this; var Form1 = this.formHead.getForm(); if (!Form1.isValid() ) { return; } var data1 = Form1.getValues(false, false, false); var Head = Ext.JSON.encode(this.Editdata); Ext.Msg.wait('正在保存数据, 请稍侯..'); Ext.Ajax.request({ waitMsg: '正在保存数据...', url: '/MvcShipping/MsPrice/PushState', scope: this, params: { data: Head, Execution: execution }, callback: function (options, success, response) { if (success) { Ext.MessageBox.hide(); var jsonresult = Ext.JSON.decode(response.responseText); if (jsonresult.Success) { Headcondition = "BSNO='" + _this.editRecord.get('BSNO') + "'"; Bodycondition = _this.editRecord.get('BSNO'); this.LoadData('edit', Headcondition, Bodycondition); } else { Ext.Msg.show({ title: '错误', msg: jsonresult.Message, icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); } } else { Ext.Msg.show({ title: '请重试', msg: '服务器响应出错', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); } } }); }, //#endregion //#region 生成运价 MakePrice: function () { var Form1 = this.formHead.getForm(); if (!Form1.isValid()) { return; } var data1 = Form1.getValues(false, false, false); var BSNO = "'" + data1.BSNO + "'"; Ext.Msg.wait('正在保存数据, 请稍侯..'); Ext.Ajax.request({ waitMsg: '正在保存数据...', url: '/MvcShipping/MsPrice/MakePrice', scope: this, params: { BSNOList: BSNO }, callback: function (options, success, response) { if (success) { Ext.MessageBox.hide(); var jsonresult = Ext.JSON.decode(response.responseText); if (jsonresult.Success) { this.InitData(); } else { Ext.Msg.show({ title: '错误', msg: jsonresult.Message, icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); } } else { Ext.Msg.show({ title: '请重试', msg: '服务器响应出错', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); } } }); }, //#endregion //#region 运输路径 afteredit WayAfterEdit: function (editor, e, eOpts) { //当左边的路径值改变时 相应改变右边的路径值 if (e.value == e.originalValue) { return; } if (e.field == 'PODLOAD' ) { this.selectWay.PODLOAD = e.value; } if (e.field == 'PORTDISCHARGE') { this.selectWay.PORTDISCHARGE = e.value; } if (e.field == 'VIA') { this.selectWay.VIA = e.value; } if (e.field == 'VIA2') { this.selectWay.VIA2 = e.value; } if (e.field == 'PODLOAD' || e.field == 'PORTDISCHARGE' || e.field == 'VIA' || e.field == 'VIA2') { this.ChangeDetailWay(e.field, e.value); } }, ChangeDetailWay: function (fieldname, value) { if (this.storeBody.getCount()>0) this.storeBody.each(function (record) { record.set(fieldname, value); }); }, //#endregion //#region 载入初始信息 LoadInit: function (data) { }, //#endregion //#region 编辑时按钮等的状态 GetEditStatus: function () { var canedit = false; _this = this; var op = USERID; this.StoreOpRange.load({ params: { optype: "modPrice_Contract" }, callback: function (r, options, success) { if (success) { if (r.length != 0) { var records = DsStoreQueryBy(_this.StoreOpRange, 'OPID', op); if (records.getCount() > 0) { canedit = true; } } else { canedit = false; } _this.setSaveBtnStatus(canedit); } } }); }, GetStringNum: function (str) { var num = 0; if (str == null || str == '') return num; if (str.length == 0) return num; var if_find = false; var str_num = ''; for (var i = 0; i < str.length; i += 1) { var member = str.substr(i, 1); if ((member == '0') || (member == '1') || (member == '2') || (member == '3') || (member == '4') || (member == '5') || (member == '6') || (member == '7') || (member == '8') || (member == '9') || (member == '.') || (member == '-')) { if (!if_find) { str_num = str_num + member; } } else { if_find = true; } } return str_num; }, setSaveBtnStatus: function (enable) { var btnESave = Ext.getCmp('btnESave'); var btnESaveAndClose = Ext.getCmp('btnESaveAndClose'); var btndeletedetail = Ext.getCmp('btndeletedetail'); if (enable) { btnESave.enable(); btnESaveAndClose.enable(); btndeletedetail.enable(); this.SetLockStatus(this.Editdata); } else { btnESave.disable(); btnESaveAndClose.disable(); btndeletedetail.disable(); } }, //#endregion //#region 打印 Print: function () { var basicForm = this.formHead.getForm(); var BSNO = basicForm.findField('BSNO').value; if (BSNO == '*' || BSNO == '') { Ext.Msg.show({ title: '错误', msg: '单据还没有保存,请保存后再打印', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); return; } var printType = 'Op_Price_Contract'; var sql1 = ""; var sql2 = ""; var sql3 = ""; var sql4 = ""; var sql5 = ""; var sql6 = ""; Ext.Ajax.request({ waitMsg: '正在查询主表数据...', url: '/MvcShipping/MsPrice/GetPrintSql', params: { printname: "Print1", BSNOList: "'" + BSNO+"'" }, callback: function (options, success, response) { if (success) { var result = Ext.JSON.decode(response.responseText); if (!result.Success) { Ext.Msg.show({ title: '提示', msg: result.Message, icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK }); return; } //this.Editdata = result.data; //this.LoadInit(data); sql1 = result.Data.sql1; sql2 = result.Data.sql2; PrintComm(printType, sql1, sql2, sql3, sql4, sql5, sql6); } else { Ext.MessageBox.alert('请求出现错误,请重试', response.responseText); } }, scope: this }); }, //#endregion //#region 选中路径或者选择费用/模板的切换方法 //0:最初状态 左边未选择 右边显示费用模板 //1:左边选择路径 右边切换至费用信息 并载入 //this.tabSeaepanel.setActiveTab(i); //setTabActive(this.tabSeaepanel,'feetab'); //#endregion });