Ext.namespace('Shipping'); Shipping.ImportDeliveryBLEdit = function (config) { Ext.applyIf(this, config); this.initUIComponents(); window.Shipping.ImportDeliveryBLEdit.superclass.constructor.call(this); }; 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(), //second "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; } var xhr = new XMLHttpRequest(); var currdate = new Date(); if (!xhr) { //...其他生成xmlhttprequest方法 } 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); // alert(currdate.format('yyyy-MM-dd')); } } xhr.send(null); Ext.extend(Shipping.ImportDeliveryBLEdit, Ext.Panel, { ParentWin: null, OpStatus: 'add', StoreList: null, EditRecord: null, addstore: false, PageSize: 30, initUIComponents: function () { this.serialNo = 0; this.workSerialNo = 0; this.bodyDel = []; this.FeeSql = ''; this.BillSql = ''; this.DuiBillSql = ''; this.IsDebit = '0'; this.feeBodyDel = []; this.formname_DeliveryDetail = "formImport_DeliveryDetail"; //页面名称 //#region 编辑form //#region 枚举参照相关(编辑form) //表参照相关(编辑form) this.storeCustCode = Ext.create('DsExt.ux.RefTableStore', { model: 'DsShipping.ux.CustomRefModel', proxy: { url: '/CommMng/BasicDataRef/GetCustomRefList' } }); this.storeCustCode.load({ params: { condition: ""} }); this.comboxCustCode = Ext.create('DsExt.ux.RefTableCombox', { fieldLabel: '购货单位', store: this.storeCustCode, //allowBlank: false, forceSelection: true, name: 'CUSTOMERNAME', id: "CUSTOMERNAME", valueField: 'CustName', displayField: 'CodeAndName' }); this.StoreOpRange = Ext.create('DsExt.ux.RefTableStore', { model: 'MsOP', proxy: { url: '/MvcShipping/MsBaseInfo/GetOpRang' } }); this.StoreCurr = Ext.create('DsExt.ux.RefTableStore', { model: 'MsFeeCurr', proxy: { url: '/MvcShipping/MsChFee/GetFeeCurrList' } }); this.StoreCurr.load({ params: { condition: ""} }); this.StoreDateCurr = Ext.create('DsExt.ux.RefTableStore', { model: 'MsFeeCurr', proxy: { url: '/MvcShipping/MsChFee/GetFeeNowCurrList' } }); this.StoreDateCurr.load({ params: { condition: ""} }); this.comboxCurr = Ext.create('DsExt.ux.RefTableCombox', { fieldLabel: '币别', allowBlank: false, store: this.StoreCurr, forceSelection: true, emptyText: '原币申请', name: 'CURR', valueField: 'CURR', displayField: 'CURR' }); //人员信息加载 this.storeOpCode = Ext.create('DsExt.ux.RefTableStore', { model: 'DsShipping.ux.UserRefModel', proxy: { url: '/CommMng/BasicDataRef/GetUserLinkRefList' } }); this.storeOpCode.load(); //采购 this.comboxOP = Ext.create('DsExt.ux.RefTableCombox', { fieldLabel: '操 作', store: this.storeOpCode, forceSelection: true, name: 'OP', valueField: 'UserName', displayField: 'CodeAndName', value: SHOWNAME }); this.storeOpCode2 = Ext.create('DsExt.ux.RefTableStore', { model: 'DsShipping.ux.UserRefModel', proxy: { url: '/CommMng/BasicDataRef/GetUserLinkRefList' } }); this.storeOpCode2.load(); //采购 this.comboxSALER = Ext.create('DsExt.ux.RefTableCombox', { fieldLabel: '销 售', store: this.storeOpCode2, forceSelection: true, name: 'SALER', valueField: 'UserName', displayField: 'CodeAndName', value: SHOWNAME }); this.storeDeliveryType = Ext.create('DsExt.ux.RefEnumStore', {}); this.storeDeliveryType.load({ params: { enumTypeId: 42} }); this.comboxDeliveryType = Ext.create('DsExt.ux.RefEnumCombox', { fieldLabel: '出库类型', id: "DeliveryType", forceSelection: true, store: this.storeDeliveryType, name: 'DeliveryType' }); //#endregion //编辑form this.formEdit = Ext.widget('form', { region: 'center', frame: true, bodyPadding: 3, trackResetOnLoad: true, // autoScroll: true, fieldDefaults: { margins: '2 2 2 2', labelAlign: 'right', flex: 1, labelWidth: 90, msgTarget: 'qtip' }, items: [ {//fieldset 1 xtype: 'fieldset', defaultType: 'textfield', layout: 'anchor', defaults: { anchor: '100%' }, items: [{ xtype: 'container', layout: 'hbox', defaultType: 'textfield', items: [{ fieldLabel: 'GID', name: 'GID', flex: 0, hidden: true, margins: '0' }, { fieldLabel: 'CORPID', name: 'CORPID', flex: 0, hidden: true, margins: '0' }, { fieldLabel: 'DEPTGID', name: 'DEPTGID', flex: 0, hidden: true, margins: '0' }, { fieldLabel: 'TIMEMARK', name: 'TIMEMARK', flex: 0, hidden: true, margins: '0' }, { fieldLabel: 'BSSTATUS', id: "BSSTATUS", name: 'BSSTATUS', flex: 0, hidden: true, margins: '0' }, { fieldLabel: '销售合同号', id: "SALESNO", readOnly: true, name: 'SALESNO' }, { fieldLabel: '出库单号', readOnly: true, name: 'DELIVERYNO' } , this.comboxCustCode , this.comboxOP //, this.comboxSALER , { fieldLabel: '出库日期', format: 'Y-m-d', xtype: 'datefield', renderer: Ext.util.Format.dateRenderer('Y-m-d'), name: 'DELIVERYDATE' } ] }, { xtype: 'container', layout: 'hbox', defaultType: 'textfield', items: [ { fieldLabel: '出库联系人', name: 'CONTACT' }, { fieldLabel: '出库联系电话', name: 'TEL' }, { fieldLabel: '车号', name: 'TRUCKNO' }, { fieldLabel: '备注', flex: 2, name: 'REMARK' } ] }, { xtype: 'container', layout: 'hbox', defaultType: 'numberfield', items: [{ xtype: 'checkbox', flex: 1, fieldLabel: '已有出库回执', name: 'OUTRECEIPT' }, { xtype: 'checkbox', flex: 1, fieldLabel: '是否控车', name: 'SFKC' }, { xtype: 'checkbox', flex: 1, fieldLabel: '是否抄码', name: 'SFCM' }, this.comboxDeliveryType , { xtype: 'hiddenfield', flex: 1}] }, { xtype: 'container', layout: 'hbox', defaultType: 'textfield', items: [] } ]//end items(fieldset 1) }//end fieldset 1 ]//end root items }); //end this.formEdit //#endregion //#region 按钮Toolbar this.panelBtn = new Ext.Panel({ region: "north", tbar: [ { id: 'btnESave', text: "保存", iconCls: "btnsave", handler: function (button, event) { this.Save('0'); //this.UnLockClick(); this.DelWMSOUT(); this.SaveWMSOUT(); }, scope: this }, '-', { text: "打印", handler: function (button, event) { this.Print(); }, scope: this }, '-', { id: 'btnESaveAndClose', text: "保存并关闭", handler: function (button, event) { this.Save('0'); //this.UnLockClick(); this.DelWMSOUT(); this.SaveWMSOUT(); this.Save('1'); }, scope: this }, '-', { id: 'btnESaveAndNew', text: "保存并新建", handler: function (button, event) { this.Save('0'); //this.UnLockClick(); this.DelWMSOUT(); this.SaveWMSOUT(); this.Save('2'); this.GetEditStatus(); }, scope: this }, '-', { id: 'btnENew', text: "新建", handler: function (button, event) { this.LoadData('add', '*'); }, scope: this }, '-', { id: 'btnSubmit', text: '提交入账申请', tooltip: '提交财务审核', handler: function (button, event) { this.Save('0'); this.LockClick(); }, scope: this }, { id: 'btnUnSubmit', text: '撤销入账申请', tooltip: '取消提交财务。如财务已审核则无法提交。', handler: function (button, event) { this.Save('0'); this.UnLockClick(); }, scope: this }, '-', '-', { xtype: "label", id: "BSSTATUSREF", text: "", handler: function () { ; } }, { id: 'btnLock', hidden: true, text: '锁定出库单', tooltip: '注意请先保存好实际出库的件数和重量,否则保存无效', handler: function (button, event) { var BSSTATUS = this.formEdit.getForm().findField('BSSTATUS').getValue(); if (BSSTATUS == "1") { alert("已经锁定的出库单不能再次锁定。"); return; } else { this.Save('0'); this.SaveWMSOUT(); } }, scope: this }, '-', { id: 'btnUnLock', hidden: true, text: '解锁出库单', tooltip: '撤销审核', handler: function (button, event) { //this.UnLockClick(); this.DelWMSOUT(); }, scope: this }, { id: 'btntest', hidden: true, text: '生成出库测试', tooltip: '生成出库测试', handler: function (button, event) { this.SaveWMSOUT(); }, scope: this }, { id: 'btntestdel', hidden: true, text: '删除出库测试', tooltip: '删除出库测试', handler: function (button, event) { this.DelWMSOUT(); }, scope: this } ] }); //end 按钮Toolbar //#endregion //#region 明细表 //明细表表格相关 this.GridCheckBoxModel = Ext.create('Ext.selection.CheckboxModel'); //明细表 提货出库单明细 this.storeBodyList = Ext.create('Ext.data.Store', { model: 'ImportDeliveryDetailmb', remoteSort: false, proxy: { type: 'ajax', url: '/Import/ImportDelivery/GetDetailList', reader: { id: 'GID', root: 'data', totalProperty: 'totalCount' } } }); this.girdcolums = [ { sortable: true, hidden: true, dataIndex: 'GID', header: 'GID', width: 80 }, { sortable: true, hidden: true, dataIndex: 'DELIVERYNO', header: 'DELIVERYNO', width: 80 }, { sortable: true, hidden: true, dataIndex: 'SALEDETAIL_GID', header: 'SALEDETAIL_GID', width: 80 }, { sortable: true, hidden: true, dataIndex: 'SALESTATUS', header: 'SALESTATUS', width: 80 }, { sortable: true, hidden: true, dataIndex: 'MAINSTATE', header: 'MAINSTATE', width: 80 }, { sortable: true, dataIndex: 'HTH', header: '采购合同号', width: 80 }, { sortable: true, dataIndex: 'CARGONAME', header: '货物名称', width: 80 }, { sortable: true, dataIndex: 'FACTORYNO', header: '厂号', width: 80 }, { sortable: true, align: 'right', dataIndex: 'WEIGHT_EX', header: '预计出库重量(kg)', width: 100, editor: { selectOnFocus: true, align: 'right', xtype: 'numberfield' } }, { sortable: true, align: 'right', dataIndex: 'BOXCOUNT_EX', header: '预计出库件数', width: 80, editor: { selectOnFocus: true, align: 'right', xtype: 'numberfield' } }, { sortable: true, align: 'right', dataIndex: 'WEIGHT', header: '出库重量(kg)', width: 90, editor: { selectOnFocus: true, align: 'right', xtype: 'numberfield' } }, { sortable: true, align: 'right', dataIndex: 'BOXCOUNT', header: '出库件数', width: 80, editor: { selectOnFocus: true, align: 'right', xtype: 'numberfield' } }, { sortable: true, align: 'right', dataIndex: 'GOODSSTOCK', header: '当前库存重量', width: 80, renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) { value = usMoney(value, 5, '', true); return value; } }, { sortable: true, align: 'right', dataIndex: 'GOODSPACKSTOCK', header: '当前库存件数', width: 80, renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) { value = usMoney(value, 2, '', true); return value; } }, { sortable: true, align: 'right', dataIndex: 'WEIGHT_REMAIN', header: '已售未出库重量', width: 80, renderer: function (value, p, record) { return Cut(record.data.WEIGHT_SALE, record.data.WEIGHT_DE, 2); } }, { sortable: true, align: 'right', dataIndex: 'BOXCOUNT_REMAIN', header: '已售未出库件数', width: 80, renderer: function (value, p, record) { return Cut(record.data.BOXCOUNT_SALE, record.data.BOXCOUNT_DE, 2); } }, { sortable: true, dataIndex: 'WEIGHT_SALE', header: '销售重量(kg)', width: 80 }, { sortable: true, dataIndex: 'BOXCOUNT_SALE', header: '销售件数', width: 80 }, { sortable: true, dataIndex: 'WEIGHT_DE', header: '已出库重量(kg)', width: 80 }, { sortable: true, dataIndex: 'BOXCOUNT_DE', header: '已出库件数', width: 80 }, { sortable: true, dataIndex: 'SALESNO', header: '销售单号', width: 80 }, { sortable: true, dataIndex: 'REMARK', header: '备注', width: 160, editor: { xtype: 'textfield' } } ]; //明细表表格 this.gridListCellEditing = Ext.create('Ext.grid.plugin.CellEditing', { clicksToEdit: 1 }); this.gridList = new Ext.grid.GridPanel({ store: this.storeBodyList, enableHdMenu: false, region: 'center', loadMask: { msg: "数据加载中,请稍等..." }, trackMouseOver: true, disableSelection: false, selModel: this.GridCheckBoxModel, plugins: [this.gridListCellEditing], tbar: [{ text: '删除出库明细', tooltip: '删除出库明细', id: 'btndeldetail', iconCls: "btndeletedetail", handler: function (button, event) { this.onDeleteClick(button, event, 1); }, scope: this }, '-', { text: '生成应收', hidden: true, //此处改为在提交时生成 tooltip: '根据销售单生成应收费用', id: 'btnmakefee', iconCls: "btnadddetail", handler: function (button, event) { this.MakeFee(button, event, 1); }, scope: this }, { text: "保存列表样式", id: "btnSaveTable", handler: function (button, event) { //this.column = DsTruck.SaveGridPanel(GID, this.formname, this.gridList.columns, this.column, 1, true); var tempcolumns = this.gridList.columns; DsTruck.SaveGridPanel(USERID, this.formname_DeliveryDetail, tempcolumns, this.girdcolums, 0, true); }, scope: this }], columns: [ ] }); /////////////以下部分为获取存储的gridpanel显示样式 this.girdcolums = DsTruck.GetGridPanel(USERID, this.formname_DeliveryDetail, this.girdcolums, 1); //使用者id,表名,中间column数组,跳过一开始的几列 this.girdcolums.unshift(new Ext.grid.RowNumberer()); this.gridList.reconfigure(this.storeBodyList, this.girdcolums); //this.gridList.columns[0] = new Ext.grid.RowNumberer(); //////////////////////////////////////////////// //#region 用于向出库单内添加的销售合同明细 this.storeBodyAddList = Ext.create('Ext.data.Store', { model: 'ImportSaledetailmb', remoteSort: true, proxy: { type: 'ajax', url: '/Import/ImportSales/GetDetailList', reader: { id: 'GID', root: 'data', totalProperty: 'totalCount' } } }); this.AddGridCheckBoxModel = Ext.create('Ext.grid.plugin.CellEditing', { clicksToEdit: 1 }); this.GridCheckBoxModel2 = Ext.create('Ext.selection.CheckboxModel'); this.gridAddList = new Ext.grid.GridPanel({ store: this.storeBodyAddList, enableHdMenu: false, region: 'center', loadMask: { msg: "数据加载中,请稍等..." }, trackMouseOver: true, disableSelection: false, selModel: this.GridCheckBoxModel2, tbar: [{ text: '添加出库', tooltip: '向出库单内添加货物', id: "btnaddbill", iconCls: "btnadddetail", handler: function (button, event) { if (USERID == "" || typeof (USERID) == "undefined") { alert("登录信息不全,请退出重新登录"); return; } else { this.Save('0'); this.onAddClick(button, event); } }, scope: this }], columns: [{ sortable: true, hidden: true, dataIndex: 'GID', header: 'GID', width: 80 }, { sortable: true, dataIndex: 'SALESNO', header: '销售单号', width: 120 }, { sortable: true, hidden: true, dataIndex: 'CARGO_GID', header: 'CARGO_GID', width: 80 }, { sortable: true, hidden: true, dataIndex: 'BSNO', header: 'BSNO', width: 80 }, { sortable: true, dataIndex: 'HTH', header: '合同号', width: 80 }, { sortable: true, dataIndex: 'CUSTOMERNAME', header: '销售客户', width: 80 }, { sortable: true, dataIndex: 'NAME', header: '货物名称', width: 80 }, { sortable: true, dataIndex: 'WEIGHT_ACT', header: '实际重量', width: 80 }, { sortable: true, hidden: true, dataIndex: 'WEIGHT_REMAIN', header: '剩余可售重量', width: 80 }, { sortable: true, hidden: true, dataIndex: 'BOXCOUNT_REMAIN', header: '剩余可售件数', width: 80 }, { sortable: true, dataIndex: 'WEIGHT', header: '销售重量', width: 80 }, { sortable: true, dataIndex: 'BOXCOUNT', header: '销售件数', width: 80 }, { sortable: true, dataIndex: 'Delivery_Weight', header: '已做出库重量', width: 80 }, { sortable: true, dataIndex: 'Delivery_Boxcount', header: '已做出库件数', width: 80 }, { sortable: true, dataIndex: 'CURRENCY', header: '币别', width: 80 }, { sortable: true, dataIndex: 'PRICE', header: '单价(kg)', width: 80 }, { sortable: true, dataIndex: 'AMOUNT', header: '金额', width: 80 }, { sortable: true, dataIndex: 'EXCHANGERATE', header: '汇率', width: 80 }, { sortable: true, dataIndex: 'AMOUNTRMB', header: 'RMB金额', width: 80 }, { sortable: true, dataIndex: 'REMARK', header: '备注', width: 80 }] }); /* */ _this = this; this.CurrGroup = new Ext.form.RadioGroup({ id: 'CurrGroup', xtype: 'radiogroup', fieldLabel: '折算币别', columns: 2, items: [ { boxLabel: 'RMB', name: 'Curr', inputValue: 'RMB', checked: true }, { boxLabel: 'USD', name: 'Curr', inputValue: 'USD' } ] }); //#endregion //#region 添加费用列表 this.storeAddFeeList = Ext.create('Ext.data.Store', { pageSize: this.PageSize, model: 'Chfee_add_detail', remoteSort: true, proxy: { type: 'ajax', url: '/Account/Chfee_ForeignPay/GetFeeDetailList', reader: { id: 'CH_ID', root: 'data', totalProperty: 'totalCount' } } }); this.AddFeeGridCheckBoxModel = Ext.create('Ext.selection.CheckboxModel'); this.cellEditingFee = Ext.create('Ext.grid.plugin.CellEditing', { clicksToEdit: 1, listeners: { 'edit': function (editor, e) { } } }); this.gridAddFeeList = new Ext.grid.GridPanel({ store: this.storeAddFeeList, enableHdMenu: false, region: 'center', loadMask: { msg: "数据加载中,请稍等..." }, trackMouseOver: true, disableSelection: false, plugins: [this.cellEditingFee], selModel: this.AddFeeGridCheckBoxModel, tbar: [{ text: '添加申请费用明细', tooltip: '添加申请费用明细', iconCls: "btnadddetail", id: "btnadddetail", handler: function (button, event) { this.onAddDetailClick(button, event); }, scope: this }], columns: [{ sortable: true, dataIndex: 'CH_ID', header: 'CH_ID', hidden: true, width: 100 }, { sortable: true, dataIndex: 'BSNO', header: 'BSNO', hidden: true, width: 100 }, { sortable: false, dataIndex: 'CustomerName', header: '客户名称', width: 90 }, { sortable: false, dataIndex: 'FeeType_Ref', header: '收付', width: 40 }, { sortable: false, dataIndex: 'FeeName', header: '费用名称', width: 70 }, { sortable: false, dataIndex: 'Amount', header: '金额', width: 70 }, { sortable: false, dataIndex: 'Currency', header: '币别', width: 40 }, { sortable: false, dataIndex: 'BalAmount', header: '未结金额', width: 70 }, { sortable: false, dataIndex: 'StlAmount', header: '本次结算金额', editor: { xtype: 'numberfield', keyNavEnabled: false, allowDecimals: true, decimalPrecision: 2, selectOnFocus: true, mouseWheelEnabled: false, enableKeyEvents: true, listeners: { keydown: function (textfield, e) { if (e.getKey() == 40) { _this.onNextKeyClick(9) } else if (e.getKey() == 38) { _this.onUpKeyClick(9) } } } }, width: 70 }, { sortable: false, dataIndex: 'ExChangerate', header: '原始汇率', width: 60 }, { sortable: false, dataIndex: 'Invoice', header: '开票金额', width: 60 } ], // paging bar on the bottom bbar: Ext.create('Ext.PagingToolbar', { store: this.storeAddFeeList, displayInfo: true, displayMsg: '当前显示 {0} - {1}条记录 /共 {2}条记录', emptyMsg: "没有数据" }) }); this.gridAddFeeList.on('edit', function (editor, e, eOpts) { this.gridAddFeeListAfterEdit(editor, e, eOpts); }, this); this.storeSelectSum = Ext.create('Ext.data.Store', { model: 'Chfee_do_selectsum' }); this.gridSelectSum = new Ext.grid.GridPanel({ store: this.storeSelectSum, enableHdMenu: false, // anchor: '100% 50%', region: 'south', height: 80, loadMask: { msg: "数据加载中,请稍等..." }, trackMouseOver: true, disableSelection: false, tbar: [{ xtype: 'label', width: 220, id: 'SelectGrid', height: 22, text: '所选费用合计' }], columns: [{ sortable: true, dataIndex: 'RMBDRAMOUNT', header: 'RMB未收', width: 80 }, { sortable: true, dataIndex: 'RMBCRAMOUNT', header: 'RMB未付', width: 80 }, { sortable: true, dataIndex: 'USDDRAMOUNT', header: 'USD未收', width: 80 }, { sortable: true, dataIndex: 'USDCRAMOUNT', header: 'USD未付', width: 80 }, { sortable: true, dataIndex: 'OTDRAMOUNT', header: '其他未收', width: 80 }, { sortable: true, dataIndex: 'OTCRAMOUNT', header: '其他未付', width: 80 } ] }); //#endregion _this = this; this.storeCustCodefee = Ext.create('DsExt.ux.RefTableStore', { model: 'DsShipping.ux.CustomInvRefModel', proxy: { url: '/CommMng/BasicDataRef/GetCustomInvRefList' } }); this.storeCustCodefee.load({ params: { condition: ""} }); this.comboxAddCustCode = Ext.create('DsExt.ux.RefTableCombox', { fieldLabel: '客户名称', store: this.storeCustCodefee, forceSelection: true, name: 'CUSTNAME', valueField: 'CustName', displayField: 'CodeAndName', enableKeyEvents: true, listeners: { keyup: function (field, e) { if (e.getKey() == e.ENTER) { _this.onRefreshClick(); } } } }); this.StoreOpLb = Ext.create('Ext.data.Store', { fields: ['OPLBNAME'] }); this.storeAddDCType = Ext.create('Ext.data.Store', { fields: ['DC', 'NAME'] }); this.storeAddDCType.add({ "DC": "", "NAME": "全部" }); this.storeAddDCType.add({ "DC": "1", "NAME": "应收" }); this.storeAddDCType.add({ "DC": "2", "NAME": "应付" }); this.comboxaddDCType = Ext.create('DsExt.ux.RefTableCombox', { fieldLabel: '收/付', store: this.storeAddDCType, valueField: 'DC', displayField: 'NAME', forceSelection: true, name: 'DC', value: '2', enableKeyEvents: true, listeners: { keyup: function (field, e) { if (e.getKey() == e.ENTER) { _this.onRefreshClick(); } } } }); this.comboxCurr2 = Ext.create('DsExt.ux.RefTableCombox', { fieldLabel: '币别', store: this.StoreCurr, forceSelection: true, name: 'Currency', valueField: 'CURR', displayField: 'CURR', enableKeyEvents: true, listeners: { keyup: function (field, e) { if (e.getKey() == e.ENTER) { _this.onRefreshClick(); } } } }); this.storeFeeNameRef = Ext.create('DsExt.ux.RefTableStore', { model: 'DsShipping.ux.FeeTypeRefModel', proxy: { url: '/MvcShipping/MsChFee/GetFeeTypeRefList' } }); this.storeFeeNameRef.load({ params: { condition: ""} }); this.comboxFeeNameRef = Ext.create('DsExt.ux.RefTableCombox', { fieldLabel: '费用名称', store: this.storeFeeNameRef, forceSelection: true, name: 'FeeName', valueField: 'Name', displayField: 'CodeAndName', enableKeyEvents: true, listeners: { keyup: function (field, e) { if (e.getKey() == e.ENTER) { _this.onRefreshClick(); } } } }); this.storeFeeCheck = Ext.create('DsExt.ux.RefTableStore', { model: 'DsShipping.ux.FeeTypeRefModel', proxy: { url: '/MvcShipping/MsChFee/GetFeeTypeRefList' } }); this.storeFeeCheck.load({ params: { condition: " name in ( select name from code_fee where feegroup in(select feeName from code_PROFIT where FEEGROUP='冷藏')) "} }); this.storeCompany = Ext.create('DsExt.ux.RefTableStore', { model: 'companymb', proxy: { url: '/CommMng/BasicDataRef/GetcompanyList' } }); this.storeCompany.load({ params: { condition: ""} }); this.comboxCompany = Ext.create('DsExt.ux.RefTableCombox', { fieldLabel: '分公司', forceSelection: true, store: this.storeCompany, name: 'company', valueField: 'gid', displayField: 'name' }); this.storeport = Ext.create('DsExt.ux.RefEnumStore', {}); this.storeport.load({ params: { enumTypeId: 10} }); this.comboxport = Ext.create('DsExt.ux.RefEnumCombox', { fieldLabel: '目的港', forceSelection: true, store: this.storeport, name: 'port', valueField: 'EnumValueName', displayField: 'EnumValueName' }); this.storeCustCode2 = Ext.create('DsExt.ux.RefTableStore', { model: 'DsShipping.ux.CustomRefModel', proxy: { url: '/CommMng/BasicDataRef/GetCustomRefList' } }); this.storeCustCode2.load({ params: { condition: ""} }); this.comboxCustCode2 = Ext.create('DsExt.ux.RefTableCombox', { fieldLabel: '购货单位', store: this.storeCustCode2, //allowBlank: false, forceSelection: true, name: 'CUSTOMERNAME', id: "CUSTOMERNAME2", valueField: 'CustName', displayField: 'CodeAndName' }); this.storeCurrExrate = Ext.create('Ext.data.Store', { fields: ['CURR', 'EXRATE', 'DFEXRATE'] }); this.formSearch = Ext.widget('form', { frame: true, region: 'north', bodyPadding: 5, fieldDefaults: { margins: '2 2 2 2', labelAlign: 'right', flex: 1, labelWidth: 90, msgTarget: 'qtip' }, items: [ {//fieldset 1 xtype: 'container', defaultType: 'textfield', layout: 'anchor', defaults: { anchor: '100%' }, items: [{ xtype: 'container', layout: 'hbox', defaultType: 'textfield', items: [ { xtype: 'button', width: 90, text: "执行查询", iconCls: "btnrefresh", handler: function (button, event) { this.onRefreshClick(button, event); }, scope: this }, { fieldLabel: '合同号', name: 'HTH', enableKeyEvents: true, listeners: { specialkey: function (field, e) { if (e.getKey() == e.ENTER) { _this.onRefreshClick(); } } } }, { fieldLabel: '销售单号', name: 'SALESNO', enableKeyEvents: true, listeners: { specialkey: function (field, e) { if (e.getKey() == e.ENTER) { _this.onRefreshClick(); } } } }, { fieldLabel: '货物名称', name: 'CARGONAME', enableKeyEvents: true, listeners: { specialkey: function (field, e) { if (e.getKey() == e.ENTER) { _this.onRefreshClick(); } } } }, { xtype: 'hiddenfield', flex: 2 } ] }, { xtype: 'container', layout: 'hbox', defaultType: 'textfield', items: [{ xtype: 'button', width: 90, text: "重置条件", iconCls: "btnreset", handler: function (button, event) { this.onClearSql(button, event); }, scope: this } , this.comboxCustCode2 , { xtype: 'hiddenfield', flex: 4 } ] } ]//end items(fieldset 1) }//end fieldset 1 ]//end root items }); //#endregion 明细表 //#region 费用列表 this.storeFeeTypeRef = Ext.create('DsExt.ux.RefEnumStore', {}); this.storeFeeTypeRef.load({ params: { enumTypeId: 99020} }); this.comboxFeeTypeRef = Ext.create('DsExt.ux.RefEnumCombox', { store: this.storeFeeTypeRef, name: 'FeeType' }); this.storeFeeNameRef = Ext.create('DsExt.ux.RefTableStore', { model: 'DsTruckMng.ux.FeeTypeRefModel', proxy: { url: '/CommMng/BasicDataRef/GetFeeTypeRefList' } }); this.storeFeeNameRef.load({ params: { condition: ""} }); this.comboxFeeNameRef = Ext.create('DsExt.ux.RefTableCombox', { store: this.storeFeeNameRef, forceSelection: true, name: 'FeeName', valueField: 'Name', displayField: 'CodeAndName' }); this.storeCustomerNameRef = Ext.create('DsExt.ux.RefTableStore', { model: 'DsTruckMng.ux.CustomRefModel', proxy: { url: '/CommMng/BasicDataRef/GetCustomRefList' } }); this.storeCustomerNameRef.load({ params: { condition: ""} }); this.comboxCustomerNameRef = Ext.create('DsExt.ux.RefTableCombox', { store: this.storeCustomerNameRef, forceSelection: true, allowBlank: false, name: 'CustomerName', valueField: 'CustName', displayField: 'CodeAndName' }); //明细表-数据集 this.storeBodyChFee = Ext.create('Ext.data.Store', { model: 'MsChFee_Sales', remoteSort: false, proxy: { type: 'ajax', url: '/Import/ImportDelivery/GetFeeList', reader: { id: 'GId', root: 'data', totalProperty: 'totalCount' } } }); this.cellEditingChFee = Ext.create('Ext.grid.plugin.CellEditing', { clicksToEdit: 1 }); this.feeGridCheckBoxModel = Ext.create('Ext.selection.CheckboxModel'); this.gridListChFee = new Ext.grid.GridPanel({ store: this.storeBodyChFee, enableHdMenu: false, layout: "border", region: 'center', loadMask: { msg: "数据加载中,请稍等..." }, trackMouseOver: true, disableSelection: false, plugins: [this.cellEditingChFee], selModel: this.feeGridCheckBoxModel, selType: 'cellmodel', features: [{ ftype: 'summary'//Ext.grid.feature.Summary表格汇总特性 }], viewConfig: { autoFill: true, getRowClass: function (record, rowIndex, rowParams, store) { var feeStatus = record.get('FeeStatus'); return DsTruck.MsChFeeGetRowClass(feeStatus); } }, tbar: [{ xtype: 'label', id: 'label1', text: "应收应付费用" }, '-', { text: '增加明细', hidden: true, tooltip: '增加明细', id: "addChfee", iconCls: "btnadddetail", handler: function (button, event) { this.onAddFeeClick(button, event); }, scope: this }, { text: '删除明细', hidden: true, tooltip: '删除明细', id: "delChfee", iconCls: "btndeletedetail", handler: function (button, event) { this.onDelFeeClick(button, event); }, scope: this }, '-', { id: "btnSave", text: '保存修改', //hidden: true, tooltip: '保存修改', iconCls: "btnsave", handler: function (button, event) { this.SaveFee(); //alert(USERID); }, scope: this }, { text: '提交审核', //hidden: true, tooltip: '提交审核', iconCls: 'btnsubmitaudit', handler: function (button, event) { this.onSubmitAuditClick(button, event); }, scope: this }, { text: '撤回提交', //hidden: true, tooltip: '撤回提交', iconCls: 'btncomm', handler: function (button, event) { //this.onRetractClick(button, event); this.onRetractClick(button, event); }, scope: this }, { xtype: "label", id: "zongshu", text: "", handler: function () { ; } }], columns: [{ sortable: true, hidden: true, dataIndex: 'GId', header: '惟一编号', width: 160 }, { sortable: true, hidden: true, dataIndex: 'BsNo', header: '业务编号', width: 200 }, { sortable: true, dataIndex: 'FeeStatus', header: '费用状态', renderer: function (value, p, record) { return record.data.FeeStatus_Ref; }, width: 66 }, { sortable: true, dataIndex: 'FeeName', header: '费用名称', editor: this.comboxFeeNameRef, width: 70 }, { sortable: true, dataIndex: 'FeeType', header: '收付方式', renderer: function (value, p, record) { if (value == null || value == '') return ''; else if (value == 1) return value + '-应收'; else if (value == 2) return value + '-应付'; }, editor: this.comboxFeeTypeRef, width: 66 }, { sortable: true, dataIndex: 'FeeDescription', header: '费用英文名称', hidden: true, width: 200 }, { sortable: true, dataIndex: 'CustomerType', header: '客户类别', hidden: true, width: 200 }, { sortable: true, dataIndex: 'CustomerName', header: '结算对象', editor: this.comboxCustomerNameRef, width: 120 }, { sortable: true, dataIndex: 'Unit', header: '单位标准', hidden: true, width: 200 }, { sortable: true, dataIndex: 'UnitPrice', header: '单价', editor: { xtype: 'textfield', //numberfield selectOnFocus: true }, width: 70 }, { sortable: true, dataIndex: 'Quantity', header: '数量', editor: { xtype: 'textfield', selectOnFocus: true }, width: 60, summaryType: 'sum', summaryRenderer: Ext.util.Format.numberRenderer('00.00') }, { sortable: true, dataIndex: 'Amount', header: '金额', width: 80, summaryType: 'sum', summaryRenderer: Ext.util.Format.numberRenderer('00.00') }, { sortable: true, dataIndex: 'Currency', header: '币别', editor: this.comboxcurr_2, width: 50 }, { sortable: true, dataIndex: 'ExChangerate', header: '汇率', //hidden: true, editor: { xtype: 'textfield', selectOnFocus: true }, width: 60 }, { sortable: true, dataIndex: 'EnterDate', header: '时间', width: 80, renderer: Ext.util.Format.dateRenderer('Y-m-d'), editor: { format: 'Y-m-d', xtype: 'datefield', selectOnFocus: true } }, { sortable: true, dataIndex: 'Remark', header: '备注', editor: { xtype: 'textfield', selectOnFocus: true }, width: 250 }, { sortable: true, hidden: true, dataIndex: 'SALESNO', header: 'SALESNO', width: 100 } ] }); //#endregion //#region 预收预付的取用 //待取用的预收明细 this.storeAccBodyList = Ext.create('Ext.data.Store', { model: 'CWAdvancePaymentmb', remoteSort: true, proxy: { type: 'ajax', url: '/Account/Chfee_Foreignsettlement/GetAdvancePayment', reader: { id: 'BILLNO', root: 'data', totalProperty: 'totalCount' } } }); this.gridListAccCellEditing = Ext.create('Ext.grid.plugin.CellEditing', { clicksToEdit: 1 }); this.gridListAcc = new Ext.grid.GridPanel({ store: this.storeAccBodyList, enableHdMenu: false, region: 'center', loadMask: { msg: "数据加载中,请稍等..." }, trackMouseOver: true, disableSelection: false, plugins: [this.gridListAccCellEditing], selModel: this.GridAccCheckBoxModel, tbar: [{ text: '添加取用明细', tooltip: '添加取用明细', iconCls: "btnadddetail", handler: function (button, event) { this.onAddAPDetailClick(button, event); }, scope: this }, { text: '执行查询', tooltip: '添加申请费用明细', //iconCls: "btnadddetail", id: "btnsearch", handler: function (button, event) { this.LoadAccBodyList(button, event); }, scope: this }], columns: [{ sortable: true, dataIndex: 'GID', header: 'GID', width: 80, hidden: true }, { sortable: true, dataIndex: 'LINKGID', header: 'LINKGID', width: 80, hidden: true }, { sortable: true, dataIndex: 'BILLNO', header: '结算单号', width: 120 }, { sortable: true, dataIndex: 'FEETYPEREF', header: '收付', width: 60 }, { sortable: true, dataIndex: 'CUSTOMERNAME', header: '结算对象', width: 100 }, { sortable: true, dataIndex: 'CURRENCY', header: '币别', width: 80 }, { sortable: true, dataIndex: 'AMOUNT', header: '金额', width: 80 }, { sortable: true, dataIndex: 'DOAMOUNT', header: '已核销金额', width: 80 }, { sortable: true, dataIndex: 'REMAIN', header: '本次核销', editor: { xtype: 'numberfield', keyNavEnabled: false, allowDecimals: true, decimalPrecision: 2, selectOnFocus: true, mouseWheelEnabled: false, enableKeyEvents: true }, width: 80 }, { sortable: true, dataIndex: 'CREATEUSERREF', header: '录入人', width: 80 }, { sortable: true, dataIndex: 'CREATETIME', header: '录入时间', width: 80 }, { sortable: true, dataIndex: 'REMARK', header: '备注', width: 120 } ] }); //预收预付的使用明细 this.storeBodyListAcc = Ext.create('Ext.data.Store', { model: 'CWAdvancePaymentBodymb', remoteSort: true, proxy: { type: 'ajax', url: '/Account/Chfee_Foreignsettlement/GetAPBodyList', reader: { id: 'GID', root: 'data', totalProperty: 'totalCount' } } }); this.GridBodyAccCheckBoxModel = Ext.create('Ext.selection.CheckboxModel'); this.gridBodyListAcc = new Ext.grid.GridPanel({ store: this.storeBodyListAcc, enableHdMenu: false, region: 'center', //height: 600, loadMask: { msg: "数据加载中,请稍等..." }, trackMouseOver: true, disableSelection: false, selModel: this.GridBodyAccCheckBoxModel, viewConfig: { autoFill: true, enableTextSelection: true }, tbar: [{ text: '删除取用明细', tooltip: '删除取用明细', iconCls: "btnadddetail", handler: function (button, event) { this.onDeleteApClick(button, event); }, scope: this }, '-', { text: '核销费用', tooltip: '重新生成费用结算。', //iconCls: "btnadddetail", handler: function (button, event) { this.onSettlementClick(button, event); }, scope: this }], columns: [ { sortable: true, dataIndex: 'GID', header: 'GID', hidden: true, width: 80 }, { sortable: true, dataIndex: 'LINKGID', header: 'LINKGID', hidden: true, width: 80 }, { sortable: true, dataIndex: 'BILLNO', header: '结算单号', width: 120 }, { sortable: true, dataIndex: 'SETTLELINKGID', header: 'SETTLELINKGID', hidden: true, width: 80 }, { sortable: true, dataIndex: 'SETTLEBILLNO', header: '核销使用单号', width: 120 }, { sortable: true, dataIndex: 'FEETYPE', header: 'FEETYPE', width: 80 }, { sortable: true, dataIndex: 'CUSTOMERNAME', header: '结算对象', hidden: true, width: 100 }, { sortable: true, dataIndex: 'CURRENCY', header: '币别', width: 80 }, { sortable: true, dataIndex: 'DOAMOUNT', header: '核销金额', width: 80 }, { sortable: true, dataIndex: 'SETTLEUSERREF', header: '核销人', width: 80 }, { sortable: true, dataIndex: 'SETTLETIME', header: '核销时间', width: 80 }, { sortable: true, dataIndex: 'REMARK', header: '备注', width: 80 }, { sortable: true, dataIndex: 'VOUCHERNO', header: '凭证号', width: 80 } ] }); //#endregion //#region 明细表-单据档案管理 this.storeReceiptid = Ext.create('DsExt.ux.RefEnumStore', {}); this.storeReceiptid.load({ params: { enumTypeId: 2} }); this.comboxReceiptid = Ext.create('DsExt.ux.RefEnumCombox', { store: this.storeReceiptid, name: 'RECEIPTTYPE', valueField: 'EnumValueName', displayField: 'EnumValueName' }); this.storeDocList = Ext.create('Ext.data.Store', { model: 'ReceiptDocmb', remoteSort: true, proxy: { type: 'ajax', url: '/Import/ReceiptDoc/GetDocList', reader: { id: 'GID', root: 'data', totalProperty: 'totalCount' } } }); //明细表表格 this.DocListCellEditing = Ext.create('Ext.grid.plugin.CellEditing', { clicksToEdit: 1 }); this.DocCM = Ext.create('Ext.selection.CheckboxModel'); this.gridDocList = new Ext.grid.GridPanel({ store: this.storeDocList, enableHdMenu: false, region: 'west', width: 350, loadMask: { msg: "数据加载中,请稍等..." }, trackMouseOver: true, disableSelection: false, plugins: [this.DocListCellEditing], selModel: this.DocCM, selType: 'cellmodel', tbar: [{ text: '添加', hidden: true, tooltip: '添加', iconCls: "btnadddetail", handler: function (button, event) { this.onAddFileClick(button, event); }, scope: this }, '-', { text: '删除', hidden: true, tooltip: '删除', iconCls: "btndeletedetail", handler: function (button, event) { this.onDelFileClick(button, event); }, scope: this }, '-', { text: '保存', hidden: true, tooltip: '保存', iconCls: "btnsave", handler: function (button, event) { this.onPostFileClick(button, event); }, scope: this }, '-', { text: '上传附件', hidden: true, 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, dataIndex: 'RECEIPTTYPE', header: '单据类型', editor: this.comboxReceiptid, 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: 140, editor: { xtype: 'textfield' } }, { 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: 85 } ] }); this.gridDocList.getSelectionModel().on('select', function (model, record, index) { if (this.Loading == true) { return; } var PICURL = record.data.Driect_URL; Ext.getCmp('panelPic').body.update(' '); }, this); //#endregion //#region 布局 //控件布局 this.panelService = new Ext.Panel({ layout: "border", region: 'center', margin: '2 2', items: [this.gridList] }); this.panelAddfee = new Ext.Panel({ layout: "border", region: 'east', width: 600, split: true, margin: '2 2', items: [this.gridListChFee] }); this.paneldetail = new Ext.Panel({ title: '销售明细', layout: "border", height: 240, region: "north", split: true, items: [ this.panelService, this.panelAddfee ] }); this.panelAddService = new Ext.Panel({ layout: "border", region: 'center', margin: '2 2', items: [this.gridAddList] }); this.paneladddetail = new Ext.Panel({ layout: "border", region: 'center', height: 300, items: [this.panelAddService ] }); this.paneladd = new Ext.Panel({ title: '添加销售明细', layout: "border", // region: 'south', region: "center", // height: 420, items: [ this.formSearch, this.paneladddetail ] }); this.panelTop = new Ext.Panel({ layout: "border", region: "north", height: 150, items: [this.panelBtn, this.formEdit] }); this.paneldetailacc = new Ext.Panel({ //预收预付的使用列表 layout: "border", height: 160, region: "north", split: true, items: [ this.gridBodyListAcc ] }); this.panelAddacc = new Ext.Panel({ //预收预付列表 layout: "border", height: 160, region: "north", margin: '2 2', items: [this.gridListAcc] }); this.panelaccdetail = new Ext.Panel({ title: '认款/确认核销', layout: "border", autoScroll: true, //height: 360, region: "center", //split: true, items: [ this.paneldetailacc, this.panelAddacc ] }); this.MainTab = new Ext.tab.Panel({ layout: "border", region: "center", split: true, items: [this.paneladd//, this.panelaccdetail ] }); this.panelPic = new Ext.Panel({ id: "panelPic", layout: "fit", region: "center", autoScroll: true, frame: false, html: ' '//ftp://bjes:@120.27.53.37/dhm-11111/2.jpg }); this.page1 = new Ext.Panel({ layout: "border", title: "销售单明细信息", region: "center", items: [this.paneldetail, this.MainTab] }); this.page2 = new Ext.Panel({ layout: "border", title: "相关采购单附件", region: "center", items: [this.gridDocList, this.panelPic] }); this.tabBottom = new Ext.TabPanel({ activeTab: 0, autoWidth: true, //border: true, frame: false, region: 'center', //enableTabScroll: true, items: [ this.page1 , this.page2 ] }); Ext.apply(this, { items: [this.panelTop, this.tabBottom] }); //#endregion //绑定查询窗体 this.ParentWin = window.parent.opener; //初始化数据 this.InitData(); //#region绑定事件 var billno = '*'; if (this.opStatus == 'edit') { billno = this.editRecord.get('BILLNO'); }; this.storeBodyList.on('beforeload', function (store) { var sql = " BILLNO='" + billno + "'"; Ext.apply(store.proxy.extraParams, { condition: sql }); }, this); this.storeBodyList.on('load', function (store, records) { if (store.getCount() > 0) { this.gridList.getSelectionModel().select(0); } }, this); this.gridList.on('edit', function (editor, e, eOpts) { this.DetailAfterEdit(editor, e, eOpts); }, this); this.gridListChFee.on('edit', function (editor, e, eOpts) { this.gridListChFeeAfterEdit(editor, e, eOpts); }, this); //#endregion this.gridListCellEditing.on('beforeedit', function (editor, e) { //Ext.getCmp("zongshu").setText("1234"); return this.DetailBeforeEdit(editor, e); }, this); this.cellEditingChFee.on('beforeedit', function (editor, e) { //Ext.getCmp("zongshu").setText("1234"); return this.FeeBeforeEdit(editor, e); }, this); }, //end initUIComponents InitData: function () { this.opStatus = 'add'; var condition = ''; if (this.ParentWin) { var ret = this.ParentWin.OprationSwap(); this.opStatus = ret[0]; this.StoreList = ret[1]; this.editRecord = ret[2]; } if (this.opStatus == 'edit') condition = " GID='" + this.editRecord.get('GID') + "'"; this.LoadData(this.opStatus, condition); }, //end InitData UnlockInitData: function (DELIVERYNO) { condition = " DeliveryNo='" + DELIVERYNO + "'"; this.LoadData(this.opStatus, condition); }, //end InitData LoadData: function (opstatus, condition) { this.serialNo = 0; this.workSerialNo = 0; this.bodyDel = []; this.opStatus = opstatus; _this = this; Ext.Ajax.request({ waitMsg: '正在查询主表数据...', url: '/Import/ImportDelivery/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.ERROR, buttons: Ext.Msg.OK }); return; } var data = result.data; if (data.DELIVERYDATE == "") { data.DELIVERYDATE = currdate.format('yyyy-MM-dd hh:mm:ss') }; if (data.OP == "") { data.OP = usercode }; //if (data.BSSTATUS == "") { data.BSSTATUS = "0" }; //if (data.FEESTATUS == "") { data.FEESTATUS = "0" }; _this.formEdit.getForm().reset(); _this.formEdit.getForm().setValues(data); _this.GetEditStatus(); if (data.BSSTATUS == "0") { Ext.getCmp("BSSTATUSREF").setText("状态:未提交"); } if (data.BSSTATUS == "2") { Ext.getCmp("BSSTATUSREF").setText("状态:已提交"); } if (data.BSSTATUS == "1") { Ext.getCmp("BSSTATUSREF").setText("状态:审核通过"); } if (data.BSSTATUS == "6") { Ext.getCmp("BSSTATUSREF").setText("状态:驳回提交"); } billno = data.DELIVERYNO; SALESNO = data.SALESNO; this.storeBodyList.load({ params: { condition: " D.DELIVERYNO='" + billno + "'"} }); this.storeBodyChFee.load({ params: { DELIVERYNO: billno }, callback: function (r, options, success) { if (success) { if (this.storeBodyList.getCount() > 0) { //this.comboxCustCode.setReadOnly(true); } else { //this.comboxCustCode.setReadOnly(false); } } }, scope: this }); var condition2 = " BSNO in(select distinct BSNO from import_saleDetail where salesno= '" + SALESNO + "') "; this.Loading = true; this.storeDocList.load({ params: { condition: condition2 }, waitMsg: "正在查询数据...", scope: this, callback: function () { this.Loading = false; } }); //载入该出库业务结算内的预付费引用 /* this.storeBodyListAcc.load({ params: { condition: " SETTLEBILLNO='" + billno + "'" }, callback: function (r, options, success) { if (success) { //if (_this.storeBodyListAcc.getCount() > 0) (this.comboxCurrADVANCE.readOnly = true) } }, scope: this }); this.setSaveBtnStatus();*/ } else { Ext.MessageBox.alert('请求出现错误,请重试', response.responseText); } }, scope: this }); var billno = '*'; if (this.opStatus == 'edit') { billno = this.editRecord.get('DELIVERYNO'); }; /*, callback: function (r, options, success) { if (success) { if (this.storeBodyList.getCount() > 0) { //this.comboxCustCode.setReadOnly(true); } else { //this.comboxCustCode.setReadOnly(false); } } }, scope: this });*/ }, // end LoadDate Save: function (type) { var basicForm = this.formEdit.getForm(); if (!basicForm.isValid()) { return; } var data = basicForm.getValues(); var DELIVERYNO = data.DELIVERYNO; var bodydatas = []; for (var i = 0; i < this.storeBodyList.getCount(); i += 1) { var member = this.storeBodyList.getAt(i); bodydatas.push(member); } var jsonDetailBody = ConvertRecordsToJson(bodydatas); var bodyChFeeDatas = []; for (i = 0; i < this.storeBodyChFee.getCount(); i += 1) { var memberyf = this.storeBodyChFee.getAt(i); bodyChFeeDatas.push(memberyf); var amount = memberyf.data.Amount; if (amount == 0) { Ext.Msg.show({ title: '警告', msg: '费用的金额不允许为0,请修改后再保存', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); return; } }; //var jsonChFeeBody = ConvertRecordsToJson(bodyChFeeDatas); //var jsonChFeeDelBody = ConvertRecordsToJsonAll(this.feeBodyDel); data.OUTRECEIPT = this.formEdit.getForm().findField('OUTRECEIPT').getValue() ? 1 : 0; data.SFKC = this.formEdit.getForm().findField('SFKC').getValue() ? 1 : 0; data.SFCM = this.formEdit.getForm().findField('SFCM').getValue() ? 1 : 0; Ext.Msg.wait('正在保存数据, 请稍侯..'); Ext.Ajax.request({ waitMsg: '正在保存数据...', async: false, url: '/Import/ImportDelivery/Save', scope: this, params: { opstatus: this.opStatus, data: Ext.JSON.encode(data), DeliveryDetailList: jsonDetailBody }, callback: function (options, success, response) { if (success) { this.feeBodyDel = []; this.storeBodyChFee.commitChanges(); Ext.MessageBox.hide(); var jsonresult = Ext.JSON.decode(response.responseText); if (jsonresult.Success) { var returnData = jsonresult.Data; this.formEdit.getForm().setValues(returnData); this.storeBodyList.commitChanges(); if (this.opStatus == 'add') { var arrNewRecords = this.StoreList.add(returnData); this.editRecord = arrNewRecords[0]; } else if (this.opStatus == 'edit') { var editp = Ext.create('ImportDeliverymb', returnData); this.editRecord.fields.each(function (field) { if (field.persist) { name = field.name; if (name != 'id') this.editRecord.set(name, editp.get(name)); } }, this); this.editRecord.commit(); } if (type == '0') { this.opStatus = 'edit'; this.storeBodyList.load({ params: { condition: " D.DELIVERYNO='" + DELIVERYNO + "'"} }); } else if (type == '1') { window.close(); } else { this.LoadData('add', ''); } } else { Ext.Msg.show({ title: '错误', msg: jsonresult.Message, icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); } // } else { Ext.Msg.show({ title: '请重试', msg: '服务器响应出错', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); } } }); }, //end save onAddDetailClick: function (button, event) { this.addstore = true; this.addDetail(); }, //end onAddDetailClick onAddBillClick: function (button, event) { this.addstore = true; this.addBill(); }, //end onAddDetailClick onDelDetailClick: function (button, event, type) { this.deleteDetail(); }, //onDelDetailClick onAddClick: function (button, event) { var BSSTATUS = this.formEdit.getForm().findField('BSSTATUS').getValue(); if (BSSTATUS == "1") { alert("已经锁定的出库单不能更改明细"); return; } //传递GID参数 var MainList = ""; selectedRecords = this.gridAddList.selModel.getSelection(); if (selectedRecords.length == 0) { return; } var SALESNO = ""; var formEdit = this.formEdit.getForm(); var SALESNO = formEdit.findField('SALESNO').getValue(); var CUSTOMERNAME = formEdit.findField('CUSTOMERNAME').getValue(); if (CUSTOMERNAME == "") { selectedRecords = this.gridAddList.selModel.getSelection(); var _CUSTOMERNAME = ""; for (var i = 0; i < selectedRecords.length; i++) { var rec = selectedRecords[i]; _CUSTOMERNAME = rec.get('CUSTOMERNAME'); } Ext.getCmp("CUSTOMERNAME").setValue(_CUSTOMERNAME); } for (var i = 0; i < selectedRecords.length; i++) { var rec = selectedRecords[i]; if (SALESNO == "") { SALESNO = rec.get('SALESNO'); } else if (SALESNO != rec.get('SALESNO')) { alert("不能跨销售单选择销售明细"); return; } if (MainList == "") { MainList = "'" + rec.get('GID') + "'"; } else { MainList = MainList + ",'" + rec.get('GID') + "'"; } } var formEdit = this.formEdit.getForm(); var DELIVERYNO = formEdit.findField('DELIVERYNO').getValue(); Ext.Ajax.request({ waitMsg: '正在保存数据...', url: '/Import/ImportDelivery/AddDetail', scope: this, params: { DELIVERYNO: DELIVERYNO, DetailList: MainList }, callback: function (options, success, response) { if (success) { var result = Ext.JSON.decode(response.responseText); //var data = result.data; this.storeBodyList.load({ params: { condition: " D.DELIVERYNO='" + DELIVERYNO + "'"} }); Ext.getCmp("SALESNO").setValue(SALESNO); this.Save('0'); this.onRefreshClick(); var condition2 = " BSNO in(select distinct BSNO from import_saleDetail where salesno= '" + SALESNO + "') "; this.Loading = true; this.storeDocList.load({ params: { condition: condition2 }, waitMsg: "正在查询数据...", scope: this, callback: function () { this.Loading = false; } }); } else { Ext.Msg.show({ title: '请重试', msg: '服务器响应出错', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); } } }); }, onDeleteClick: function (button, event) { var BSSTATUS = this.formEdit.getForm().findField('BSSTATUS').getValue(); if (BSSTATUS == "1") { alert("已经锁定的出库单不能更改明细"); return false; } var MainList = ""; var GID = ""; selectedRecords = this.gridList.selModel.getSelection(); for (var i = 0; i < selectedRecords.length; i++) { var rec = selectedRecords[i]; if (MainList == "") { MainList = "'" + rec.get('GID') + "'"; } else { MainList = MainList + ",'" + rec.get('GID') + "'"; } } var formEdit = this.formEdit.getForm(); var DELIVERYNO = formEdit.findField('DELIVERYNO').getValue(); if (MainList == "") { return; } else Ext.MessageBox.confirm('提示', '确定删除这些记录吗?(注意:有已核销的相关费用的出库明细将无法删除)', function (btn) { if (btn == 'yes') { for (var i = 0; i < selectedRecords.length; i++) { var rec = selectedRecords[i]; GID = "'" + rec.get('GID') + "'"; Ext.Ajax.request({ waitMsg: '正在删除数据...', url: '/Import/ImportDelivery/DeleteDetail', params: { DELIVERYNO: DELIVERYNO, GIDList: MainList }, callback: function (options, success, response) { if (success) { var jsonresult = Ext.JSON.decode(response.responseText); if (jsonresult.Success) { var _this = this; this.storeBodyList.load({ params: { condition: " D.DELIVERYNO='" + DELIVERYNO + "'" } , callback: function (options, success, response) { if (_this.storeBodyList.getCount() == 0) Ext.getCmp("SALESNO").setValue(""); this.Save('0'); } }); //Ext.Msg.show({ title: '提示', msg: jsonresult.Message, icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); } else { //Ext.Msg.show({ title: '错误', msg: jsonresult.Message, icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); } Ext.Msg.hide(); } }, failure: function (response, options) { Ext.Msg.show({ title: '警告', msg: '服务器响应出错,请重试', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); }, success: function (response, options) { }, scope: this }); //end Ext.Ajax.request } } }, this); }, //end onAddDetailClick gridAddFeeListAfterEdit: function (editor, e, eOpts) { //需要自己实现里面的事件 if (e.value == e.originalValue) return; if (e.field == 'StlAmount') { var BalAmount = e.record.data['BalAmount']; var StlAmount = e.record.data['StlAmount']; if (BalAmount >= 0) { if (StlAmount > BalAmount) { e.record.set('StlAmount', BalAmount); Ext.Msg.show({ title: '提示', msg: '申请金额不能大于未申金额!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); } } else { if (StlAmount < BalAmount) { e.record.set('StlAmount', BalAmount); Ext.Msg.show({ title: '提示', msg: '申请金额不能大于未申金额!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); } } } }, onNextKeyClick: function (col) { var rows = this.gridAddFeeList.getSelectionModel().getSelection(); var row = rows[rows.length - 1]; var s = this.gridAddFeeList.getStore(); var number = s.indexOf(row) + 1; this.cellEditingFee.startEditByPosition({ row: number, column: col }); }, onUpKeyClick: function (col) { var rows = this.gridAddFeeList.getSelectionModel().getSelection(); var row = rows[rows.length - 1]; var s = this.gridAddFeeList.getStore(); var number = s.indexOf(row) - 1; if (number < 0) number = 0; this.cellEditingFee.startEditByPosition({ row: number, column: col }); }, DetailBeforeEdit: function (editor, e) { var BSSTATUS = this.formEdit.getForm().findField('BSSTATUS').getValue(); if (BSSTATUS == "1") { alert("已经锁定的出库单不能更改明细"); return false; } }, FeeBeforeEdit: function (editor, e) { var chfeefeeStatus = e.record.get('FeeStatus'); var canedit = chfeefeeStatus == 1 || chfeefeeStatus == 6; return canedit; }, addDetail: function () { var BSSTATUS = this.formEdit.getForm().findField('BSSTATUS').getValue(); if (BSSTATUS == "1") { alert("已经锁定的出库单不能更改明细"); return false; } var basicForm = this.formEdit.getForm(); var Duino = this.formEdit.getForm().findField('BILLNO').getValue(); _this = this; if ((Duino == '*') || basicForm.isDirty()) { var CUSTOMERNAME = this.formEdit.getForm().findField('CUSTOMERNAME').getValue(); var CURR = this.formEdit.getForm().findField('CURR').getValue(); if ((CUSTOMERNAME == '') || (CUSTOMERNAME == null)) { var selectedRecords = this.gridAddFeeList.selModel.getSelection(); if (selectedRecords.length > 0) { var rec = selectedRecords[0]; var cust = rec.data.CustomerName; var curr = rec.data.Currency; if ((CUSTOMERNAME == '') || (CUSTOMERNAME == null)) this.formEdit.getForm().findField('CUSTOMERNAME').setValue(cust); if ((CURR == '') || (CURR == null)) this.formEdit.getForm().findField('CURR').setValue(curr); } } var STLDATE = this.formEdit.getForm().findField('PAYABLETIME').getValue(); if ((STLDATE == '') || (STLDATE == null)) { var myDate = new Date(); var mydatestr = Ext.util.Format.date(myDate, 'Y-m-d'); this.formEdit.getForm().findField('PAYABLETIME').setValue(mydatestr); } if (!basicForm.isValid()) { return; } var type = 0; this.formEdit.getForm().findField('BILLSTATUS').setDisabled(false); this.formEdit.getForm().findField('APPLICANT').setDisabled(false); this.formEdit.getForm().findField('COMPANYID').setDisabled(false); var data = basicForm.getValues(); this.formEdit.getForm().findField('BILLSTATUS').setDisabled(true); this.formEdit.getForm().findField('APPLICANT').setDisabled(true); this.formEdit.getForm().findField('COMPANYID').setDisabled(true); Ext.Msg.wait('正在保存数据, 请稍侯..'); Ext.Ajax.request({ waitMsg: '正在保存数据...', url: '/Account/Chfee_ForeignPay/Save', scope: this, params: { opstatus: this.opStatus, data: Ext.JSON.encode(data) }, callback: function (options, success, response) { if (success) { Ext.MessageBox.hide(); var jsonresult = Ext.JSON.decode(response.responseText); if (jsonresult.Success) { var returnData = jsonresult.Data; this.formEdit.getForm().setValues(returnData); if (this.opStatus == 'add') { var arrNewRecords = this.StoreList.add(returnData); this.editRecord = arrNewRecords[0]; } else if (this.opStatus == 'edit') { var editp = Ext.create('MsChPayapplication', returnData); this.editRecord.fields.each(function (field) { if (field.persist) { name = field.name; if (name != 'id') this.editRecord.set(name, editp.get(name)); } }, this); this.editRecord.commit(); } this.opStatus = 'edit'; _this.addDetailfn(); } 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 }); } } }); } else { this.addDetailfn(); } }, onSubmitAuditBackClick: function () { var Duino = this.formEdit.getForm().findField('BILLNO').getValue(); var billstatus = this.formEdit.getForm().findField('BILLSTATUS').getValue(); if (Duino == '*') { Ext.Msg.show({ title: '提示', msg: '请先保存付费申请,然后才能提交审核!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); return; }; if (billstatus != 2) { Ext.Msg.show({ title: '提示', msg: '当前状态无法撤销提交!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); return; } _this = this; Ext.Ajax.request({ waitMsg: '正在添加数据...', url: '/Account/Chfee_ForeignPay/SubmitAuditBack', params: { bill: Duino }, callback: function (options, success, response) { if (success) { var result = Ext.JSON.decode(response.responseText); if (!result.Success) { Ext.Msg.show({ title: '提示', msg: result.Message, icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK }); return; } else { Ext.Ajax.request({ waitMsg: '正在查询主表数据...', url: '/Account/Chfee_ForeignPay/GetData', params: { handle: 'edit', condition: " BILLNO='" + Duino + "'" }, callback: function (options, success, response) { if (success) { var result = Ext.JSON.decode(response.responseText); if (!result.Success) { Ext.Msg.show({ title: '提示', msg: result.Message, icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK }); return; } var data = result.data; _this.formEdit.getForm().findField('BILLSTATUS').setDisabled(false); _this.formEdit.getForm().reset(); _this.formEdit.getForm().setValues(data); _this.formEdit.getForm().findField('BILLSTATUS').setDisabled(true); var editp = Ext.create('MsChPayapplication', data); this.editRecord.fields.each(function (field) { if (field.persist) { name = field.name; if (name != 'id') this.editRecord.set(name, editp.get(name)); } }, this); this.editRecord.commit(); _this.GetEditStatus(); } else { Ext.MessageBox.alert('请求出现错误,请重试', response.responseText); } }, scope: this }); } } else { Ext.MessageBox.alert('请求出现错误,请重试', response.responseText); } }, scope: this }); }, onRefreshClick: function (button, event) { var sql = this.getCondition(); this.storeBodyAddList.load({ params: { start: 0, limit: this.PageSize, sort: '', condition: sql} }); }, onClearSql: function () { var form = this.formSearch.getForm(); form.reset(); }, getCondition: function () { var form = this.formSearch.getForm(); if (!form.isValid()) { Ext.Msg.alert('提示', '查询条件赋值错误,请检查。'); return ''; } var formEdit = this.formEdit.getForm(); var DELIVERYNO = formEdit.findField('DELIVERYNO').getValue(); if (DELIVERYNO == "") { //this.Save('0'); } var sql = " s.gid not in (select saledetail_gid from import_deliverydetail where deliveryno='" + DELIVERYNO + "') and ss.SALESTATUS=2 "; sql = sql + " and s.cargo_gid in(select cargo_gid from wms where goodspackstock<>0 and goodsstock<>0 ) " var SALESNO = formEdit.findField('SALESNO').getValue(); if (SALESNO != "") { sql = sql + getAndConSql(sql, SALESNO, " s.SALESNO= '" + SALESNO + "' "); } var HTH = form.findField('HTH').getValue(); sql = sql + getAndConSql(sql, HTH, " s.BSNO in(select contractno from import_main where hth like '%" + HTH + "%') "); var _SALESNO = form.findField('SALESNO').getValue(); sql = sql + getAndConSql(sql, _SALESNO, " s.SALESNO like '%" + _SALESNO + "%' "); var CARGONAME = form.findField('CARGONAME').getValue(); sql = sql + getAndConSql(sql, CARGONAME, " s.cargo_GID in (select gid from import_cargo where name like '%" + CARGONAME + "%') "); var CUSTOMERNAME = form.findField('CUSTOMERNAME').getValue(); sql = sql + getAndConSql(sql, CUSTOMERNAME, " s.SALESNO in(select SALESNO from import_sales where CUSTOMERNAME like '%" + CUSTOMERNAME + "%') "); return sql; }, getFeeCondition: function () { var form = this.formSearch.getForm(); var feesql = 'f.FEESTATUS IN (0,8,9) and (f.AMOUNT<>(f.SETTLEMENT+f.ORDERAMOUNT-ISNULL(f.ORDERSETTLEMENT,0))) '; var CUSTNAME = form.findField('CUSTNAME').getValue(); feesql = feesql + getAndConSql(feesql, CUSTNAME, "f.CUSTOMERNAME='" + CUSTNAME + "'"); var DC = form.findField('DC').getValue(); feesql = feesql + getAndConSql(feesql, DC, "f.FEETYPE=" + DC); var Currency = form.findField('Currency').getValue(); feesql = feesql + getAndConSql(feesql, Currency, "f.Currency='" + Currency + "'"); var FeeName = form.findField('FeeName').getValue(); feesql = feesql + getAndConSql(feesql, FeeName, "f.FeeName='" + FeeName + "'"); return feesql; }, ExrateConversion: function (bfcurr, afcurr, fntype, dfexrate) { var EXRATE = 0; var achange = true; var bchange = true; formExrateConversion = Ext.widget('form', { frame: true, region: 'center', bodyPadding: 5, fieldDefaults: { margins: '2 2 2 2', labelAlign: 'right', flex: 1, labelWidth: 90, msgTarget: 'qtip' }, items: [ {//fieldset 1 xtype: 'container', defaultType: 'textfield', layout: 'anchor', defaults: { anchor: '100%' }, items: [{ xtype: 'container', layout: 'hbox', defaultType: 'textfield', items: [{ fieldLabel: '1' + bfcurr + '=', xtype: 'numberfield', name: 'bfcurr', decimalPrecision: 4, value: 0, listeners: { change: function () { if (bchange) { var bfcurr = formExrateConversion.getForm().findField('bfcurr').getValue(); var field = formExrateConversion.getForm().findField('afcurr'); if (bfcurr == 0) { field.setValue(0); } else { var taxrate = (parseFloat(1).div(parseFloat(bfcurr))).toFixed(4); achange = false; field.setValue(taxrate); } } achange = true; } } }, { xtype: 'label', width: 120, text: afcurr, name: 'bfcurr2' } ] }, { xtype: 'container', layout: 'hbox', defaultType: 'textfield', items: [{ fieldLabel: '1' + afcurr + '=', xtype: 'numberfield', name: 'afcurr', decimalPrecision: 4, value: 0, listeners: { change: function () { if (achange) { var afcurr = formExrateConversion.getForm().findField('afcurr').getValue(); var field = formExrateConversion.getForm().findField('bfcurr'); if (afcurr == 0) { field.setValue(0); } else { var taxrate = (parseFloat(1).div(parseFloat(afcurr))).toFixed(4); bchange = false; field.setValue(taxrate); } } bchange = true; } } }, { xtype: 'label', width: 120, text: bfcurr, name: 'afcurr2' } ] } ]//end items(fieldset 1) }//end fieldset 1 ]//end root items }); me = this; winExrateShow = Ext.create('Ext.window.Window', { title: "币别汇率折算", width: 450, iconCls: "addicon", resizable: false, collapsible: true, // 允许缩放条 closeAction: 'close', closable: true, modal: 'true', buttonAlign: "center", bodyStyle: "padding:0 0 0 0", items: [formExrateConversion], buttons: [{ text: "确定", minWidth: 70, handler: function () { var form = formExrateConversion.getForm(); var UsdExrate = form.findField('bfcurr').getValue(); if (UsdExrate == '' || UsdExrate == null || UsdExrate == undefined) { Ext.Msg.show({ title: '提示', msg: '必须填折算汇率!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); return; }; var recs = DsStoreQueryBy(me.storeCurrExrate, 'CURR', bfcurr); if (recs.getCount() > 0) { for (var i = 0; i < me.storeCurrExrate.getCount(); i += 1) { var member = me.storeCurrExrate.getAt(i); if (member.data.CURR == bfcurr) { member.set('EXRATE', UsdExrate); member.commit(); } } } else { me.storeCurrExrate.add({ "CURR": bfcurr, "EXRATE": UsdExrate }) } winExrateShow.close(); if (fntype == 'detail') { me.addDetail(); } if (fntype == 'bill') { me.addBill(); } return; } }, { text: "关闭", minWidth: 70, handler: function () { winExrateShow.close(); return; } }] }); if (bfcurr == 'RMB') { var FFrecords = DsStoreQueryBy(this.StoreDateCurr, 'CURR', afcurr); if (FFrecords.getCount() > 0) { var ffdata = FFrecords.getAt(0).data; var DEFRATE = ffdata.DEFRATE; } else { var DFrecords = DsStoreQueryBy(this.StoreCurr, 'CURR', afcurr); if (DFrecords.getCount() > 0) { var dfdata = DFrecords.getAt(0).data; var DEFRATE = dfdata.DEFRATE; } else { var DEFRATE = 1; } } var field = formExrateConversion.getForm().findField('afcurr'); achange = true; field.setValue(DEFRATE); } else { var field = formExrateConversion.getForm().findField('bfcurr'); var recs = DsStoreQueryBy(me.storeCurrExrate, 'CURR', bfcurr); if (recs.getCount() > 0) { var dfdata = recs.getAt(0).data; var DEFRATE = dfdata.DFEXRATE; } else var DEFRATE = dfexrate; bchange = true; field.setValue(DEFRATE); } winExrateShow.show(); }, // #region 根据权限和状态判断是否允许修改 GetEditStatus: function () { var canedit = true; //var btnESubmitAudit = Ext.getCmp('btnSubmitAudit'); //var btnESubmitAuditBack = Ext.getCmp('btnSubmitAuditBack'); //var bsStatus = this.formEdit.getForm().findField('BSSTATUS').getValue(); //var op = this.formEdit.getForm().findField('OP').getValue(); _this = this; _this.setSaveBtnStatus(canedit); /* this.StoreOpRange.load({ params: { optype: "modImportSales" }, callback: function (r, options, success) { if (success) { if (r.length != 0) { var records = DsStoreQueryBy(_this.StoreOpRange, 'OPID', op); if (records.getCount() > 0) { canedit = true; if (bsStatus == 1||bsStatus == 6) btnESubmitAudit.enable(); else btnESubmitAudit.disable(); if (bsStatus == 2) btnESubmitAuditBack.enable(); else btnESubmitAuditBack.disable(); } else { canedit = false; btnESubmitAudit.disable(); btnESubmitAuditBack.disable(); } if ((bsStatus != 1) && (bsStatus != 6)) { _this.setSaveBtnStatus(false); } else { _this.setSaveBtnStatus(canedit); } } } } }); */ }, setSaveBtnStatus: function (enable) { var BSSTATUS = Ext.getCmp('BSSTATUS').getValue(); var btnSubmit = Ext.getCmp('btnSubmit'); var btnUnSubmit = Ext.getCmp('btnUnSubmit'); var btnESaveAndClose = Ext.getCmp('btnESaveAndClose'); var btnESaveAndNew = Ext.getCmp('btnESaveAndNew'); var btnESave = Ext.getCmp('btnESave'); var btnaddbill = Ext.getCmp('btnaddbill'); var btndeldetail = Ext.getCmp('btndeldetail'); if (BSSTATUS == "0" || BSSTATUS == "6") { btnSubmit.enable(); btnUnSubmit.disable(); btnESave.enable(); btnaddbill.enable(); btndeldetail.enable(); btnESaveAndClose.enable(); btnESaveAndNew.enable(); } else if (BSSTATUS == "2") { btnSubmit.disable(); btnUnSubmit.enable(); btnESave.disable(); btnaddbill.disable(); btndeldetail.disable(); btnESaveAndClose.disable(); btnESaveAndNew.disable(); } else if (BSSTATUS == "1") { btnSubmit.disable(); btnUnSubmit.disable(); btnESave.disable(); btnaddbill.disable(); btndeldetail.disable(); btnESaveAndClose.disable(); btnESaveAndNew.disable(); } }, // #endregion //合计选中的费用数字和 onSelectFee: function (button, event) { //Ext.getCmp("zongshu").setText("1234"); var selectedRecords = this.gridListChFee.selModel.getSelection(); var sum = 0; for (var i = 0; i < selectedRecords.length; i++) { var rec = selectedRecords[i]; sum = sum + rec.get("Amount"); } sum = sum.toFixed(2); Ext.getCmp("zongshu").setText(" 选中金额:" + sum); var selectedRecords_YF = this.gridListChFee_YF.selModel.getSelection(); var sum_YF = 0; for (var i = 0; i < selectedRecords_YF.length; i++) { var rec = selectedRecords_YF[i]; sum_YF = sum_YF + rec.get("Amount"); } sum_YF = sum_YF.toFixed(2); Ext.getCmp("zongshu_YF").setText(" 选中金额:" + sum_YF); }, Print: function () { for (var i = 0; i < this.storeBodyList.getCount(); i += 1) { var member = this.storeBodyList.getAt(i).data; weight = member.WEIGHT; weight_stock = Mul(member.GOODSSTOCK, 1000); if (weight > weight_stock) { alert("出库重量大于剩余库存,请注意核对数据!"); //return; } } var basicForm = this.formEdit.getForm(); var billNo = basicForm.findField('DELIVERYNO').value; if (billNo == '*' || billNo == '') { Ext.Msg.show({ title: '错误', msg: '单据还没有保存,请保存后再打印', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); return; } function GetDateStr(AddDayCount) { var dd = new Date(); dd.setDate(dd.getDate() + AddDayCount); //获取AddDayCount天后的日期 var y = dd.getFullYear(); var m = dd.getMonth() + 1; //获取当前月份的日期 var d = dd.getDate(); return y + "-" + m + "-" + d; } //alert(GetDateStr(+5)); var madedate = GetDateStr(0); var CUSTOMERNAME = basicForm.findField('CUSTOMERNAME').value; var printType = 'Import_Delivery_1'; var sql1 = " select d.deliveryno 出库单号,d.SALESNO 销售单号, d.customername 客户名称,d.DELIVERYDATE 出库日期,d.TRUCKNO 车号"; sql1 = sql1 + " ,d.TEL 联系电话,d.REMARK 备注,ss.SALER 销售员 "; sql1 = sql1 + " ,d.SFCM 是否抄码,d.SFKC 是否控车,(select top 1 storagename from wms where ASSOCIATEDNO in(select BSNO from import_saledetail where SALESNO=ss.SALESNO)) 库房"; sql1 = sql1 + " ,(select EnumValueName from tSysEnumValue where LangId=0 and EnumTypeID=42 and EnumValueID=d.DeliveryType) 出库类型"; sql1 = sql1 + " ,d.OP 出库单操作人,(select top 1 OFFICEPHONE from user_baseinfo where userid in(select gid from [user] where showname=d.op)) 出库单操作人电话,d.contact 出库联系人"; sql1 = sql1 + " from Import_Delivery d left join import_sales ss on d.salesno=ss.salesno WHERE DELIVERYNO='" + billNo + "'"; var sql2 = " select D.GID,D.DELIVERYNO,D.SALEDETAIL_GID ,D.WEIGHT,D.BOXCOUNT,D.WEIGHT_EX 计划出库重量,D.BOXCOUNT_EX 计划出库件数,s.salesno "; sql2 = sql2 + " ,s.weight WEIGHT_SALE,s.boxcount BOXCOUNT_SALE ,c.name 货物名称,c.factoryno 厂号,m.hth 合同号,m.Supplier_Billno 供应商合同号,M.containerNo 箱号 "; sql2 = sql2 + " ,(select sum(weight) from import_deliverydetail where saledetail_gid=D.SALEDETAIL_GID) WEIGHT_DE "; sql2 = sql2 + " ,(select sum(boxcount) from import_deliverydetail where saledetail_gid=D.SALEDETAIL_GID) boxcount_DE "; sql2 = sql2 + " ,c.gid CARGO_GID,SS.CUSTOMERNAME ,D.REMARK "; sql2 = sql2 + " ,(select substring(country,0,(charindex('(',country)) ) from code_country where countryid=m.countryid) 国家 "; sql2 = sql2 + " ,c.factoryno 厂号 ,c.SPECIFICATIONS 商品规格"; sql2 = sql2 + " from Import_DeliveryDetail D "; sql2 = sql2 + " left join import_saledetail s on s.gid=d.SALEDETAIL_GID "; sql2 = sql2 + " left join import_cargo c on c.gid=s.cargo_gid "; sql2 = sql2 + " left join import_main m on c.contractno=m.contractno "; sql2 = sql2 + " left join Import_sales ss on ss.salesno=s.salesno "; sql2 = sql2 + " where D.DELIVERYNO='" + billNo + "'"; // var sql3 = " select * from company where gid=(select top 1 companyid from ch_fee_do where BILLNO='" + billNo + "') "; var sql3 = " select enname 公司英文名称,ENADDRESS 公司英文地址,ORGANIZATIONCODE 组织机构代码 "; sql3 = sql3 + " ,* from company where gid='" + COMPANYID + "' "; var sql4 = "select '" + madedate + "' as madedate,'" + CUSTOMERNAME + "' as CUSTOMERNAME,'" + SHOWNAME + "' as SHOWNAME"; var sql5 = "select * from [USER] where gid='" + USERID + "'"; var sql6 = ""; PrintComm(printType, sql1, sql2, sql3, sql4, sql5, sql6); } , DetailAfterEdit: function (editor, e, eOpts) { //需要自己实现里面的事件 if (COMPANYID == "" || USERID == "") { alert("登录信息不全,请退出重新登录"); returen; } if (e.field == 'WEIGHT' || e.field == 'PRICE' || e.field == 'EXCHANGERATE') { var WEIGHT = parseFloat(e.record.data['WEIGHT']); var PRICE = parseFloat(e.record.data['PRICE']); var EXCHANGERATE = parseFloat(e.record.data['EXCHANGERATE']); var AMOUNT = Mul(WEIGHT, PRICE, 2); var AMOUNTRMB = Mul(AMOUNT, EXCHANGERATE, 2) e.record.set('AMOUNT', AMOUNT); e.record.set('AMOUNTRMB', AMOUNTRMB); } var AMOUNT_ALL = 0; var AMOUNTRMB_ALL = 0; for (var i = 0; i < this.storeBodyList.getCount(); i += 1) { AMOUNT_ALL = Add(AMOUNT_ALL, parseFloat(this.storeBodyList.getAt(i).get("AMOUNT"))); AMOUNTRMB_ALL = Add(AMOUNTRMB_ALL, parseFloat(this.storeBodyList.getAt(i).get("AMOUNTRMB"))); } //Ext.getCmp("AMOUNT").setValue(AMOUNT_ALL); //Ext.getCmp("AMOUNTRMB").setValue(AMOUNTRMB_ALL); }, getCustName: function () { var custName = this.formEdit.getForm().findField('CUSTOMERNAME'); return custName.getValue(); }, onAddFeeClick: function (BSNO) { /* var formEdit=this.formEdit.getForm(); var BSNO = formEdit.findField('SALESNO').getValue(); var price = "0"; var Quantity = "1"; var Currency ="RMB"; var Exchangerate = "1.00"; var Remark = ""; this.addChFee(1,"",BSNO,BSNO,Currency,Exchangerate,"",price,Quantity,Remark,"","");*/ var formEdit = this.formEdit.getForm(); var SALESNO = formEdit.findField('SALESNO').getValue(); store = this.storeBodyChFee; var record = null; function GetDateStr(AddDayCount) { var dd = new Date(); dd.setDate(dd.getDate() + AddDayCount); //获取AddDayCount天后的日期 var y = dd.getFullYear(); var m = dd.getMonth() + 1; //获取当前月份的日期 var d = dd.getDate(); return y + "-" + m + "-" + d; } var EnterDate = GetDateStr(0); record = Ext.create('MsChFee_Sales', { GId: NewGuid(), BsNo: '', FeeStatus: 1, FeeStatus_Ref: '录入状态', FeeType: 1, FeeType_Ref: '应收', FeeName: '', FeeName_Ref: '', FeeDescription: '', CustomerType: '', CustomerName: this.getCustName(), CustomerName_Ref: '', Unit: '', UnitPrice: 0, Quantity: 1, Amount: 0, Currency: 'RMB', ExChangerate: 1, Reason: '', Remark: '', Commissionrate: 0, Settlement: 0, Invoice: 0, OrderAmount: 0, OrderInvoice: 0, SubmitDate: null, Auditoperator: '', AuditDate: null, EnteroPerator: USERID, EnterDate: EnterDate, DebitNo: '', IsDebit: "0", IsOpen: "0", IsAdvancedpay: "0", Sort: "0", IsInvoice: "0", FeeFrt: 'pp', IsCrmOrderFee: "0", AuditStatus: 0, InvoiceNum: '', ChequeNum: '', WmsOutBsNo: '', SALESNO: SALESNO }); store.add(record); var editColumnIndex = 0; var cellediting = null; cellediting = this.cellEditingChFee; editColumnIndex = 2; var n = store.getCount(); cellediting.startEditByPosition({ row: n - 1, column: editColumnIndex }); }, onDelFeeClick: function (button, event, type) { var selectedRecords = []; selectedRecords = this.gridListChFee.selModel.getSelection(); var candelete = DsTruck.CheckChFeeDelete_Sales(selectedRecords, this.storeOpCode2); if (candelete == false) return; if (selectedRecords.length > 0) { for (var i = 0; i < selectedRecords.length; i++) { var rec = selectedRecords[i]; if (rec.BillNo != "" || rec.BillNo != "*") //如果是新增但没有保存的数据,没有必要提交到后台 { this.feeBodyDel.push(rec); } this.storeBodyChFee.remove(selectedRecords[i]); } } }, //根据选定业务 生成应收费用 MakeFee: function (button, event) { var MainList = ""; var GID = ""; selectedRecords = this.gridList.selModel.getSelection(); var formEdit = this.formEdit.getForm(); var SALESNO = formEdit.findField('SALESNO').getValue(); var DELIVERYNO = formEdit.findField('DELIVERYNO').getValue(); var _CustomerName = formEdit.findField('CUSTOMERNAME').getValue(); for (var i = 0; i < selectedRecords.length; i++) { var rec = selectedRecords[i]; /*var BSNO = rec.get('BSNO'); var price = rec.get('PRICE'); var Quantity = rec.get('WEIGHT'); var Currency = rec.get('CURRENCY'); var Exchangerate = rec.get('EXCHANGERATE'); var Remark = "销售单"+SALESNO+" "+rec.get('HTH')+"_"+rec.get('NAME');*/ var Quantity = rec.get('WEIGHT'); var SaleDetail_GID = rec.get('SALEDETAIL_GID'); this.addChFee(1, _CustomerName, SALESNO, DELIVERYNO, "购货款", SaleDetail_GID, Quantity, ""); } }, MakeFees: function (button, event) { var MainList = ""; var GID = ""; selectedRecords = this.gridList.selModel.getSelection(); var bodydatas = []; for (var i = 0; i < this.storeBodyList.getCount(); i += 1) { var member = this.storeBodyList.getAt(i); //alert(member.data.SALESTATUS); //if (member.data.MAINSTATE=="1"){ bodydatas.push(member); //} } var formEdit = this.formEdit.getForm(); var SALESNO = formEdit.findField('SALESNO').getValue(); //var DELIVERYNO=formEdit.findField('DELIVERYNO').getValue(); var _CustomerName = formEdit.findField('CUSTOMERNAME').getValue(); for (var i = 0; i < bodydatas.length; i++) { var rec = bodydatas[i]; var Quantity = rec.get('WEIGHT'); var SaleDetail_GID = rec.get('SALEDETAIL_GID'); this.addChFee(1, _CustomerName, SALESNO, rec.get('GID'), "购货款", SaleDetail_GID, Quantity, ""); } }, //生成应收费用。 addChFee: function (FeeType, _CustomerName, SALESNO, DELIVERYNO, FeeName, SaleDetail_GID, Quantity, feedate) { var _Amount = 0; function GetDateStr(AddDayCount) { var dd = new Date(); dd.setDate(dd.getDate() + AddDayCount); //获取AddDayCount天后的日期 var y = dd.getFullYear(); var m = dd.getMonth() + 1; //获取当前月份的日期 var d = dd.getDate(); return y + "-" + m + "-" + d; } var EnterDate = GetDateStr(0); if (feedate == "" || typeof (feedate) == "undefined") { EnterDate = GetDateStr(0); } else { EnterDate = feedate; } //var ContractNo = Ext.getCmp("ContractNo").getValue(); var field = " (GId,BsNo,FeeStatus,FeeType,FeeName,FeeDescription,CustomerType,CustomerName,Unit,UnitPrice,TaxUnitPrice,Quantity "; field = field + " ,Amount,NoTaxAmount,Currency,ExChangerate,Reason,Remark,Commissionrate,Settlement,Invoice,OrderAmount,OrderInvoice "; field = field + " ,Auditoperator,EnterOperator,EnterDate,DebitNo,IsDebit,IsOpen,IsAdvancedpay,IsInvoice,FeeFrt,IsCrmOrderFee,AuditStatus,SALESNO,DELIVERYNO) "; var _value = " select '" + NewGuid() + "',BSNO,0," + FeeType + ",'" + FeeName + "','','','" + _CustomerName + "','',PRICERMB,PRICERMB," + Quantity + ""; _value = _value + ",PRICERMB*" + Quantity + ",PRICERMB*" + Quantity + ",'RMB',1,'' "; _value = _value + ",case CURRENCY when 'RMB' then '' else convert(varchar(50),Amount)+CURRENCY+' 汇率'+convert(varchar(50),Exchangerate) end,0,0,0,0,0 "; _value = _value + ",'','" + USERID + "','" + EnterDate + "','',0,0,0,0,'PP',0,0,'" + SALESNO + "','" + DELIVERYNO + "' "; _value = _value + " from Import_Saledetail where gid= '" + SaleDetail_GID + "' "; var SQL = " Insert into ch_fee " + field + _value; SQL = SQL + " delete from ch_fee where SALESNO= '" + SALESNO + "' and amount=0 "; Ext.Msg.wait('正在保存数据, 请稍侯..'); Ext.Ajax.request({ async: false, waitMsg: '正在保存数据...', url: '/Import/ImportSync/SaveSync', scope: this, params: { SQL: SQL }, callback: function (options, success, response) { if (success) { Ext.MessageBox.hide(); //刷新费用列表 this.storeBodyChFee.load({ params: { DELIVERYNO: DELIVERYNO} }); } else { Ext.Msg.show({ title: '请重试', msg: '服务器响应出错', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); } //alert('03'); } }); } , /* onSubmitAuditClick: function (button, event, type) { if (type == '1') { var records = this.feeGridCheckBoxModel.selected.items; DsTruck.MsChFeeAudit(records, 2, '正在提交审核数据, 请稍侯..', USERID, "False"); } else if (type == '2') { var selectedRecords = this.gridListChFee_YF.selModel.getSelection(); for (var i = 0; i < selectedRecords.length; i++) { var rec = selectedRecords[i]; if ((rec.get('FeeName') == "预付款" || rec.get('FeeName') == "购货款" || rec.get('FeeName') == "尾款") && (rec.get('Currency') == "RMB")) { if (!confirm("货款类费用币别为RMB,确认吗?")) { //点击取消 return false; } } } var records = this.feeGridCheckBoxModel_YF.selected.items; DsTruck.MsChFeeAudit(records, 2, '正在提交审核数据, 请稍侯..', USERID, "False"); } },*/ onSubmitAuditClick: function (button, event, type) { var records = this.feeGridCheckBoxModel.selected.items; if (records.length > 0) { DsTruck.MsChFeeAudit(records, 2, '正在提交审核数据, 请稍侯..', USERID, "False"); } }, onRetractClick: function (button, event, type) { var records = []; var selectedRecords = this.feeGridCheckBoxModel.selected.items; for (var i = 0; i < selectedRecords.length; i++) { var rec = selectedRecords[i]; if (rec.get('FeeStatus') == "2" || rec.get('FeeStatus') == "0") { records.push(rec); } } if (records.length > 0) { DsTruck.MsChFeeAudit(records, 6, '正在提交审核数据, 请稍侯..', USERID, "True"); } }, DelFee: function (DELIVERYNO) { //将该提货单下的审核通过状态的费用全部删除//除非gid包含在ch_fee_do中 var SQL = " delete from ch_fee where DELIVERYNO in(select gid from import_deliverydetail where DELIVERYNO='" + DELIVERYNO + "')"; Ext.Msg.wait('正在保存数据, 请稍侯..'); Ext.Ajax.request({ async: false, waitMsg: '正在保存数据...', url: '/Import/ImportSync/SaveSync', scope: this, params: { SQL: SQL }, callback: function (options, success, response) { if (success) { Ext.MessageBox.hide(); //刷新费用列表 this.storeBodyChFee.load({ params: { DELIVERYNO: DELIVERYNO} }); } else { Ext.Msg.show({ title: '请重试', msg: '服务器响应出错', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); } //alert('03'); } }); }, gridListChFeeAfterEdit: function (editor, e, eOpts) { if (e.field == 'FeeType') { var records = DsStoreQueryBy(this.storeFeeTypeRef, 'EnumValueId', e.value); if (records.getCount() > 0) { var data = records.getAt(0).data; e.record.set('FeeType_Ref', data.EnumValueName); } else { e.record.set('FeeType_Ref', ''); } } if (e.field == 'UnitPrice' || e.field == 'Quantity' || e.field == 'ExChangerate') { var unitPrice = e.record.data['UnitPrice']; var quantity = e.record.data['Quantity']; //var ExChangerate= e.record.data['ExChangerate']; e.record.set('Amount', (unitPrice * quantity).toFixed(2)); } }, SaveFee: function (type) { //费用 var bodyChFeeDatas = []; for (i = 0; i < this.storeBodyChFee.getCount(); i += 1) { var memberyf = this.storeBodyChFee.getAt(i); bodyChFeeDatas.push(memberyf); var amount = memberyf.data.Amount; if (amount == 0) { Ext.Msg.show({ title: '警告', msg: '费用的金额不允许为0,请修改后再保存', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); return; } }; var jsonChFeeBody = ConvertRecordsToJson(bodyChFeeDatas); var jsonChFeeDelBody = ConvertRecordsToJsonAll(this.feeBodyDel); if (jsonChFeeDelBody == "" && jsonChFeeBody == "") { return; } var formEdit = this.formEdit.getForm(); var SALESNO = formEdit.findField('SALESNO').getValue(); Ext.Msg.wait('正在保存数据, 请稍侯..'); Ext.Ajax.request({ waitMsg: '正在保存数据...', url: '/Import/ImportSales/SaveFee', scope: this, params: { SALESNO: SALESNO , chfeebody: jsonChFeeBody , chfeedelbody: jsonChFeeDelBody }, callback: function (options, success, response) { if (success) { Ext.MessageBox.hide(); var jsonresult = Ext.JSON.decode(response.responseText); if (jsonresult.Success) { //alert("保存成功"); var returnData = jsonresult.Data; this.feeBodyDel = []; this.storeBodyChFee.commitChanges(); } 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 }); } //alert('03'); } }); } , LockClick: function () { var formEdit = this.formEdit.getForm(); var DELIVERYNO = formEdit.findField('DELIVERYNO').getValue(); //生成费用 //this.MakeFees(); Ext.Msg.wait('正在保存数据, 请稍侯..'); Ext.Ajax.request({ waitMsg: '正在保存数据...', url: '/Import/ImportDelivery/LockDelivery', scope: this, params: { DELIVERYNO: DELIVERYNO }, callback: function (options, success, response) { if (success) { Ext.MessageBox.hide(); var jsonresult = Ext.JSON.decode(response.responseText); if (jsonresult.Success) { Ext.getCmp("BSSTATUS").setValue("1"); this.setSaveBtnStatus(); if (this.opStatus == 'edit') condition = " GID='" + this.editRecord.get('GID') + "'"; this.LoadData(this.opStatus, condition); } 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 }); } //alert('03'); } }); } , UnLockClick: function () { var formEdit = this.formEdit.getForm(); var DELIVERYNO = formEdit.findField('DELIVERYNO').getValue(); Ext.Msg.wait('正在保存数据, 请稍侯..'); Ext.Ajax.request({ waitMsg: '正在保存数据...', url: '/Import/ImportDelivery/UnLockDelivery', scope: this, params: { DELIVERYNO: DELIVERYNO }, callback: function (options, success, response) { if (success) { Ext.MessageBox.hide(); var jsonresult = Ext.JSON.decode(response.responseText); if (jsonresult.Success) { Ext.getCmp("BSSTATUS").setValue("0"); _this.setSaveBtnStatus(); _this.OpStatus = 'edit'; _this.UnlockInitData(DELIVERYNO); _this.storeBodyChFee.load({ params: { DELIVERYNO: DELIVERYNO} }); } 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 }); } //alert('03'); } }); } , SaveWMSOUT: function (type) { //逐条遍历销售信息 //根据销售信息查询WMS表,获得WMS对象 //根据WMS对象的数据和销售信息数据生成WMSOUT和WMSOUTDetail //使用WMSOUT和WMSOUTDetail作参数调用/MvcShipping/WMS/SaveWMSOUT //完成后使用WMSOUT作参数调用/MvcShipping/WMS/LockOut var basicForm = this.formEdit.getForm(); var data = basicForm.getValues(); var DELIVERYNO = data.DELIVERYNO; var total = this.storeBodyList.getCount(); //数据行数 for (var i = 0; i < total; i++) { var row = this.storeBodyList.getAt(i); var SALEDETAIL_GID = row.get('SALEDETAIL_GID'); var WEIGHT = row.get('WEIGHT'); var BOXCOUNT = row.get('BOXCOUNT'); if (parseFloat(WEIGHT) == 0 || parseFloat(BOXCOUNT) == 0) { alert("实际出库重量或件数均不允许锁定为0"); return; } var WMS = null; var _s = " Cargo_gid=(select CARGO_GID from Import_Saledetail where gid='" + SALEDETAIL_GID + "') and CUSTOMERNAME='" + data.CUSTOMERNAME + "' "; Ext.Ajax.request({ async: false, waitMsg: '正在查询主表数据...', url: '/MvcShipping/WMS/GetData', params: { handle: 'edit', condition: _s }, callback: function (options, success, response) { if (success) { var result = Ext.JSON.decode(response.responseText); if (!result.Success) { /* Ext.Msg.show({ title: '提示', msg: result.Message, icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK });*/ return; } ////////////////////////////////////////////////////////// WMS = result.data; } else { Ext.MessageBox.alert('请求出现错误,请重试', response.responseText); } }, scope: this }); //request over var _e = Ext.util.Format.date(WMS.WMSDATE, 'Y-m-d'); //格式化日期控件值 var _s = Ext.util.Format.date(data.DELIVERYDATE, 'Y-m-d'); //格式化日期控件值 var end = new Date(_e); var start = new Date(_s); var FEEDAYS = Math.round((end.getTime() - start.getTime()) / (86400000)) + 1; // 计算间隔日数 if ((this.formEdit.getForm().findField('SFCM').getValue() ? 1 : 0) == 1) { //抄码的不限制重量 } else { //不抄码的限制库存 if (Mul(WMS.GOODSSTOCK, 1000, 2) < Cut(row.get('WEIGHT'), 1, 2)) {//允许1公斤以内的误差 alert(WMS.GOODSNAME + " 的本次出库重量超出目前库存重量,请检查 " + WMS.CONTRACTNO + " 的库存情况"); return false; } } } //如果以前都无问题 才真的进行锁定 //20170204 出库单改为只生成一条 明细均位于其下。 //#region 根据WMS对象的数据和销售信息数据生成WMSOUT和WMSOUTDetail var WMSOUT = ""; var WMSOUTDetaildatas = []; for (var i = 0; i < total; i++) { var row = this.storeBodyList.getAt(i); var SALEDETAIL_GID = row.get('SALEDETAIL_GID'); var DD_GID = row.get('GID'); var WEIGHT = row.get('WEIGHT'); var BOXCOUNT = row.get('BOXCOUNT'); if (parseFloat(WEIGHT) == 0 || parseFloat(BOXCOUNT) == 0) { alert("实际出库重量或件数均不允许锁定为0"); return; } var WMS = null; var _s = " Cargo_gid=(select CARGO_GID from Import_Saledetail where gid='" + SALEDETAIL_GID + "') "; Ext.Ajax.request({ async: false, waitMsg: '正在查询主表数据...', url: '/MvcShipping/WMS/GetData_Import', params: { handle: 'edit', condition: _s }, callback: function (options, success, response) { if (success) { var result = Ext.JSON.decode(response.responseText); if (!result.Success) { /* Ext.Msg.show({ title: '提示', msg: result.Message, icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK });*/ return; } ////////////////////////////////////////////////////////// WMS = result.data; } else { Ext.MessageBox.alert('请求出现错误,请重试', response.responseText); } }, scope: this }); //request over var _e = Ext.util.Format.date(WMS.WMSDATE, 'Y-m-d'); //格式化日期控件值 var _s = Ext.util.Format.date(data.DELIVERYDATE, 'Y-m-d'); //格式化日期控件值 var end = new Date(_e); var start = new Date(_s); var FEEDAYS = Math.round((end.getTime() - start.getTime()) / (86400000)) + 1; // 计算间隔日数 if (WMSOUT == "") { WMSOUT = Ext.create('WMSOUTmb', { GID: NewGuid(), ASSOCIATEDNO: WMS.ASSOCIATEDNO, BSNO: DELIVERYNO, CLIENTGID: WMS.CLIENTGID, CLIENTCODE: WMS.CLIENTCODE, CUSTOMERNAME: data.CUSTOMERNAME, DODATE: data.DELIVERYDATE, STORAGECODE: "", STORAGENAME: WMS.STORAGENAME, AREACODE: "", AREANAME: "", GOODSCODE: "", GOODSNAME: WMS.GOODSNAME, GOODSTYPE: "", GOODSMODEL: WMS.GOODSMODEL, GOODSSTANDARD: "", GOODSPACK: "", CHARGEUNIT: "吨", GOODSPFSL: Div(row.get('WEIGHT'), 1000, 6), //出库重量 GOODSOUTFEE: "0", GOODSOUTFEEAP: "0", TRUCKNO: data.TRUCKNO, REMARK: "", ISDELETE: "", DELETETIME: "", DELETEUSER: "", CREATEUSER: USERID, CREATETIME: "", MODIFIEDUSER: "", MODIFIEDTIME: "", GOODSPACKPFSL: row.get('BOXCOUNT'), /////////////出库件数 TRUCKNAME: "", WMSOP: "", STOREMAN: "", ISLOCK: "", LOCKTIME: "", LOCKUSER: "", ARFEE: "0", APFEE: "0", INSPECTIONNO: "", CUSTOMNO: "", CORPID: COMPANYID, CLIENTNAMEOLD: "", OLDCUSTFEEDATE: row.get('DELIVERYDATE'), //', type : 'date' }, CLIENTBSNO: "", ARCLIENT: "", INGIDNEW: "", VALIDDATE: "", //', type : 'date' }, TOTALNO: "", REMARK2: "", MBLNONEW: "", ISCHANGE: "", ARCLIENTWMSOUT: data.CUSTOMERNAME, BZTCHNO: "", ISCOLLECTING: "", MBLNO: "" //', type : 'string' } }); } else { WMSOUT.data.GOODSPFSL = Add(WMSOUT.data.GOODSPFSL, Div(row.get('WEIGHT'), 1000, 6)); WMSOUT.data.GOODSPACKPFSL = Add(WMSOUT.data.GOODSPACKPFSL, row.get('BOXCOUNT')); WMSOUT.data.REMARK = WMSOUT.data.REMARK + WMS.GOODSNAME + ";"; } var WMSOUTDetail = Ext.create('WMSOUTDetailmb', { GID: NewGuid(), INBSNO: WMS.GID, OUTBSNO: "", //DELIVERYNO, BLNO: "", CONTRACTNO: WMS.CONTRACTNO, CNTRNO: "", SEALNO: "", BSNO: DD_GID, //20170106 将wms_out_detail里目前无用的BSNO 填入出库单明细import_deliverydetail的GID 用于通过它和它的saledetail_gid关联出库明细和销售明细 CLIENTGID: "", CLIENTCODE: "", CUSTOMERNAME: data.CUSTOMERNAME, DODATE: currdate.format('yyyy-MM-dd hh:mm:ss'), STORAGECODE: "", STORAGENAME: WMS.STORAGENAME, AREACODE: "", AREANAME: "", GOODSCODE: "", GOODSNAME: WMS.GOODSNAME, GOODSTYPE: "1", GOODSMODEL: WMS.GOODSMODEL, GOODSSTANDARD: "", GOODSPACK: "0", CHARGEUNIT: "吨", GOODSPFSL: Div(row.get('WEIGHT'), 1000, 6), GOODSPACKPFSL: row.get('BOXCOUNT'), GOODSOUTFEE: "0", GOODSOUTFEEAP: "0", TRUCKNO: data.TRUCKNO, REMARK: "", CREATEUSER: USERID, CREATETIME: currdate.format('yyyy-MM-dd hh:mm:ss'), ASSOCIATEDNO: WMS.ASSOCIATEDNO, ARFEE: "0", APFEE: "0", ISLOCK: "0", LOCKTIME: "", LOCKUSER: "", CORPID: COMPANYID, CLIENTNAMEOLD: "", OLDCUSTFEEDATE: data.DELIVERYDATE, STARTBILLINGDATE: WMS.WMSDATE, ENDBILLINGDATE: data.DELIVERYDATE, FEEDAYS: FEEDAYS, GOODSSLICE: "0", GOODSGRADE: "", STARTBILLINGDATEAP: WMS.WMSDATE, ENDBILLINGDATEAP: data.DELIVERYDATE, FEEDAYSAP: FEEDAYS, ISCHANGE: "", MARKETVALUE: "0", BZTCHNO: "", i_WMSDATE: "", i_CUSTOMERNAME: "", i_GOODSNAME: "", i_GOODSMODEL: "", i_GOODSPACKSTOCK: "", i_GOODSSTOCK: "", i_BLNO: "", i_STARTBILLINGDATE: "", i_STARTBILLINGDATEAP: "", i_MARKETVALUE: "", i_BANKVALUE: "", i_ISDELETE: "", i_INBSNO: "" }); //#endregion WMSOUTDetaildatas.push(WMSOUTDetail) } //#region 使用WMSOUT和WMSOUTDetail作参数调用/MvcShipping/WMS/SaveWMSOUT //WMSOUTDetaildatas.push(WMSOUTDetail); var WMSOUTDetailBody = ConvertRecordsToJsonAll(WMSOUTDetaildatas); var WMSOUTDetailBodyDel = ConvertRecordsToJson(""); var _this = this; Ext.Msg.wait('正在保存数据, 请稍侯..'); Ext.Ajax.request({ waitMsg: '正在保存数据...', url: '/MvcShipping/WMS/SaveWMSOUT', scope: this, async: false, params: { OpStatus: 'add', data: Ext.JSON.encode(WMSOUT.data), WMSOUTDetailBody: WMSOUTDetailBody, WMSOUTDetailBodyDel: WMSOUTDetailBodyDel }, callback: function (options, success, response) { if (success) { Ext.MessageBox.hide(); var jsonresult = Ext.JSON.decode(response.responseText); if (jsonresult.Success) { var returnData = jsonresult.Data; ////锁定出库业务 } 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 }); } //alert('03'); } }); //#endregion //_this.LockClick(); }, DelWMSOUT: function (type) { var basicForm = this.formEdit.getForm(); var data = basicForm.getValues(); var DELIVERYNO = data.DELIVERYNO; var _this = this; Ext.Msg.wait('正在保存数据, 请稍侯..'); Ext.Ajax.request({ waitMsg: '正在保存数据...', url: '/MvcShipping/WMS/DeleteOUTByBSNO', scope: this, async: false, params: { BSNO: DELIVERYNO }, callback: function (options, success, response) { if (success) { Ext.MessageBox.hide(); _this.DelFee(DELIVERYNO); if (response.responseText != "") { var jsonresult = Ext.JSON.decode(response.responseText); if (jsonresult.Success) { //var returnData = jsonresult.Data; } 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 }); } //alert('03'); } }); }, LoadAccBodyList: function (button, event) { var custome = _this.formEdit.getForm().findField('CUSTOMERNAME').getValue(); var billno = _this.formEdit.getForm().findField('DELIVERYNO').getValue(); var curr = "RMB"; var sql = "CUSTOMERNAME='" + custome + "' and (ISFINISH=0 or ISFINISH IS NULL) AND FEETYPE=1 AND currency='" + curr + "' AND BILLNO<>'" + billno + "'"; this.storeAccBodyList.load({ params: { start: 0, limit: 9999, sort: '', condition: sql} }); }, onAddAPDetailClick: function (button, event) { var gid = this.formEdit.getForm().findField('GID').getValue(); var billno = this.formEdit.getForm().findField('DELIVERYNO').getValue(); var basicForm = this.formEdit.getForm(); var selectedRecords = this.gridListAcc.selModel.getSelection(); var bodyAddDatas = []; _this = this; for (var i = 0; i < selectedRecords.length; i++) { var rec = selectedRecords[i]; bodyAddDatas.push(rec); } if (bodyAddDatas.length == 0) { Ext.Msg.show({ title: '提示', msg: '没有要添加的费用明细!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); return; }; var jsonbodyAddDatas = ConvertRecordsToJsonAll(bodyAddDatas); _this = this; Ext.Msg.wait('正在保存数据, 请稍侯..'); Ext.Ajax.request({ waitMsg: '正在保存数据...', url: '/Account/Chfee_Foreignsettlement/AddAPDetail', scope: this, params: { billno: billno, data: jsonbodyAddDatas, stlnogid: gid, feetype: 2 }, callback: function (options, success, response) { if (success) { Ext.MessageBox.hide(); var jsonresult = Ext.JSON.decode(response.responseText); if (jsonresult.Success) { _this.LoadAccBodyList(); _this.storeBodyListAcc.load({ params: { condition: " SETTLEBILLNO='" + billno + "'" }, callback: function (r, options, success) { if (success) { if (_this.storeBodyListAcc.getCount() > 0) (this.comboxCurrADVANCE.readOnly = true) } }, scope: this }); } 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 }); } } }); }, onDeleteApClick: function (button, event) { var billno = this.formEdit.getForm().findField('DELIVERYNO').getValue(); var selectedRecords = this.gridBodyListAcc.selModel.getSelection(); var bodyAddDatas = []; _this = this; for (var i = 0; i < selectedRecords.length; i++) { var rec = selectedRecords[i]; var voucherno = rec.data.VOUCHERNO; if (voucherno == '') { bodyAddDatas.push(rec); } else { Ext.Msg.show({ title: '提示', msg: '已生成凭证不能删除!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); } } if (bodyAddDatas.length == 0) { Ext.Msg.show({ title: '提示', msg: '没有要删除明细!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); return; }; var jsonbodyAddDatas = ConvertRecordsToJsonAll(bodyAddDatas); _this = this; Ext.Msg.wait('正在保存数据, 请稍侯..'); Ext.Ajax.request({ waitMsg: '正在保存数据...', url: '/Account/Chfee_Foreignsettlement/DelAPBill', scope: this, params: { data: jsonbodyAddDatas }, callback: function (options, success, response) { if (success) { Ext.MessageBox.hide(); var jsonresult = Ext.JSON.decode(response.responseText); if (jsonresult.Success) { /* var custome = _this.formEdit.getForm().findField('CUSTOMERNAME').getValue(); var billno = _this.formEdit.getForm().findField('DELIVERYNO').getValue(); var curr = "RMB"; var sql = "CUSTOMERNAME='" + custome + "' and (ISFINISH=0 or ISFINISH IS NULL) AND FEETYPE=1 AND currency='" + curr + "' AND BILLNO<>'" + billno + "'"; _this.storeAccBodyList.load({ params: { start: 0, limit: _this.PageSize, sort: '', condition: sql} }); */ _this.LoadAccBodyList(); _this.storeBodyListAcc.load({ params: { condition: " SETTLEBILLNO='" + billno + "'" }, callback: function (r, options, success) { if (success) { if (_this.storeBodyListAcc.getCount() > 0) (this.comboxCurrADVANCE.readOnly = true) } }, scope: this }); Ext.Ajax.request({ waitMsg: '正在查询主表数据...', url: '/Account/Chfee_Foreignsettlement/GetData', params: { handle: 'edit', condition: " BILLNO='" + billno + "'" }, callback: function (options, success, response) { if (success) { var result = Ext.JSON.decode(response.responseText); if (!result.Success) { Ext.Msg.show({ title: '提示', msg: result.Message, icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK }); return; } var data = result.data; _this.formAHSR.getForm().reset(); _this.formADVANCE.getForm().reset(); _this.formAHSR.getForm().setValues(data); _this.formADVANCE.getForm().setValues(data); var editp = Ext.create('MsChSettlement', data); this.editRecord.fields.each(function (field) { if (field.persist) { name = field.name; if (name != 'id') this.editRecord.set(name, editp.get(name)); } }, this); this.editRecord.commit(); } else { Ext.MessageBox.alert('请求出现错误,请重试', response.responseText); } }, scope: this }); } 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 }); } } }); } , onSettlementClick: function (button, event) { var DELIVERYNO = this.formEdit.getForm().findField('DELIVERYNO').getValue(); _this = this; Ext.Msg.wait('正在保存数据, 请稍侯..'); Ext.Ajax.request({ waitMsg: '正在保存数据...', url: '/Import/ImportDelivery/SetSettlement', scope: this, params: { DELIVERYNO: DELIVERYNO }, callback: function (options, success, response) { if (success) { Ext.MessageBox.hide(); var jsonresult = Ext.JSON.decode(response.responseText); if (jsonresult.Success) { /* var custome = _this.formEdit.getForm().findField('CUSTOMERNAME').getValue(); var billno = _this.formEdit.getForm().findField('DELIVERYNO').getValue(); var curr = "RMB"; var sql = "CUSTOMERNAME='" + custome + "' and (ISFINISH=0 or ISFINISH IS NULL) AND FEETYPE=1 AND currency='" + curr + "' AND BILLNO<>'" + billno + "'"; _this.storeAccBodyList.load({ params: { start: 0, limit: _this.PageSize, sort: '', condition: sql} }); */ _this.LoadAccBodyList(); _this.storeBodyListAcc.load({ params: { condition: " SETTLEBILLNO='" + DELIVERYNO + "'" }, callback: function (r, options, success) { if (success) { if (_this.storeBodyListAcc.getCount() > 0) (this.comboxCurrADVANCE.readOnly = true) } }, scope: this }); _this.storeBodyChFee.load({ params: { DELIVERYNO: DELIVERYNO} }); } 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 }); } } }); } , SubmitAudit_OUT: function (Value) { var selections = this.gridList.getSelectionModel().getSelection(); if (selections.length == 0) { Ext.Msg.show({ title: '提示', msg: '请先选择记录!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); return; } var LockWMS = []; //提交审核 if (Value == "2") { Ext.MessageBox.confirm('提示', '确定要操作选中的入库信息吗?', function (btn) { if (btn == 'yes') { //var selectedRecords = this.WMSCB.selected.items; //if (selectedRecords.length > 0) { //or (var i = 0; i < selectedRecords.length; i++) { //var rec = selectedRecords[i]; var basicForm = this.formEdit.getForm(); if (!basicForm.isValid()) { return; } var rec = Ext.create('WMSOUTmb'); rec.data = basicForm.getValues(); if (rec.data.ASSOCIATEDNO != "") //没有保存的数据无法锁定 { LockWMS.push(rec); } //} //} var LockWMSJSNO = ConvertRecordsToJsonAll(LockWMS); var _this = this; if (Value == "2") { Ext.Ajax.request({// waitMsg: '正在处理数据...', url: '/MvcShipping/WMS/SubmitAudit_OUT', params: { WMSList: LockWMSJSNO, LOCK: Value }, callback: function (options, success, response) { var jsonresult = Ext.JSON.decode(response.responseText); if (jsonresult.Success) { alert(jsonresult.Message); } else { alert("操作失败" + jsonresult.Message); } var sql = this.getCondition(); this.storeList.load({ params: { start: 0, limit: this.PageSize, sort: '', condition: sql }, waitMsg: "正在查询数据...", scope: this }); }, scope: this }); //request over } } }, this); } //审核撤回 if (Value == "0") { Ext.MessageBox.confirm('提示', '确定要操作选中的入库信息吗?', function (btn) { if (btn == 'yes') { var selectedRecords = this.WMSCB.selected.items; if (selectedRecords.length > 0) { for (var i = 0; i < selectedRecords.length; i++) { var rec = selectedRecords[i]; if (rec.data.ASSOCIATEDNO != "") //没有保存的数据无法锁定 { LockWMS.push(rec); } } } var LockWMSJSNO = ConvertRecordsToJsonAll(LockWMS); var _this = this; Ext.Ajax.request({// waitMsg: '正在处理数据...', url: '/MvcShipping/WMS/CancelAudit', params: { WMSList: LockWMSJSNO, LOCK: Value }, callback: function (options, success, response) { var jsonresult = Ext.JSON.decode(response.responseText); if (jsonresult.Success) { alert(jsonresult.Message); } else { alert("操作失败" + jsonresult.Message); } var sql = this.getCondition(); this.storeList.load({ params: { start: 0, limit: this.PageSize, sort: '', condition: sql }, waitMsg: "正在查询数据...", scope: this }); }, scope: this }); //request over } }, this); } } //onDeleteClick });