Index: ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationView.js =================================================================== diff -u -r21475 -r21483 --- ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationView.js (.../goodsApplicationView.js) (revision 21475) +++ ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationView.js (.../goodsApplicationView.js) (revision 21483) @@ -1088,7 +1088,7 @@ } }else{ addItems(id,name,count,isDiposableGoods,isApplyEntireTousse,price,externalCode,storageAmount,tousseType,materials,unit,packageSpec,minApplyAmount,maxApplyAmount,urgentAmount,para,expressInvoice); - afterAddItem(false); + afterAddItem(true); } } } Index: ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationForm.js =================================================================== diff -u -r21475 -r21483 --- ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationForm.js (.../goodsApplicationForm.js) (revision 21475) +++ ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationForm.js (.../goodsApplicationForm.js) (revision 21483) @@ -712,15 +712,26 @@ return; } } else { - var bindGoodVo = { + var params = { + handleDepartCode: top.Ext4.getCmp('handleDepartCoding').getValue(), goodName: record.get('name'), bindCount: count, goodId: record.get('tousseDefinitionID'), goodType: tousseType }; var goodsBindHandler = new GoodsBindHandler(); - goodsBindHandler.handleBindGood(bindGoodVo); + goodsBindHandler.handleBindGood(params); } + } else { + var params = { + handleDepartCode: top.Ext4.getCmp('handleDepartCoding').getValue(), + goodName: record.get('name'), + bindCount: count, + goodId: record.get('tousseDefinitionID'), + goodType: tousseType + }; + var goodsBindHandler = new GoodsBindHandler(); + goodsBindHandler.handleBindGood(params); } record.set("totalPrice", isUndefinedOrNullOrEmpty(totalPrice) ? roundValue(count * record.get("price")) : totalPrice); 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); } }, Index: ssts-web/src/main/webapp/disinfectsystem/goodsBindingConfig/goodsBindingConfigView.js =================================================================== diff -u -r15116 -r21483 --- ssts-web/src/main/webapp/disinfectsystem/goodsBindingConfig/goodsBindingConfigView.js (.../goodsBindingConfigView.js) (revision 15116) +++ ssts-web/src/main/webapp/disinfectsystem/goodsBindingConfig/goodsBindingConfigView.js (.../goodsBindingConfigView.js) (revision 21483) @@ -59,7 +59,7 @@ {type: 'string', dataIndex: 'secondaryGoodName'}, {type: 'string', dataIndex: 'mainCount'}, {type: 'string', dataIndex: 'secondaryCount'}, - {type: 'string', dataIndex: 'mainGoodsType'}, + {type: 'string', dataIndex: 'mainGoodType'}, {type: 'string', dataIndex: 'secondaryGoodType'}, {type: 'string', dataIndex: 'bidirectionalStatus'} ] @@ -74,16 +74,17 @@ {name: 'secondaryGoodName'}, {name: 'mainCount'}, {name: 'secondaryCount'}, - {name: 'mainGoodsType'}, + {name: 'mainGoodType'}, {name: 'secondaryGoodType'}, {name: 'bidirectionalStatus'} ]; var columns = [ {header: "记录id", width: 50, dataIndex: 'id', hidden: true}, - // {header: "主绑定物品名称", width: 200, dataIndex: 'mainGoodName'}, - {header: "主绑定物品名称", width: 200, dataIndex: 'mainGoodName', renderer: customRender.modifyGoodsBindRender}, - {header: "次绑定物品名称", width: 200, dataIndex: 'secondaryGoodName'}, + {header: "主绑定物品名称", width: 250, dataIndex: 'mainGoodName', renderer: customRender.modifyGoodsBindRender}, + {header: "主绑定物品类型", width: 150, dataIndex: 'mainGoodType'}, + {header: "次绑定物品名称", width: 250, dataIndex: 'secondaryGoodName'}, + {header: "次绑定物品类型", width: 150, dataIndex: 'secondaryGoodType'}, {header: "主数量", width: 100, dataIndex: 'mainCount'}, {header: "次数量", width: 100, dataIndex: 'secondaryCount'}, {header: "捆绑比例", width: 100, renderer: customRender.bindRatioRender},