This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit adba6a55c6e3127dae8dfad8e3d54e2f7252143a Author: Benjamin POUSSIN <poussin@codelutin.com> Date: Thu Jan 5 14:10:55 2017 +0100 fixes #8661: [ALGORITHME DE PRELEVEMENTS] mauvais fonctionnement des compteurs quand on décoche l'option "maturité" et/ou "sexe" - correction pour que la demande de prelevement utilise les dernieres infos du status --- .../IndividualObservationSamplingStatus.java | 45 +++++++++++----------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/IndividualObservationSamplingStatus.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/IndividualObservationSamplingStatus.java index 6c9f608..76f649a 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/IndividualObservationSamplingStatus.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/IndividualObservationSamplingStatus.java @@ -75,10 +75,7 @@ public class IndividualObservationSamplingStatus { */ private int samplingCountInZone; - /** - * Pour savoir si on demande un prélèvement. - */ - private boolean needSampling; + private final boolean computeSampling; public IndividualObservationSamplingStatus(IndividualObservationSamplingContext individualObservationSamplingContext, boolean computeSampling, @@ -97,21 +94,7 @@ public class IndividualObservationSamplingStatus { this.samplingCountInFishingOperation = fishingOperationSamplingData.getSamplingCount(); this.individualObservationCountInFishingOperation = fishingOperationSamplingData.getIndividualObservationCount(); - boolean needSampling; - - // on calcule needSampling si on nous le demande, que la définnition nous autorise (au moins un max n'est pas à 0) et qu'aucun max n'a été atteint - if (computeSampling && !isNotUsingSampling() && !isOneTotalCountIsAttained()) { - - int samplingInterval = individualObservationSamplingContext.getCalcifiedPiecesSamplingDefinition().getSamplingInterval(); - needSampling = individualObservationCountInCruise== 1 || samplingInterval == 1 || individualObservationCountInCruise % samplingInterval == 1; - - } else { - - needSampling = false; - - } - this.needSampling = needSampling; - + this.computeSampling = computeSampling; } /** @@ -127,7 +110,6 @@ public class IndividualObservationSamplingStatus { samplingCountInFishingOperation += i.samplingCountInFishingOperation; individualObservationCountInZone += i.individualObservationCountInZone; samplingCountInZone += i.samplingCountInZone; - needSampling = needSampling || i.needSampling; } public IndividualObservationSamplingContext getIndividualObservationSamplingContext() { @@ -135,7 +117,26 @@ public class IndividualObservationSamplingStatus { } public boolean isNeedSampling() { - return needSampling; + // le calcul est fait ici et non plus dans le constructeur car + // les données peuvent changé si on appelle la methode add + boolean result; + + // on calcule needSampling si on nous le demande, que la définnition nous autorise (au moins un max n'est pas à 0) et qu'aucun max n'a été atteint + if (computeSampling && !isNotUsingSampling() && !isOneTotalCountIsAttained()) { + + int samplingInterval = individualObservationSamplingContext + .getCalcifiedPiecesSamplingDefinition().getSamplingInterval(); + result = individualObservationCountInCruise == 1 + || samplingInterval == 1 + || individualObservationCountInCruise % samplingInterval == 1; + + } else { + + result = false; + + } + + return result; } public CalcifiedPiecesSamplingDefinition getCalcifiedPiecesSamplingDefinition() { @@ -226,7 +227,7 @@ public class IndividualObservationSamplingStatus { .add("samplingCountInFishingOperation", samplingCountInFishingOperation) .add("individualObservationCountInZone", getIndividualObservationCountInZone()) .add("samplingCountInZone", samplingCountInZone) - .add("needSampling", needSampling) + .add("needSampling", isNeedSampling()) .toString(); } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.