Index: ssts-web/src/main/webapp/disinfectsystem/goodsBindingConfig/goodsBindHandler.js =================================================================== diff -u -r21258 -r21483 --- ssts-web/src/main/webapp/disinfectsystem/goodsBindingConfig/goodsBindHandler.js (.../goodsBindHandler.js) (revision 21258) +++ ssts-web/src/main/webapp/disinfectsystem/goodsBindingConfig/goodsBindHandler.js (.../goodsBindHandler.js) (revision 21483) @@ -3,131 +3,61 @@ }; /** - * 绑定物品的代理属性 - */ -GoodsBindHandler.prototype.bindGoodProxy = { - type: 'ajax', - url: WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!searchBindGood.do', - reader: { - type: 'json', - totalProperty: 'totalCount', - idProperty: 'noneExsist', - root: 'data' - } -}; - -/** - * 绑定物品的数据源 - */ -GoodsBindHandler.prototype.bindGoodStore = new Ext4.data.JsonStore({ - proxy: GoodsBindHandler.prototype.bindGoodProxy, - fields: goodModel, - listeners: { - beforeload: function () { - //在加载前设定参数,limit要设置成空,这样才会加载到所有的数据 - //暂时只绑定一次性物品,所以type用一次性物品 - // allGoodsComboStore.proxy.extraParams.tousseType = "一次性物品"; - }, - load: function (a, b, c) { - } - } -}) - - -/** - * - * 向后台发送请求查找出所有绑定的物品的详细信息,并且加载到bindGoodStore中 - * @param records 需要绑定物品记录的数组 - * @param data 要让服务器查询的物品数据(即需要绑定的物品名字,数量,id) - */ -GoodsBindHandler.prototype.findBindRecord = function (records, data) { - var me = this; - me.bindGoodStore.load({ - params: { - handleDepartCoding: top.Ext4.getCmp("handleDepartCoding").getValue(), - tousseType: "一次性物品", - findGood: JSON.stringify(data) - }, - callback: function (r, option, success) { - if (success) { - me.findAndSetBindGood(records, data); - } - } - }); -} - -/** - * 从bindGoodStore数据源中查找对应的物品,设置好对应的数量并添加到表格里 - * @param records 需要绑定物品记录的数组 - * @param data 要寻找的物品的名字和对应的绑定数量 - */ -GoodsBindHandler.prototype.findAndSetBindGood = function (records, data) { - var me = this; - top.Ext4.each(data, function (item) { - // var record = me.bindGoodStore.findRecord('name', item.goodName); - var record = me.bindGoodStore.findRecord('id', item.goodId); - if (record != null) { - //如果找得到,设置数量为后端传过来的捆绑数量 - // record.set('count', item.bindCount); - record.set('count', record.get('amount')); - records.push(record); - } - }); - me.addBindGood(records); -} - -/** * 添加捆绑物 * @param records 需要添加的捆绑物的对象 * @returns {boolean} */ GoodsBindHandler.prototype.addBindGood = function (records) { top.Ext4.each(records, function (record) { - var id = record.get('id'); - var name = record.get('name'); - var count = record.get('count'); - var materials = record.get('materials'); - var urgentAmount = record.get('urgentAmount'); - var transferScale = record.get('transferScale'); - var middlePackageUnit = record.get('middlePackageUnit'); - var price = record.get('price'); - var externalCode = record.get('externalCode'); - var unit = record.get('unit'); - var packageSpec = record.get('packageSpec'); - var isApplyEntireTousse = record.get('isApplyEntireTousse'); - var expressInvoice = record.get('expressInvoice'); //是否快速发货 + var id = record.id; + var name = record.name; + var count = record.count; + var materials = record.materials; + if (materials) { + materials = JSON.stringify(materials); + } + var urgentAmount = 0; + var transferScale = record.transferScale; + var middlePackageUnit = record.middlePackageUnit; + var price = record.price; + var externalCode = record.externalCode; + var unit = record.unit; + var packageSpec = record.packageSpec; + var isApplyEntireTousse = record.isApplyEntireTousse; + var expressInvoice = record.expressInvoice; //是否快速发货 var para = { behavior: 'bind', transferScale: transferScale, middlePackageUnit: middlePackageUnit }; - var storageAmount = record.get('amount'); - var minApplyAmount = record.get('minApplyAmount'); - var maxApplyAmount = record.get('maxApplyAmount'); - var tousseType = record.get('tousseType'); + var storageAmount = record.amount; //库存 + var minApplyAmount = record.minApplyAmount; + var maxApplyAmount = record.maxApplyAmount; + var tousseType = record.tousseType; var isDisposableGoods = '一次性物品' == tousseType ? '是' : '否'; if (parseInt(count, 10) > storageAmount) { if (!allowApplyDisposableGoodsWhenUnderstock) { showResult("申请数量不能大于库存数量!"); return false; } - } - else if (!isUndefinedOrNullOrEmpty(maxApplyAmount) && count > maxApplyAmount) { + } else if (!isUndefinedOrNullOrEmpty(maxApplyAmount) && count > maxApplyAmount) { top.Ext4.Msg.alert("提示消息", "申请数量大于最大可申请数量"); } - addItems(id, name, count, isDisposableGoods, isApplyEntireTousse, price, externalCode, storageAmount, tousseType, materials, unit, packageSpec, minApplyAmount, maxApplyAmount, urgentAmount, para, expressInvoice); + addItems(id, name, count, isDisposableGoods, isApplyEntireTousse, price, externalCode, storageAmount, + tousseType, materials, unit, packageSpec, minApplyAmount, maxApplyAmount, urgentAmount, para, expressInvoice); }); return true; } /** * 处理需要捆绑的物品,先得到对应选择的物品的名字和数量,然后从后台查询出该物品的所有绑定物和对应的捆绑数量,然后添加到表格上 - * @param bindGoodVo + * @param params */ -GoodsBindHandler.prototype.handleBindGood = function (bindGoodVo) { +GoodsBindHandler.prototype.handleBindGood = function (params) { var me = this; - if (!bindGoodVo) { - bindGoodVo = { + if (!params) { + params = { + handleDepartCode: top.Ext4.getCmp('handleDepartCoding').getValue(), goodName: top.Ext4.getCmp('package1').getValue(), bindCount: top.Ext4.getCmp('count1').getValue(), goodId: curSelectedGoods.id, @@ -136,23 +66,24 @@ } Ext.Ajax.request({ - url: WWWROOT + '/disinfectSystem/goodsBindingConfig/goodsBindingCtrl/handleBind.mhtml', - params: bindGoodVo, + url: WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!getBindGoods.do', + params: params, timeout: 600000, method: 'POST', success: function (response, options) { try { - var records = []; var result = Ext.decode(response.responseText); if (!isUndefinedOrNullOrEmpty(result)) { if (result.success) { - me.findBindRecord(records, result.data); + var records = result.data; + if (records.length > 0) { + me.addBindGood(records); + } } else { //绑定失败,不提示 } } - } - catch (e) { + } catch (e) { alert("Exception : " + e); } },