Index: ssts-web/src/main/webapp/disinfectsystem/packing/comboToussePackingView.js =================================================================== diff -u -r19430 -r20023 --- ssts-web/src/main/webapp/disinfectsystem/packing/comboToussePackingView.js (.../comboToussePackingView.js) (revision 19430) +++ ssts-web/src/main/webapp/disinfectsystem/packing/comboToussePackingView.js (.../comboToussePackingView.js) (revision 20023) @@ -31,8 +31,8 @@ if(amount <= 0){ return false; } - var index = sourceStore.findExact("id", id); - if (index == -1){ + var record = ext4_findRecordByNameAndValueFromStore(sourceStore,"id", id) + if (isUndefinedOrNull(record)){ var addItem = [{ id : id, tousseName : tousseName, @@ -45,8 +45,7 @@ }] sourceStore.insert(0,addItem); }else{ - var splitRecord = sourceStore.getAt(index); - splitRecord.set('maxAmount', amount + splitRecord.get("maxAmount")); + record.set('maxAmount', amount + record.get("maxAmount")); } } @@ -57,8 +56,8 @@ if(amount <= 0){ return false; } - var index = sourceStore.findExact("id", id); - if (index == -1){ + var record = ext4_findRecordByNameAndValueFromStore(sourceStore,"id", id) + if (isUndefinedOrNull(record)){ var addItem = [{ id : id, tousseName : tousseName, @@ -67,8 +66,7 @@ }] sourceStore.insert(0,addItem); }else{ - var splitRecord = sourceStore.getAt(index); - splitRecord.set('amount', amount + splitRecord.get("amount")); + record.set('amount', amount + record.get("amount")); } } @@ -213,6 +211,7 @@ var item = [{ comboId : id, tousseName : tousseName, + printAmount: 1, amount: 1, includeTousseDetail : tousseDetail, includeTousseJsonArray : tousseJsonArray, @@ -238,6 +237,7 @@ var tousse = {}; tousse.id = record.get('comboId'); tousse.tousseName = record.get('tousseName'); + tousse.printAmount = record.get('printAmount'); tousse.amount = record.get('amount'); tousse.includeTousseDetail = record.get('includeTousseDetail'); tousse.includeTousseJsonArray = record.get('includeTousseJsonArray'); @@ -538,20 +538,58 @@ store: new Ext4.data.Store({ fields : [ {name : 'comboId',mapping : 'comboId'}, - {name : 'tousseName',mapping : 'tousseName'}, + {name : 'tousseName',mapping : 'tousseName'}, + {name : 'printAmount',mapping : 'printAmount'}, {name : 'amount',mapping : 'amount'}, {name : 'packageType',mapping : 'packageType'}, {name : 'includeTousseDetail',mapping : 'includeTousseDetail'}, {name : 'includeTousseJsonArray',mapping : 'includeTousseJsonArray'} ] }), + listeners:{ + edit :function(editor, context){ + if(context.colIdx != 2){ + return; + } + // 刷新可装配数量 + var defNum = context.value - context.originalValue; + if(defNum == 0){ + return; + } + + if(defNum < 0){ + addRestAmount(context.record,-defNum); + }else{ + if(!isAmountSufficient2(context.record,defNum)){ + context.record.set('amount',context.originalValue); + }else{ + subRestAmount(context.record,defNum); + } + } + } + }, columns:[{ header : "聚合包名称", dataIndex : 'tousseName', sortable:false, width : 280 }, { - header : "数量", + header : "打印数量", + dataIndex : 'printAmount', + width : 70, + editor : { + xtype: 'numberfield', + allowDecimals : false, + minValue : 0, + allowBlank: false, + listeners:{ + focus : function(thiz){ + thiz.selectText(); + } + } + } + }, { + header : "装配数量", dataIndex : 'amount', width : 70, editor : { @@ -972,9 +1010,9 @@ sterileDate = new Date(); } // 校验数量是否有效 - if(!isAmountSufficient()){ - return false; - } +// if(!isAmountSufficient()){ +// return false; +// } var params = { operator: operator, operatorCode: operatorCode, @@ -1090,4 +1128,104 @@ } return true; } + function isAmountSufficient2(record,defNum){ + var defAmount = getDefAmount(record,defNum); + + for(var id in defAmount ){ + if(defAmount.hasOwnProperty(id)){ + var item = defAmount[id]; + var tousseName = item.tousseName; + var waitComboRecord = ext4_findRecordByNameAndValueFromStore(top.Ext4.getCmp("waitComboTousseGrid").getStore(),'id',id); + if(isUndefinedOrNull(waitComboRecord)){ + showResult(tousseName+' 超过数量!'); + return false; + } + if(item.amount > waitComboRecord.get('maxAmount')){ + showResult(tousseName+' 超过数量!'); + return false; + } + } + } + return true; + } + function getDefAmount(record,defNum){ + var defAmount = {}; + + var includeTousseJsonArray = record.get('includeTousseJsonArray'); + for(var si=0;si waitComboRecord.get('maxAmount')){ + showResult(tousseName+' 超过数量!'); + return false; + } + var newAmount = waitComboRecord.get('maxAmount') - item.amount; + if(newAmount == 0){ + waitComboTousseGridStore.remove(waitComboRecord); + }else{ + waitComboRecord.set('amount',newAmount); + waitComboRecord.set('maxAmount',newAmount); + } + } + } + return true; + } + function addRestAmount(record,defNum){ + var defAmount = getDefAmount(record,defNum); + var waitComboTousseGridStore = top.Ext4.getCmp("waitComboTousseGrid").getStore(); + for(var id in defAmount ){ + if(defAmount.hasOwnProperty(id)){ + var item = defAmount[id]; + var tousseName = item.tousseName; + var waitComboRecord = ext4_findRecordByNameAndValueFromStore(waitComboTousseGridStore,'id',id); + if(isUndefinedOrNull(waitComboRecord)){ + var addItem = [{ + id : id, + tousseName : tousseName, + amount : item.amount, + maxAmount : item.amount, + packageType : item.packageType, + errorAmount : 0, + damageAmount : 0, + unWashAmount : 0 + }] + waitComboTousseGridStore.insert(0,addItem); + continue; + } + + var newAmount = waitComboRecord.get('maxAmount') + item.amount; + waitComboRecord.set('amount',newAmount); + waitComboRecord.set('maxAmount',newAmount); + } + } + return true; + } + }