fmi...@users.adullact.net
unread,Jun 5, 2024, 5:08:47 PMJun 5Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to openmairie-ope...@googlegroups.com
Author: fmichon
Date: 2024-06-05 23:08:44 +0200 (Wed, 05 Jun 2024)
New Revision: 1856
Modified:
trunk/HISTORY.txt
trunk/app/js/script.js
trunk/obj/declaration.class.php
trunk/tests/resources/app/declaration.robot
Log:
* Correction : Le calcul automatique de la date de debut de validite a partir de la date de declaration + 15 jours n'etait plus fonctionnel.
Modified: trunk/HISTORY.txt
===================================================================
--- trunk/HISTORY.txt 2024-06-05 14:50:38 UTC (rev 1855)
+++ trunk/HISTORY.txt 2024-06-05 21:08:44 UTC (rev 1856)
@@ -4,6 +4,8 @@
3.0.0-rc2 (unreleased)
----------------------
+* Correction : Le calcul automatique de la date de début de validité à partir de la date de déclaration + 15 jours n'était plus fonctionnel.
+
* Évolution : Ajout d'une option pour gérer la mise à jour automatique de la date de fin de validité d'une déclaration à partir de sa date de début de validité + 100 ans.
* Correction : Mise en cohérence de l'ordre de tri du select des autorisations exceptionnelles du formulaire 'courrier' avec l'ordre de tri du listing des autorisations exceptionnelles.
Modified: trunk/app/js/script.js
===================================================================
--- trunk/app/js/script.js 2024-06-05 14:50:38 UTC (rev 1855)
+++ trunk/app/js/script.js 2024-06-05 21:08:44 UTC (rev 1856)
@@ -601,20 +601,56 @@
}
/**
+ * Cette fonction permet de gérer la mise à jour automatique du champ
+ * *date_debut_validite* du formulaire déclaration à partir des informations
+ * renseignées dans le champ field passé en paramètre (le champ
+ * *date_declaration* du formulaire déclaration).
+ *
+ * L'objectif principal est le suivant : dès que l'utilisateur renseigne une
+ * date de déclaration. La date de début de validité se positionne
+ * automatiquement à J+15.
+ *
+ * @return void
+ */
+function handle_date_debut_validite(field) {
+ function pad(s) { return (s < 10) ? '0' + s : s; }
+ // On récupère la valeur du champ field passé en paramètre et
+ // on vérifie que c'est une date valide sinon on ne fait rien.
+ var result = new Date($(field).val().split('/').reverse().join('-'));
+ if (result.toString() === "Invalid Date") {
+ return;
+ }
+ // On ajoute les 15 jours à notre date valide récupérée et on compose la
+ // nouvelle date au bon format.
+ result.setDate(result.getDate() + 15);
+ new_date = [pad(result.getDate()), pad(result.getMonth()+1), result.getFullYear()].join('/');
+ // Dans le cas ou le champ date de début de validité n'est pas vide alors
+ // on alerte l'utilisateur que sa valeur va être remplacée.
+ if ($("#date_debut_validite").val() != "") {
+ alert("Une date de début de validité va être modifiée par la date de déclaration + 15 jours.");
+ }
+ // On met à jour la date et on déclenche l'événement change sur celui ci.
+ $("#date_debut_validite").val(new_date).trigger("change");
+}
+
+/**
* Permet d'ajouter des années à une date récupérée d'un champ de formulaire et
* de mettre à jour un champ de formulaire avec la nouvelle date.
*
* @return void
- *
*/
function add_years_to_date(date_field_src, date_field_dest, years) {
+ function pad(s) { return (s < 10) ? '0' + s : s; }
// Change le format de la date dd/mm/yyyy en yyyy-mm-dd
var date = new Date(date_field_src.value.split('/').reverse().join('-'));
// Ajoute un nombre d'année à la date
var date_result = new Date(date.setFullYear(date.getFullYear() + years));
+ if (date_result.toString() === "Invalid Date") {
+ $(date_field_dest).val("").trigger("change");
+ return;
+ }
// Met la valeur dans le champ de destiantion et change le format de la date
// vers dd/mm/yyyy
- function pad(s) { return (s < 10) ? '0' + s : s; }
$(date_field_dest).val([pad(date_result.getDate()), pad(date_result.getMonth()+1), date_result.getFullYear()].join('/'));
fdate(date_field_dest);
}
Modified: trunk/obj/declaration.class.php
===================================================================
--- trunk/obj/declaration.class.php 2024-06-05 14:50:38 UTC (rev 1855)
+++ trunk/obj/declaration.class.php 2024-06-05 21:08:44 UTC (rev 1856)
@@ -770,6 +770,11 @@
$form->setOnchange('date_debut_validite','fdate(this);add_years_to_date(this, date_fin_validite, 100)');
}
}
+ // En ajout et modification, la date de début de validité sera la
+ // valeur date de déclaration + 15 jours.
+ if ($maj == 0 || $maj == 1) {
+ $form->setOnchange('date_declaration', 'fdate(this);handle_date_debut_validite(this)');
+ }
// Gestion du type de contact "personne morale" ou "personne physique".
$form->setOnchange("declaration_type", "form_helper__declaration_type_ouv_licence_select(".$this->get_declaration_type__ouv().");");
}
Modified: trunk/tests/resources/app/declaration.robot
===================================================================
--- trunk/tests/resources/app/declaration.robot 2024-06-05 14:50:38 UTC (rev 1855)
+++ trunk/tests/resources/app/declaration.robot 2024-06-05 21:08:44 UTC (rev 1856)
@@ -87,11 +87,23 @@
Saisir les informations dans le formulaire de déclaration ${values}
Click On Submit Button In Subform
+
+Confirmer le message d'information du remplacement de la date de début de validité
+ Wait Until Element Is Visible css=div.ui-dialog
+ Element Should Contain css=div.ui-dialog Une date de début de validité va être modifiée par la date de déclaration + 15 jours.
+ Click Element id=ui-button-valid
+ Wait Until Element Is Not Visible css=div.ui-dialog
+
Saisir les informations dans le formulaire de déclaration
[Documentation] Saisie les données dans le formulaire d'ajout d'une déclaration depuis l'établissement courant
[Tags] licence déclaration établissement
[Arguments] ${values}
+
Si "date_declaration" existe dans "${values}" on execute "Input Text" dans le formulaire
+ Sleep 1
+ ${present} = Run Keyword And Return Status Element Should Be Visible css=div.ui-dialog
+ Run Keyword If ${present} Confirmer le message d'information du remplacement de la date de début de validité
+
Si "date_ancienne_declaration" existe dans "${values}" on execute "Input Text" dans le formulaire
Si "declaration_type" existe dans "${values}" on execute "Select From List By Label" dans le formulaire
Si "type_licence" existe dans "${values}" on execute "Select From List By Label" dans le formulaire