This is an automated email from the git hooks/post-receive script. New commit to branch feature/2264 in repository wao. See http://git.codelutin.com/wao.git commit e7ed94d647a75b250e07330197eaa12c47a69ac0 Author: Brendan Le Ny <bleny@codelutin.com> Date: Fri Dec 26 18:30:19 2014 +0100 Ajout de la validation sur la chronologie des différentes dates des contacts scléro --- .../wao/services/service/ContactsService.java | 58 +++++++++++++++++++++- .../service/IllegalSampleReceptionException.java | 10 ++++ .../service/IllegalSampleSubmissionException.java | 10 ++++ .../service/IllegalSampleTreatmentException.java | 10 ++++ .../service/MissingSampleReceptionException.java | 10 ++++ .../service/MissingSampleSubmissionException.java | 10 ++++ .../resources/i18n/wao-services_en_GB.properties | 5 ++ .../resources/i18n/wao-services_fr_FR.properties | 5 ++ .../ifremer/wao/web/action/EditContactAction.java | 15 ++++++ .../wao/web/action/ValidateContactJsonAction.java | 15 ++++++ .../main/resources/i18n/wao-web_en_GB.properties | 7 +++ .../main/resources/i18n/wao-web_fr_FR.properties | 7 +++ 12 files changed, 160 insertions(+), 2 deletions(-) diff --git a/wao-services/src/main/java/fr/ifremer/wao/services/service/ContactsService.java b/wao-services/src/main/java/fr/ifremer/wao/services/service/ContactsService.java index 5e0a05e..77e5e2d 100644 --- a/wao-services/src/main/java/fr/ifremer/wao/services/service/ContactsService.java +++ b/wao-services/src/main/java/fr/ifremer/wao/services/service/ContactsService.java @@ -534,6 +534,21 @@ public class ContactsService extends WaoServiceSupport { } catch (IllegalSampleSizeException e) { String message = l(l, "wao.import.contact.failure.illegalSampleSize", lineNumber); throw new ImportErrorException(message); + } catch (IllegalSampleTreatmentException e) { + String message = l(l, "wao.import.contact.failure.illegalSampleTreatment", lineNumber); + throw new ImportErrorException(message); + } catch (IllegalSampleReceptionException e) { + String message = l(l, "wao.import.contact.failure.illegalSampleReception", lineNumber); + throw new ImportErrorException(message); + } catch (MissingSampleSubmissionException e) { + String message = l(l, "wao.import.contact.failure.missingSampleSubmission", lineNumber); + throw new ImportErrorException(message); + } catch (IllegalSampleSubmissionException e) { + String message = l(l, "wao.import.contact.failure.illegalSampleSubmission", lineNumber); + throw new ImportErrorException(message); + } catch (MissingSampleReceptionException e) { + String message = l(l, "wao.import.contact.failure.missingSampleReception", lineNumber); + throw new ImportErrorException(message); } save0(updateContactCommand); @@ -604,7 +619,12 @@ public class ContactsService extends WaoServiceSupport { MissingContactTerrestrialLocationException, IllegalAcceptationException, MissingSampleSizeException, - IllegalSampleSizeException { + IllegalSampleSizeException, + MissingSampleSubmissionException, + IllegalSampleSubmissionException, + MissingSampleReceptionException, + IllegalSampleReceptionException, + IllegalSampleTreatmentException { // Check if contact can be updated boolean canUpdateContact = authenticatedWaoUser.isAuthorizedToEditContact(updateContactCommand.getContact()) @@ -759,7 +779,14 @@ public class ContactsService extends WaoServiceSupport { ContactObservationEndDateBeforeBeginDateException, ContactObservationEndDateAfterTodayException, ContactDataInputDateBeforeObservationEndDateException, - ContactDataInputDateAfterTodayException { + ContactDataInputDateAfterTodayException, + + MissingContactObservationEndDateException, + MissingSampleSubmissionException, + IllegalSampleSubmissionException, + MissingSampleReceptionException, + IllegalSampleReceptionException, + IllegalSampleTreatmentException { Date observationBeginDate = contact.getObservationBeginDate(); Date observationEndDate = contact.getObservationEndDate(); @@ -800,6 +827,33 @@ public class ContactsService extends WaoServiceSupport { } } + if (contact.getSampleSubmission() != null) { + if (contact.getObservationEndDate() == null) { + throw new MissingContactObservationEndDateException(contact); + } + if (contact.getSampleSubmission().before(contact.getObservationEndDate())) { + throw new IllegalSampleSubmissionException(contact); + } + } + + if (contact.getSampleReception() != null) { + if (contact.getSampleSubmission() == null) { + throw new MissingSampleSubmissionException(contact); + } + if (contact.getSampleReception().before(contact.getSampleSubmission())) { + throw new IllegalSampleReceptionException(contact); + } + } + + if (contact.getSampleTreatment() != null) { + if (contact.getSampleReception() == null) { + throw new MissingSampleReceptionException(contact); + } + if (contact.getSampleTreatment().before(contact.getSampleReception())) { + throw new IllegalSampleTreatmentException(contact); + } + } + } /** diff --git a/wao-services/src/main/java/fr/ifremer/wao/services/service/IllegalSampleReceptionException.java b/wao-services/src/main/java/fr/ifremer/wao/services/service/IllegalSampleReceptionException.java new file mode 100644 index 0000000..d20542c --- /dev/null +++ b/wao-services/src/main/java/fr/ifremer/wao/services/service/IllegalSampleReceptionException.java @@ -0,0 +1,10 @@ +package fr.ifremer.wao.services.service; + +import fr.ifremer.wao.entity.Contact; + +public class IllegalSampleReceptionException extends ContactValidationException { + + public IllegalSampleReceptionException(Contact contact) { + super(contact); + } +} diff --git a/wao-services/src/main/java/fr/ifremer/wao/services/service/IllegalSampleSubmissionException.java b/wao-services/src/main/java/fr/ifremer/wao/services/service/IllegalSampleSubmissionException.java new file mode 100644 index 0000000..9f1fdeb --- /dev/null +++ b/wao-services/src/main/java/fr/ifremer/wao/services/service/IllegalSampleSubmissionException.java @@ -0,0 +1,10 @@ +package fr.ifremer.wao.services.service; + +import fr.ifremer.wao.entity.Contact; + +public class IllegalSampleSubmissionException extends ContactValidationException { + + public IllegalSampleSubmissionException(Contact contact) { + super(contact); + } +} diff --git a/wao-services/src/main/java/fr/ifremer/wao/services/service/IllegalSampleTreatmentException.java b/wao-services/src/main/java/fr/ifremer/wao/services/service/IllegalSampleTreatmentException.java new file mode 100644 index 0000000..477489a --- /dev/null +++ b/wao-services/src/main/java/fr/ifremer/wao/services/service/IllegalSampleTreatmentException.java @@ -0,0 +1,10 @@ +package fr.ifremer.wao.services.service; + +import fr.ifremer.wao.entity.Contact; + +public class IllegalSampleTreatmentException extends ContactValidationException { + + public IllegalSampleTreatmentException(Contact contact) { + super(contact); + } +} diff --git a/wao-services/src/main/java/fr/ifremer/wao/services/service/MissingSampleReceptionException.java b/wao-services/src/main/java/fr/ifremer/wao/services/service/MissingSampleReceptionException.java new file mode 100644 index 0000000..706f7bc --- /dev/null +++ b/wao-services/src/main/java/fr/ifremer/wao/services/service/MissingSampleReceptionException.java @@ -0,0 +1,10 @@ +package fr.ifremer.wao.services.service; + +import fr.ifremer.wao.entity.Contact; + +public class MissingSampleReceptionException extends ContactValidationException { + + public MissingSampleReceptionException(Contact contact) { + super(contact); + } +} diff --git a/wao-services/src/main/java/fr/ifremer/wao/services/service/MissingSampleSubmissionException.java b/wao-services/src/main/java/fr/ifremer/wao/services/service/MissingSampleSubmissionException.java new file mode 100644 index 0000000..a36db05 --- /dev/null +++ b/wao-services/src/main/java/fr/ifremer/wao/services/service/MissingSampleSubmissionException.java @@ -0,0 +1,10 @@ +package fr.ifremer.wao.services.service; + +import fr.ifremer.wao.entity.Contact; + +public class MissingSampleSubmissionException extends ContactValidationException { + + public MissingSampleSubmissionException(Contact contact) { + super(contact); + } +} diff --git a/wao-services/src/main/resources/i18n/wao-services_en_GB.properties b/wao-services/src/main/resources/i18n/wao-services_en_GB.properties index b5eb341..b451f33 100644 --- a/wao-services/src/main/resources/i18n/wao-services_en_GB.properties +++ b/wao-services/src/main/resources/i18n/wao-services_en_GB.properties @@ -39,7 +39,10 @@ wao.import.contact.failure.dataInputDateBeforeToday=Data input date must be befo wao.import.contact.failure.districtMissing=You need to precise the boat district wao.import.contact.failure.duplicatedMainObserverInSecondaryObservers=Main observer can not be also a secondary observer wao.import.contact.failure.illegalAcceptation=Contact must be accepted by company before being accepted by program +wao.import.contact.failure.illegalSampleReception=The sample reception date must be after the sample submission date wao.import.contact.failure.illegalSampleSize=The number of individuals must be positive +wao.import.contact.failure.illegalSampleSubmission=The sample submission date must be after the observation end date +wao.import.contact.failure.illegalSampleTreatment=The sample treatment date must be after the sample reception date wao.import.contact.failure.invalidObservationBeginDate=La date de début de la marée doit correspondre à un mois valide (non vide) de la ligne wao.import.contact.failure.locationTypeMissing=The type of the location must be filled wao.import.contact.failure.mismatchCompanyForObserver=Observer %s is not member of %s @@ -58,7 +61,9 @@ wao.import.contact.failure.missingObservationEndDate=Observation end date must b wao.import.contact.failure.missingObservedDataControl=You must provide a value for observed data control wao.import.contact.failure.missingObserver=There can't be no observer for state '%s' wao.import.contact.failure.missingRestitution=You must provide the restitution forward date +wao.import.contact.failure.missingSampleReception=You must provide the sample reception date wao.import.contact.failure.missingSampleSize=You must provide de number of individuals +wao.import.contact.failure.missingSampleSubmission=You must provide the sample submission date wao.import.contact.failure.missingTerrestrialLocation=You must provide the terrestrial location wao.import.contact.failure.not.updatable=Insufficient credentials to update contact wao.import.contact.failure.observationEndDateAfterToday=La date de fin de la marée ne peut pas être postérieure à la date du jour diff --git a/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties b/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties index e6c221d..d0810c4 100644 --- a/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties +++ b/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties @@ -37,7 +37,10 @@ wao.import.contact.failure.dataInputDateBeforeObservationEndDate=La date de sais wao.import.contact.failure.districtMissing=Il faut préciser le code d'un quartier maritime wao.import.contact.failure.duplicatedMainObserverInSecondaryObservers=L'utilisateur référant ne doit pas se trouver aussi parmi les observateurs secondaires wao.import.contact.failure.illegalAcceptation=Le contact doit être accepté par la société avant d'être accepté par le programme +wao.import.contact.failure.illegalSampleReception=Ligne %s \: Le nombre d'individus échantillonnés doit être strictement positif wao.import.contact.failure.illegalSampleSize=Ligne %s \: Le nombre d'individus échantillonnés doit être strictement positif +wao.import.contact.failure.illegalSampleSubmission=Ligne %s \: la date d'envoi doit être après la date de fin d'observation +wao.import.contact.failure.illegalSampleTreatment=Ligne %s \: la date de traitement doit être après la date de réception wao.import.contact.failure.invalidObservationBeginDate=Ligne %s \: La date de début de la marée doit correspondre à un mois valide (non vide) de la ligne wao.import.contact.failure.locationTypeMissing=Le type du lieu doit être renseigné wao.import.contact.failure.mismatchCompanyForObserver=Ligne %s \: L'observateur %s n'est pas membre de %s @@ -56,7 +59,9 @@ wao.import.contact.failure.missingObservationEndDate=Ligne %s \: La date de fin wao.import.contact.failure.missingObservedDataControl=Ligne %s \: Il faut préciser une valeur pour le contrôle des données observées wao.import.contact.failure.missingObserver=Ligne %s \: Il ne peut y avoir aucun observateur pour l'état '%s' wao.import.contact.failure.missingRestitution=Ligne %s \: Il faut préciser une date de transmission de la restitution de la donnée avant de valider +wao.import.contact.failure.missingSampleReception=Ligne %s \: il faut préciser la date de réception wao.import.contact.failure.missingSampleSize=Ligne %s \: Il faut préciser le nombre d'individus échantillonnés +wao.import.contact.failure.missingSampleSubmission=Ligne %s \: il faut préciser la date d'envoi wao.import.contact.failure.missingTerrestrialLocation=Ligne %s \: Il faut préciser le lieu terrestre wao.import.contact.failure.not.updatable=Ligne %s \: Vous n'avez pas les droits suffisants pour modifier le contact wao.import.contact.failure.observationEndDateAfterToday=Ligne %s \: La date de fin de la marée doit être antérieure à la date du jour diff --git a/wao-web/src/main/java/fr/ifremer/wao/web/action/EditContactAction.java b/wao-web/src/main/java/fr/ifremer/wao/web/action/EditContactAction.java index 5be4b0e..34c93ac 100644 --- a/wao-web/src/main/java/fr/ifremer/wao/web/action/EditContactAction.java +++ b/wao-web/src/main/java/fr/ifremer/wao/web/action/EditContactAction.java @@ -45,7 +45,10 @@ import fr.ifremer.wao.services.service.ContactWithObservedDataControlToCorrectio import fr.ifremer.wao.services.service.ContactsService; import fr.ifremer.wao.services.service.DuplicatedContactMainObserverInSecondaryObserversException; import fr.ifremer.wao.services.service.IllegalAcceptationException; +import fr.ifremer.wao.services.service.IllegalSampleReceptionException; import fr.ifremer.wao.services.service.IllegalSampleSizeException; +import fr.ifremer.wao.services.service.IllegalSampleSubmissionException; +import fr.ifremer.wao.services.service.IllegalSampleTreatmentException; import fr.ifremer.wao.services.service.InvalidContactObservationBeginDateException; import fr.ifremer.wao.services.service.MismatchContactMainObserverCompanyException; import fr.ifremer.wao.services.service.MismatchContactSecondaryObserverCompanyException; @@ -61,7 +64,9 @@ import fr.ifremer.wao.services.service.MissingContactObservedDataControlExceptio import fr.ifremer.wao.services.service.MissingContactRestitutionException; import fr.ifremer.wao.services.service.MissingContactStateMotifException; import fr.ifremer.wao.services.service.MissingContactTerrestrialLocationException; +import fr.ifremer.wao.services.service.MissingSampleReceptionException; import fr.ifremer.wao.services.service.MissingSampleSizeException; +import fr.ifremer.wao.services.service.MissingSampleSubmissionException; import fr.ifremer.wao.services.service.UnknownContactIdException; import fr.ifremer.wao.services.service.UnwantedContactContactStateMotifException; import fr.ifremer.wao.services.service.UpdateContactCommand; @@ -316,6 +321,16 @@ public class EditContactAction extends WaoJspActionSupport implements Preparable addFieldError("updateContactCommand.contact.sampleSize", t("wao.ui.form.Contact.error.missingSampleSize")); } catch (IllegalSampleSizeException e) { addFieldError("updateContactCommand.contact.sampleSize", t("wao.ui.form.Contact.error.illegalSampleSize")); + } catch (IllegalSampleTreatmentException e) { + addFieldError("updateContactCommand.contact.sampleTreatment", t("wao.ui.form.Contact.error.illegalSampleTreatment")); + } catch (IllegalSampleReceptionException e) { + addFieldError("updateContactCommand.contact.sampleReception", t("wao.ui.form.Contact.error.illegalSampleReception")); + } catch (MissingSampleSubmissionException e) { + addFieldError("updateContactCommand.contact.sampleSubmission", t("wao.ui.form.Contact.error.missingSampleSubmission")); + } catch (IllegalSampleSubmissionException e) { + addFieldError("updateContactCommand.contact.sampleSubmission", t("wao.ui.form.Contact.error.illegalSampleSubmission")); + } catch (MissingSampleReceptionException e) { + addFieldError("updateContactCommand.contact.sampleReception", t("wao.ui.form.Contact.error.missingSampleReception")); } } diff --git a/wao-web/src/main/java/fr/ifremer/wao/web/action/ValidateContactJsonAction.java b/wao-web/src/main/java/fr/ifremer/wao/web/action/ValidateContactJsonAction.java index 875acf4..6a3f1fb 100644 --- a/wao-web/src/main/java/fr/ifremer/wao/web/action/ValidateContactJsonAction.java +++ b/wao-web/src/main/java/fr/ifremer/wao/web/action/ValidateContactJsonAction.java @@ -38,7 +38,10 @@ import fr.ifremer.wao.services.service.ContactWithObservedDataControlToCorrectio import fr.ifremer.wao.services.service.ContactsService; import fr.ifremer.wao.services.service.DuplicatedContactMainObserverInSecondaryObserversException; import fr.ifremer.wao.services.service.IllegalAcceptationException; +import fr.ifremer.wao.services.service.IllegalSampleReceptionException; import fr.ifremer.wao.services.service.IllegalSampleSizeException; +import fr.ifremer.wao.services.service.IllegalSampleSubmissionException; +import fr.ifremer.wao.services.service.IllegalSampleTreatmentException; import fr.ifremer.wao.services.service.InvalidContactObservationBeginDateException; import fr.ifremer.wao.services.service.MismatchContactMainObserverCompanyException; import fr.ifremer.wao.services.service.MismatchContactSecondaryObserverCompanyException; @@ -54,7 +57,9 @@ import fr.ifremer.wao.services.service.MissingContactObservedDataControlExceptio import fr.ifremer.wao.services.service.MissingContactRestitutionException; import fr.ifremer.wao.services.service.MissingContactStateMotifException; import fr.ifremer.wao.services.service.MissingContactTerrestrialLocationException; +import fr.ifremer.wao.services.service.MissingSampleReceptionException; import fr.ifremer.wao.services.service.MissingSampleSizeException; +import fr.ifremer.wao.services.service.MissingSampleSubmissionException; import fr.ifremer.wao.services.service.UnknownContactIdException; import fr.ifremer.wao.services.service.UnwantedContactContactStateMotifException; import fr.ifremer.wao.services.service.UpdateContactCommand; @@ -233,6 +238,16 @@ public class ValidateContactJsonAction extends WaoJsonActionSupport implements P errorMessage = t("wao.ui.form.Contact.error.missingSampleSize"); } catch (IllegalSampleSizeException e) { errorMessage = t("wao.ui.form.Contact.error.illegalSampleSize"); + } catch (IllegalSampleTreatmentException e) { + errorMessage = t("wao.ui.form.Contact.error.illegalSampleTreatment"); + } catch (IllegalSampleReceptionException e) { + errorMessage = t("wao.ui.form.Contact.error.illegalSampleReception"); + } catch (MissingSampleSubmissionException e) { + errorMessage = t("wao.ui.form.Contact.error.missingSampleSubmission"); + } catch (IllegalSampleSubmissionException e) { + errorMessage = t("wao.ui.form.Contact.error.illegalSampleSubmission"); + } catch (MissingSampleReceptionException e) { + errorMessage = t("wao.ui.form.Contact.error.missingSampleReception"); } if (isSuccessful()) { diff --git a/wao-web/src/main/resources/i18n/wao-web_en_GB.properties b/wao-web/src/main/resources/i18n/wao-web_en_GB.properties index d6f16a6..a573431 100644 --- a/wao-web/src/main/resources/i18n/wao-web_en_GB.properties +++ b/wao-web/src/main/resources/i18n/wao-web_en_GB.properties @@ -313,6 +313,10 @@ wao.ui.form.Contact.error.dataInputDateAfterToday=The data input date cannot be wao.ui.form.Contact.error.dataInputDateBeforeObservationEndDate=The data input date cannot be before observation end date wao.ui.form.Contact.error.duplicatedMainObserverInSecondaryObservers=The main observer cannot also be a secondary observer wao.ui.form.Contact.error.illegalAcceptationException=Contact must be validated by company before being validated by program +wao.ui.form.Contact.error.illegalSampleReception=The sample reception date can't be before the sample submission date +wao.ui.form.Contact.error.illegalSampleSize=The sample size must be positive +wao.ui.form.Contact.error.illegalSampleSubmission=The sample submission date can't be before the observation end date +wao.ui.form.Contact.error.illegalSampleTreatment=The sample treatment date can't be before the sample reception date wao.ui.form.Contact.error.invalidObservationBeginDate=The observation begin date must be a date in a month with an expected effort in the sampling plan wao.ui.form.Contact.error.mismatchCompanyForObserver=Observer %s is not member of %s wao.ui.form.Contact.error.missingComment=The comment is mandatory @@ -329,6 +333,9 @@ wao.ui.form.Contact.error.missingObservationEndDate=The observation end date mus wao.ui.form.Contact.error.missingObservedDataControl=The observed data control must be provided wao.ui.form.Contact.error.missingObserver=The main observer must be provided wao.ui.form.Contact.error.missingRestitution=The restitution date must be provided +wao.ui.form.Contact.error.missingSampleReception=You must precise the sample reception date +wao.ui.form.Contact.error.missingSampleSize=You must precise the sample size +wao.ui.form.Contact.error.missingSampleSubmission=You must precise the sample submission date wao.ui.form.Contact.error.missingTerrestrialLocation=The terrestrial location of observation must be provided wao.ui.form.Contact.error.observationEndDateAfterToday=Observation end date cannot be after today wao.ui.form.Contact.error.observationEndDateBeforeBeginDate=Observation end date must be after observation begin date diff --git a/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties b/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties index 01f930b..c796166 100644 --- a/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties +++ b/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties @@ -314,6 +314,10 @@ wao.ui.form.Contact.error.dataInputDateAfterToday=La date de saisie des données wao.ui.form.Contact.error.dataInputDateBeforeObservationEndDate=La date de saisie des données doit être postérieure à la date de fin d'observation wao.ui.form.Contact.error.duplicatedMainObserverInSecondaryObservers=L'utilisateur référant ne doit pas se trouver aussi parmi les observateurs secondaires wao.ui.form.Contact.error.illegalAcceptationException=Le contact doit être accepté par la société avant d'être accepté ou refusé par le programme +wao.ui.form.Contact.error.illegalSampleReception=La date de réception ne peut être avant la date d'envoi +wao.ui.form.Contact.error.illegalSampleSize=La taille de l'échantillon doit être positive +wao.ui.form.Contact.error.illegalSampleSubmission=La date d'envoi ne peut être avant la date de fin d'observation +wao.ui.form.Contact.error.illegalSampleTreatment=La date de traitement ne peut être avant la date de réception wao.ui.form.Contact.error.invalidObservationBeginDate=La date de début de la marée doit correspondre à un mois valide (non vide) de la ligne wao.ui.form.Contact.error.mismatchCompanyForObserver=L'observateur %s n'est pas membre de %s wao.ui.form.Contact.error.missingComment=Il faut préciser un commentaire pour l'état '%s' @@ -330,6 +334,9 @@ wao.ui.form.Contact.error.missingObservationEndDate=La date de fin d'observation wao.ui.form.Contact.error.missingObservedDataControl=Il faut préciser une valeur pour le contrôle des données observées wao.ui.form.Contact.error.missingObserver=Il ne peut y avoir aucun observateur pour l'état '%s' wao.ui.form.Contact.error.missingRestitution=Il faut préciser une date de transmission de la restitution de la donnée avant de valider +wao.ui.form.Contact.error.missingSampleReception=Il faut préciser la date de réception +wao.ui.form.Contact.error.missingSampleSize=Il faut préciser la taille de l'échantillon +wao.ui.form.Contact.error.missingSampleSubmission=Il faut préciser la date d'envoi wao.ui.form.Contact.error.missingTerrestrialLocation=Il faut préciser le lieu d'observation wao.ui.form.Contact.error.observationEndDateAfterToday=La date de fin de la marée ne peut pas être postérieure à la date du jour wao.ui.form.Contact.error.observationEndDateBeforeBeginDate=La date de fin d'observation ne peut pas être antérieure à celle du début -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.