r321 - in trunk: coser-business/src/main/java/fr/ifremer/coser/services coser-business/src/main/resources/i18n coser-ui/src/main/java/fr/ifremer/coser/ui/control coser-ui/src/main/resources
Author: chatellier Date: 2010-12-01 14:39:38 +0000 (Wed, 01 Dec 2010) New Revision: 321 Log: Ajout d'un control sur l'absence de taille alors que des captures sont pr?\195?\169sente Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/ControlService.java trunk/coser-business/src/main/resources/i18n/coser-business_en_GB.properties trunk/coser-business/src/main/resources/i18n/coser-business_fr_FR.properties trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/control/ControlHandler.java trunk/coser-ui/src/main/resources/log4j.properties Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/ControlService.java =================================================================== --- trunk/coser-business/src/main/java/fr/ifremer/coser/services/ControlService.java 2010-12-01 14:20:34 UTC (rev 320) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/ControlService.java 2010-12-01 14:39:38 UTC (rev 321) @@ -576,7 +576,10 @@ } List<DiffCatchLengthControlError> validationErrors = new ArrayList<DiffCatchLengthControlError>(); + + // data necessary for compute SortedSet<String> setYear = new TreeSet<String>(); + Set<String> missingYearLengthSpecies = new HashSet<String>(); // look for data (data summed over catch) Map<String, Map<String, Double>> catchForSpeciesYears = new HashMap<String, Map<String, Double>>(); @@ -693,20 +696,33 @@ lengthNumber = 0.0; // marche pour NA } - // diff entre 4 et 5 = (5-4) * 100 / 5 - 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()) { - DiffCatchLengthControlError error = new DiffCatchLengthControlError(); - error.setSpecies(species); - error.setLevel(ValidationLevel.WARNING); - error.setMessage(_("coser.business.control.error.diffCatchLength")); - error.setDetailMessage(_("coser.business.control.error.diffCatchLengthDetail", species, year)); - validationErrors.add(error); + // warning si taille = 0 et captures différent de 0 + // nomespece, année(s) avec absence de taille + if (lengthNumber == 0 && catchNumber > 0 && !missingYearLengthSpecies.contains(species)) { + DiffCatchLengthControlError error = new DiffCatchLengthControlError(); + error.setSpecies(species); + error.setLevel(ValidationLevel.WARNING); + error.setMessage(_("coser.business.control.error.diffCatchLengthMissingYear")); + error.setDetailMessage(_("coser.business.control.error.diffCatchLengthMissingYearDetail", species)); + validationErrors.add(error); + missingYearLengthSpecies.add(species); + } + else { + // diff entre 4 et 5 = (5-4) * 100 / 5 + 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()) { + DiffCatchLengthControlError error = new DiffCatchLengthControlError(); + error.setSpecies(species); + error.setLevel(ValidationLevel.WARNING); + error.setMessage(_("coser.business.control.error.diffCatchLength")); + error.setDetailMessage(_("coser.business.control.error.diffCatchLengthDetail", species, year)); + validationErrors.add(error); + } } } } Modified: trunk/coser-business/src/main/resources/i18n/coser-business_en_GB.properties =================================================================== --- trunk/coser-business/src/main/resources/i18n/coser-business_en_GB.properties 2010-12-01 14:20:34 UTC (rev 320) +++ trunk/coser-business/src/main/resources/i18n/coser-business_en_GB.properties 2010-12-01 14:39:38 UTC (rev 321) @@ -30,6 +30,8 @@ coser.business.control.error.allCategories=All categories coser.business.control.error.diffCatchLength=Differences between length and catch coser.business.control.error.diffCatchLengthDetail=Differences between length and catch for species %s (year \: %s) +coser.business.control.error.diffCatchLengthMissingYear=Years without length +coser.business.control.error.diffCatchLengthMissingYearDetail=%s, year(s) without length coser.business.control.error.duplicatedLine=Duplicated line coser.business.control.error.duplicatedLineDetails=Duplicated line for key \: %s coser.business.control.error.invalidLengthLengthStep=Invalid length step (authorized centimeters and half-centimeters) Modified: trunk/coser-business/src/main/resources/i18n/coser-business_fr_FR.properties =================================================================== --- trunk/coser-business/src/main/resources/i18n/coser-business_fr_FR.properties 2010-12-01 14:20:34 UTC (rev 320) +++ trunk/coser-business/src/main/resources/i18n/coser-business_fr_FR.properties 2010-12-01 14:39:38 UTC (rev 321) @@ -30,6 +30,8 @@ coser.business.control.error.allCategories=Toutes les cat\u00E9gories coser.business.control.error.diffCatchLength=Diff\u00E9rence entre les captures et taille coser.business.control.error.diffCatchLengthDetail=Diff\u00E9rence entre les captures et taille pour l'esp\u00E8ce %s (ann\u00E9e %s) +coser.business.control.error.diffCatchLengthMissingYear=Ann\u00E9e(s) avec absence de taille +coser.business.control.error.diffCatchLengthMissingYearDetail=%s, ann\u00E9e(s) avec absence de taille coser.business.control.error.duplicatedLine=Ligne en doublon coser.business.control.error.duplicatedLineDetails=Ligne en doublon pour la cl\u00E9 \: %s coser.business.control.error.invalidLengthLengthStep=Le pas de longueur est invalide (autoris\u00E9 centim\u00E8tre et demi-centim\u00E8tre) Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/control/ControlHandler.java =================================================================== --- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/control/ControlHandler.java 2010-12-01 14:20:34 UTC (rev 320) +++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/control/ControlHandler.java 2010-12-01 14:39:38 UTC (rev 321) @@ -395,7 +395,7 @@ List<ControlError> errors = get(); view.getGlobalControlErrorModel().setControlErrors(errors); - // hack parce que impossible de faire un fire + // hack parce que impossible de faire un faire // sans que les colonnes soit redimentionnées SwingUtil.fixTableColumnWidth(view.getGlobalControlErrorTable(), 1, 25); Modified: trunk/coser-ui/src/main/resources/log4j.properties =================================================================== --- trunk/coser-ui/src/main/resources/log4j.properties 2010-12-01 14:20:34 UTC (rev 320) +++ trunk/coser-ui/src/main/resources/log4j.properties 2010-12-01 14:39:38 UTC (rev 321) @@ -38,4 +38,4 @@ log4j.appender.file.layout.ConversionPattern=%d{dd-MM-yy HH:mm:ss} %5p %c:%L - %m%n # Specific logging -#log4j.category.fr.ifremer.coser=DEBUG +log4j.category.fr.ifremer.coser=DEBUG
participants (1)
-
chatellier@users.labs.libre-entreprise.org