Ext.namespace('Shipping'); String.prototype.trim = function () { return this.replace(/(^\s*)|(\s*$)/g, ""); } //#region 当前日期格式 Date.prototype.format = function (format) { var o = { "M+": this.getMonth() + 1, //month "d+": this.getDate(), //day "h+": this.getHours(), //hour "m+": this.getMinutes(), //minute "s+": this.getSeconds(), //cond "q+": Math.floor((this.getMonth() + 3) / 3), //quarter "S": this.getMilliseconds() //millisecond } if (/(y+)/.test(format)) format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); for (var k in o) if (new RegExp("(" + k + ")").test(format)) format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)); return format; } //#endregion //#region 获取 YYYY-mm-dd 格式的日期 var xhr = new XMLHttpRequest(); var currdate = new Date(); xhr.open("HEAD", location.href, true); xhr.onreadystatechange = function () { if (xhr.readyState == 4 && xhr.status == 200) { var datestr = xhr.getResponseHeader("Date"); currdate = new Date(datestr); } } xhr.send(null); //#endregion //#region 关闭窗口前的判断 function getSaved() { var changelines = panelEdit.storeDetailList.getModifiedRecords(); var changecount = changelines.length; var delcount = panelEdit.DelBody.length; var AllDirty = true; if (changecount == 0 && delcount == 0) { return false; } if (panelEdit.formHead.getForm().isDirty() == true || AllDirty == true) { return true; } else { return false }; } //#endregion Shipping.MsCwVouchersGlEdit = function (config) { Ext.applyIf(this, config); this.initUIComponents(); window.Shipping.MsCwVouchersGlEdit.superclass.constructor.call(this); }; var _orderno = ''; Ext.extend(Shipping.MsCwVouchersGlEdit, Ext.Panel, { opStatus: 'add', ParentWin: null, StoreList: null, EditRecord: null, sqlcontext: '', btnRefresh: null, tbVOUNO: null, btnAddCwVouchersJK: null, btnSelCwVouchersJK: null, tbVOUCHERNO: null, btnAddCwVouchers: null, btnSelCwVouchers: null, strCwSTARTGID: '', initUIComponents: function () { this.serialNo = 0; this.itemindex = 1; this.DelBody = []; this.isF7 = 0; this.ORDNO = getUrlParam('ordno'); Ext.Ajax.timeout = 1200000; //权限范围 this.StoreOpRangeEdit = Ext.create('DsExt.ux.RefTableStore', { model: 'MsOP', proxy: { url: '/MvcShipping/MsBaseInfo/GetOpRang' } }); this.StoreOpRangeEdit.load({ params: { optype: "MODVOUCHERGL" } }); //#region formSearch 下拉框信息加载 //科目加载 this.storeCwAccitems = Ext.create('DsExt.ux.RefTableStore', { model: 'DsShipping.ux.CwAccitemsGlModel', //proxy: { url: '/CommMng/BasicDataRef/GetCwAccitemsGl' } proxy: { url: '/CommMng/BasicDataRef/GetCwAccitemsGlAll' } }); this.storeCwAccitems.load({ params: { condition: "DETAILED=1 and ISENABLE=1" } }); //this.storeCwAccitems.load(); this.comboxACCNAME = Ext.create('DsExt.ux.RefTableCombox', { //fieldLabel: '科目名称', store: this.storeCwAccitems, forceSelection: false, //输入值是否严格为待选列表中存在的值 id: 'ACCNAME', name: 'ACCNAME', valueField: 'ACCNAME', //valueField: 'ACCIDNAME', displayField: 'ACCIDNAME', allowBlank: false, matchFieldWidth: false, //下拉款自适应宽度 enableKeyEvents: true, //激活键盘事件 listeners: { scope: this, 'focus': function (combo, eOpts) { //fn: function (e) { // e.expand(); // this.doQuery(this.allQuery, true); //}, //buffer: 200 //if (combo.value != null) { // var selections = this.gridList.getSelectionModel().getSelection(); //获得选中的项 // var sACCID = selections[0].data.ACCID; // var strOriginalValue = combo.value.toString(); // if (strOriginalValue.indexOf("▁") < 0) { // var ayList = new Array(); // ayList = strOriginalValue.split("▁"); // var AccitemsList = DsStoreQueryBy(this.storeCwAccitems, 'ACCIDNAME', (sACCID + "-" + ayList[0].toString())); // if (AccitemsList.length == 0) { // AccitemsList = DsStoreQueryBy(this.storeCwAccitems, 'ACCIDNAME', ayList[0].toString()); // } // if (AccitemsList.length > 0) { // var AccitemsRaw = AccitemsList.getAt(0); // if (AccitemsRaw != null) { // //combo.setValue((sACCID + "-" + ayList[0].toString()), combo.value.toString()); // combo.setValue(strOriginalValue); // selections[0].set('ACCALL', strOriginalValue); // } // } // } //} }, 'blur': function blur(combo, eOpts) { if (combo.value != null) { var strOriginalValue = combo.value.toString(); var ayList = new Array(); ayList = strOriginalValue.split("▁"); var AccitemsList = DsStoreQueryBy(this.storeCwAccitems, 'ACCNAME', ayList[0].toString()); if (AccitemsList.length == 0) { AccitemsList = DsStoreQueryBy(this.storeCwAccitems, 'ACCIDNAME', ayList[0].toString()); if (AccitemsList.length == 0) { var iLian = ayList[0].toString().indexOf("-"); var sACCID = ayList[0].toString().substr(0, iLian); AccitemsList = DsStoreQueryBy(this.storeCwAccitems, 'ACCID', sACCID); } } if (AccitemsList.length > 0) { var AccitemsRaw = AccitemsList.getAt(0); if (AccitemsRaw == null) { combo.setValue(""); } else { //combo.setValue(AccitemsRaw.data.ACCIDNAME.toString()); if (this.isF7 == 1) { this.isF7 = 0; var AccitemsRaw2 = AccitemsList.getAt(0).raw; this.onColumnsHidden(false, AccitemsRaw2.ISFCY); var selections = this.gridList.getSelectionModel().getSelection(); //获得选中的项 selections[0].set('ACCID', AccitemsRaw2.ACCID.toString()); selections[0].set('DC', AccitemsRaw2.DC.toString()); //是不是外币,都默认为RMB? var ssCURRENCY = selections[0].data.FCYNO; this.storeCwAccitemsCurrency.load({ params: { condition: "LINKGID='" + AccitemsRaw2.GID + "'" }, waitMsg: "正在刷新数据...", callback: function (options, success, response) { var combo = Ext.getCmp("CURRENCY"); if (options.length > 0) { for (var i = 0; i < options.length; i++) { if (options[i].data.CURRENCY.toString() == selections[0].data.FCYNO.toString()) { ssCURRENCY = selections[0].data.FCYNO.toString(); break; } if (options[i].data.CURRENCY.toString() == 'RMB') { ssCURRENCY = 'RMB'; break; } ssCURRENCY = options[0].data.CURRENCY; } } else { ssCURRENCY = "RMB"; } combo.setValue(ssCURRENCY); //选中 selections[0].set('FCYNO', ssCURRENCY); selections[0].set('CURRENCY', ssCURRENCY); //FCYNO }, async: false, scope: this }); if (AccitemsRaw2.ISFCY) { //如果是外币,则默认传送'' var VOUDATE = this.formHead.getForm().findField('VOUDATE').getRawValue(); Ext.Ajax.request({ waitMsg: '正在查询汇率值...', url: '/MvcShipping/MsCwVouchersGl/GetFCYEXRATEBYVOUDATE', params: { FCY: '', LINKGID: AccitemsRaw2.GID.toString(), VOUDATE: VOUDATE }, 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.INFO, buttons: Ext.Msg.OK }); return; } var strArg = result.data.toString().split(","); var FCYNO = strArg[0].toString(); // var strFCYEXRATE = selections[0].data.FCYEXRATE; var strFCYEXRATE = strArg[1].toString(); if (strFCYEXRATE == 1) { strFCYEXRATE = Div(strArg[1].toString(), 1, 5); } selections[0].set('FCYEXRATE', strFCYEXRATE.toString()); selections[0].set('FCYNO', FCYNO); selections[0].set('CURRENCY', FCYNO); // var AMTDR = selections[0].data.AMTDR; var AMTCR = selections[0].data.AMTCR; var AMT = 0; if (AMTDR != 0) { AMT = AMTDR; } if (AMTCR != 0) { AMT = AMTCR; } selections[0].set('FCYAMT', Div(AMT, strFCYEXRATE, 2)); } else { Ext.MessageBox.alert('请求出现错误,请重试', response.responseText); } }, async: false, scope: this }); } else { selections[0].set('FCYEXRATE', 1); selections[0].set('FCYNO', 'RMB'); selections[0].set('FCYAMT', 0); } if (AccitemsRaw2.ISDEPTACC || AccitemsRaw2.ISEMPLACC || AccitemsRaw2.ISCORPACC || AccitemsRaw2.ISITEMACC) { var winaccitemsedit = Ext.getCmp('winaccitemsedit'); if (winaccitemsedit == undefined||!winaccitemsedit.show) { var strOriginalValue = selections[0].get('ACCALL'); this.showContactForm(false, AccitemsRaw2.ACCIDNAME.toString(), strOriginalValue.toString(), AccitemsRaw2, selections, false); } } else { this.onNextKeyClick(4); } } else { this.isF7 = 0; } } } else { combo.setValue(""); } } else { combo.setValue(""); } }, 'select': function (combo, records, eOpts) { if (combo.value.toString() != "") { var AccitemsList = DsStoreQueryBy(this.storeCwAccitems, 'ACCIDNAME', combo.rawValue.toString()); if (AccitemsList.length > 0) { var AccitemsRaw = AccitemsList.getAt(0).raw; this.onColumnsHidden(false, AccitemsRaw.ISFCY); var selections = this.gridList.getSelectionModel().getSelection(); //获得选中的项 //是不是外币,都默认为RMB? var ssCURRENCY = selections[0].data.FCYNO; this.storeCwAccitemsCurrency.load({ params: { condition: "LINKGID='" + AccitemsRaw.GID + "'" }, waitMsg: "正在刷新数据...", callback: function (options, success, response) { var combo = Ext.getCmp("CURRENCY"); if (options.length > 0) { for (var i = 0; i < options.length; i++) { if (options[i].data.CURRENCY.toString() == selections[0].data.FCYNO.toString()) { ssCURRENCY = selections[0].data.FCYNO.toString(); break; } if (options[i].data.CURRENCY.toString() == 'RMB') { ssCURRENCY = 'RMB'; break; } ssCURRENCY = options[0].data.CURRENCY; } } else { ssCURRENCY = "RMB"; } combo.setValue(ssCURRENCY); //选中 selections[0].set('FCYNO', ssCURRENCY); }, async: false, scope: this }); // combo.setValue(combo.value.toString()); selections[0].set('ACCNAME', combo.value.toString()); selections[0].set('ACCID', AccitemsRaw.ACCID.toString()); selections[0].set('DC', AccitemsRaw.DC.toString()); // if (AccitemsRaw.ISFCY) { //如果是外币,则默认传送'' var VOUDATE = this.formHead.getForm().findField('VOUDATE').getRawValue(); Ext.Ajax.request({ waitMsg: '正在查询汇率值...', url: '/MvcShipping/MsCwVouchersGl/GetFCYEXRATEBYVOUDATE', params: { FCY: '', LINKGID: AccitemsRaw.GID.toString(), VOUDATE: VOUDATE }, 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.INFO, buttons: Ext.Msg.OK }); return; } var strArg = result.data.toString().split(","); var FCYNO = strArg[0].toString(); // var strFCYEXRATE = selections[0].data.FCYEXRATE; var strFCYEXRATE = strArg[1].toString(); if (strFCYEXRATE == 1) { strFCYEXRATE = Div(strArg[1].toString(), 1, 5); } selections[0].set('FCYEXRATE', strFCYEXRATE); selections[0].set('FCYNO', ssCURRENCY); //FCYNO selections[0].set('CURRENCY', ssCURRENCY); //FCYNO // var AMTDR = selections[0].data.AMTDR; var AMTCR = selections[0].data.AMTCR; var AMT = 0; if (AMTDR != 0) { AMT = AMTDR; } if (AMTCR != 0) { AMT = AMTCR; } selections[0].set('FCYAMT', Div(AMT, strFCYEXRATE, 2)); } else { Ext.MessageBox.alert('请求出现错误,请重试', response.responseText); } }, async: false, scope: this }); } else { selections[0].set('FCYEXRATE', 1); selections[0].set('FCYNO', 'RMB'); selections[0].set('FCYAMT', 0); } if (AccitemsRaw.ISDEPTACC || AccitemsRaw.ISEMPLACC || AccitemsRaw.ISCORPACC || AccitemsRaw.ISITEMACC) { var winaccitemsedit = Ext.getCmp('winaccitemsedit'); if (winaccitemsedit == undefined ||!winaccitemsedit.show) { var strOriginalValue = combo.value.toString(); this.showContactForm(false, combo.value.toString(), strOriginalValue.toString(), AccitemsRaw, selections, false); } } else { this.onNextKeyClick(4); } } else { combo.setValue(""); } } }, 'keydown': { fn: function (_field, e, eOpts) { if (e.getKey() == 118) {//F7 this.isF7 = 1; DsOpenEditWin('/MvcShipping/MsCwAccitemsGl/Index', "科目信息", "500", "800", (window.screen.availHeight / 2 - 150), (window.screen.availWidth / 2 - 500)); } else if (e.getKey() == 13) { var newValue = _field.rawValue.toString(); var inv = newValue.indexOf("-"); if (inv > -1) { newValue = newValue.substr(inv + 1); } if (newValue != "") { var AccitemsList = DsStoreQueryBy(this.storeCwAccitems, 'ACCIDNAME', _field.rawValue.toString()); if (AccitemsList.length > 0) { var AccitemsRaw = AccitemsList.getAt(0).raw; this.onColumnsHidden(false, AccitemsRaw.ISFCY); var selections = this.gridList.getSelectionModel().getSelection(); //获得选中的项 selections[0].set('ACCID', AccitemsRaw.ACCID.toString()); selections[0].set('DC', AccitemsRaw.DC.toString()); //是不是外币,都默认为RMB? var ssCURRENCY = selections[0].data.FCYNO; this.storeCwAccitemsCurrency.load({ params: { condition: "LINKGID='" + AccitemsRaw.GID + "'" }, waitMsg: "正在刷新数据...", callback: function (options, success, response) { var combo = Ext.getCmp("CURRENCY"); if (options.length > 0) { for (var i = 0; i < options.length; i++) { if (options[i].data.CURRENCY.toString() == selections[0].data.FCYNO.toString()) { ssCURRENCY = selections[0].data.FCYNO.toString(); break; } if (options[i].data.CURRENCY.toString() == 'RMB') { ssCURRENCY = 'RMB'; break; } ssCURRENCY = options[0].data.CURRENCY; } } else { ssCURRENCY = "RMB"; } combo.setValue(ssCURRENCY); //选中 selections[0].set('FCYNO', ssCURRENCY); selections[0].set('CURRENCY', ssCURRENCY); //FCYNO }, async: false, scope: this }); if (AccitemsRaw.ISFCY) { //如果是外币,则默认传送'' var VOUDATE = this.formHead.getForm().findField('VOUDATE').getRawValue(); Ext.Ajax.request({ waitMsg: '正在查询汇率值...', url: '/MvcShipping/MsCwVouchersGl/GetFCYEXRATEBYVOUDATE', params: { FCY: '', LINKGID: AccitemsRaw.GID.toString(), VOUDATE: VOUDATE }, 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.INFO, buttons: Ext.Msg.OK }); return; } var strArg = result.data.toString().split(","); var FCYNO = strArg[0].toString(); // var strFCYEXRATE = selections[0].data.FCYEXRATE; var strFCYEXRATE = strArg[1].toString(); if (strFCYEXRATE == 1) { strFCYEXRATE = Div(strArg[1].toString(), 1, 5); } selections[0].set('FCYEXRATE', strFCYEXRATE.toString()); selections[0].set('FCYNO', FCYNO); selections[0].set('CURRENCY', FCYNO); // var AMTDR = selections[0].data.AMTDR; var AMTCR = selections[0].data.AMTCR; var AMT = 0; if (AMTDR != 0) { AMT = AMTDR; } if (AMTCR != 0) { AMT = AMTCR; } selections[0].set('FCYAMT', Div(AMT, strFCYEXRATE, 2)); } else { Ext.MessageBox.alert('请求出现错误,请重试', response.responseText); } }, async: false, scope: this }); } else { selections[0].set('ACCNAME', newValue); selections[0].set('ACCALL', newValue); selections[0].set('FCYEXRATE', 1); selections[0].set('FCYNO', 'RMB'); selections[0].set('FCYAMT', 0); } if (AccitemsRaw.ISDEPTACC || AccitemsRaw.ISEMPLACC || AccitemsRaw.ISCORPACC || AccitemsRaw.ISITEMACC) { var strOriginalValue = selections[0].get('ACCALL'); this.showContactForm(false, AccitemsRaw.ACCIDNAME.toString(), strOriginalValue.toString(), AccitemsRaw, selections, false); // this.showContactForm(false, AccitemsRaw2.ACCIDNAME.toString(), strOriginalValue.toString(), AccitemsRaw2, selections, false); } else { this.onNextKeyClick(4); } } else { _field.setValue(""); } } // } }, scope: this }, 'render': function (_field, eOpts) {//自定义函数,定义双击事件 var _this = this; _field.getEl().on('dblclick', function (e, t, eOpts) { var selections = _this.gridList.getSelectionModel().getSelection(); //获得选中的项 var strOriginalValue = selections[0].get('ACCALL'); var strACCID = selections[0].get('ACCID'); if (strOriginalValue.indexOf("▁") > -1) { var ayList = new Array(); ayList = strOriginalValue.split("▁"); var AccitemsList = DsStoreQueryBy(_this.storeCwAccitems, 'ACCID', strACCID); if (AccitemsList.length == 0) { AccitemsList = DsStoreQueryBy(_this.storeCwAccitems, 'ACCIDNAME', ayList[0].toString()); } if (AccitemsList.length > 0) { var AccitemsRaw = AccitemsList.getAt(0).raw; _this.showContactForm(false, ayList[0].toString(), strOriginalValue.toString(), AccitemsRaw, selections, true); } else { _field.rawValue.setValue(""); } } }); } } }); //币别选项 this.storeCwAccitemsCurrency = Ext.create('DsExt.ux.RefTableStore', { model: 'DsShipping.ux.CwAccitemsCurrencyModel', proxy: { url: '/CommMng/BasicDataRef/GetCwAccitemsCurrencyList' } }); this.storeCwAccitemsCurrency.load({ params: { condition: "LINKGID=''"} }); this.comboxCodeCurrency = Ext.create('DsExt.ux.RefTableCombox', { //fieldLabel: '币别', store: this.storeCwAccitemsCurrency, forceSelection: true, //输入值是否严格为待选列表中存在的值 id: 'CURRENCY', name: 'CURRENCY', valueField: 'CURRENCY', displayField: 'CURRENCY', enableKeyEvents: true, //激活键盘事件 listeners: { scope: this, 'focus': function (_this, eOpts) { var selections = this.gridList.getSelectionModel().getSelection(); //获得选中的项 var strACCID = selections[0].get('ACCID'); var sCURRENCY = selections[0].data.FCYNO.toString().trim(); var sACCNAME = selections[0].data.ACCNAME.toString().trim(); if (sACCNAME == "") { var ayList = new Array(); ayList = selections[0].data.ACCALL.toString().trim().split("▁"); sACCNAME = ayList[0].toString(); } var AccitemsList = DsStoreQueryBy(this.storeCwAccitems, 'ACCID', strACCID); if (AccitemsList.length == 0) { AccitemsList = DsStoreQueryBy(this.storeCwAccitems, 'ACCIDNAME', sACCNAME); } if (AccitemsList.length > 0) { var AccitemsRaw = AccitemsList.getAt(0).raw; var ssCURRENCY = selections[0].data.FCYNO; this.storeCwAccitemsCurrency.load({ params: { condition: "LINKGID='" + AccitemsRaw.GID + "'" }, waitMsg: "正在刷新数据...", callback: function (options, success, response) { var combo = Ext.getCmp("CURRENCY"); if (options.length > 0) { for (var i = 0; i < options.length; i++) { if (options[i].data.CURRENCY.toString() == selections[0].data.FCYNO.toString()) { ssCURRENCY = selections[0].data.FCYNO.toString(); break; } if (options[i].data.CURRENCY.toString() == 'RMB') { ssCURRENCY = 'RMB'; break; } ssCURRENCY = options[0].data.CURRENCY; } } else { ssCURRENCY = "RMB"; } sCURRENCY = ssCURRENCY; combo.setValue(ssCURRENCY); //选中 }, scope: this }); selections[0].set('FCYNO', sCURRENCY); selections[0].set('CURRENCY', sCURRENCY); } }, //'change': function (combo, records, eOpts, kk, hg) { 'select': function (combo, records, eOpts) { var selections = this.gridList.getSelectionModel().getSelection(); //获得选中的项 var strACCID = selections[0].get('ACCID'); if (combo.value != "RMB") { var sACCNAME = selections[0].data.ACCNAME.toString().trim(); if (sACCNAME == "") { var ayList = new Array(); ayList = selections[0].data.ACCALL.toString().trim().split("▁"); sACCNAME = ayList[0].toString(); } var AccitemsList = DsStoreQueryBy(this.storeCwAccitems, 'ACCID', strACCID); if (AccitemsList.length == 0) { AccitemsList = DsStoreQueryBy(this.storeCwAccitems, 'ACCIDNAME', sACCNAME); } if (AccitemsList.length > 0) { var AccitemsRaw = AccitemsList.getAt(0).raw; //如果是外币,则默认传送combo.value if (AccitemsRaw.ISFCY) { var VOUDATE = this.formHead.getForm().findField('VOUDATE').getRawValue(); Ext.Ajax.request({ waitMsg: '正在查询汇率值...', url: '/MvcShipping/MsCwVouchersGl/GetFCYEXRATEBYVOUDATE', params: { FCY: combo.value, LINKGID: AccitemsRaw.GID.toString(), VOUDATE: VOUDATE }, 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.INFO, buttons: Ext.Msg.OK }); return; } // var strArg = result.data.toString().split(","); var FCYNO = strArg[0].toString(); // var strFCYEXRATE = selections[0].data.FCYEXRATE; var strFCYEXRATE = strArg[1].toString(); if (strFCYEXRATE == 1) { strFCYEXRATE = Div(strArg[1].toString(), 1, 5); } selections[0].set('FCYEXRATE', strFCYEXRATE); selections[0].set('FCYNO', combo.value); selections[0].set('CURRENCY', combo.value); // var AMTDR = selections[0].data.AMTDR; var AMTCR = selections[0].data.AMTCR; var AMT = 0; if (AMTDR != 0) { AMT = AMTDR; } if (AMTCR != 0) { AMT = AMTCR; } selections[0].set('FCYAMT', Div(AMT, strFCYEXRATE, 2)); } else { Ext.MessageBox.alert('请求出现错误,请重试', response.responseText); } }, scope: this }); } } } else { selections[0].set('FCYEXRATE', 1); selections[0].set('FCYNO', 'RMB'); selections[0].set('FCYAMT', 0); } }, 'keyup': { fn: function (_field, e) { if (e.getKey() == 13) { this.onNextKeyClick(5); } }, scope: 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.comboxVKNO = Ext.create('DsExt.ux.RefTableCombox', { fieldLabel: '凭证字', labelWidth: 50, store: this.storeCrmKeyCodeCode, forceSelection: true, name: 'VKNO', width: 100, valueField: 'KEYVALUE', displayField: 'KEYVALUE', value: '记', allowBlank: false // }); //#endregion //#region 编辑formHead 基本信息 this.formHead = Ext.widget('form', { border: false, region: 'north', frame: true, //bodyPadding: 5, trackResetOnLoad: true, //是否记录字段原始值 fieldDefaults: { labelAlign: 'right', labelWidth: 40, msgTarget: 'qtip' //,style: 'font-size: 30px; color: #808000; vertical-align: text-bottom;' }, items: [{ xtype: 'container', layout: 'hbox', defaultType: 'textfield', items: [{ xtype: 'label', flex: 1 }, { xtype: 'label', text: "记账凭证", style: 'font-size: 30px; color: #808000;', id: 'voutitle', anchor: '100%', align: 'center' }, { xtype: 'label', flex: 1}] }, { xtype: 'container', layout: 'hbox', defaultType: 'textfield', items: [{ fieldLabel: '凭证GID', id: 'ORDNO', name: 'ORDNO', hidden: true, value: '*' }, { fieldLabel: 'ISCOPY', name: 'ISCOPY', value: false, hidden: true }, { fieldLabel: 'ISAUTO', name: 'ISAUTO', value: false, hidden: true }, { fieldLabel: 'COPYORDNO', name: 'COPYORDNO', hidden: true }, this.comboxVKNO, { fieldLabel: '', id: 'VOUNO', name: 'VOUNO', width: 60, xtype: 'numberfield', nanText: '请输入有效整数', value: 0, allowBlank: false }, { xtype: 'label', id: 'VOUNO_HAO', labelWidth: 50, text: "号", style: 'vertical-align: text-bottom;' }, { fieldLabel: '日期', id: 'VOUDATE', name: 'VOUDATE', xtype: 'datefield', format: 'Y-m-d', value: currdate.format('yyyy-MM-dd'), width: 140, allowBlank: false }, { xtype: 'label', flex: 1 }, { xtype: 'displayfield', id: 'lbTitle2', name: 'lbTitle2', width: 80, value: "2015年第1期", allowBlank: false }, { fieldLabel: '', name: 'ISAUTOSTR', width: 150, // disabled: true, flex: 0.5, value:'手工', readOnly: true, allowBlank: false }, { xtype: 'label', flex: 1 }, { fieldLabel: '附单据', id: 'ATTACHS', labelWidth: 60, name: 'ATTACHS', width: 100, xtype: 'numberfield', nanText: '请输入有效整数', value: 0, allowBlank: false }, { xtype: 'label', text: "张", style: 'vertical-align: text-bottom;' }] }]//end items(fieldset 1) }); //#endregion //#region 编辑formBottom 基本信息 this.formBottom = Ext.widget('form', { border: false, region: 'south', height: 40, frame: true, //bodyPadding: 5, trackResetOnLoad: true, //是否记录字段原始值 fieldDefaults: { labelAlign: 'right', labelWidth: 80, msgTarget: 'qtip' //,style: 'font-size: 30px; color: #808000; vertical-align: text-bottom;' }, items: [{ xtype: 'container', layout: 'hbox', defaultType: 'textfield', items: [{ fieldLabel: '制单人', name: 'CREATEUSERNAME', width: 150, value: SHOWNAME, readOnly: true, allowBlank: false }, { fieldLabel: '制单日期', name: 'CREATETIME', width: 210, value: currdate.format('yyyy-MM-dd hh:mm:ss'), readOnly: true, allowBlank: false }, { xtype: 'hiddenfield', flex: 1 }, { fieldLabel: '改单人', name: 'MODIFIEDUSERNAME', width: 150, value: SHOWNAME, readOnly: true, allowBlank: false }, { fieldLabel: '修改日期', name: 'MODIFIEDTIME', width: 210, value: currdate.format('yyyy-MM-dd hh:mm:ss'), readOnly: true, allowBlank: false }] }]//end items(fieldset 1) }); //#endregion //#region 定义数据集 //权限范围 this.StoreOpRange = Ext.create('DsExt.ux.RefTableStore', { model: 'MsOP', //proxy: { url: '/MvcShipping/MsBaseInfo/GetOpRang' } proxy: { url: '/MvcShipping/MsBaseInfo/GetOpRang4' } }); this.StoreOpRange.load({ params: { optype: "MsCwVouchersGlCHECKED"} }); this.StoreOpRange2 = Ext.create('DsExt.ux.RefTableStore', { model: 'MsOP', //proxy: { url: '/MvcShipping/MsBaseInfo/GetOpRang' } proxy: { url: '/MvcShipping/MsBaseInfo/GetOpRang4' } }); this.StoreOpRange2.load({ params: { optype: "MsCwVouchersGlNotCHECKED"} }); //列表加载 this.storeDetailList = Ext.create('Ext.data.Store', { model: 'MsCwVouitemsGlModel', remoteSort: true, proxy: { type: 'ajax', url: '/MvcShipping/MsCwVouchersGl/GetDetailList', reader: { id: 'GID', root: 'data', totalProperty: 'totalCount' } } }); //#endregion //#region 列定义 this.girdcolums = [{ sortable: true, dataIndex: 'GID', header: '', //唯一编码 hidden: true, width: 0 }, { sortable: false, dataIndex: 'ITEMNO', header: '行号', align: 'center', //style: "color: 'red'", //black //color: "red", width: 35 }, { id: 'EXPLAN', sortable: false, dataIndex: 'EXPLAN', header: '摘要', //align: 'center', width: 200, editor: { xtype: 'textfield', allowBlank: false, selectOnFocus: true, enableKeyEvents: true, //激活键盘事件 listeners: { scope: this, 'keyup': { fn: function (_field, e) { if (e.getKey() == 40) { this.onAddClick(); } else if (e.getKey() == 13) { this.onNextKeyClick(3); } }, scope: this } } } }, { sortable: false, dataIndex: 'ACCALL', header: '会计科目', width: 260, editor: this.comboxACCNAME }, { sortable: false, dataIndex: 'FCYNO', header: '原币币别', align: 'center', width: 60, editor: this.comboxCodeCurrency }, { sortable: false, dataIndex: 'FCYEXRATE', header: '汇率', align: 'right', //renderer: Ext.util.Format.numberRenderer('00.00000'),// width: 60, editor: { xtype: 'numberfield', allowBlank: false, selectOnFocus: true, //得到焦点时自动选择文本 allowDecimals: true, //允许输入小数 decimalPrecision: 5, //允许保留的小数位数,并四舍五入 nanText: '请输入有效小数', //minValue: 0, //maxValue: 100000, value: 0.00000, keyNavEnabled: false, //键盘导航是否可用,启用后可以通过键盘的上下箭头调整数值 hideTrigger: true, //是否隐藏上下调节按钮 mouseWheelEnabled: false, //鼠标滚轮是否可用,启用后可以通过滚动鼠标滚轮调整数值 //step: 2,//通过调节按钮、键盘、鼠标滚轮调节数值时的大小 enableKeyEvents: true, //激活键盘事件 listeners: { scope: this, 'keyup': { fn: function (_field, e) { if (e.getKey() == 40) { this.onAddClick(); } else if (e.getKey() == 13) { this.onNextKeyClick(6); } }, scope: this } } }, renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) { value = usMoney(value, 5, '', true); return value; } }, { sortable: false, dataIndex: 'FCYAMT', header: '原币金额', align: 'right', width: 80, editor: { xtype: 'numberfield', allowBlank: false, selectOnFocus: true, //得到焦点时自动选择文本 allowDecimals: true, //允许输入小数 nanText: '请输入有效小数', //minValue: 0, //maxValue: 100000, value: 0.00, keyNavEnabled: false, //键盘导航是否可用,启用后可以通过键盘的上下箭头调整数值 hideTrigger: true, //是否隐藏上下调节按钮 mouseWheelEnabled: false, //鼠标滚轮是否可用,启用后可以通过滚动鼠标滚轮调整数值 //step: 2,//通过调节按钮、键盘、鼠标滚轮调节数值时的大小 enableKeyEvents: true, //激活键盘事件 listeners: { scope: this, 'keyup': { fn: function (_field, e) { if (e.getKey() == 40) { this.onAddClick(); } else if (e.getKey() == 13) { this.onNextKeyClick(7); } }, scope: this } } }, renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) { /*注释 //1.value是当前单元格的值 //2.cellmeta里保存的是cellId单元格id,id不知道是干啥的,似乎是列号,css是这个单元格的css样式。 //3.record是这行的所有数据,你想要什么,record.data["id"]这样就获得了。 //4.rowIndex是行号,不是从头往下数的意思,而是计算了分页以后的结果。 //5.columnIndex列号太简单了。 //6.store,这个厉害,实际上这个是你构造表格时候传递的ds,也就是说表格里所有的数据,你都可以随便调用,唉,太厉害了。 */ value = usMoney(value, 2, '', true); if (parseFloat(value) < 0) { return '' + value + ''; } return value; } }, { sortable: false, dataIndex: 'AMTDR', header: '借方金额', align: 'right', width: 120, summaryType: 'sum', //summaryRenderer: Ext.util.Format.numberRenderer('00.00'), editor: { xtype: 'numberfield', allowBlank: false, selectOnFocus: true, //得到焦点时自动选择文本 allowDecimals: true, //允许输入小数 nanText: '请输入有效小数', minValue: -999999999.99, maxValue: 999999999.99, value: 0.00, keyNavEnabled: false, //键盘导航是否可用,启用后可以通过键盘的上下箭头调整数值 hideTrigger: true, //是否隐藏上下调节按钮 mouseWheelEnabled: false, //鼠标滚轮是否可用,启用后可以通过滚动鼠标滚轮调整数值 //step: 2,//通过调节按钮、键盘、鼠标滚轮调节数值时的大小 enableKeyEvents: true, //激活键盘事件 listeners: { scope: this, 'keyup': { fn: function (_field, e) { if (e.getKey() == 32) { var selections = this.gridList.getSelectionModel().getSelection(); //获得选中的项 var AMTDR_OLD = _field.value; var AMTCR_OLD = selections[0].data.AMTCR; _field.setValue(AMTCR_OLD); selections[0].set('AMTCR', AMTDR_OLD); } else if (e.getKey() == 40) { this.onAddClick(); } else if (e.getKey() == 13) { this.onNextKeyClick(8); } }, scope: this }, 'render': function (_field, eOpts) {//自定义函数,定义双击事件 var _this = this; _field.getEl().on('dblclick', function (e, t, eOpts) { var dAMTDR = 0; var dAMTCR = 0; var iLength = _this.gridList.getStore().data.length; if (iLength > 1) { var records = _this.gridList.getStore().data.items; for (var i = 0; i < iLength; i += 1) { dAMTDR += records[i].data.AMTDR; dAMTCR += records[i].data.AMTCR; } var dAMT = dAMTCR - (dAMTDR - (_field.value)); _field.setValue(dAMT); } }); } } }, renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) { value = usMoney(value, 2, '', true); if (parseFloat(value) < 0) { return '' + value + ''; } return value; }, summaryRenderer: function (value, cellmeta, record, rowIndex, columnIndex, store) { value = usMoney(value, 2, '', true); return value; } }, { sortable: false, dataIndex: 'AMTCR', header: '贷方金额', align: 'right', width: 120, summaryType: 'sum', //summaryRenderer: Ext.util.Format.numberRenderer('00.00'), editor: { xtype: 'numberfield', allowBlank: false, selectOnFocus: true, //得到焦点时自动选择文本 allowDecimals: true, //允许输入小数 nanText: '请输入有效小数', minValue: -999999999.99, maxValue: 999999999.99, value: 0.00, keyNavEnabled: false, //键盘导航是否可用,启用后可以通过键盘的上下箭头调整数值 hideTrigger: true, //是否隐藏上下调节按钮 mouseWheelEnabled: false, //鼠标滚轮是否可用,启用后可以通过滚动鼠标滚轮调整数值 //step: 2,//通过调节按钮、键盘、鼠标滚轮调节数值时的大小 enableKeyEvents: true, //激活键盘事件 listeners: { scope: this, 'keyup': { fn: function (_field, e) { if (e.getKey() == 32) { var selections = this.gridList.getSelectionModel().getSelection(); //获得选中的项 var AMTDR_OLD = selections[0].data.AMTDR; var AMTCR_OLD = _field.value; selections[0].set('AMTDR', AMTCR_OLD); _field.setValue(AMTDR_OLD); } else if (e.getKey() == 40) { this.onAddClick(); } //else if (e.getKey() == 9) { // this.onAddClick(); //} else if (e.getKey() == 13) { //this.onNextKeyClick(9); this.onAddClick(); } }, scope: this }, 'keydown': { fn: function (_field, e) { if (e.getKey() == 9) { this.onAddClick(); } }, scope: this }, 'render': function (_field, eOpts) {//自定义函数,定义双击事件 var _this = this; _field.getEl().on('dblclick', function (e, t, eOpts) { var dAMTDR = 0; var dAMTCR = 0; var iLength = _this.gridList.getStore().data.length; if (iLength > 1) { var records = _this.gridList.getStore().data.items; for (var i = 0; i < iLength; i += 1) { dAMTDR += records[i].data.AMTDR; dAMTCR += records[i].data.AMTCR; } var dAMT = dAMTDR - (dAMTCR - (_field.value)); _field.setValue(dAMT); } }); } } }, renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) { /*注释 //1.value是当前单元格的值 //2.cellmeta里保存的是cellId单元格id,id不知道是干啥的,似乎是列号,css是这个单元格的css样式。 //3.record是这行的所有数据,你想要什么,record.data["id"]这样就获得了。 //4.rowIndex是行号,不是从头往下数的意思,而是计算了分页以后的结果。 //5.columnIndex列号太简单了。 //6.store,这个厉害,实际上这个是你构造表格时候传递的ds,也就是说表格里所有的数据,你都可以随便调用,唉,太厉害了。 */ //Ext.util.Format.number(value, '00.00'); value = usMoney(value, 2, '', true); if (parseFloat(value) < 0) { return '' + value + ''; } return value; }, summaryRenderer: function (value, cellmeta, record, rowIndex, columnIndex, store) { value = usMoney(value, 2, '', true); return value; } }, { id: 'ACCID', sortable: false, hidden: true, dataIndex: 'ACCID', header: '科目代码', width: 0 }, { id: 'DC', sortable: false, hidden: true, dataIndex: 'DC', header: '科目方向', width: 0 }]; this.girdcolumslist = [{ sortable: true, dataIndex: 'GID', header: '', //唯一编码 hidden: true, width: 0 }, { sortable: false, dataIndex: 'ITEMNO', header: '行号', align: 'center', //style: "color: 'red'", //black //color: "red", width: 35 }, { id: 'EXPLAN', sortable: false, dataIndex: 'EXPLAN', header: '摘要', //align: 'center', width: 200 }, { sortable: false, dataIndex: 'ACCALL', header: '会计科目', width: 260 }, { sortable: false, dataIndex: 'FCYNO', header: '原币币别', align: 'center', width: 60 }, { sortable: false, dataIndex: 'FCYEXRATE', header: '汇率', align: 'right', //renderer: Ext.util.Format.numberRenderer('00.00000'),// width: 60, renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) { value = usMoney(value, 5, '', true); return value; } }, { sortable: false, dataIndex: 'FCYAMT', header: '原币金额', align: 'right', width: 80, renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) { /*注释 //1.value是当前单元格的值 //2.cellmeta里保存的是cellId单元格id,id不知道是干啥的,似乎是列号,css是这个单元格的css样式。 //3.record是这行的所有数据,你想要什么,record.data["id"]这样就获得了。 //4.rowIndex是行号,不是从头往下数的意思,而是计算了分页以后的结果。 //5.columnIndex列号太简单了。 //6.store,这个厉害,实际上这个是你构造表格时候传递的ds,也就是说表格里所有的数据,你都可以随便调用,唉,太厉害了。 */ value = usMoney(value, 2, '', true); if (parseFloat(value) < 0) { return '' + value + ''; } return value; } }, { sortable: false, dataIndex: 'AMTDR', header: '借方金额', align: 'right', width: 120, summaryType: 'sum', renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) { value = usMoney(value, 2, '', true); if (parseFloat(value) < 0) { return '' + value + ''; } return value; }, summaryRenderer: function (value, cellmeta, record, rowIndex, columnIndex, store) { value = usMoney(value, 2, '', true); return value; } }, { sortable: false, dataIndex: 'AMTCR', header: '贷方金额', align: 'right', width: 120, summaryType: 'sum', renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) { /*注释 //1.value是当前单元格的值 //2.cellmeta里保存的是cellId单元格id,id不知道是干啥的,似乎是列号,css是这个单元格的css样式。 //3.record是这行的所有数据,你想要什么,record.data["id"]这样就获得了。 //4.rowIndex是行号,不是从头往下数的意思,而是计算了分页以后的结果。 //5.columnIndex列号太简单了。 //6.store,这个厉害,实际上这个是你构造表格时候传递的ds,也就是说表格里所有的数据,你都可以随便调用,唉,太厉害了。 */ //Ext.util.Format.number(value, '00.00'); value = usMoney(value, 2, '', true); if (parseFloat(value) < 0) { return '' + value + ''; } return value; }, summaryRenderer: function (value, cellmeta, record, rowIndex, columnIndex, store) { value = usMoney(value, 2, '', true); return value; } }, { id: 'ACCID', sortable: false, hidden: true, dataIndex: 'ACCID', header: '科目代码', width: 0 }, { id: 'DC', sortable: false, hidden: true, dataIndex: 'DC', header: '科目方向', width: 0 }]; //#endregion //#region gridList列表显示信息 this.gridListCellEditing = Ext.create('Ext.grid.plugin.CellEditing', { clicksToEdit: 1 //1单击,2双击 }); this.gridList = new Ext.grid.GridPanel({ region: 'center', store: this.storeDetailList, enableHdMenu: false, //是否显示表格列的菜单 hideHeaders: false, //是否隐藏表头 enableColumnHide: false, ///隐藏表头列 sortableColumns: false, ///隐藏表头排序 //disableSelection: false, //是否禁止选择表格行或列,默认为false //trackMouseOver: true, //高亮显示鼠标所在的行,默认为true, //stripeRows: true, //斑马线效果 rowLines: true, columnLines: true, loadMask: { msg: "数据加载中,请稍等..." }, plugins: [this.gridListCellEditing], selType: 'cellmodel', columns: this.girdcolums, features: [{ ftype: 'summary'//Ext.grid.feature.Summary表格汇总特性 }], listeners: { scope: this, 'edit': function (editor, e, eOpts) { if (e.value == e.originalValue) { return; } if (e.colIdx == 3) { var sACCID = e.record.data['ACCID'].toString(); var sACCALL = e.value; var ayListA = new Array(); ayListA = sACCALL.split("▁"); var AccitemsList = DsStoreQueryBy(this.storeCwAccitems, 'ACCID', sACCID); if (AccitemsList.length == 0) { AccitemsList = DsStoreQueryBy(this.storeCwAccitems, 'ACCIDNAME', ayListA[0].toString()); } if (AccitemsList.length <= 0) { e.record.set('ACCID', ''); e.record.set('ACCALL', ''); Ext.Msg.show({ title: '警告', msg: '此帐套无此科目信息,请重新填写!', icon: Ext.Msg.WARNING, buttons: Ext.Msg.OK }); return; } } else if (e.colIdx == 4) { var sACCID = e.record.data['ACCID'].toString(); var sACCALL = e.record.data['ACCALL'].toString(); var ayListA = new Array(); ayListA = sACCALL.split("▁"); var AccitemsList = DsStoreQueryBy(this.storeCwAccitems, 'ACCIDNAME', (sACCID + "-" + ayListA[0].toString())); if (AccitemsList.length == 0) { AccitemsList = DsStoreQueryBy(this.storeCwAccitems, 'ACCIDNAME', ayListA[0].toString()); } if (AccitemsList.length > 0) { var AccitemsRaw = AccitemsList.getAt(0).raw; if (!AccitemsRaw.ISFCY) { e.record.set('FCYNO', 'RMB'); e.record.set('FCYEXRATE', 1); e.record.set('FCYAMT', 0); } } } else if (e.colIdx == 5) { var sACCID = e.record.data['ACCID'].toString(); var sACCALL = e.record.data['ACCALL'].toString(); var FCYNO = e.record.data['FCYNO'].toString(); var FCYEXRATE = e.record.data['FCYEXRATE']; var FCYAMT = e.record.data['FCYAMT']; var ayListA = new Array(); ayListA = sACCALL.split("▁"); var AccitemsList = DsStoreQueryBy(this.storeCwAccitems, 'ACCIDNAME', (sACCID + "-" + ayListA[0].toString())); if (AccitemsList.length == 0) { AccitemsList = DsStoreQueryBy(this.storeCwAccitems, 'ACCIDNAME', ayListA[0].toString()); } if (AccitemsList.length > 0) { var AccitemsRaw = AccitemsList.getAt(0).raw; if (!AccitemsRaw.ISFCY) { e.record.set('FCYNO', 'RMB'); e.record.set('FCYEXRATE', 1); e.record.set('FCYAMT', 0); } else { var amount = Mul(FCYEXRATE, FCYAMT); if (AccitemsRaw.DC.toString() == "借") { e.record.set('AMTDR', amount); e.record.set('AMTCR', 0); } else { e.record.set('AMTDR', 0); e.record.set('AMTCR', amount); } } } } else if (e.colIdx == 6) { var sACCID = e.record.data['ACCID'].toString(); var FCYNO = e.record.data['FCYNO'].toString(); var FCYEXRATE = e.record.data['FCYEXRATE']; var FCYAMT = e.record.data['FCYAMT']; var sACCALL = e.record.data['ACCALL'].toString(); var ayListA = new Array(); ayListA = sACCALL.split("▁"); var AccitemsList = DsStoreQueryBy(this.storeCwAccitems, 'ACCIDNAME', (sACCID + "-" + ayListA[0].toString())); if (AccitemsList.length == 0) { AccitemsList = DsStoreQueryBy(this.storeCwAccitems, 'ACCIDNAME', ayListA[0].toString()); } if (AccitemsList.length > 0) { var AccitemsRaw = AccitemsList.getAt(0).raw; if (AccitemsRaw.ISFCY) { var amount = Mul(FCYEXRATE, FCYAMT); if (AccitemsRaw.DC.toString() == "借") { e.record.set('AMTDR', amount); e.record.set('AMTCR', 0); } else { e.record.set('AMTDR', 0); e.record.set('AMTCR', amount); } } else { if (AccitemsRaw.DC.toString() == "借") { e.record.set('AMTDR', FCYAMT); e.record.set('AMTCR', 0); } else { e.record.set('AMTDR', 0); e.record.set('AMTCR', FCYAMT); } e.record.set('FCYNO', 'RMB'); e.record.set('FCYEXRATE', 1); e.record.set('FCYAMT', 0); } } } else if (e.colIdx == 7) { var AMTDR = e.record.data['AMTDR']; if (AMTDR != 0) { e.record.set('AMTCR', 0); var FCYNO = e.record.data['FCYNO'].toString(); var FCYEXRATE = e.record.data['FCYEXRATE']; var FCYAMT = e.record.data['FCYAMT']; if (FCYNO.toString().trim() != 'RMB') { var amount = Div(AMTDR, FCYEXRATE); if (FCYAMT != amount) { e.record.set('FCYAMT', amount); } } } } else if (e.colIdx == 8) { var AMTCR = e.record.data['AMTCR']; if (AMTCR != 0) { e.record.set('AMTDR', 0); var FCYNO = e.record.data['FCYNO'].toString(); var FCYEXRATE = e.record.data['FCYEXRATE']; var FCYAMT = e.record.data['FCYAMT']; if (FCYNO.toString().trim() != 'RMB') { var amount = Div(AMTCR, FCYEXRATE); if (FCYAMT != amount) { e.record.set('FCYAMT', amount); } } } } }, 'beforeedit': function (editor, e, eOpts) { //if (e.colIdx == 4) { // var sACCID = e.record.data['ACCID'].toString(); // var sACCALL = e.record.data['ACCALL'].toString(); // var ayListA = new Array(); // ayListA = sACCALL.split("▁"); // var AccitemsList = DsStoreQueryBy(this.storeCwAccitems, 'ACCIDNAME', (sACCID + "-" + ayListA[0].toString())); // if (AccitemsList.length == 0) { // AccitemsList = DsStoreQueryBy(this.storeCwAccitems, 'ACCIDNAME', ayListA[0].toString()); // } // if (AccitemsList.length > 0) { // var AccitemsRaw = AccitemsList.getAt(0).raw; // if (AccitemsRaw.ISDEPTACC || AccitemsRaw.ISEMPLACC || AccitemsRaw.ISCORPACC || AccitemsRaw.ISITEMACC) { // return false; // } // } //} return true; } } }); //#endregion //#region 明细表-单据图片档案管理,需求编号:SR2017062800004 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, border: false, enableHdMenu: false, region: 'center', 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.panelDoc = new Ext.Panel({ id: "panelDoc", layout: "border", region: 'south', height: 200, frame: false, split: true, border: false, items: [this.gridDocList] }); //#endregion //#region 按钮Toolbar/框架/加载 _this = this; //this.EditBtn = new Ext.Button({ // text:'编 辑', //显示查询 // handler: function () { // if (_this.EditBtn.text == '编 辑') {//隐藏查询 // _this.gridList.reconfigure(_this.storeDetailList, _this.girdcolums); // _this.EditBtn.setText('禁止编辑'); //显示查询 // } else { // _this.EditBtn.setText('编 辑'); //隐藏查询 // _this.gridList.reconfigure(_this.storeDetailList, _this.girdcolumslist); // } // } //}); this.panelBtn = new Ext.Panel({ region: "north", border: false, tbar: [{ text: '添加明细', tooltip: '添加明细', id: "btnadd", iconCls: "btnadd", handler: function (button, event) { this.onAddClick(); }, scope: this }, { text: '插入明细', tooltip: '插入明细', id: "btninsert", iconCls: "btnadd", handler: function (button, event) { this.onInsertClick(); }, scope: this }, { text: '上移', tooltip: '上移', id: "btnup", // iconCls: "btnadd", handler: function (button, event) { this.onUpClick(); }, scope: this }, { text: '下移', tooltip: '下移', id: "btndown", // iconCls: "btnadd", handler: function (button, event) { this.onDownClick(); }, scope: this }, { text: '删除明细', tooltip: '删除明细', id: "btndel", iconCls: "btndelete", handler: function (button, event) { this.onDelClick(button, event); }, scope: this }, '-', { id: 'btnSave', text: "保存", iconCls: "btnsave", handler: function (button, event) { this.Save('0'); }, scope: this }, { id: 'btnSaveAndClose', text: "保存并关闭", handler: function (button, event) { this.Save('1'); }, scope: this }, { id: 'btnSaveAndNew', text: "保存并新建", handler: function (button, event) { this.Save('2'); }, scope: this }, { id: 'btnNew', text: "新建", handler: function (button, event) { this.GetAddText(); }, scope: this }, { id: 'btnCopy', text: "复制", handler: function (button, event) { this.GetCopyText(); }, scope: this }, { text: "关闭", handler: function (button, event) { window.close(); }, scope: this }, '-', { text: '打印', tooltip: '打印', id: "btnprint", iconCls: "btnprint", handler: function (button, event) { this.Print(button, event); }, scope: this }, { text: '删除凭证', tooltip: '删除凭证', id: "btndelAll", iconCls: "btndelete", handler: function (button, event) { this.onDeleteClick(button, event); }, scope: this }, '-', { text: "审核", id: "btISCHECKED", iconCls: "btislock", handler: function (button, event) { this.setISCHECKED(1); }, scope: this }, { text: "返审", id: "btNotISCHECKED", iconCls: "btnotislock", handler: function (button, event) { this.setISCHECKED(0); }, scope: this }, '-', { text: "上一条", id: "btPrevious", handler: function (button, event) { this.setPreviousLast(1); }, scope: this }, { text: "下一条", id: "btLast", handler: function (button, event) { this.setPreviousLast(2); }, scope: this } //, this.EditBtn ] }); //end 按钮Toolbar this.panelTop = new Ext.Panel({ border: false, layout: "border", region: "north", height: 98, items: [this.panelBtn, this.formHead] }); this.panelTop2 = new Ext.Panel({ border: false, layout: "border", region: "center", items: [this.gridList, this.formBottom] }); Ext.apply(this, { border: false, items: [this.panelTop, this.panelTop2, this.panelDoc] }); parentWin = window.parent.opener; if (this.ORDNO == undefined) { this.InitData(); } else { this.opStatus = 'edit'; condition = "ORDNO='" + this.ORDNO + "'"; _orderno = this.ORDNO; this.LoadData('edit', condition); //需求编号:SR2017062800004 var condition2 = "BSNO='" + this.ORDNO + "'"; this.storeDocList.on('beforeload', function (store) { Ext.apply(store.proxy.extraParams, { condition: condition2 }); }, this); this.storeDocList.load({ params: { condition: condition2 }, waitMsg: "正在刷新数据...", scope: this }); } Ext.Ajax.request({ waitMsg: '正在查询主表数据...', url: '/MvcShipping/RptCwGenlegAccitems/GetData', callback: function (options, success, response) { if (success) { var result = Ext.JSON.decode(response.responseText); if (!result.Success) { return; } data = result.data; var arrtmp = data.toString().split("&"); this.strCwSTARTGID = arrtmp[0].toString(); var strCwSTARTNAME = arrtmp[1].toString(); Ext.getCmp("voutitle").setText('('+strCwSTARTNAME+')记账凭证'); // var sZQ = "  当前登录账套:“" + strCwSTARTNAME + "”  当前财务账期:“" + sYear + "年第" + sMonth + "期”  "; } else { //Ext.MessageBox.alert('请求出现错误,请重试', response.responseText); } }, scope: this }); //#endregion }, //end initUIComponents //#region 加载事件 InitData: function () { this.opStatus = 'add'; var condition = ''; if (parentWin) { var ret = parentWin.OprationSwapJK(); this.opStatus = ret[0]; this.StoreList = ret[1]; this.EditRecord = ret[2]; this.sqlcontext = ret[3]; this.btnRefresh = ret[4]; this.tbVOUNO = ret[5]; this.btnAddCwVouchersJK = ret[6]; this.btnSelCwVouchersJK = ret[7]; this.tbVOUCHERNO = ret[8]; this.btnAddCwVouchers = ret[9]; this.btnSelCwVouchers = ret[10]; } // if (this.opStatus == 'edit') { condition = "ORDNO='" + this.EditRecord.data.ORDNO + "'"; _orderno = this.EditRecord.data.ORDNO; this.LoadData('edit', condition); //需求编号:SR2017062800004 var condition2 = "BSNO='" + this.EditRecord.data.ORDNO + "'"; this.storeDocList.on('beforeload', function (store) { Ext.apply(store.proxy.extraParams, { condition: condition2 }); }, this); this.storeDocList.load({ params: { condition: condition2 }, waitMsg: "正在刷新数据...", scope: this }); } else if (this.opStatus == 'add') { this.GetAddText(); } else if (this.opStatus == 'sel') { condition = "ORDNO in (select top 1 ORDNO from cw_vouchers_gl where VOUALLNO='" + this.sqlcontext + "')"; this.LoadData('edit', condition); this.setBtnStatusDisable(true); //需求编号:SR2017062800004 var condition2 = "BSNO='" + this.EditRecord.data.ORDNO + "'"; this.storeDocList.on('beforeload', function (store) { Ext.apply(store.proxy.extraParams, { condition: condition2 }); }, this); this.storeDocList.load({ params: { condition: condition2 }, waitMsg: "正在刷新数据...", scope: this }); } }, //end InitData LoadData: function (opStatus, condition) { this.serialNo = 0; //this.opStatus = opStatus; Ext.Ajax.request({ waitMsg: '正在查询主表数据...', url: '/MvcShipping/MsCwVouchersGl/GetData', 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.INFO, buttons: Ext.Msg.OK }); return; } // data = result.data; this.formHead.getForm().reset(); this.formHead.getForm().setValues(data); this.formBottom.getForm().reset(); this.formBottom.getForm().setValues(data); // var strVOUDATE = data.VOUDATE.toString(); var strY = strVOUDATE.substring(0, 4); var strM = strVOUDATE.substring(5, 7); this.formHead.getForm().findField('lbTitle2').setValue(strY + "年第" + strM + "期"); // this.storeDetailList.load({ params: { condition: condition }, waitMsg: "正在刷新数据...", scope: this }); if (data.FCY.toString() != "RMB") { this.onColumnsHidden(true, true); } // if (data.ISCHECKED) { this.setBtnStatusDisable(false); } else { this.setBtnStatusDisable(true); } } else { Ext.MessageBox.alert('请求出现错误,请重试', response.responseText); } }, scope: this }); //this.GetEditStatus(); }, // end LoadDate //#endregion //#region 保存 Save: function (type) { this.formHead.getForm().findField('ORDNO').setDisabled(false); var data = this.formHead.getForm().getValues(false, false, false); this.formHead.getForm().findField('ORDNO').setDisabled(true); // var sStatus = this.opStatus; if (this.opStatus == 'sel') { sStatus = 'edit'; } // var sAMTDR = 0; var sAMTCR = 0; for (var i = 0; i < this.storeDetailList.getCount(); i += 1) { sAMTDR += this.storeDetailList.getAt(i).get("AMTDR"); sAMTCR += this.storeDetailList.getAt(i).get("AMTCR"); //var member = this.storeDetailList.getAt(i); //bodydatas.push(member); } sAMTDR = usMoney(sAMTDR, 2, '', false); sAMTCR = usMoney(sAMTCR, 2, '', false); if (sAMTDR != sAMTCR) { // alert("录入借贷不平!请重新调整数据!"); Ext.Msg.show({ title: '提示', msg:'录入借贷不平!请重新调整数据!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); //费用名称不能为空!' return; } // var bodydatas = []; // var records = this.storeDetailList.getUpdatedRecords(); // 获取修改的行的数据,无法获取幻影数据 // var phantoms = this.storeDetailList.getNewRecords(); //获得幻影行 // records = records.concat(phantoms); //将幻影数据与真实数据合并 // if (records.length != 0) { // for (var i = 0; i < records.length; i += 1) { // var member = records[i]; // bodydatas.push(member); // } // } var errostr = ''; for (var i = 0; i < this.storeDetailList.getCount(); i += 1) { var member = this.storeDetailList.getAt(i); var records = DsStoreQueryBy(this.storeCwAccitems, 'ACCID', member.data.ACCID); if (records.getCount() > 0) { var accdata = records.getAt(0).data; var ai = 0; var corpi = 0; var depti = 0; var empli = 0; var itemi = 0; if (accdata.ISCORPACC) { ai = ai + 1; corpi = ai; } if (accdata.ISDEPTACC) { ai = ai + 1; depti = ai; } if (accdata.ISEMPLACC) { ai = ai + 1; empli = ai; } if (accdata.ISITEMACC) { ai = ai + 1; itemi = ai; } var accall = member.data.ACCALL; var accallarry = accall.split('▁'); if (accdata.ISCORPACC){ if ((accallarry.length < corpi + 1) || (accallarry.length >= corpi + 1 && accall[corpi] == '')) errostr = errostr + '科目:' + member.data.ACCID + ',行号:' + member.data.ITEMNO + ',核算客户不能为空!'; } if (accdata.ISDEPTACC) { if ((accallarry.length < depti + 1) || (accallarry.length >= depti + 1 && accall[depti] == '')) errostr = errostr + '科目:' + member.data.ACCID + ',行号:' + member.data.ITEMNO + ',核算部门不能为空!'; } if (accdata.ISEMPLACC) { if ((accallarry.length < empli + 1) || (accallarry.length >= empli + 1 && accall[empli] == '')) errostr = errostr + '科目:' + member.data.ACCID + ',行号:' + member.data.ITEMNO + ',核算人员不能为空!'; } if (accdata.ISITEMACC) { if ((accallarry.length < itemi + 1) || (accallarry.length >= itemi + 1 && accall[itemi] == '')) errostr = errostr + '科目:' + member.data.ACCID + ',行号:' + member.data.ITEMNO + ',核算项目不能为空!'; } } var EXPLAN = member.data.EXPLAN; if (EXPLAN == '') { Ext.Msg.show({ title:'提示', msg:'凭证摘要不能为空!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); return; }; var ACCID = member.data.ACCID; if (ACCID == '') { Ext.Msg.show({ title: '提示', msg: '科目代码不能为空!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); return; }; //var AMTDR = member.data.AMTDR; //var AMTCR = member.data.AMTCR; //if (AMTDR ==0&&AMTCR==0) { // Ext.Msg.show({ title: '提示', msg: '借方和贷方不能同时为0!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); // return; //}; bodydatas.push(member); } if (errostr != '') { // Ext.MessageBox.alert('提示', errostr); Ext.Msg.show({ title: '提示', msg: errostr, icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); //费用名称不能为空!' return; } this.setBtnStatusDisable(false); // if (bodydatas.length > 0) { var jsonBody = ConvertRecordsToJsonAll(bodydatas); var DelBody = ConvertRecordsToJsonAll(this.DelBody); Ext.Msg.wait('正在保存数据, 请稍侯..'); Ext.Ajax.request({ waitMsg: '正在保存数据...', url: '/MvcShipping/MsCwVouchersGl/SaveEdit', params: { opStatus: sStatus, data: Ext.JSON.encode(data), body: jsonBody, DelBody: DelBody }, callback: function (options, success, response) { if (success) { Ext.MessageBox.hide(); var jsonresult = Ext.JSON.decode(response.responseText); if (jsonresult.Success) { if (this.opStatus == 'add') { this.opStatus = 'edit'; } var returnData = jsonresult.Data; var condition = "ORDNO='" + returnData.ORDNO + "'"; this.formHead.getForm().findField('ORDNO').setDisabled(false); this.formHead.getForm().findField('ORDNO').setValue(returnData.ORDNO); this.formHead.getForm().findField('VOUNO').setValue(returnData.VOUNO); this.formHead.getForm().findField('VOUNO').show(); Ext.getCmp('VOUNO_HAO').show(); this.formHead.getForm().findField('ORDNO').setDisabled(true); this.formBottom.getForm().reset(); this.formBottom.getForm().setValues(returnData); this.DelBody = []; // if (this.ORDNO == undefined) { if (this.btnRefresh == null) { this.tbVOUCHERNO.setValue(returnData.VOUALLNO); this.btnAddCwVouchers.hide(); this.btnSelCwVouchers.show(); } else { var btn = opener.document.getElementById(this.btnRefresh.id); btn.click(); } } // this.storeDetailList.load({ params: { condition: condition }, waitMsg: "正在刷新数据...", callback: function (options, success, response) { if (type == '0') { var strVOUDATE = returnData.VOUDATE.toString(); var strY = strVOUDATE.substring(0, 4); var strM = strVOUDATE.substring(5, 7); this.formHead.getForm().findField('lbTitle2').setValue(strY + "年第" + strM + "期"); } else if (type == '1') { window.close(); } else if (type == '2') { this.GetAddText(); } }, scope: this }); // this.setBtnStatusDisable(true); } else { Ext.Msg.show({ title: '错误', msg: jsonresult.Message, icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); this.setBtnStatusDisable(true); } } else { Ext.Msg.show({ title: '警告', msg: '服务器响应出错', icon: Ext.Msg.WARNING, buttons: Ext.Msg.OK }); this.setBtnStatusDisable(true); } }, scope: this }); } }, //end save //#endregion //#region 新增明细 onAddClick: function () { var ORDNO = this.formHead.getForm().findField('ORDNO').getValue(); var n = this.storeDetailList.getCount(); var sEXPLAN = ""; if (n > 0) { sEXPLAN = this.storeDetailList.getAt(n - 1).get("EXPLAN"); } // var record = Ext.create('MsCwVouitemsGlModel', { GID: '*', ORDNO: ORDNO, ITEMNO: n + 1, EXPLAN: sEXPLAN, ACCALL: '', FCYNO: '', //RMB FCYEXRATE: 1, FCYAMT: 0, AMTDR: 0, AMTCR: 0, ACCID: '', DC: 'D' }); this.storeDetailList.add(record); this.gridListCellEditing.startEditByPosition({ row: n, column: 2 }); //n - 1 }, onInsertClick: function () { var ORDNO = this.formHead.getForm().findField('ORDNO').getValue(); var selectedRecords = this.gridList.selModel.getSelection(); var rec = selectedRecords[0]; var n = this.storeDetailList.indexOf(rec); var sEXPLAN = ""; if (n > 0) { sEXPLAN = this.storeDetailList.getAt(n - 1).get("EXPLAN"); } for (var i = n+1; i < this.storeDetailList.getCount() ; i += 1) { var member = this.storeDetailList.getAt(i); member.set("ITEMNO", member.data.ITEMNO+1); member.commit(); } // var record = Ext.create('MsCwVouitemsGlModel', { GID: '*', ORDNO: ORDNO, ITEMNO: n + 2, EXPLAN: sEXPLAN, ACCALL: '', FCYNO: '', //RMB FCYEXRATE: 1, FCYAMT: 0, AMTDR: 0, AMTCR: 0, ACCID: '', DC: 'D' }); this.storeDetailList.insert(n+1,record); this.gridListCellEditing.startEditByPosition({ row: n+1, column: 2 }); //n - 1 }, onDownClick: function () { var ORDNO = this.formHead.getForm().findField('ORDNO').getValue(); var selectedRecords = this.gridList.selModel.getSelection(); var rec = selectedRecords[0]; var n = this.storeDetailList.indexOf(rec); var member = this.storeDetailList.getAt(n+1); member.set("ITEMNO", member.data.ITEMNO-1); member.commit(); this.storeDetailList.remove(rec); rec.data.ITEMNO = rec.data.ITEMNO + 1; this.storeDetailList.insert(n + 1, rec); this.gridListCellEditing.startEditByPosition({ row: n + 1, column: 2 }); //n - 1 }, onUpClick: function () { var ORDNO = this.formHead.getForm().findField('ORDNO').getValue(); var selectedRecords = this.gridList.selModel.getSelection(); var rec = selectedRecords[0]; var n = this.storeDetailList.indexOf(rec); if (n==0) return; var member = this.storeDetailList.getAt(n - 1); member.set("ITEMNO", member.data.ITEMNO+1); member.commit(); this.storeDetailList.remove(rec); rec.data.ITEMNO = rec.data.ITEMNO -1; this.storeDetailList.insert(n - 1, rec); this.gridListCellEditing.startEditByPosition({ row: n-1, column: 2 }); //n - 1 }, //#endregion //#region 删除明细 onDelClick: function () { var selectedRecords = this.gridList.selModel.getSelection(); for (var i = 0; i < selectedRecords.length; i++) { var rec = selectedRecords[i]; if (rec.ContractNo != "" || rec.ContractNo != "*") //如果是新增但没有保存的数据,没有必要提交到后台 { this.DelBody.push(rec); } this.storeDetailList.remove(selectedRecords[i]); } }, //#endregion //#region 删除凭证 onDeleteClick: function (button, event) { var sError = ""; var gids = this.formHead.getForm().findField('ORDNO').getValue(); var iscopy = this.formHead.getForm().findField('ISCOPY').getValue(); if (gids.trim() == "") { Ext.Msg.show({ title: '提示', msg: '请先保存凭证!' + sError, icon: Ext.Msg.WARNING, buttons: Ext.Msg.OK }); return; } else { Ext.MessageBox.confirm('提示', '确定删除该记录吗?', function (btn) { if (btn == 'yes') { Ext.Msg.wait('正在删除数据...'); Ext.Ajax.request({ waitMsg: '正在删除数据...', url: '/MvcShipping/MsCwVouchersGl/Delete', params: { gids: gids, iscopy:iscopy }, callback: function (options, success, response) { if (success) { var jsonresult = Ext.JSON.decode(response.responseText); if (jsonresult.Success) { //this.storeList.remove(record); //Ext.Msg.show({ title: '提示', msg: jsonresult.Message + sError, icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); if (this.btnRefresh == null) { this.tbVOUCHERNO.setValue(""); this.btnAddCwVouchers.show(); this.btnSelCwVouchers.hide(); } else { var btn = opener.document.getElementById(this.btnRefresh.id); btn.click(); } window.close(); } 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.WARNING, buttons: Ext.Msg.OK }); }, success: function (response, options) { }, scope: this }); //end Ext.Ajax.request } }, this); } }, //#endregion //#region 新建 GetAddText: function () { this.opStatus = 'add'; var ORDNO = '*'; this.formHead.getForm().findField('ORDNO').setDisabled(false); this.formHead.getForm().findField('ORDNO').setValue('*'); this.formHead.getForm().findField('ORDNO').setDisabled(true); // this.storeDetailList.removeAll(); //清空所有; this.onColumnsHidden(true, false); var VKNO = this.formHead.getForm().findField('VKNO').getValue(); // Ext.Ajax.request({ waitMsg: '正在查询委托编号状态...', url: '/MvcShipping/MsBaseInfo/GetCwVOUNO', params: { VKNO: VKNO }, 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.INFO, buttons: Ext.Msg.OK }); return; } // data = result.data; var arrayList = new Array(); arrayList = data.split("~"); var strY = arrayList[0].toString(); var strM = arrayList[1].toString(); var sVOUNO = arrayList[2].toString(); var strVOUNO = arrayList[3].toString(); var strVOUDATE = arrayList[4].toString(); var strACCDATE = arrayList[5].toString(); this.formHead.getForm().findField('VOUNO').setValue(sVOUNO); this.formHead.getForm().findField('lbTitle2').setValue(strY + "年第" + strM + "期"); // this.formHead.getForm().findField('VOUDATE').setValue(strVOUDATE); Ext.getCmp('VOUDATE').setMinValue(strACCDATE + "-01"); // this.formHead.getForm().findField('VOUNO').hide(); Ext.getCmp('VOUNO_HAO').hide(); // this.setBtnStatusDisable(true); } else { Ext.MessageBox.alert('请求出现错误,请重试', response.responseText); } }, scope: this }); // this.onAddClick(); }, GetCopyText: function () { this.opStatus = 'add'; var ORDNO = '*'; this.formHead.getForm().findField('ORDNO').setDisabled(false); this.formHead.getForm().findField('ORDNO').setValue('*'); this.formHead.getForm().findField('ORDNO').setDisabled(true); for (var i =0; i < this.storeDetailList.getCount() ; i += 1) { var member = this.storeDetailList.getAt(i); member.set("GID",'*'); member.commit(); } // // this.storeDetailList.removeAll(); //清空所有; // this.onColumnsHidden(true, false); var VKNO = this.formHead.getForm().findField('VKNO').getValue(); // Ext.Ajax.request({ waitMsg: '正在查询委托编号状态...', url: '/MvcShipping/MsBaseInfo/GetCwVOUNO', params: { VKNO: VKNO }, 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.INFO, buttons: Ext.Msg.OK }); return; } // data = result.data; var arrayList = new Array(); arrayList = data.split("~"); var strY = arrayList[0].toString(); var strM = arrayList[1].toString(); var sVOUNO = arrayList[2].toString(); var strVOUNO = arrayList[3].toString(); var strVOUDATE = arrayList[4].toString(); var strACCDATE = arrayList[5].toString(); //this.formHead.getForm().findField('VOUNO').setValue(sVOUNO); this.formHead.getForm().findField('VOUNO').setValue("");//复制时清空凭证号 this.formHead.getForm().findField('lbTitle2').setValue(strY + "年第" + strM + "期"); // this.formHead.getForm().findField('VOUDATE').setValue(strVOUDATE); Ext.getCmp('VOUDATE').setMinValue(strACCDATE + "-01"); // this.formHead.getForm().findField('VOUNO').hide(); Ext.getCmp('VOUNO_HAO').hide(); // this.setBtnStatusDisable(true); } else { Ext.MessageBox.alert('请求出现错误,请重试', response.responseText); } }, scope: this }); // }, //#endregion //#region 按钮函数 onColumnsHidden: function (isHide, blISFCY) { if (blISFCY) { this.gridList.columns[4].show(); this.gridList.columns[5].show(); this.gridList.columns[6].show(); } else { if (isHide) { this.gridList.columns[4].hide(); this.gridList.columns[5].hide(); this.gridList.columns[6].hide(); } } }, GetEditStatus: function () { var canedit = false; _this = this; Ext.Ajax.request({ waitMsg: '正在查询委托编号状态...', url: '/MvcShipping/MsBaseInfo/GetRuleEdit', params: { rulename: '委托编号', ruletype: '4' }, callback: function (options, success, response) { if (success) { var custno = _this.formHead.getForm().findField('VOUALLNO'); custno.setReadOnly(true); } else { Ext.MessageBox.alert('请求出现错误,请重试', response.responseText); } }, scope: this }); }, Print: function (button, event) { if (this.opStatus == "edit" || this.opStatus == "sel") { var sql = ""; if (this.opStatus == "edit") { var ORDNO = this.formHead.getForm().findField('ORDNO').getValue(); sql = "ORDNO='" + ORDNO + "'"; } else if (this.opStatus == "sel") { sql = "ORDNO in (select top 1 ORDNO from cw_vouchers_gl where VOUALLNO='" + this.sqlcontext + "')"; } Ext.Ajax.request({ waitMsg: '正在组织数据, 请稍侯...', url: '/MvcShipping/MsCwVouchersGl/GetDataListStr', params: { condition: sql, printstr: 'true' }, callback: function (options, success, response) { if (success) { var ddd = Ext.MessageBox.isVisible(); if (Ext.MessageBox.isVisible()) { Ext.MessageBox.hide(); } var jsonresult = Ext.JSON.decode(response.responseText); if (jsonresult.Success) { var returnStr = jsonresult.data; var printType = 'MsCwVouchersGlIndex'; var sql1 = returnStr; var sql2 = ""; var sql3 = ""; var sql4 = ""; var sql5 = ""; var sql6 = ""; PrintComm(printType, sql1, sql2, sql3, sql4, sql5, sql6); } 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 }); } }, scope: this }); } }, setBtnStatusDisable: function (enable) { var CREATEUSERNAME = this.formBottom.getForm().findField('CREATEUSERNAME').getValue(); _this = this; var canedit = false; if (enable) { if (this.StoreOpRangeEdit.getCount() > 0) { var records = DsStoreQueryBy(_this.StoreOpRangeEdit, 'OPID', CREATEUSERNAME); if (records.getCount() > 0) { this.setBtnStatus(true); } else this.setBtnStatus(false); } else { this.StoreOpRangeEdit.load({ params: { optype: "MODVOUCHERGL" }, callback: function (r, options, success) { if (success) { if (r.length != 0) { var records = DsStoreQueryBy(_this.StoreOpRangeEdit, 'OPID', CREATEUSERNAME); if (records.getCount() > 0) { canedit = true; } else { canedit = false; } } else { canedit = false; } _this.setBtnStatus(canedit); } } }); } } else this.setBtnStatus(enable); }, setBtnStatus: function (enable) { var sbtnadd = Ext.getCmp('btnadd'); var sbtnSave = Ext.getCmp('btnSave'); var sbtnSaveAndClose = Ext.getCmp('btnSaveAndClose'); var sbtnSaveAndNew = Ext.getCmp('btnSaveAndNew'); var sbtnNew = Ext.getCmp('btnNew'); var sbtndel = Ext.getCmp('btndel'); var sbtnprint = Ext.getCmp('btnprint'); var sbtISCHECKED = Ext.getCmp('btISCHECKED'); var sbtNotISCHECKED = Ext.getCmp('btNotISCHECKED'); var sbtPrevious = Ext.getCmp('btPrevious'); var sbtLast = Ext.getCmp('btLast'); var sbtndelAll = Ext.getCmp('btndelAll'); var sbtnCopy = Ext.getCmp('btnCopy'); var sbtninsert = Ext.getCmp('btninsert'); var sbtnup = Ext.getCmp('btnup'); var sbtndown = Ext.getCmp('btndown'); if (enable) { sbtnadd.enable(); sbtnSave.enable(); sbtnSaveAndClose.enable(); sbtnSaveAndNew.enable(); sbtnNew.enable(); sbtndel.enable(); sbtnprint.enable(); sbtISCHECKED.enable(); sbtNotISCHECKED.disable(); sbtnCopy.enable(); sbtninsert.enable(); sbtnup.enable(); sbtndown.enable(); Ext.getCmp("btISCHECKED").show(); //显示按钮 Ext.getCmp("btNotISCHECKED").hide(); //隐藏按钮 sbtndelAll.hide(); if (this.opStatus == "add") { sbtnprint.disable(); sbtISCHECKED.disable(); sbtNotISCHECKED.disable(); sbtPrevious.hide(); sbtLast.hide(); } else if (this.opStatus == "edit") { sbtPrevious.show(); sbtLast.show(); } else if (this.opStatus == "sel") { sbtnadd.hide(); sbtnSaveAndNew.hide(); sbtnNew.hide(); sbtPrevious.hide(); sbtLast.hide(); sbtndelAll.show(); } } else { sbtnadd.disable(); sbtnSave.disable(); sbtnSaveAndClose.disable(); sbtnSaveAndNew.disable(); sbtnNew.enable(); sbtndel.disable(); sbtnCopy.enable(); sbtninsert.disable(); sbtnup.disable(); sbtndown.disable(); sbtISCHECKED.disable(); sbtNotISCHECKED.enable(); Ext.getCmp("btISCHECKED").hide(); //隐藏按钮 Ext.getCmp("btNotISCHECKED").show(); //显示按钮 sbtndelAll.hide(); if (this.opStatus == "add") { sbtnprint.disable(); sbtISCHECKED.disable(); sbtNotISCHECKED.disable(); sbtPrevious.hide(); sbtLast.hide(); } else if (this.opStatus == "edit") { sbtPrevious.show(); sbtLast.show(); } else if (this.opStatus == "sel") { sbtnadd.hide(); sbtnSaveAndNew.hide(); sbtnNew.hide(); sbtPrevious.hide(); sbtLast.hide(); sbtndelAll.show(); } } }, onNextKeyClick: function (col) { var rows = this.gridList.getSelectionModel().getSelection(); var row = rows[rows.length - 1]; var s = this.gridList.getStore(); var number = s.indexOf(row); this.gridListCellEditing.startEditByPosition({ row: number, column: col }); }, //#endregion //#region 审核/返审 setISCHECKED: function (iTYPE) { if (this.opStatus == "edit" || this.opStatus == "sel") { Ext.Ajax.request({ waitMsg: '正在查询主表数据...', url: '/MvcShipping/RptCwGenlegAccitems/GetData', callback: function (options, success, response) { if (success) { var result = Ext.JSON.decode(response.responseText); if (!result.Success) { return; } data = result.data; var arrtmp = data.toString().split("&"); this.strCwSTARTGID = arrtmp[0].toString(); var strCwSTARTNAME = arrtmp[1].toString(); var strCwACCDATE = arrtmp[2].toString(); var sYear = arrtmp[3].toString(); var sMonth = arrtmp[4].toString(); // var iError = 0; if (this.EditRecord != null) { //var kjqj = this.EditRecord.data.VOUDATE.toString().substr(0, 7); var kjqj = this.formHead.getForm().findField('VOUDATE').getRawValue().toString().substr(0, 7); //kjqj = "2015-03"; if (kjqj < strCwACCDATE) { Ext.Msg.show({ title: '警告', msg: '已经结转的期间凭证,不允许操作!', icon: Ext.Msg.WARNING, buttons: Ext.Msg.OK }); return; } } // var sNAME = "审核"; if (iTYPE == 0) { sNAME = "返审"; if (this.StoreOpRange2.getCount() == 0) { Ext.Msg.show({ title: '警告', msg: '权限不足,不允许操作!', icon: Ext.Msg.WARNING, buttons: Ext.Msg.OK }); return; } else { var records = DsStoreQueryBy(this.StoreOpRange2, 'OPID', SHOWNAME); //制单人this.EditRecord.data.PREPARED if (records.getCount() > 0) { } else { Ext.Msg.show({ title: '警告', msg: '权限不足,不允许操作!', icon: Ext.Msg.WARNING, buttons: Ext.Msg.OK }); return; } } } else {//审核 if (this.StoreOpRange.getCount() == 0) { Ext.Msg.show({ title: '警告', msg: '权限不足,不允许操作!', icon: Ext.Msg.WARNING, buttons: Ext.Msg.OK }); return; } else { var records = DsStoreQueryBy(this.StoreOpRange, 'OPID', SHOWNAME); //制单人this.EditRecord.data.PREPARED if (records.getCount() > 0) { } else { Ext.Msg.show({ title: '警告', msg: '权限不足,不允许操作!', icon: Ext.Msg.WARNING, buttons: Ext.Msg.OK }); return; } } } // var strGIDs = this.formHead.getForm().findField('ORDNO').getValue(); //this.EditRecord.data.ORDNO if (strGIDs.toString().trim() == "" || strGIDs.toString().trim() == "*") { alert("请先保存凭证!"); return; } else { //Ext.MessageBox.confirm('提示', '确定' + sNAME + '吗?', function (btn) { //if (btn == 'yes') { Ext.Msg.wait('正在' + sNAME + '...'); Ext.Ajax.request({ waitMsg: '正在' + sNAME + '...', url: '/MvcShipping/MsCwVouchersGl/setISCHECKED', params: { gids: strGIDs, iTYPE: iTYPE, iOK: 0, iSkip: 0 }, callback: function (options, success, response) { if (success) { var jsonresult = Ext.JSON.decode(response.responseText); if (jsonresult.Success) { //Ext.Msg.show({ title: '提示', msg: '操作完成!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); Ext.Msg.hide(); //if (jsonresult.Message.toString().indexOf("0条。") <0) { if (sNAME == "审核") { this.setBtnStatusDisable(false); } else { this.setBtnStatusDisable(true); } //} //else { // Ext.Msg.show({ title: '错误', msg: jsonresult.Message, icon: Ext.Msg.ERROR, 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.WARNING, buttons: Ext.Msg.OK }); }, success: function (response, options) { }, scope: this }); //} //}, this); } } else { //Ext.MessageBox.alert('请求出现错误,请重试', response.responseText); } }, scope: this }); } else { alert("请先保存凭证!"); return; } }, //#endregion //#region 1.上一条 / 2.下一条 setPreviousLast: function (iTYPE) { if (this.opStatus == "edit") { var strORDNO = this.formHead.getForm().findField('ORDNO').getValue(); Ext.Ajax.request({ waitMsg: '正在查询主表数据...', url: '/MvcShipping/MsCwVouchersGl/setPrevious', params: { iTYPE: iTYPE, ORDNO: strORDNO, strCondition: this.sqlcontext }, 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.INFO, buttons: Ext.Msg.OK }); return; } // condition = "ORDNO='" + result.Message.toString() + "'"; this.LoadData('edit', condition); _orderno = result.Message.toString(); var condition2 = "BSNO='" + result.Message.toString() + "'"; this.Loading = true; this.storeDocList.load({ params: { condition: condition2 }, waitMsg: "正在查询数据...", scope: this, callback: function () { this.Loading = false; } }); } else { Ext.Msg.show({ title: '提示', msg: result.Message, icon: Ext.MessageBox.INFO, buttons: Ext.Msg.OK }); return; //Ext.MessageBox.alert('请求出现错误,请重试', response.responseText); } }, scope: this }); } }, //#endregion //#region 层_显示信息 showContactForm: function (win, strValue, strOriginalValue, AccitemsRaw, selections, isFocus) { var required = '*'; if (!win) { var strITEM = ''; //#region formSearch 下拉框信息加载 //科目加载 this.storeCwAccitems2 = Ext.create('DsExt.ux.RefTableStore', { model: 'DsShipping.ux.CwAccitemsGlModel', //proxy: { url: '/CommMng/BasicDataRef/GetCwAccitemsGl' } proxy: { url: '/CommMng/BasicDataRef/GetCwAccitemsGlAll' } }); this.storeCwAccitems2.loadData(this.storeCwAccitems.data.items); // this.storeCwAccitems2.load({ params: { condition: "DETAILED=1 and ISENABLE=1" } }); this.comboxACCNAME2 = Ext.create('DsExt.ux.RefTableCombox', { fieldLabel: '科目名称', store: this.storeCwAccitems2, forceSelection: true, //输入值是否严格为待选列表中存在的值 id: 'ACCNAME2', name: 'ACCNAME2', valueField: 'ACCNAME', displayField: 'ACCIDNAME', allowBlank: false, enableKeyEvents: true, //激活键盘事件 listeners: { scope: this, 'select': function (combo, records, eOpts) { if (combo.value != "") { var AccitemsList = DsStoreQueryBy(this.storeCwAccitems2, 'ACCIDNAME', combo.rawValue.toString()); if (AccitemsList.length > 0) { var AccitemsRaw = AccitemsList.getAt(0).raw; if (AccitemsRaw.ISCORPACC) { Ext.getCmp('CustNAME').show(); } else { Ext.getCmp('CustNAME').setValue(""); Ext.getCmp('CustNAME').hide(); } if (AccitemsRaw.ISDEPTACC) { Ext.getCmp('DeptName').show(); } else { Ext.getCmp('DeptName').setValue(""); Ext.getCmp('DeptName').hide(); } if (AccitemsRaw.ISEMPLACC) { Ext.getCmp('SALE').show(); } else { Ext.getCmp('SALE').setValue(""); Ext.getCmp('SALE').hide(); } if (AccitemsRaw.ISITEMACC) { Ext.getCmp('ITEMNAME').show(); } else { Ext.getCmp('ITEMNAME').setValue(""); Ext.getCmp('ITEMNAME').hide(); } //是不是外币,都默认为RMB var selections = this.gridList.getSelectionModel().getSelection(); //获得选中的项 if (AccitemsRaw.ISFCY) { //如果是外币,则默认传送'' Ext.Ajax.request({ waitMsg: '正在查询汇率值...', url: '/MvcShipping/MsCwVouchersGl/GetFCYEXRATEBYVOUDATE', params: { FCY: '', LINKGID: AccitemsRaw.GID.toString() }, 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.INFO, buttons: Ext.Msg.OK }); return; } var strArg = result.data.toString().split(","); var FCYNO = strArg[0].toString(); // var strFCYEXRATE = selections[0].data.FCYEXRATE; var strFCYEXRATE = strArg[1].toString(); if (strFCYEXRATE == 1) { strFCYEXRATE = Div(strArg[1].toString(), 1, 5); } selections[0].set('FCYEXRATE', strFCYEXRATE.toString()); selections[0].set('FCYNO', FCYNO); selections[0].set('CURRENCY', FCYNO); // var AMTDR = selections[0].data.AMTDR; var AMTCR = selections[0].data.AMTCR; var AMT = 0; if (AMTDR != 0) { AMT = AMTDR; } if (AMTCR != 0) { AMT = AMTCR; } selections[0].set('FCYAMT', Div(AMT, strFCYEXRATE, 2)); // this.onColumnsHidden(false, AccitemsRaw.ISFCY); } else { Ext.MessageBox.alert('请求出现错误,请重试', response.responseText); } }, scope: this }); } else { selections[0].set('FCYEXRATE', 1); selections[0].set('FCYNO', 'RMB'); selections[0].set('FCYAMT', 0); } } } // }, //'keypress': { 'keyup': { fn: function (_field, e) { if (e.getKey() == 118) {//F7 DsOpenEditWin('/MvcShipping/MsCwAccitemsGl/Index', "科目信息", "500", "800", (window.screen.availHeight / 2 - 300), (window.screen.availWidth / 2 - 500)); } }, scope: this } } }); //客户加载 this.storeCustCode = Ext.create('DsExt.ux.RefTableStore', { model: 'DsShipping.ux.CustomRefModel', proxy: { url: '/CommMng/BasicDataRef/GetCustomRefListRm' } }); //this.storeCustCode.load({ params: { condition: "((FARCODE!='' and FARCODE is not null) or (FAPCODE!='' and FAPCODE is not null))"} }); // this.storeCustCode.load({ params: { condition: ""} }); this.comboxCust = Ext.create('DsExt.ux.RefTableCombox', { fieldLabel: '客户', store: this.storeCustCode, forceSelection: true, queryMode: 'remote', minChars: 1, queryParam: 'CODENAME', //focusOnToFront: true, selectOnFocus: true, id: 'CustNAME', name: 'CustNAME', valueField: 'CustName', displayField: 'CodeAndName', //allowBlank: false, enableKeyEvents: true, //激活键盘事件 listeners: { scope: this, 'focus': { fn: function (e) { e.expand(); //this.doQuery(this.allQuery, true); }, buffer: 200 } } }); //部门加载 this.storeDept = Ext.create('DsExt.ux.RefTableStore', { model: 'DsShipping.ux.DeptModel', proxy: { url: '/CommMng/BasicDataRef/GetDeptListRm' } }); //this.storeDept.load({ params: { condition: "(FINANCESOFTCODE!='' and FINANCESOFTCODE is not null)"} }); this.storeDept.load({ params: { condition: ""} }); this.comboxDept = Ext.create('DsExt.ux.RefTableCombox', { fieldLabel: '部门', store: this.storeDept, id: 'DeptName', name: 'DeptName', queryMode: 'remote', minChars: 1, queryParam: 'CODENAME', valueField: 'DeptName', displayField: 'NOANDNAME', forceSelection: true, //allowBlank: false, enableKeyEvents: true, //激活键盘事件 listeners: { scope: this, 'focus': { fn: function (e) { e.expand(); //this.doQuery(this.allQuery, true); }, buffer: 200 } // 'keyup': { // fn: function (_field, e) { // if (e.getKey() == 118) {//F7 // DsOpenEditWin('../../ParameterSet/ATSysDeptSet.aspx?mod=modATSysDeptSet&ISFINANCESOFTCODE=true', "部门信息", "650", "900", (window.screen.availHeight / 2 - 300), (window.screen.availWidth / 2 - 500)); // } // }, // scope: this // }, // 'select': function (combo, records, eOpts) { // Ext.Ajax.request({ // waitMsg: '正在查询是否已经维护财务代码...', // url: '/MvcShipping/MsCwVouchersGl/GetISFINANCESOFTCODE', // params: { // TYPE: 'DeptName', // VALUE: combo.value // }, // 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.INFO, buttons: Ext.Msg.OK }); // combo.setValue(""); // return; // } // strFINANCESOFTCODE = result.data; // combo.setValue(strFINANCESOFTCODE); // } else { // Ext.MessageBox.alert('请求出现错误,请重试', response.responseText); // } // }, // scope: this // }); // } } }); //人员信息加载 this.storeOpCode = Ext.create('DsExt.ux.RefTableStore', { model: 'DsShipping.ux.UserRefModel', proxy: { url: '/CommMng/BasicDataRef/GetUserRefList' } }); //this.storeOpCode.load({ params: { condition: "(FINANCESOFTCODE!='' and FINANCESOFTCODE is not null)"} }); this.storeOpCode.load(); this.comboxSALE = Ext.create('DsExt.ux.RefTableCombox', { fieldLabel: '人员', store: this.storeOpCode, id: 'SALE', name: 'SALE', valueField: 'UserName', displayField: 'CodeAndName', //value: SHOWNAME, forceSelection: true, enableKeyEvents: true, //激活键盘事件 listeners: { scope: this, 'focus': { fn: function (e) { e.expand(); //this.doQuery(this.allQuery, true); }, buffer: 200 } // 'select': function (combo, records, eOpts) { // Ext.Ajax.request({ // waitMsg: '正在查询是否已经维护财务代码...', // url: '/MvcShipping/MsCwVouchersGl/GetISFINANCESOFTCODE', // params: { // TYPE: 'SALE', // VALUE: combo.value // }, // 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.INFO, buttons: Ext.Msg.OK }); // combo.setValue(""); // return; // } // strFINANCESOFTCODE = result.data; // combo.setValue(strFINANCESOFTCODE); // } else { // Ext.MessageBox.alert('请求出现错误,请重试', response.responseText); // } // }, // scope: this // }); // }, // 'keyup': { // fn: function (_field, e) { // if (e.getKey() == 118) {//F7 // DsOpenEditWin('../../ParameterSet/ATUserSet.aspx?mod=modATUser&ISFINANCESOFTCODE=true', "人员信息", "650", "900", (window.screen.availHeight / 2 - 300), (window.screen.availWidth / 2 - 500)); // } // }, // scope: this // } } }); //项目加载 this.storeCwItem = Ext.create('DsExt.ux.RefTableStore', { model: 'DsShipping.ux.CwItemModel', proxy: { url: '/CommMng/BasicDataRef/GetCwItemList' } }); this.storeCwItem.load(); //this.storeCwItem.load({ params: { condition: "(FINANCESOFTCODE!='' and FINANCESOFTCODE is not null)"} }); this.comboxCwItem = Ext.create('DsExt.ux.RefTableCombox', { fieldLabel: '项目', store: this.storeCwItem, forceSelection: true, id: 'ITEMNAME', name: 'ITEMNAME', valueField: 'ITEMNAME', displayField: 'CodeAndName', //CodeAndName enableKeyEvents: true, //激活键盘事件 listeners: { scope: this, 'focus': { fn: function (e) { e.expand(); //this.doQuery(this.allQuery, true); }, buffer: 200 } // 'select': function (combo, records, eOpts) { // Ext.Ajax.request({ // waitMsg: '正在查询是否已经维护财务代码...', // url: '/MvcShipping/MsCwVouchersGl/GetISFINANCESOFTCODE', // params: { // TYPE: 'ITEMNAME', // VALUE: combo.value // }, // 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.INFO, buttons: Ext.Msg.OK }); // combo.setValue(""); // return; // } // strFINANCESOFTCODE = result.data; // combo.setValue(strFINANCESOFTCODE); // } else { // Ext.MessageBox.alert('请求出现错误,请重试', response.responseText); // } // }, // scope: this // }); // } } }); //#endregion //#region 编辑formDiv 基本信息 var formDiv = Ext.widget('form', { id: 'formDiv', border: false, bodyPadding: 10, fieldDefaults: { labelAlign: 'right', labelWidth: 60, labelStyle: 'font-weight:bold' }, items: [this.comboxACCNAME2, this.comboxCust, this.comboxDept, this.comboxSALE, this.comboxCwItem], buttons: [{ text: '取消', handler: function () { //var selections = this.gridList.getSelectionModel().getSelection(); //获得选中的项 selections[0].set('ACCALL', strOriginalValue); this.up('form').getForm().reset(); //this.up('window').hide(); this.up('window').close(); } }, { id: 'tijiao', text: '提交', handler: function (options, success, response) { //var _this2 = Ext.getCmp('formDiv'); //if (!_this2.getForm().isValid()) { // return; //} this.GetSubmit(win, selections, this, strITEM); //#region GetSubmit函数前身 //var strACCNAME2 = this.up('form').getForm().findField('ACCNAME2').getValue(); //var ls = strACCNAME2; //if (this.up('form').getForm().findField('CustNAME').getValue() != null) { // var CustNAME = this.up('form').getForm().findField('CustNAME').getValue(); // if (CustNAME.toString().trim() != "") { // ls += "▁" + CustNAME; // } //} //if (this.up('form').getForm().findField('DeptName').getValue() != null) { // var DeptName = this.up('form').getForm().findField('DeptName').getValue(); // if (DeptName.toString().trim() != "") { // ls += "▁" + DeptName; // } //} //if (this.up('form').getForm().findField('SALE').getValue() != null) { // var SALE = this.up('form').getForm().findField('SALE').getValue(); // if (SALE.toString().trim() != "") { // ls += "▁" + SALE; // } //} //if (this.up('form').getForm().findField('ITEMNAME').getValue() != null) { // var ITEMNAME = this.up('form').getForm().findField('ITEMNAME').getValue(); // if (ITEMNAME.toString().trim() != "") { // ls += "▁" + ITEMNAME; // } //} //selections[0].set('ACCALL', ls); //// //this.up('form').getForm().reset(); //this.up('window').hide(); //#endregion }, scope: this }], listeners: { scope: this, //'beforeload': function () { 'render': function (thisDiv, thisExtend) { //#region 加载下拉框信息 // this.storeCwAccitems.load({ async: false, params: { condition: "DETAILED=1" }, scope: this }); // this.storeCustCode.load({ async: false, params: { condition: ""} }); this.storeDept.load({ async: false, params: { condition: ""} }); this.storeOpCode.load({ async: false }); this.storeCwItem.load({ async: false }); //#endregion //#region 显示/隐藏下拉框 var sFocus = ""; Ext.getCmp('ACCNAME2').hide(); //var strITEM = "ACCNAME2"; strITEM = "ACCNAME2"; if (AccitemsRaw.ISCORPACC) { //thisDiv.getForm().findField('CustNAME').hidden = false; Ext.getCmp('CustNAME').show(); strITEM += "▁CustNAME"; sFocus += ",1"; } else { //thisDiv.getForm().findField('CustNAME').hidden = true; Ext.getCmp('CustNAME').setValue(""); Ext.getCmp('CustNAME').hide(); } // if (AccitemsRaw.ISDEPTACC) { Ext.getCmp('DeptName').show(); strITEM += "▁DeptName"; sFocus += ",2"; } else { Ext.getCmp('DeptName').setValue(""); Ext.getCmp('DeptName').hide(); } // if (AccitemsRaw.ISEMPLACC) { Ext.getCmp('SALE').show(); strITEM += "▁SALE"; sFocus += ",3"; } else { Ext.getCmp('SALE').setValue(""); Ext.getCmp('SALE').hide(); } // if (AccitemsRaw.ISITEMACC) { Ext.getCmp('ITEMNAME').show(); strITEM += "▁ITEMNAME"; sFocus += ",4"; } else { Ext.getCmp('ITEMNAME').setValue(""); Ext.getCmp('ITEMNAME').hide(); } // if (isFocus) { if (strOriginalValue != "") { var ayList = new Array(); ayList = strOriginalValue.split("▁"); var ayItem = new Array(); ayItem = strITEM.split("▁"); for (var i = 0; i < ayList.length; i++) { Ext.getCmp(ayItem[i].toString()).setValue(ayList[i].toString()); //thisDiv.getForm().findField(ayItem[i].toString()).setValue(ayList[i].toString()); } } } else { if (strValue != "") { Ext.getCmp('ACCNAME2').setValue(strValue); } } //#endregion //#region 设置下拉框焦点 var isFocus = Ext.getCmp('CustNAME'); if (sFocus.indexOf(",1") == 0) { isFocus = Ext.getCmp('CustNAME'); } else if (sFocus.indexOf(",2") == 0) { isFocus = Ext.getCmp('DeptName'); } else if (sFocus.indexOf(",3") == 0) { isFocus = Ext.getCmp('SALE'); } else if (sFocus.indexOf(",4") == 0) { isFocus = Ext.getCmp('ITEMNAME'); } isFocus.focus(true, true); //#endregion //#region 设置下拉框回车事件 var sFocus2 = sFocus.toString().substr(1); var argItems = sFocus2.toString().split(","); for (var i = 0; i < argItems.length; i++) { if (argItems.length == 1 || (argItems.length - 1) == i) { //#region 回车+提交事件 if (argItems[i].toString() == "1") { this.comboxCust.addListener('keyup', function (dataview, record, item) { if (record.getKey() == 13) { //this.GetSubmit(win, selections, this); isFocus = Ext.getCmp('tijiao'); isFocus.focus(true, true); } }, this); } else if (argItems[i].toString() == "2") { this.comboxDept.addListener('keyup', function (dataview, record, item) { if (record.getKey() == 13) { //this.GetSubmit(win, selections, this); isFocus = Ext.getCmp('tijiao'); isFocus.focus(true, true); } }, this); } else if (argItems[i].toString() == "3") { this.comboxSALE.addListener('keyup', function (dataview, record, item) { if (record.getKey() == 13) { //this.GetSubmit(win, selections, this); isFocus = Ext.getCmp('tijiao'); isFocus.focus(true, true); } }, this); } else if (argItems[i].toString() == "4") { this.comboxCwItem.addListener('keyup', function (dataview, record, item) { if (record.getKey() == 13) { //this.GetSubmit(win, selections, this); isFocus = Ext.getCmp('tijiao'); isFocus.focus(true, true); } }, this); } //#endregion } else { //#region 回车+焦点事件 if (argItems[i].toString() == "1") { if (argItems[i + 1].toString() == "2") { this.comboxCust.addListener('keyup', function (dataview, record, item) { if (record.getKey() == 13) { isFocus = Ext.getCmp('DeptName'); isFocus.focus(true, true); } }, this); } else if (argItems[i + 1].toString() == "3") { this.comboxCust.addListener('keyup', function (dataview, record, item) { if (record.getKey() == 13) { isFocus = Ext.getCmp('SALE'); isFocus.focus(true, true); } }, this); } else if (argItems[i + 1].toString() == "4") { this.comboxCust.addListener('keyup', function (dataview, record, item) { if (record.getKey() == 13) { isFocus = Ext.getCmp('ITEMNAME'); isFocus.focus(true, true); } }, this); } } else if (argItems[i].toString() == "2") { if (argItems[i + 1].toString() == "3") { this.comboxDept.addListener('keyup', function (dataview, record, item) { if (record.getKey() == 13) { isFocus = Ext.getCmp('SALE'); isFocus.focus(true, true); } }, this); } else if (argItems[i + 1].toString() == "4") { this.comboxDept.addListener('keyup', function (dataview, record, item) { if (record.getKey() == 13) { isFocus = Ext.getCmp('ITEMNAME'); isFocus.focus(true, true); } }, this); } } else if (argItems[i].toString() == "3") { if (argItems[i + 1].toString() == "4") { this.comboxSALE.addListener('keyup', function (dataview, record, item) { if (record.getKey() == 13) { isFocus = Ext.getCmp('ITEMNAME'); isFocus.focus(true, true); } }, this); } } else if (argItems[i].toString() == "4") { this.comboxCwItem.addListener('keyup', function (dataview, record, item) { if (record.getKey() == 13) { //this.GetSubmit(win, selections, this); isFocus = Ext.getCmp('tijiao'); isFocus.focus(true, true); } }, this); } //#endregion } } // isFocus = Ext.getCmp('tijiao'); isFocus.addListener('focus', function (dataview, record, item) { //if (!this.up('form').getForm().isValid()) { // return; //} if (!thisDiv.getForm().isValid()) { return; } this.GetSubmit(win, selections, this, strITEM); }, this); //#endregion } } }); //#endregion win = Ext.widget('window', { title: '辅助核算', closeAction: 'destroy', //hide, id:'winaccitemsedit', width: 250, height: 250, layout: 'fit', modal: true, closable: false, //为false时tab上不显示叉号 resizable: false, //是否可改变列宽,默认为true items: formDiv //draggable: false,//不允许窗体被拖拽 //获取当前鼠标坐标并设置为其生产的初始位置 //x: 250, //y: 150, }); } win.show(); }, GetSubmit: function (win, selections, _this, strITEM) { //var strACCNAME2 = _this.up('form').getForm().findField('ACCNAME2').getValue(); //var strACCNAME2 = Ext.getCmp('ACCNAME2').getValue(); var strACCNAME2 = selections[0].data.ACCALL.toString(); var ls = strACCNAME2; if (Ext.getCmp('CustNAME').getValue() != null) { if (Ext.getCmp('CustNAME').getValue() != "") { var CustNAME = Ext.getCmp('CustNAME').getValue(); var re = new RegExp(/^[A-Za-z]+$/); var bl = re.test(CustNAME); if (bl) { if (CustNAME.indexOf("-") < 0) { var AccitemsList = DsStoreQueryBy(this.storeCustCode, 'CustName', CustNAME.toString()); //CustCode if (AccitemsList.length > 0) { var AccitemsRaw = AccitemsList.getAt(0); if (AccitemsRaw != null) { CustNAME = AccitemsRaw.data.CustName.toString(); } else { return false; } } else { return false; } } else { var AccitemsList = DsStoreQueryBy(this.storeCustCode, 'CodeAndName', CustNAME.toString().toUpperCase()); if (AccitemsList.length > 0) { var AccitemsRaw = AccitemsList.getAt(0); if (AccitemsRaw != null) { CustNAME = AccitemsRaw.data.CustName.toString(); } else { return false; } } else { return false; } } } else { if (CustNAME.indexOf("-") < 0) { var AccitemsList = DsStoreQueryBy(this.storeCustCode, 'CustName', CustNAME.toString()); if (AccitemsList.length > 0) { var AccitemsRaw = AccitemsList.getAt(0); if (AccitemsRaw != null) { CustNAME = AccitemsRaw.data.CustName.toString(); } else { return false; } } else { return false; } } else { var AccitemsList = DsStoreQueryBy(this.storeCustCode, 'CodeAndName', CustNAME.toString().toUpperCase()); if (AccitemsList.length > 0) { var AccitemsRaw = AccitemsList.getAt(0); if (AccitemsRaw != null) { CustNAME = AccitemsRaw.data.CustName.toString(); } else { return false; } } else { var AccitemsList = DsStoreQueryBy(this.storeCustCode, 'CustName', CustNAME.toString().toUpperCase()); if (AccitemsList.length > 0) { var AccitemsRaw = AccitemsList.getAt(0); if (AccitemsRaw != null) { CustNAME = AccitemsRaw.data.CustName.toString(); } else { return false; } } else { return false; } } } } if (CustNAME.toString().trim() != "") { ls += "▁" + CustNAME; } } else { if (strITEM.toString().indexOf("CustNAME") > -1) { return; } } } else { if (strITEM.toString().indexOf("CustNAME") > -1) { return; } } if (Ext.getCmp('DeptName').getValue() != null) { if (Ext.getCmp('DeptName').getValue() != "") { var DeptName = Ext.getCmp('DeptName').getValue(); if (DeptName.indexOf("-") > -1) { DeptName = DeptName.toString().substr(DeptName.indexOf("-") + 1); } if (DeptName.toString().trim() != "") { ls += "▁" + DeptName; } } else { if (strITEM.toString().indexOf("DeptName") > -1) { return; } } } else { if (strITEM.toString().indexOf("DeptName") > -1) { return; } } if (Ext.getCmp('SALE').getValue() != null) { if (Ext.getCmp('SALE').getValue() != "") { var SALE = Ext.getCmp('SALE').getValue(); var re = new RegExp(/^[A-Za-z]+$/); var bl = re.test(SALE); if (bl) { var AccitemsList = DsStoreQueryBy(this.storeOpCode, 'UserCode', SALE.toString().toUpperCase()); if (AccitemsList.length > 0) { var AccitemsRaw = AccitemsList.getAt(0); if (AccitemsRaw != null) { SALE = AccitemsRaw.data.UserName.toString(); } else { return false; } } else { return false; } } // if (SALE.indexOf("-") > -1) { SALE = SALE.toString().substr(SALE.indexOf("-") + 1); } if (SALE.toString().trim() != "") { ls += "▁" + SALE; } } else { if (strITEM.toString().indexOf("SALE") > -1) { return; } } } else { if (strITEM.toString().indexOf("SALE") > -1) { return; } } if (Ext.getCmp('ITEMNAME').getValue() != null) { if (Ext.getCmp('ITEMNAME').getValue() != "") { var ITEMNAME = Ext.getCmp('ITEMNAME').getValue(); var re = new RegExp(/^[0-9a-zA-Z]+$/); var bl = re.test(ITEMNAME); if (bl) { var AccitemsList = DsStoreQueryBy(this.storeCwItem, 'ITEMCODE', ITEMNAME.toString().toUpperCase()); if (AccitemsList.length > 0) { var AccitemsRaw = AccitemsList.getAt(0); if (AccitemsRaw != null) { ITEMNAME = AccitemsRaw.data.ITEMNAME.toString(); } } } if (ITEMNAME.indexOf("-") > -1) { ITEMNAME = ITEMNAME.toString().substr(ITEMNAME.indexOf("-") + 1); } if (ITEMNAME.toString().trim() != "") { ls += "▁" + ITEMNAME; } } else { if (strITEM.toString().indexOf("ITEMNAME") > -1) { return; } } } else { if (strITEM.toString().indexOf("ITEMNAME") > -1) { return; } } selections[0].set('ACCALL', ls); // var rows = this.gridList.getSelectionModel().getSelection(); if (rows[0].data.FCYNO == "RMB") { this.onNextKeyClick(7); } else { this.onNextKeyClick(5); } // var lsACCALL = rows[0].data.ACCALL.toString(); while (lsACCALL != ls) { rows = this.gridList.getSelectionModel().getSelection(); var lsACCALL = rows[0].data.ACCALL.toString(); selections[0].set('ACCALL', ls); } // //var win = Ext.getCmp("DivWin"); //var win = this.up("window"); //win.hide(); win.close(); }, onNextKeyClick: function (col) { var rows = this.gridList.getSelectionModel().getSelection(); var row = rows[rows.length - 1]; var s = this.gridList.getStore(); var number = s.indexOf(row); this.gridListCellEditing.startEditByPosition({ row: number, column: col }); }, OprationSwap2: function () { var ret = new Array(); ret[0] = this.gridList.getSelectionModel().getSelection(); ret[1] = this.comboxACCNAME; ret[2] = this.comboxCust; ret[3] = this.comboxDept; ret[4] = this.comboxSALE; return ret; }, //#endregion //#region 上传附件, 需求编号:SR2017062800004 onUpLoadFileClick: function (button, event) { if (this.opStatus == 'add') { Ext.Msg.show({ title: '提示', msg: '请先保存凭证!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); return; } var billno = this.EditRecord.get("VOUALLNO"); var sORDNO = _orderno; 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 (!imgform.form.isValid()) { return; } imgform.form.submit({ url: '/MvcShipping/MsOpReceipt/UploadFile', waitMsg: '正在上传', method: 'POST', submitEmptyText: false, async: false, params: { CUSTNO: billno, BSNO: sORDNO }, success: function (form, action) { win.close(this); Ext.Msg.show({ title: '提示', msg: '上传成功!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); var condition2 = "BSNO='" + sORDNO + "'"; me.Loading = true; me.storeDocList.load({ params: { condition: condition2 }, waitMsg: "正在查询数据...", scope: this, callback: function () { me.Loading = false; } }); var cnt = me.storeDocList.data.items.length + 1; Ext.getCmp("ATTACHS").setValue(cnt); }, 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 删除上传附件, 需求编号:SR2017062800004 onDelFileClick: function (button, event) { if (this.opStatus == 'add') { Ext.Msg.show({ title: '提示', msg: '请先保存凭证!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); return; } 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 }); this.setAttachs(); } 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 }); } else { Ext.Msg.show({ title: '提示', msg: "删除成功!", icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); } } }, this); }, //#endregion //#region 根据上传删除的附件数,更新凭证附单据张数,需求编号:SR2017062800004 setAttachs: function () { if (this.opStatus == 'add') { Ext.Msg.show({ title: '提示', msg: '请先保存凭证!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); return; } Ext.Ajax.request({ waitMsg: '正在查询主表数据...', url: '/MvcShipping/MsCwVouchersGl/setAttachs', params: { sORDNO: this.EditRecord.get("ORDNO") }, 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.INFO, buttons: Ext.Msg.OK }); return; } var condition = "ORDNO='" + this.EditRecord.get("ORDNO") + "'"; this.LoadData('edit', condition); } else { Ext.MessageBox.alert('请求出现错误,请重试', response.responseText); } }, scope: this }); } //#endregion });