Index: ssts-web/src/main/webapp/disinfectsystem/invoice/invoiceSignFormVersion2.js =================================================================== diff -u -r26923 -r26940 --- ssts-web/src/main/webapp/disinfectsystem/invoice/invoiceSignFormVersion2.js (.../invoiceSignFormVersion2.js) (revision 26923) +++ ssts-web/src/main/webapp/disinfectsystem/invoice/invoiceSignFormVersion2.js (.../invoiceSignFormVersion2.js) (revision 26940) @@ -23,6 +23,9 @@ }); return applyDateDataArray; } + +var sendoutTimeArr = getTimeComboData(); + function getDefaultAmount(v,p,record){ if (v == null || v.length <= 0){ return 0; @@ -57,13 +60,14 @@ return null; } -function updateWaitInvoiceSignAmount(record,count){ - var amount = record.get('signAmount'); - if(amount == null || amount.length <= 0){ - amount = 0; +function updateWaitInvoiceSignAmount(record,count,waitSignAmount){ + var signAmount = record.get('signAmount'); + if(signAmount == null || signAmount.length <= 0){ + signAmount = 0; } - var newAmount = Number(count) + Number(amount); + var newAmount = Number(count) + Number(signAmount); record.set('signAmount',newAmount);//计算待签收数量 + record.set('amount',waitSignAmount);//获取已签收数量 return false; } @@ -74,6 +78,7 @@ {name : 'name'}, {name : 'count'} ]); + //异常物品列表 var addAbnormalGridItem = Ext.data.Record.create([ {name : 'tousseName'}, @@ -82,7 +87,13 @@ {name : 'depart'} ]); - +//待签收物品明细 +var waitGridItem = Ext.data.Record.create([ + {name : 'tousseName'}, + {name : 'amount'}, + {name : 'signAmount'}, + {name : 'signTime'} + ]); function safelyGetScanTime(r){ var scanTime = Number(r.get('signTime')); if(scanTime){ @@ -133,7 +144,7 @@ waitInvoiceSignGoodsStore.add(records); } function addInvoiceSignGoodsGrid(goods){ - var count = 1;// 此次的发货数量 + var count = 1;// 此次的签收数量 //扫描的包和待签收物品明细的包判断是否是同一个,是就返回待签收物品明细的包的信息 var record = findScanGoodsWithWaitInvoiceSignGoods(goods); var newRecord = new addGridItem({ @@ -142,10 +153,19 @@ sterialTime : goods.sterialTime, count : count }); + scanGoodsStore.insert(0,newRecord); + var waitSignAmount = goods.waitSignAmount; if(record != null){ - updateWaitInvoiceSignAmount(record,count); + updateWaitInvoiceSignAmount(record,count,waitSignAmount); resortWaitInvoiceSign(record); + }else{ + var newWaitRecord = new waitGridItem({ + tousseName : goods.tousseName, + amount : waitSignAmount, + signAmount : count + }); + waitInvoiceSignGoodsStore.insert(0,newWaitRecord); } } @@ -164,15 +184,17 @@ var barcode = top.Ext.getCmp("scanText").getValue().Trim(); // 开始查询条码信息 top.Ext.getCmp("scanGoods").getEl().mask("后台处理中,请稍候..."); + var sendoutTime = top.Ext.getCmp('sendoutTime').getValue(); Ext.Ajax.request({ url : WWWROOT + '/disinfectSystem/tousseInstanceAction!signTousseInstanceByBarcode.do', - params : {barcode : barcode,signRecordId:signRecordId}, + params : {barcode : barcode,signRecordId:signRecordId,sendoutTime:sendoutTime}, async : false, success : function(response, options) { var result = Ext.decode(response.responseText); top.Ext.getCmp("scanGoods").getEl().unmask(); if(result.success){ signRecordId = result.signRecordId; + for(var x = 0; x < result.arr.length; x++){ var goods = result.arr[x]; //正确的添加scanGoods表格 @@ -183,11 +205,25 @@ }else{ showResult(result.msg , null , sstsConfig.messagePauseTimeOnInvoiceplanPage); top.Ext.getCmp('scanText').setValue(""); - top.Ext.getCmp('scanText').focus(); + top.Ext.getCmp('scanText').focus(); + + //如果待签收列表里面的已签收数量为0,并且后台返回的待签收数量为0,那就删掉 + if(result.arr[0].waitSignAmount == 0){ + for (var i = 0; i < waitInvoiceSignGoodsStore.getCount(); i++) { + var record = waitInvoiceSignGoodsStore.getAt(i); + var tousseName = record.get('tousseName'); + if(tousseName == result.arr[0].tousseName && record.get('signAmount') == 0){ + waitInvoiceSignGoodsStore.remove(record); + showResult(result.arr[0].tousseName + "包的待签收数量为0,将从待签收列表删除" , null , sstsConfig.messagePauseTimeOnInvoiceplanPage); + break; + } + } + } + //异常物品列表,给提示 if(result.arr.length > 0){ var barcodeVal = result.barcode; - //判断扫描的条码是否在异常物品列表中已存在,存在就不再添加到异常物品列表中 + //判断扫描的条码是否在异常物品列表中是否已存在,存在就不再添加到异常物品列表中 var flag = false; for ( var i = 0; i < invoiceSignAbnormalDetailGoodsStore.getCount(); i++) { var record = invoiceSignAbnormalDetailGoodsStore.getAt(i); @@ -341,6 +377,7 @@ c.getEl().on('keypress',function(e) { //扫码按下回车键 if (e.getKey() == 13) {// 输入;号键,grid重新加载 + if(top.Ext.getCmp("scanText").getValue() != ''){ scanInvoiceSignGoods(); }else{ @@ -380,11 +417,10 @@ editable : false, height:35, width : 120, - value:"今天", mode:'local', store : new Ext.data.SimpleStore({ data: getTimeComboData(), - fields:['key','value'] + fields:['key','value'] }), forceSelection : true, triggerAction : 'all', @@ -414,9 +450,9 @@ rowColor = 'my_row_yellow'; } }else{//扫描以后 - if(record.data.signAmount < record.data.amount){//已签收数量小于待签收数量时,物品的背景色为蓝色 + if(record.data.signAmount > 0 && record.data.amount > 0){//还存在待签收的物品,即已扫描的数量大于0,并且待签收数量大于0时,物品的背景色为蓝色 rowColor = 'my_row_blue'; - }else if(record.data.signAmount == record.data.amount){//已签收数量等于未签收数量时,显示绿色 + }else if( record.data.amount == 0){//物品签收完,即该物品的待签收数量等于0时,物品的背景色为绿色 rowColor = 'my_row_green'; } } @@ -514,6 +550,8 @@ }); invoiceSignGoodsWin.show(); + top.Ext.getCmp("sendoutTime").setValue(sendoutTimeArr[1][1]); + top.Ext.getCmp("sendoutTime").setRawValue(sendoutTimeArr[1][0]); top.Ext.getCmp('scanText').focus(false,100); }