This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See http://git.codelutin.com/tutti.git commit 8211d0d15da9a17ae1cd29acec092789d7ce9c2c Author: Kevin Morin <morin@codelutin.com> Date: Thu Sep 11 14:38:08 2014 +0200 fixes #5139 [CAPTURE] répéter le champ "poids sous échantillon" dans la fenêtre de saisie des mensurations --- .../service/catches/WeightComputingService.java | 8 +++--- ...rvice.java => WeightComputingService.java.orig} | 8 +++++- .../benthos/frequency/BenthosFrequencyUI.css | 1 + .../benthos/frequency/BenthosFrequencyUI.jaxx | 1 + .../benthos/frequency/BenthosFrequencyUIModel.java | 9 +++++++ .../species/frequency/SpeciesFrequencyUI.css | 1 + .../species/frequency/SpeciesFrequencyUI.jaxx | 1 + .../species/frequency/SpeciesFrequencyUIModel.java | 9 +++++++ .../BenthosFrequencyUIModel-error-validation.xml | 11 ++++++++ ...BenthosFrequencyUIModel-warning-validation.xml} | 31 +++------------------- .../SpeciesFrequencyUIModel-error-validation.xml | 11 ++++++++ ...SpeciesFrequencyUIModel-warning-validation.xml} | 31 +++------------------- .../resources/i18n/tutti-ui-swing_en_GB.properties | 4 +++ .../resources/i18n/tutti-ui-swing_fr_FR.properties | 4 +++ 14 files changed, 69 insertions(+), 61 deletions(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/WeightComputingService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/WeightComputingService.java index 120ec7c..34e9d91 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/WeightComputingService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/WeightComputingService.java @@ -336,9 +336,9 @@ public class WeightComputingService extends AbstractTuttiService { Float rejectedWeight = catchBatch.getCatchTotalRejectedWeight(); if (rejectedWeight == null && totalWeight != null) { - if (totalWeight.compareTo(totalUnsortedWeight + totalSortedWeight) < 1) { - throw new ApplicationBusinessException(t("tutti.service.operations.computeWeights.error.totalLessThanSortedAndUnsorted")); -// + if (Weights.isNotEqualWeight(totalWeight, totalUnsortedWeight + totalSortedWeight)) { + throw new ApplicationBusinessException(t("tutti.service.operations.computeWeights.error.incoherentTotal")); + } else { catchBatch.setCatchTotalRejectedComputedWeight( Weights.roundKiloGram(totalWeight @@ -356,7 +356,7 @@ public class WeightComputingService extends AbstractTuttiService { + totalSortedWeight + rejectedWeight)); - } else if (!totalWeight.equals(totalUnsortedWeight + totalSortedWeight + rejectedWeight)) { + } else if (Weights.isNotEqualWeight(totalWeight, totalUnsortedWeight + totalSortedWeight + rejectedWeight)) { throw new ApplicationBusinessException(t("tutti.service.operations.computeWeights.error.incoherentTotal")); } } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/WeightComputingService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/WeightComputingService.java.orig similarity index 98% copy from tutti-service/src/main/java/fr/ifremer/tutti/service/catches/WeightComputingService.java copy to tutti-service/src/main/java/fr/ifremer/tutti/service/catches/WeightComputingService.java.orig index 120ec7c..dbedc61 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/WeightComputingService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/WeightComputingService.java.orig @@ -336,9 +336,15 @@ public class WeightComputingService extends AbstractTuttiService { Float rejectedWeight = catchBatch.getCatchTotalRejectedWeight(); if (rejectedWeight == null && totalWeight != null) { +<<<<<<< HEAD if (totalWeight.compareTo(totalUnsortedWeight + totalSortedWeight) < 1) { throw new ApplicationBusinessException(t("tutti.service.operations.computeWeights.error.totalLessThanSortedAndUnsorted")); // +======= + if (Weights.isNotEqualWeight(totalWeight, totalUnsortedWeight + totalSortedWeight)) { + throw new ApplicationBusinessException(t("tutti.service.operations.computeWeights.error.incoherentTotal")); + +>>>>>>> fixes #5139 [CAPTURE] répéter le champ "poids sous échantillon" dans la fenêtre de saisie des mensurations } else { catchBatch.setCatchTotalRejectedComputedWeight( Weights.roundKiloGram(totalWeight @@ -356,7 +362,7 @@ public class WeightComputingService extends AbstractTuttiService { + totalSortedWeight + rejectedWeight)); - } else if (!totalWeight.equals(totalUnsortedWeight + totalSortedWeight + rejectedWeight)) { + } else if (Weights.isNotEqualWeight(totalWeight, totalUnsortedWeight + totalSortedWeight + rejectedWeight)) { throw new ApplicationBusinessException(t("tutti.service.operations.computeWeights.error.incoherentTotal")); } } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.css b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.css index a4c8f17..c12173e 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.css +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.css @@ -89,6 +89,7 @@ ComputableDataEditor { #totalWeightField { bean: {model.getTotalComputedOrNotWeight()}; model: {model.getTotalWeight()}; + _validatorLabel: {t("tutti.editBenthosFrequencies.field.totalWeight")}; _help: {"tutti.editBenthosFrequencies.field.totalWeight.help"}; } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.jaxx b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.jaxx index e943ecb..c0fe122 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.jaxx +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.jaxx @@ -63,6 +63,7 @@ public BenthosFrequencyUI(TuttiUI parentUI) { component='lengthStepCaracteristicComboBox'/> <field name='step' component='stepField'/> <field name='rows' component='tableScrollPane'/> + <field name='totalWeight' component='totalWeightField'/> </BeanValidator> <TuttiHelpBroker id='broker' diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel.java index 023b421..cc7230a 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel.java @@ -30,6 +30,7 @@ import fr.ifremer.tutti.ui.swing.content.operation.catches.FrequencyConfiguratio import fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.BenthosBatchRowModel; import fr.ifremer.tutti.ui.swing.util.computable.ComputableData; import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIModel; +import fr.ifremer.tutti.util.Weights; import org.apache.commons.collections4.CollectionUtils; import java.util.Set; @@ -174,6 +175,7 @@ public class BenthosFrequencyUIModel extends AbstractTuttiTableUIModel<BenthosBa super(BenthosBatchRowModel.class, null, null); this.weightUnit = weightUnit; this.sampleCategoryModel = sampleCategoryModel; + this.totalComputedOrNotWeight.addPropagateListener(PROPERTY_TOTAL_WEIGHT, this); setEmptyRows(Sets.<BenthosFrequencyRowModel>newHashSet()); } @@ -337,6 +339,13 @@ public class BenthosFrequencyUIModel extends AbstractTuttiTableUIModel<BenthosBa firePropertyChange(PROPERTY_TOTAL_COMPUTED_WEIGHT, oldValue, totalComputedWeight); } + public boolean isTotalWeightSameAsComputedWeight() { + Float totalWeight = getTotalWeight(); + Float computedWeight = getTotalComputedWeight(); + return totalWeight != null && computedWeight != null + && Weights.isEqualWeight(totalWeight, computedWeight); + } + public Set<BenthosFrequencyRowModel> getEmptyRows() { return emptyRows; } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css index ae14a4c..642809a 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css @@ -89,6 +89,7 @@ ComputableDataEditor { #totalWeightField { bean: {model.getTotalComputedOrNotWeight()}; model: {model.getTotalWeight()}; + _validatorLabel: {t("tutti.editSpeciesFrequencies.field.totalWeight")}; _help: {"tutti.editSpeciesFrequencies.field.totalWeight.help"}; } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx index 4c3f57d..3519aa8 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx @@ -63,6 +63,7 @@ public SpeciesFrequencyUI(TuttiUI parentUI) { component='lengthStepCaracteristicComboBox'/> <field name='step' component='stepField'/> <field name='rows' component='tableScrollPane'/> + <field name='totalWeight' component='totalWeightField'/> </BeanValidator> <TuttiHelpBroker id='broker' diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java index 91d0b09..80559c6 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java @@ -30,6 +30,7 @@ import fr.ifremer.tutti.ui.swing.content.operation.catches.FrequencyConfiguratio import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchRowModel; import fr.ifremer.tutti.ui.swing.util.computable.ComputableData; import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIModel; +import fr.ifremer.tutti.util.Weights; import org.apache.commons.collections4.CollectionUtils; import java.util.Set; @@ -174,6 +175,7 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa super(SpeciesBatchRowModel.class, null, null); this.weightUnit = weightUnit; this.sampleCategoryModel = sampleCategoryModel; + this.totalComputedOrNotWeight.addPropagateListener(PROPERTY_TOTAL_WEIGHT, this); setEmptyRows(Sets.<SpeciesFrequencyRowModel>newHashSet()); } @@ -345,6 +347,13 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa firePropertyChange(PROPERTY_TOTAL_COMPUTED_WEIGHT, oldValue, totalComputedWeight); } + public boolean isTotalWeightSameAsComputedWeight() { + Float totalWeight = getTotalWeight(); + Float computedWeight = getTotalComputedWeight(); + return totalWeight != null && computedWeight != null + && Weights.isEqualWeight(totalWeight, computedWeight); + } + public Set<SpeciesFrequencyRowModel> getEmptyRows() { return emptyRows; } diff --git a/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel-error-validation.xml b/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel-error-validation.xml index 47ef631..3101eb4 100644 --- a/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel-error-validation.xml +++ b/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel-error-validation.xml @@ -59,4 +59,15 @@ </field-validator> </field> + + <field name="totalWeight"> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ totalWeight == null || totalComputedWeight == null || totalComputedWeight.equals(0f) + || isTotalWeightSameAsComputedWeight() ]]> + </param> + <message>tutti.validator.error.benthosFrequency.incoherentTotalWeights</message> + </field-validator> + </field> + </validators> diff --git a/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel-error-validation.xml b/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel-warning-validation.xml similarity index 57% copy from tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel-error-validation.xml copy to tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel-warning-validation.xml index 47ef631..deec56a 100644 --- a/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel-error-validation.xml +++ b/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel-warning-validation.xml @@ -25,38 +25,13 @@ "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"> <validators> - <field name="lengthStepCaracteristic"> - + <field name="totalWeight"> <field-validator type="fieldexpression" short-circuit="true"> <param name="expression"> - <![CDATA[ isSimpleCountingMode() || lengthStepCaracteristic != null ]]> + <![CDATA[ !isTotalWeightSameAsComputedWeight() ]]> </param> - <message> - tutti.validator.error.benthosFrequency.lengthStepCaracteristic.required - </message> + <message>tutti.validator.warning.benthosFrequency.redundantTotalWeight</message> </field-validator> - - </field> - - <field name="step"> - - <field-validator type="double" short-circuit="true"> - <param name="minExclusive">0</param> - <message> - tutti.validator.error.benthosFrequency.step.positiveValue - </message> - </field-validator> - </field> - <field name="rows"> - - <field-validator type="fieldexpression" short-circuit="true"> - <param name="expression"> - <![CDATA[ isSimpleCountingMode() || rows != null ]]> - </param> - <message>tutti.validator.error.benthosFrequency.oneRowRequired</message> - </field-validator> - - </field> </validators> diff --git a/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel-error-validation.xml b/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel-error-validation.xml index 3c74832..040977d 100644 --- a/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel-error-validation.xml +++ b/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel-error-validation.xml @@ -59,4 +59,15 @@ </field-validator> </field> + + <field name="totalWeight"> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ totalWeight == null || totalComputedWeight == null || totalComputedWeight.equals(0f) + || isTotalWeightSameAsComputedWeight() ]]> + </param> + <message>tutti.validator.error.speciesFrequency.incoherentTotalWeights</message> + </field-validator> + </field> + </validators> diff --git a/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel-error-validation.xml b/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel-warning-validation.xml similarity index 57% copy from tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel-error-validation.xml copy to tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel-warning-validation.xml index 47ef631..73f997f 100644 --- a/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel-error-validation.xml +++ b/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel-warning-validation.xml @@ -25,38 +25,13 @@ "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"> <validators> - <field name="lengthStepCaracteristic"> - + <field name="totalWeight"> <field-validator type="fieldexpression" short-circuit="true"> <param name="expression"> - <![CDATA[ isSimpleCountingMode() || lengthStepCaracteristic != null ]]> + <![CDATA[ !isTotalWeightSameAsComputedWeight() ]]> </param> - <message> - tutti.validator.error.benthosFrequency.lengthStepCaracteristic.required - </message> + <message>tutti.validator.warning.speciesFrequency.redundantTotalWeight</message> </field-validator> - - </field> - - <field name="step"> - - <field-validator type="double" short-circuit="true"> - <param name="minExclusive">0</param> - <message> - tutti.validator.error.benthosFrequency.step.positiveValue - </message> - </field-validator> - </field> - <field name="rows"> - - <field-validator type="fieldexpression" short-circuit="true"> - <param name="expression"> - <![CDATA[ isSimpleCountingMode() || rows != null ]]> - </param> - <message>tutti.validator.error.benthosFrequency.oneRowRequired</message> - </field-validator> - - </field> </validators> diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties index f1f3134..d67f259 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties @@ -1688,6 +1688,7 @@ tutti.validateCruise.navigation.title= tutti.validationCruise.action.saveCruiseToReadyToSynch.message= tutti.validationCruise.action.saveCruiseToReadyToSynch.tip= tutti.validationCruise.action.saveCruiseToReadyToSynch.title= +tutti.validator.error.benthosFrequency.incoherentTotalWeights= tutti.validator.error.benthosFrequency.lengthStepCaracteristic.required= tutti.validator.error.benthosFrequency.oneRowRequired= tutti.validator.error.benthosFrequency.step.positiveValue= @@ -1725,6 +1726,7 @@ tutti.validator.error.report.cruiseId.required= tutti.validator.error.report.fishingOperation.required= tutti.validator.error.report.outputFile.required= tutti.validator.error.report.report.required= +tutti.validator.error.speciesFrequency.incoherentTotalWeights= tutti.validator.error.speciesFrequency.lengthStepCaracteristic.required= tutti.validator.error.speciesFrequency.oneRowRequired= tutti.validator.error.speciesFrequency.step.positiveValue= @@ -1733,6 +1735,8 @@ tutti.validator.error.splitSpeciesBatch.sampleWeight.sampleBatchGreaterThanBatch tutti.validator.error.splitSpeciesBatch.selectedCategory.required= tutti.validator.info.cruise.noError= tutti.validator.info.operation.noError= +tutti.validator.warning.benthosFrequency.redundantTotalWeight= +tutti.validator.warning.speciesFrequency.redundantTotalWeight= tutti.vesselUseFeatureTable.action.removeCaracteristic= tutti.vesselUseFeatureTable.action.removeCaracteristic.mnemonic= tutti.vesselUseFeatureTable.action.removeCaracteristic.tip= diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties index 682b43f..53ae0d0 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties @@ -1610,6 +1610,7 @@ tutti.validateCruise.navigation.title=Traits tutti.validationCruise.action.saveCruiseToReadyToSynch.message=<html>Voulez vous rendre vos données synchronisables vers Harmonie ?</html> tutti.validationCruise.action.saveCruiseToReadyToSynch.tip=Rendre les données synchronisables vers Harmonie tutti.validationCruise.action.saveCruiseToReadyToSynch.title=Rendre synchronisable les données vers Harmonie +tutti.validator.error.benthosFrequency.incoherentTotalWeights=Le poids total est différent de la somme des poids des poids observés tutti.validator.error.benthosFrequency.lengthStepCaracteristic.required=La classe de taille est obligatoire tutti.validator.error.benthosFrequency.oneRowRequired=Au moins une classe de taille doit être observée tutti.validator.error.benthosFrequency.step.positiveValue=Le pas de la classe de taille doit être strictement positif @@ -1647,6 +1648,7 @@ tutti.validator.error.report.cruiseId.required=La campagne est obligatoire tutti.validator.error.report.fishingOperation.required=Un trait doit être sélectionné tutti.validator.error.report.outputFile.required=Le fichier de sortie est obligatoire tutti.validator.error.report.report.required=Un modèle de rapport doit être sélectionné +tutti.validator.error.speciesFrequency.incoherentTotalWeights=Le poids total est différent de la somme des poids des poids observés tutti.validator.error.speciesFrequency.lengthStepCaracteristic.required=La classe de taille est obligatoire tutti.validator.error.speciesFrequency.oneRowRequired=Au moins une classe de taille doit être observée tutti.validator.error.speciesFrequency.step.positiveValue=Le pas de la classe de taille doit être strictement positif @@ -1655,6 +1657,8 @@ tutti.validator.error.splitSpeciesBatch.sampleWeight.sampleBatchGreaterThanBatch tutti.validator.error.splitSpeciesBatch.selectedCategory.required=La catégorie est obligatoire tutti.validator.info.cruise.noError=Campagne sans erreur tutti.validator.info.operation.noError=Trait sans erreur +tutti.validator.warning.benthosFrequency.redundantTotalWeight=Le poids total est redondant (égal au poids calculé à partir des poids observés) +tutti.validator.warning.speciesFrequency.redundantTotalWeight=Le poids total est redondant (égal au poids calculé à partir des poids observés) tutti.vesselUseFeatureTable.action.removeCaracteristic=Supprimer tutti.vesselUseFeatureTable.action.removeCaracteristic.mnemonic=S tutti.vesselUseFeatureTable.action.removeCaracteristic.tip=Supprimer la caractéristique -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.