Author: chatellier Date: 2010-11-25 16:13:26 +0000 (Thu, 25 Nov 2010) New Revision: 281 Log: Dans le controle de diff?\195?\169rence catch/length, les cas 0 n'est pas une erreur Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/ValidationService.java Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/ValidationService.java =================================================================== --- trunk/coser-business/src/main/java/fr/ifremer/coser/services/ValidationService.java 2010-11-25 15:29:23 UTC (rev 280) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/ValidationService.java 2010-11-25 16:13:26 UTC (rev 281) @@ -475,7 +475,7 @@ int lineIndex = 1; // skip header while (itTuple.hasNext()) { String[] tuple = itTuple.next(); - + // update progress if (progress != null) { int progressPercent = (int)((double)lineIndex / (double)total * 100.0); @@ -483,7 +483,7 @@ progress.setCurrent(lineIndex); ++lineIndex; } - + // compute key StringBuffer sb = new StringBuffer(); for (int tupleIndex = 0 ; tupleIndex < tuple.length; ++tupleIndex) { @@ -517,8 +517,6 @@ log.warn("Can't parse '" + nombreValue + "' as double"); } } - - } // now look for invalid data @@ -653,15 +651,19 @@ } // diff entre 4 et 5 = (5-4) * 100 / 5 - double diff = (Math.max(catchNumber, lengthNumber) - - Math.min(catchNumber, lengthNumber)) * 100 / Math.max(catchNumber, lengthNumber); - - if (diff > config.getControlDiffCatchLength()) { - ValidationError error = new ValidationError(); - error.setLevel(ValidationLevel.WARNING); - error.setMessage(_("coser.business.control.error.diffCatchLength")); - error.setDetailMessage(_("coser.business.control.error.diffCatchLengthDetail", species, year)); - validationErrors.add(error); + double min = Math.min(catchNumber, lengthNumber); + // si c'est 0, ou absence de catures, ce n'est pas une erreur + if (min <= 0) { + double max = Math.max(catchNumber, lengthNumber); + double diff = (max - min) * 100 / max; + + if (diff > config.getControlDiffCatchLength()) { + ValidationError error = new ValidationError(); + error.setLevel(ValidationLevel.WARNING); + error.setMessage(_("coser.business.control.error.diffCatchLength")); + error.setDetailMessage(_("coser.business.control.error.diffCatchLengthDetail", species, year)); + validationErrors.add(error); + } } } }