Ext.namespace('Shipping'); Shipping.PiliangSeaeDoc = function (config) { Ext.applyIf(this, config); this.initUIComponents(); window.Shipping.PiliangSeaeDoc.superclass.constructor.call(this); }; Ext.extend(Shipping.PiliangSeaeDoc, Ext.Panel, { ParentWin: null, OpStatus: 'add', StoreList: null, EditRecord: null, region: 'north', BsNo: '', feeType:null, StoreFee: null, StoreFeeUnit: null, StoreFeeCust:null, initUIComponents: function () { this.strBSNO = ''; this.stroplb = 'op_Seae'; this.formname = "formPiliangSeaeDoc"; //页面名称 this.formHead = Ext.widget('form', { frame: true, region: 'center', bodyPadding: 5, fieldDefaults: { margins: '2 2 2 2', labelAlign: 'right', flex: 1, labelWidth: 90, msgTarget: 'qtip' }, items: [ { xtype: 'fieldset', defaultType: 'textfield', layout: 'anchor', defaults: { anchor: '100%' }, items: [ { xtype: 'container', layout: 'hbox', defaultType: 'textfield', items: [{ fieldLabel: '件数', name: 'PKGS', flex: 0, hidden: true, margins: '0' }, { fieldLabel: '重量', name: 'KGS', flex: 0, hidden: true, margins: '0' }, { fieldLabel: '尺码', name: 'CBM', flex: 0, hidden: true, margins: '0' }, { fieldLabel: '委托编号', readOnly: true, name: 'CUSTNO' }, { fieldLabel: '主提单号', readOnly: true, name: 'MBLNO' }, { fieldLabel: '箱型箱量', readOnly: true, name: 'CNTRTOTAL' }, { fieldLabel: '付费方式', readOnly: true, name: 'BLFRT' }, { fieldLabel: 'MBL付费方式', readOnly: true, name: 'MBLFRT' } ] }, { xtype: 'container', layout: 'hbox', defaultType: 'textfield', items: [{ fieldLabel: '揽货人', readOnly: true, name: 'SALE' }, { fieldLabel: '委托单位', readOnly: true, name: 'CUSTOMERNAME' }, { fieldLabel: '卸货港', readOnly: true, name: 'PORTDISCHARGE' }, { fieldLabel: '船名', readOnly: true, name: 'VESSEL' }, { fieldLabel: '航次', readOnly: true, name: 'VOYNO' } ] }, { xtype: 'container', layout: 'hbox', defaultType: 'textfield', items: [{ xtype: 'label', text: '服务项目' }, { xtype: 'checkboxfield', fieldLabel: '熏蒸', flex: 1, labelAlign: 'right', readOnly: true, frame: true, name: 'ISFUMIGATION' }, { xtype: 'checkboxfield', fieldLabel: '仓储', flex: 1, labelAlign: 'right', readOnly: true, name: 'ISSTORAGE' }, { xtype: 'checkboxfield', fieldLabel: '陆运', flex: 1, labelAlign: 'right', readOnly: true, name: 'ISLAND' }, { xtype: 'checkboxfield', fieldLabel: '报关', flex: 1, labelAlign: 'right', readOnly: true, name: 'ISCUSTOMES' }, { xtype: 'checkboxfield', fieldLabel: '报检', flex: 1, labelAlign: 'right', readOnly: true, name: 'ISINSPECTION' }, { xtype: 'checkboxfield', fieldLabel: '订舱', flex: 1, labelAlign: 'right', readOnly: true, name: 'ISBOOKING' }, { xtype: 'checkboxfield', fieldLabel: '使用代理', flex: 1, labelAlign: 'right', readOnly: true, name: 'ISAGENT' }, { xtype: 'checkboxfield', fieldLabel: '分单签单', flex: 1, labelAlign: 'right', readOnly: true, name: 'ISHBLNO' } ] } ] }] }); //end this.formEdit //#region 按钮Toolbar this.panelBtn = new Ext.Panel({ region: "north", tbar: [{ id: 'btnEPrev', text: "上一票", // iconCls: "btnsave", handler: function (button, event) { this.PrevRecord(); }, scope: this }, { id: 'btnENext', text: "下一票", // iconCls: "btnsave", handler: function (button, event) { this.NextRecord(); }, scope: this }] }); //end 按钮Toolbar //#endregion this.panelTop = new Ext.Panel({ layout: "border", region: "north", height: 130, id: "BillHeadSeae", items: [this.panelBtn, this.formHead] }); //#region 单据管理 this.ReceiptDrSerialNo = 0; this.ReceiptDrBodyDel = []; this.Loading = true; this.StoreDrOpRange = Ext.create('DsExt.ux.RefTableStore', { model: 'MsReceiptOP', proxy: { url: '/MvcShipping/MsOpReceipt/GetReceiptOpRang' } }); this.StoreDrOpRange.load({ params: { optype: "modOpReceiptManagement"} }); //明细表-数据集 this.storeDrOpReceipt = Ext.create('Ext.data.Store', { model: 'MsOpReceiptEntity', remoteSort: false, proxy: { type: 'ajax', url: '/MvcShipping/MsOpReceipt/GetDataList', reader: { id: 'GID', root: 'data', totalProperty: 'totalCount' } } }); this.cellEditingDrOpReceipt = Ext.create('Ext.grid.plugin.CellEditing', { clicksToEdit: 1 }); this.ReceiptDrGridCheckBoxModel = Ext.create('Ext.selection.CheckboxModel'); _this = this; //键值维护表_贸易方式 this.storeCrmKeyCodeCode = Ext.create('DsExt.ux.RefTableStore', { model: 'DsShipping.ux.CrmKeyCodeModel', proxy: { url: '/CommMng/BasicDataRef/GetCrmKeyCodeList' } }); this.storeCrmKeyCodeCode.load({ params: { condition: " and KEYTYPE='单据类型'"} }); this.comboxRECEIPTTYPE = Ext.create('DsExt.ux.RefTableCombox', { //fieldLabel: '单据类型', store: this.storeCrmKeyCodeCode, forceSelection: true, name: 'RECEIPTTYPE', valueField: 'KEYVALUE', displayField: 'KEYVALUE' }); // this.columns = [{ sortable: true, dataIndex: 'GID', header: '惟一编号', hidden: true, width: 0 }, { sortable: true, dataIndex: 'BSNO', header: '业务编号', hidden: true, width: 0 }, { sortable: true, dataIndex: 'RECEIPTNO', header: '单据编号', editor: { xtype: 'textfield', selectOnFocus: true, enableKeyEvents: true, listeners: { keydown: function (textfield, e) { if (e.getKey() == 40) { _this.onNextKeyClick(17) } } } }, width: 100 }, { sortable: true, dataIndex: 'RECEIPTTYPE', header: '单据类型', editor: this.comboxRECEIPTTYPE, width: 80 }, { sortable: true, dataIndex: 'RECEIVE_MAN', header: '接单人', //editor: SHOWNAME, editor: { xtype: 'textfield', selectOnFocus: true, enableKeyEvents: true, listeners: { keydown: function (textfield, e) { if (e.getKey() == 40) { _this.onNextKeyClick(17) } } } }, width: 80 }, { sortable: true, dataIndex: 'RECEIVE_DATE', header: '接单日期', renderer: Ext.util.Format.dateRenderer('Y-m-d'), //format是'm/d/Y',结果是”09/24/2008” editor: { //dateFormat: Ext.util.Format.dateRenderer('Y-m-d'), format: 'Y-m-d', xtype: 'datefield', selectOnFocus: true }, width: 80 }, { sortable: true, dataIndex: 'SEND_MAN', header: '送单人', //editor: SHOWNAME, editor: { xtype: 'textfield', selectOnFocus: true, enableKeyEvents: true, listeners: { keydown: function (textfield, e) { if (e.getKey() == 40) { _this.onNextKeyClick(17) } } } }, width: 80 }, { sortable: true, dataIndex: 'SEND_DATE', header: '送单日期', renderer: Ext.util.Format.dateRenderer('Y-m-d'), //format是'm/d/Y',结果是”09/24/2008” editor: { //dateFormat: Ext.util.Format.dateRenderer('Y-m-d'), format: 'Y-m-d', xtype: 'datefield', selectOnFocus: true }, width: 80 }, { sortable: true, dataIndex: 'TRANCER', header: '送单快递公司', editor: { xtype: 'textfield', selectOnFocus: true, enableKeyEvents: true, listeners: { keydown: function (textfield, e) { if (e.getKey() == 40) { _this.onNextKeyClick(17) } } } }, width: 80 }, { sortable: true, dataIndex: 'TRANCNO', header: '送单快递单号', editor: { xtype: 'textfield', selectOnFocus: true, enableKeyEvents: true, listeners: { keydown: function (textfield, e) { if (e.getKey() == 40) { _this.onNextKeyClick(17) } } } }, width: 80 }, { sortable: true, dataIndex: 'ISREPEAT', header: '是否回单', //xtype: "checkboxfield", //xtype:"booleancolumn", //trueText: "是", //falseText: " ", editor: { xtype: 'checkboxfield' }, width: 60 }, { sortable: true, dataIndex: 'REPEAT_MAN', header: '回单人', //editor: SHOWNAME, editor: { xtype: 'textfield', selectOnFocus: true, enableKeyEvents: true, listeners: { keydown: function (textfield, e) { if (e.getKey() == 40) { _this.onNextKeyClick(17) } } } }, width: 80 }, { sortable: true, dataIndex: 'REPEAT_DATE', header: '回单日期', renderer: Ext.util.Format.dateRenderer('Y-m-d'), //format是'm/d/Y',结果是”09/24/2008” editor: { //dateFormat: Ext.util.Format.dateRenderer('Y-m-d'), format: 'Y-m-d', xtype: 'datefield', selectOnFocus: true }, width: 80 }, { sortable: true, dataIndex: 'ISRECEIVE', header: '是否还单', editor: { xtype: 'checkboxfield' }, width: 60 }, { sortable: true, dataIndex: 'RETURN_MAN', header: '还单人', //editor: SHOWNAME, editor: { xtype: 'textfield', selectOnFocus: true, enableKeyEvents: true, listeners: { keydown: function (textfield, e) { if (e.getKey() == 40) { _this.onNextKeyClick(17) } } } }, width: 80 }, { sortable: true, dataIndex: 'RETURN_DATE', header: '还单日期', renderer: Ext.util.Format.dateRenderer('Y-m-d'), //format是'm/d/Y',结果是”09/24/2008” editor: { //dateFormat: Ext.util.Format.dateRenderer('Y-m-d'), format: 'Y-m-d', xtype: 'datefield', selectOnFocus: true }, width: 80 }, { sortable: true, dataIndex: 'RETURN_TRANCER', header: '还单的快递公司', editor: { xtype: 'textfield', selectOnFocus: true, enableKeyEvents: true, listeners: { keydown: function (textfield, e) { if (e.getKey() == 40) { _this.onNextKeyClick(17) } } } }, width: 100 }, { sortable: true, dataIndex: 'RETURN_TRANCNO', header: '还单的快递单号', editor: { xtype: 'textfield', selectOnFocus: true, enableKeyEvents: true, listeners: { keydown: function (textfield, e) { if (e.getKey() == 40) { _this.onNextKeyClick(17) } } } }, width: 100 }, { sortable: true, dataIndex: 'REMARK', header: '备注', editor: { xtype: 'textfield', selectOnFocus: true, enableKeyEvents: true, listeners: { keydown: function (textfield, e) { if (e.getKey() == 40) { _this.onNextKeyClick(17) } } } }, width: 200 }, { sortable: true, dataIndex: 'CORPID', header: '分公司代码', hidden: true, width: 0 }, { sortable: true, dataIndex: 'CREATEUSER', header: '创建人', width: 0 }, { sortable: true, dataIndex: 'CREATETIME', header: '创建时间', width: 0 }, { sortable: true, dataIndex: 'MODIFIEDUSER', header: '最后更改人', width: 0 }, { sortable: true, dataIndex: 'MODIFIEDTIME', header: '最后更改时间', width: 0 }]; this.gridDrOpReceipt = new Ext.grid.GridPanel({ store: this.storeDrOpReceipt, enableHdMenu: false, region: 'center', id: 'gridDrOpReceipt', loadMask: { msg: "数据加载中,请稍等..." }, trackMouseOver: true, disableSelection: false, plugins: [this.cellEditingDrOpReceipt], selModel: this.ReceiptDrGridCheckBoxModel, selType: 'cellmodel', viewConfig: { autoFill: true }, tbar: [{ text: '', tooltip: '添加', iconCls: "btnadd", handler: function (button, event) { this.onAddDetailClick(button, event); }, scope: this }, '-', { text: '', tooltip: '保存', iconCls: "btnsave", handler: function (button, event) { this.onPostDetailClick(button, event); }, scope: this }, '-', { text: '', tooltip: '删除', iconCls: "btndelete", handler: function (button, event) { this.onDelDetailClick(button, event); }, scope: this }, '-', { text: '', tooltip: '取消修改', iconCls: "btncancel", handler: function (button, event) { this.onCancelDetailClick(button, event); }, scope: this }, '-', { text: '', tooltip: '刷新', iconCls: "btnrefresh", handler: function (button, event) { this.storeDrOpReceipt.load({ params: { billno: this.strBSNO, optype: this.stroplb} }); }, scope: this }, '-', { text: '', tooltip: '打印', iconCls: "btnprint", menu: [{ text: "打印账单", menu: [{ text: "所选打印", handler: function (menu, event) { _this.onPrintSelectDetailClick(menu, event); } }, { text: "所有打印", handler: function (menu, event) { _this.onPrintAllDetailClick(menu, event); } }] }, '-', ], scope: this }, '-', { text: "确认送单", //iconCls: "btnreset", handler: function (button, event) { this.onSetRECEIPT("SEND"); }, scope: this }, { text: "确认回单", //iconCls: "btnreset", handler: function (button, event) { this.onSetRECEIPT("REPEAT"); }, scope: this }, { text: "确认还单", //iconCls: "btnreset", handler: function (button, event) { this.onSetRECEIPT("RETURN"); }, scope: this }, '-', { text: "保存列表样式", id: "btntest", handler: function (button, event) { var formname = this.formname; var tempcolumns = this.gridDrOpReceipt.columns; DsTruck.SaveGridPanel(USERID, formname, tempcolumns, this.columns, 0, true); }, scope: this }], columns: this.columns }); _this = this; /////////////以下部分为获取存储的gridpanel显示样式 this.columns = DsTruck.GetGridPanel(USERID, this.formname, this.columns); //使用者id,表名 ,中间column数组,跳过一开始的几列 //this.girdcolums.unshift(new Ext.grid.RowNumberer()); this.gridDrOpReceipt.reconfigure(this.storeDrOpReceipt, this.columns); //////////////////////////// this.cellEditingDrOpReceipt.on('beforeedit', function (editor, e) { return this.cellEditingOpReceiptBeforeEdit(editor, e); }, this); this.gridDrOpReceipt.on('beforeload', function (store) { Ext.apply(store.proxy.extraParams, { billno: _this.strBSNO, optype: _this.stroplb }); }, this); this.panelReceipt = new Ext.Panel({ //layout: "anchor", layout: "border", anchor: '100% 50%', height: 350, region: 'north', items: [ this.gridDrOpReceipt ] }); //#endregion //#region 明细表-单据图片档案管理 this.storeDocList = Ext.create('Ext.data.Store', { model: 'ReceiptDocmb', remoteSort: true, proxy: { type: 'ajax', url: '/Import/ReceiptDoc/GetDocList', reader: { id: 'GID', root: 'data', totalProperty: 'totalCount' } } }); //明细表表格 this.DocListCellEditing = Ext.create('Ext.grid.plugin.CellEditing', { clicksToEdit: 1 }); this.DocCM = Ext.create('Ext.selection.CheckboxModel'); this.gridDocList = new Ext.grid.GridPanel({ store: this.storeDocList, enableHdMenu: false, region: 'center', // width: 350, loadMask: { msg: "数据加载中,请稍等..." }, trackMouseOver: true, disableSelection: false, plugins: [this.DocListCellEditing], selModel: this.DocCM, selType: 'cellmodel', tbar: [{ text: '删除', tooltip: '删除', iconCls: "btndeletedetail", handler: function (button, event) { this.onDelFileClick(button, event); }, scope: this }, '-', { text: '上传附件', tooltip: '上传附件', iconCls: "btnadddetail", handler: function (button, event) { this.onUpLoadFileClick(button, event); }, scope: this }], columns: [{ sortable: true, hidden: true, dataIndex: 'GID', header: 'GID', width: 80 }, { sortable: true, hidden: true, dataIndex: 'R_GID', header: 'R_GID', width: 80 }, { sortable: true, hidden: true, dataIndex: 'BSNO', header: 'BSNO', width: 80 }, { sortable: true, dataIndex: 'URL', header: '文件名', width: 200, renderer: function (value, p, record) { return '' + value + ''; } }, { sortable: true, hidden: true, dataIndex: 'Driect_URL', header: 'Driect_URL', width: 80 }, { sortable: true, hidden: true, dataIndex: 'MODIFIEDUSER', header: 'MODIFIEDUSER', width: 80 }, { sortable: true, dataIndex: 'MODIFIEDUSERRef', header: '上传人', width: 80 }, { sortable: true, dataIndex: 'MODIFIEDTIME', header: '上传时间', width: 135 } ] }); this.storeDocList.on('beforeload', function (store) { var strBSNO = this.EditRecord.get("BSNO"); var condition2 = " BSNO='" + strBSNO + "' "; Ext.apply(store.proxy.extraParams, { condition: condition2 }); }, this); this.panelDoc = new Ext.Panel({ id: "panelDoc", layout: "border", region: "center", //autoScroll: true, frame: false, split: true, items: [this.gridDocList] }); //#endregion Ext.apply(this, { items: [this.panelTop,this.panelReceipt, this.panelDoc] }); parentWin = window.parent.opener; this.InitData(); }, //#region 加载事件 InitData: function () { this.opStatus = 'add'; var condition = ''; _this = this; if (parentWin) { var ret = parentWin.OprationSwap(); this.opStatus = ret[0]; this.StoreList = ret[1]; this.EditRecord = ret[2]; } this.BsNo = this.EditRecord.get('BSNO'); this.LoadData(); }, //end InitData LoadData: function () { this.formHead.getForm().loadRecord(this.EditRecord); var strBSNO = this.EditRecord.get("BSNO"); this.strBSNO = this.EditRecord.get("BSNO"); this.storeDrOpReceipt.load({ params: { billno: this.strBSNO, optype: "op_Seae"} }); var condition2 = " BSNO='" + strBSNO + "' "; this.Loading = true; this.storeDocList.load({ params: { condition: condition2 }, waitMsg: "正在查询数据...", scope: this, callback: function () { this.Loading = false; } }); }, // end LoadDate //#region 明细操作 onNextKeyClick: function (col) { var rows = this.gridDrOpReceipt.getSelectionModel().getSelection(); var row = rows[rows.length - 1]; var s = this.gridDrOpReceipt.getStore(); var number = s.indexOf(row) + 1; if (number == this.gridDrOpReceipt.getStore().getCount()) { this.onAddDetailClick(s, event); } else { this.cellEditingDrOpReceipt.startEditByPosition({ row: number, column: col }); } }, onAddDetailClick: function (button, event) { var store = this.storeDrOpReceipt; var newSerialno = this.GetHandleSerialNo(store); var newsort = store.getCount() + 1; var myDate = new Date(); //myDate = this.GetDateStr(0); var record = null; record = Ext.create('MsOpReceiptEntity', { GID: NewGuid(), // 惟一编号 BSNO: '*', // 关联编号/业务编号BSNO RECEIPTNO: '', // 单据编号 RECEIPTTYPE: '', // 单据类型 RECEIVE_MAN: SHOWNAME, // 接单人 RECEIVE_DATE: myDate, // 接单日期 SEND_MAN: '', // 送单人 SEND_DATE: null, // 送单日期 TRANCER: '', // 送单的快递公司 TRANCNO: '', // 送单的快递单号 ISREPEAT: 'false', // 是否回单 REPEAT_MAN: '', // 回单人 REPEAT_DATE: null, // 回单日期 ISRECEIVE: 'false', // 是否还单 RETURN_MAN: '', // 还单人 RETURN_DATE: null, // 还单日期 RETURN_TRANCER: '', // 还单的快递公司 RETURN_TRANCNO: '', // 还单的快递单号 REMARK: '', // 备注 CORPID: '', // 分公司代码 CREATEUSER: USERID, // 创建人GID CREATETIME: null, // 创建时间 MODIFIEDUSER: USERID, // 更改操作人GID MODIFIEDTIME: null // 更改操作时间 //Sort: newSerialno, }); store.add(record); var editColumnIndex = 1; var cellediting = this.cellEditingDrOpReceipt; var n = store.getCount(); cellediting.startEditByPosition({ row: n - 1, column: editColumnIndex }); }, onCancelDetailClick: function (menu, event) { var store = this.storeDrOpReceipt; for (var i = 0; i < store.getCount(); i += 1) { var member = store.getAt(i); member.reject(); } }, GetHandleSerialNo: function (store) { var result = 0; if (result == 0) { for (var i = 0; i < store.getCount(); i += 1) { var member = store.getAt(i); if (member.data.Sort > result) { result = member.data.Sort; } } } result = parseInt(result) + 1; return result; }, //获取日期 GetDateStr: function (AddDayCount) { var dd = new Date(); dd.setDate(dd.getDate() + AddDayCount); //获取AddDayCount天后的日期 var y = dd.getFullYear(); var m = dd.getMonth() + 1; //获取当前月份的日期 var d = dd.getDate(); return y + "-" + m + "-" + d; }, //#endregion //#region 单据确认 onSetRECEIPT: function (onSetType) { var ReceiptGIDSql = ''; var selectedRecords = this.ReceiptDrGridCheckBoxModel.selected.items; var candelete = this.CheckOpReceiptDelete(selectedRecords); if (candelete == false) { return; } if (selectedRecords.length == 0) { Ext.Msg.show({ title: '提示', msg: '请先选择要操作的数据!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); return; } Ext.MessageBox.confirm('提示', '确定要操作选中的数据吗?', function (btn) { if (btn == 'yes') { if (selectedRecords.length > 0) { for (var i = 0; i < selectedRecords.length; i++) { var rec = selectedRecords[i]; if (rec.data.BSNO == "*") {//如果是新增但没有保存的数据,没有必要提交到后台 this.storeDrOpReceipt.remove(selectedRecords[i]); } else { var ReceiptGID = "'" + rec.data.GID + "'"; if (ReceiptGIDSql == '') { ReceiptGIDSql = ReceiptGID; } else { ReceiptGIDSql = ReceiptGIDSql + "," + ReceiptGID; } } } } _this = this; Ext.Msg.wait('正在操作数据...'); if (ReceiptGIDSql != '') { Ext.Ajax.request({ waitMsg: '正在操作数据...', url: '/MvcShipping/MsOpReceipt/onSetRECEIPT', params: { BSNO: _this.strBSNO, gids: ReceiptGIDSql, onSetType: onSetType }, callback: function (options, success, response) { if (success) { //Ext.MessageBox.hide(); var jsonresult = Ext.JSON.decode(response.responseText); if (jsonresult.Success) { for (var i = 0; i < selectedRecords.length; i++) { } this.storeDrOpReceipt.reload(); Ext.Msg.show({ title: '提示', msg: jsonresult.Message, icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); } else { Ext.Msg.show({ title: '错误', msg: jsonresult.Message, icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); } } }, failure: function (response, options) { Ext.Msg.show({ title: '警告', msg: '服务器响应出错,请重试', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); }, scope: this }); //end Ext.Ajax.request } else { Ext.Msg.show({ title: '提示', msg: "操作成功!", icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); } } }, this); }, //#endregion //#region 删除 onDelDetailClick: function (button, event) { var ReceiptGIDSql = ''; var selectedRecords = this.ReceiptDrGridCheckBoxModel.selected.items; var candelete = this.CheckOpReceiptDelete(selectedRecords); if (candelete == false) { return; } if (selectedRecords.length == 0) { Ext.Msg.show({ title: '提示', msg: '请先选择要删除的数据!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); return; } Ext.MessageBox.confirm('提示', '确定要删除选中的数据吗?', function (btn) { if (btn == 'yes') { if (selectedRecords.length > 0) { for (var i = 0; i < selectedRecords.length; i++) { var rec = selectedRecords[i]; if (rec.data.BSNO == "*") {//如果是新增但没有保存的数据,没有必要提交到后台 this.storeDrOpReceipt.remove(selectedRecords[i]); } else { var ReceiptGID = "'" + rec.data.GID + "'"; if (ReceiptGIDSql == '') { ReceiptGIDSql = ReceiptGID; } else { ReceiptGIDSql = ReceiptGIDSql + "," + ReceiptGID; } } } } _this = this; Ext.Msg.wait('正在删除数据...'); if (ReceiptGIDSql != '') { Ext.Ajax.request({ waitMsg: '正在删除数据...', url: '/MvcShipping/MsOpReceipt/Delete', params: { BSNO: _this.strBSNO, data: ReceiptGIDSql }, callback: function (options, success, response) { if (success) { var jsonresult = Ext.JSON.decode(response.responseText); if (jsonresult.Success) { for (var i = 0; i < selectedRecords.length; i++) { this.storeDrOpReceipt.remove(selectedRecords[i]); } Ext.Msg.show({ title: '提示', msg: jsonresult.Message, icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); } else { Ext.Msg.show({ title: '错误', msg: jsonresult.Message, icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); } } }, failure: function (response, options) { Ext.Msg.show({ title: '警告', msg: '服务器响应出错,请重试', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); }, success: function (response, options) { }, scope: this }); //end Ext.Ajax.request } else { Ext.Msg.show({ title: '提示', msg: "删除成功!", icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); } } }, this); }, //#endregion //#region 操作权限判断 CheckOpReceiptDelete: function (records) { for (var i = 0; i < records.length; i++) { var rec = records[i]; var MODIFIEDUSER = rec.data.MODIFIEDUSER; var recop = DsStoreQueryBy(this.StoreDrOpRange, 'OPID', MODIFIEDUSER); if (recop.getCount() > 0) { } else { Ext.Msg.show({ title: '提示', msg: '你没有权限操作此信息!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); canDelete = false; } } return true; }, //#endregion //#region 保存 onPostDetailClick: function (button, event) { var bodyDrOpReceiptDatas = []; for (var i = 0; i < this.storeDrOpReceipt.getCount(); i += 1) { var memberyf = this.storeDrOpReceipt.getAt(i); bodyDrOpReceiptDatas.push(memberyf); }; var jsonOpReceiptBody = ConvertFeeRecordsToJson(bodyDrOpReceiptDatas); // _this = this; Ext.Msg.wait('正在保存数据, 请稍侯..'); Ext.Ajax.request({ waitMsg: '正在保存数据...', url: '/MvcShipping/MsOpReceipt/Save', scope: this, params: { BSNO: _this.strBSNO, OpReceiptbody: jsonOpReceiptBody }, callback: function (options, success, response) { if (success) { Ext.MessageBox.hide(); var jsonresult = Ext.JSON.decode(response.responseText); if (jsonresult.Success) { for (var i = 0; i < this.storeDrOpReceipt.getCount(); i += 1) { var member = this.storeDrOpReceipt.getAt(i); member.set("BSNO", _this.strBSNO); member.commit(); } } 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 表格的AfterEdit setHeadFieldValue: function (fieldName, value) { var field = this.formtotal.getForm().findField(fieldName); field.setValue(value); }, //#endregion //#region 修改权限判断 cellEditingOpReceiptBeforeEdit: function (editor, e) { var MODIFIEDUSER = e.record.get('MODIFIEDUSER'); var records = DsStoreQueryBy(this.StoreDrOpRange, 'OPID', MODIFIEDUSER); if (records.getCount() > 0) { } else { Ext.Msg.show({ title: '提示', msg: '你没有权限修改此信息!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); canedit = false; } return true; }, //#endregion //#region 保存 setSaveBtnStatus: function (enable) { var bsbtnSave = Ext.getCmp('pcbtnSave'); var bsbtnSaveAndClose = Ext.getCmp('pcbtnSaveAndClose'); var bsbtnSaveAndNew = Ext.getCmp('pcbtnSaveAndNew'); var pcbtnNew = Ext.getCmp('pcbtnNew'); if (enable) { bsbtnSave.enable(); bsbtnSaveAndClose.enable(); bsbtnSaveAndNew.enable(); pcbtnNew.enable(); } else { bsbtnSaveAndNew.disable(); pcbtnNew.disable(); } }, //#endregion //#region 上传图片 onDelFileClick: function (button, event) { var feeGidSql = ''; var selectedRecords = []; selectedRecords = this.DocCM.selected.items; if (selectedRecords.length == 0) { Ext.Msg.show({ title: '提示', msg: '请先选择要删除的附件!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); return; } Ext.MessageBox.confirm('提示', '确定要删除选中的附件吗?', function (btn) { if (btn == 'yes') { if (selectedRecords.length > 0) { for (var i = 0; i < selectedRecords.length; i++) { var rec = selectedRecords[i]; if (rec.data.GID == "*") //如果是新增但没有保存的数据,没有必要提交到后台 { this.storeDocList.remove(selectedRecords[i]); } else { var feeGId = "'" + rec.data.GID + "'"; if (feeGidSql == '') { feeGidSql = feeGId; } else { feeGidSql = feeGidSql + "," + feeGId; } } } } _this = this; Ext.Msg.wait('正在删除数据...'); if (feeGidSql != '') { Ext.Ajax.request({ waitMsg: '正在删除数据...', url: '/MvcShipping/MsOpReceipt/DeleteUploadFile', params: { data: feeGidSql }, callback: function (options, success, response) { if (success) { var jsonresult = Ext.JSON.decode(response.responseText); if (jsonresult.Success) { for (var i = 0; i < selectedRecords.length; i++) { this.storeDocList.remove(selectedRecords[i]); } Ext.Msg.show({ title: '提示', msg: jsonresult.Message, icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); } else { Ext.Msg.show({ title: '错误', msg: jsonresult.Message, icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); } } }, failure: function (response, options) { Ext.Msg.show({ title: '警告', msg: '服务器响应出错,请重试', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); }, success: function (response, options) { }, scope: this }); //end Ext.Ajax.request } else { Ext.Msg.show({ title: '提示', msg: "删除成功!", icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); } } }, this); } , onUpLoadFileClick: function (button, event) { var billno = this.EditRecord.get("CUSTNO"); var strBSNO = this.EditRecord.get("BSNO"); me = this; var imgform = new Ext.FormPanel({ region: 'center', labelWidth: 40, frame: true, bodyStyle: 'padding:5px 5px 0', autoScroll: true, border: false, fileUpload: true, items: [{ xtype: 'fileuploadfield', id: 'LoadFile', name: 'LoadFile', emptyText: '请选择文件', fieldLabel: '文件', buttonText: '选择文件', allowBlank: false, buttonCfg: { iconCls: 'uploaddialog' }, anchor: '98%' }], buttons: [{ text: '上传', type: 'submit', handler: function () { var UserFilePath = Ext.getCmp('LoadFile').getValue(); // if (!CheckFileExt(UserFilePath, /.jpg|.gif|.png|.bmp|.pdf/i)) { // Ext.Msg.show({ title: '错误', msg: '请确认你上传的文件为图片文件!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); // return; // } if (!imgform.form.isValid()) { return; } imgform.form.submit({ url: '/MvcShipping/MsOpReceipt/UploadFile', waitMsg: '正在上传', method: 'POST', submitEmptyText: false, async: false, params: { CUSTNO: billno, BSNO: strBSNO }, success: function (form, action) { win.close(this); Ext.Msg.show({ title: '提示', msg: '上传成功!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); var condition = strBSNO; var condition2 = " BSNO='" + condition + "' "; me.Loading = true; me.storeDocList.load({ params: { condition: condition2 }, waitMsg: "正在查询数据...", scope: this, callback: function () { me.Loading = false; } }); }, failure: function (form, action) { form.reset(); if (action.failureType == Ext.form.Action.SERVER_INVALID) Ext.MessageBox.alert('警告', action.result.errors.msg); } }); } }, { text: '关闭', type: 'submit', handler: function () { win.close(this); } }] }); var win = new Ext.Window({ title: "上传文件", width: 360, height: 120, modal: true, resizable: false, border: false, items: imgform }); win.show(); } , //#endregion //#region 打印 onPrintSelectDetailClick: function (button, event) { var selectedRecords = this.ReceiptDrGridCheckBoxModel.selected.items; if (selectedRecords.length == 0) { Ext.Msg.show({ title: '提示', msg: '请先选择要打印的数据!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); return; } if (this.stroplb == 'op_Seae') { var printType = 'SEAEDRReceipt'; var sql1 = "SET LANGUAGE 'us_english' " + " select * from op_seae WHERE BSNO = '" + this.strBSNO + "'"; } else if (this.stroplb == 'op_Apply') { var printType = 'APPLYDRReceipt'; var sql1 = "SET LANGUAGE 'us_english' " + " select * from op_apply WHERE BSNO = '" + this.strBSNO + "'"; } else if (this.stroplb == 'op_Seai') { var printType = 'SEAIDRReceipt'; var sql1 = /*"SET LANGUAGE 'us_english' " + */" select * from op_seai WHERE BSNO = '" + this.strBSNO + "'"; } else if (this.stroplb == 'op_Bulk') { var printType = 'BULKDRReceipt'; var sql1 = /*"SET LANGUAGE 'us_english' " + */" select * from op_bulk WHERE BSNO = '" + this.strBSNO + "'"; } else if (this.stroplb == 'op_other') { var printType = 'OpOtherReceipt'; var sql1 = /*"SET LANGUAGE 'us_english' " + */" select * from op_other WHERE BSNO = '" + this.strBSNO + "'"; }; var ReceiptGIDSql = ''; for (var i = 0; i < selectedRecords.length; i++) { var record = selectedRecords[i]; var ReceiptGID = "''" + record.get('GID') + "''"; if (ReceiptGIDSql == '') { ReceiptGIDSql = ReceiptGID; } else { ReceiptGIDSql = ReceiptGIDSql + "," + ReceiptGID; } }; var sql2 = ""; if (ReceiptGIDSql != '') { sql2 = sql2 + "select GID as 惟一编号,BSNO as 业务编号,RECEIPTNO as 单据编号,RECEIPTTYPE as 单据类型,RECEIVE_MAN as 接单人,convert(char(10),RECEIVE_DATE,20) as 接单日期,SEND_MAN as 送单人,convert(char(10),SEND_DATE,20) as 送单日期,TRANCER as 送单快递公司,TRANCNO as 送单快递单号,ISREPEAT as 是否回单,REPEAT_MAN as 回单人,convert(char(10),REPEAT_DATE,20) as 回单日期,ISRECEIVE as 是否还单,RETURN_MAN as 还单人,convert(char(10),RETURN_DATE,20) as 还单日期,RETURN_TRANCER as 还单快递公司,RETURN_TRANCNO as 还单快递单号,REMARK as 备注,(select top 1 [NAME] from [company] where gid=op_receipt.CORPID) as 分公司,(select top 1 SHOWNAME from [user] where gid=op_receipt.CREATEUSER) as 创建人,CREATETIME as 创建时间,(select top 1 SHOWNAME from [user] where gid=op_receipt.MODIFIEDUSER) as 最后更改人,MODIFIEDTIME as 最后更改时间 from op_receipt where GID in (" + ReceiptGIDSql + ") order by bsno,MODIFIEDTIME"; } var sql3 = ""; var sql4 = ""; var sql5 = ""; var sql6 = ""; PrintComm(printType, sql1, sql2, sql3, sql4, sql5, sql6); }, onPrintAllDetailClick: function (button, event) { if (this.stroplb == 'op_Seae') { var printType = 'SEAEDRReceiptALL'; var sql1 = "SET LANGUAGE 'us_english' " + " select * from op_seae WHERE BSNO = '" + this.strBSNO + "'"; } else if (this.stroplb == 'op_Apply') { var printType = 'APPLYDRReceiptALL'; var sql1 = "SET LANGUAGE 'us_english' " + " select * from op_apply WHERE BSNO = '" + this.strBSNO + "'"; } else if (this.stroplb == 'op_Seai') { var printType = 'SEAIDRReceiptALL'; var sql1 = "SET LANGUAGE 'us_english' " + " select * from op_seai WHERE BSNO = '" + this.strBSNO + "'"; } else if (this.stroplb == 'op_Bulk') { var printType = 'BULKDRReceiptALL'; var sql1 = "SET LANGUAGE 'us_english' " + " select * from op_bulk WHERE BSNO = '" + this.strBSNO + "'"; } else if (this.stroplb == 'op_other') { var printType = 'OpOtherReceipt'; var sql1 = "SET LANGUAGE 'us_english' " + "select * from op_other WHERE BSNO = '" + this.strBSNO + "'"; }; var sql2 = "SET LANGUAGE 'us_english' select GID as 惟一编号,BSNO as 业务编号,RECEIPTNO as 单据编号,RECEIPTTYPE as 单据类型,RECEIVE_MAN as 接单人,convert(char(10),RECEIVE_DATE,20) as 接单日期,SEND_MAN as 送单人,convert(char(10),SEND_DATE,20) as 送单日期,TRANCER as 送单快递公司,TRANCNO as 送单快递单号,ISREPEAT as 是否回单,REPEAT_MAN as 回单人,convert(char(10),REPEAT_DATE,20) as 回单日期,ISRECEIVE as 是否还单,RETURN_MAN as 还单人,convert(char(10),RETURN_DATE,20) as 还单日期,RETURN_TRANCER as 还单快递公司,RETURN_TRANCNO as 还单快递单号,REMARK as 备注,(select top 1 [NAME] from [company] where gid=op_receipt.CORPID) as 分公司,(select top 1 SHOWNAME from [user] where gid=op_receipt.CREATEUSER) as 创建人,CREATETIME as 创建时间,(select top 1 SHOWNAME from [user] where gid=op_receipt.MODIFIEDUSER) as 最后更改人,MODIFIEDTIME as 最后更改时间 from op_receipt where BSNO='" + this.strBSNO + "' order by bsno,MODIFIEDTIME"; var sql3 = ""; var sql4 = ""; var sql5 = ""; var sql6 = ""; PrintComm(printType, sql1, sql2, sql3, sql4, sql5, sql6); }, //#endregion PrevRecord: function () { var j = this.StoreList.indexOf(this.EditRecord); if (j == 0) { Ext.Msg.show({ title: '警告', msg: '已是最前一票', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); return; } if (j == this.StoreList.count) { Ext.Msg.show({ title: '警告', msg: '已是最后一票', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); return; } j = j - 1; this.EditRecord = this.StoreList.getAt(j); this.BsNo = this.EditRecord.get('BSNO'); this.LoadData(); }, NextRecord: function () { var j = this.StoreList.indexOf(this.EditRecord); if (j == (this.StoreList.data.length - 1)) { Ext.Msg.show({ title: '警告', msg: '已是最后一票', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); return; } j = j + 1; this.EditRecord = this.StoreList.getAt(j); this.BsNo = this.EditRecord.get('BSNO'); this.LoadData(); }, getModifyStatus: function () { return this.panelFee.getModifyStatus(); }, feeType: function () { return this.panelFee.feeType; }, StoreFee: function () { return this.panelFee.StoreFee; }, StoreFeeUnit: function () { return this.panelFee.StoreFeeUnit; }, StoreFeeCust: function () { return this.panelFee.StoreFeeCust; } });