Commit c2680be46f23ecefed040a04f5cee606125726e8
Exists in
master
and in
1 other branch
Merge dev branch into master branch (vv3.7.9.61)
Showing
7 changed files
with
569 additions
and
208 deletions
Show diff stats
CHANGES.txt
1 | 1 | CHANGEMENTS |
2 | 2 | |
3 | -(Liste complète des évolutions: https://gitlab.irap.omp.eu/epallier/labinvent/commits/master) | |
3 | +<i>Liste plus détaillée des évolutions : https://gitlab.irap.omp.eu/epallier/labinvent/commits/master</i> | |
4 | + | |
5 | +TODO: - Nouvelle page web "Statistiques mensuelles" (/pages/stats) | |
4 | 6 | |
5 | -La liste ci-dessous est aussi en ligne ici : https://tinyurl.com/labinvent#heading=h.2r55bflctpt5 | |
6 | 7 | |
7 | 8 | ----------------------------------------------------------------------------------------------------------- |
8 | 9 | |
10 | + | |
11 | + | |
12 | +------- | |
13 | +16/07/2020 v3.7.9.61 (EP) | |
14 | + - (e) Amélioration importante de la nouvelle page web "Changements" (/pages/changes) | |
15 | + - (b) Bugfix "sauf ARCHIVED" dans materiels/index/ (pour profils user et resp) | |
16 | + - (b) bugfix tests car maintenant materiels/index/ ne renvoit que les materiels de - 5 ans !! | |
17 | + - (i) Grosse amelioration tests liés au numéro inventaire incrémenté de 1 et au nb de matériels trouvés dans vue index (bien + souple qu'avant) | |
18 | + - (i) Grosse amelioration tests liés à la recherche de matériels testFind (bien + souple qu'avant) | |
19 | + | |
20 | +------- | |
21 | +13/07/2020 v3.7.9.60 (EP) | |
22 | + - (e) Nouvelle page web "Nouveautés" (/pages/changes) => CETTE PAGE ACTUELLE | |
23 | + - Changements migrés dans fichier CHANGES.txt et affichés proprement dans une nouvelle page web changes.ctp | |
24 | + - (e) Mise à jour page 'about' avec fichier LICENSE | |
25 | + - (b) Bugfix requete sql db-update-2020-06-10.sh pour IAS | |
26 | + | |
27 | +------- | |
9 | 28 | 10/07/2020 v3.7.9.58-59 (EP) |
10 | - - Nouveau filtre "age" (FINALISÉ) sur page index des matériels : Affichage des matériels par tranche d'âge (0-5 ans, 5-10, ...) | |
11 | - - Amélioration des filtres par statut => gardent les paramètres (options) déjà sélectionnées (age, nb lines, tri...) | |
12 | - - Bugfix url rewriting dans la page materiels/index pour supprimer le paramètre "page" car ça n'est pas pertinent et ça provoque plantages | |
13 | - - Grosse refactorisation du javascript dans la page materiels/index pour utiliser le meme code pour les 2 filtres "age" et "nb lines" | |
14 | - - Bugfixes code et nombreux petits bugfixes sur les css | |
29 | + - (e) Nouveau filtre "age" (FINALISÉ) sur page index des matériels (/materiels/index) : Affichage des matériels par tranche d'âge (0-5 ans, 5-10, ...) | |
30 | + - (e) Amélioration des filtres par statut => gardent les paramètres (options) déjà sélectionnées (age, nb lines, tri...) | |
31 | + - (b) Bugfix url rewriting dans la page materiels/index pour supprimer le paramètre "page" car ça n'est pas pertinent et ça provoque plantages | |
32 | + - (i) Grosse refactorisation du javascript dans la page materiels/index pour utiliser le meme code pour les 2 filtres "age" et "nb lines" | |
33 | + - (b) Bugfixes code et nombreux petits bugfixes sur les css | |
15 | 34 | |
35 | +------- | |
16 | 36 | 07/07/2020 v3.7.9.56-57 (EP) |
17 | - - Nouveau filtre "age" sur page index des matériels : Affichage des matériels par tranche d'âge (0-5 ans, 5-10, ...) | |
18 | - - Materiel : technique ou/et inventoriable => trop compliqué et inutile => en fait c’est un OUX (exclusif) | |
37 | + - (e) Materiel : technique ou/et inventoriable => trop compliqué et inutile => en fait c’est un OUX (exclusif) | |
19 | 38 | => simplifier en ne gardant qu'UNE SEULE case à cocher qui s'appelle "materiel technique". |
20 | 39 | => Si cette case n'est pas cochée, le prix doit alors être supérieur à 1000E |
21 | 40 | => par contre, on garde quand même le champ ds la BD au cas où. |
22 | - - Colorisation selon statut du matériel : | |
41 | + - (e) Colorisation selon statut du matériel : | |
23 | 42 | CREATED => bleu |
24 | 43 | VALIDATED => vert |
25 | 44 | TBA => orange |
26 | 45 | ARCHIVED => rouge |
27 | 46 | |
47 | +------- | |
28 | 48 | 06/07/2020 v3.7.9.54-55 (EP) |
29 | 49 | - Bugfix test SurCategories : marche maintenant sur php5 et php7 |
30 | - - Fichier LICENSE (AGPL) | |
31 | - - Conditions d'utilisation à accepter lors de l'installation | |
32 | - - script ./INSTALLATION | |
33 | - - Mode "nolimit" dans la config ("Superadmin a tous les droits", depuis menu Tools) | |
50 | + - (e) Fichier LICENSE (AGPL) | |
51 | + - (e) Conditions d'utilisation à accepter lors de l'installation | |
52 | + - (i) script ./INSTALLATION | |
53 | + - (i) Mode "nolimit" dans la config ("Superadmin a tous les droits", depuis menu Tools) | |
34 | 54 | - Ajout d'un "alias" pour décrire chaque action de chaque controleur |
35 | 55 | |
56 | +------- | |
36 | 57 | 03/07/2020 v3.7.9.53 (EP) |
37 | - - Bugfix Emprunts calcul sur les dates pourri : on utilise maintenant FrozenDate et FrozenTime de cakephp au lieu de DateTime de php | |
58 | + - (b) Bugfix Emprunts calcul sur les dates pourri : on utilise maintenant FrozenDate et FrozenTime de cakephp au lieu de DateTime de php | |
38 | 59 | |
60 | +------- | |
39 | 61 | 30/06/2020 v3.7.9.51-52 (EP) |
40 | - - Bugfix et refactorisation des actions documents /admission, /sortie, /ficheMateriel | |
41 | - => désormais, on passe l'id du matos associé et non pas son numero d'inventaire !!! (mauvais raccourci) | |
42 | - => ca permet de tester les conditions d'accès de ces actions en fonction du matériel concerné !! | |
62 | + - (b) Bugfix et refactorisation des actions documents /admission, /sortie, /ficheMateriel | |
63 | + => désormais, on passe l'id du matos associé et non pas son numero d'inventaire !!! (mauvais raccourci) | |
64 | + => ca permet de tester les conditions d'accès de ces actions en fonction du matériel concerné !! | |
43 | 65 | - Bugfix test de ces mêmes actions (mal testées avant) |
44 | 66 | - L'ajout (/add) d'un suivi, emprunt, ou doc doit toujours se faire avec l'id de l'entité parente associée (en général materiel id) |
45 | 67 | => (/add/id) sinon refus |
46 | 68 | - ... |
47 | 69 | |
70 | +------- | |
48 | 71 | 29/06/2020 v3.7.9.50 (EP) |
49 | - - Nouveau (et dernier dernier) super test ajouté : test du cycle de vie complet d'un matériel (CREATED => ... => ARCHIVED) | |
72 | + - (i) Nouveau (et dernier dernier) super test ajouté : test du cycle de vie complet d'un matériel (CREATED => ... => ARCHIVED) | |
50 | 73 | |
74 | +------- | |
51 | 75 | 26/06/2020 v3.7.9.48-49 (EP) |
52 | - - TEST3 : Ajout d'un 3ème (et DERNIER) gros test générique des vues index et view de Materiels (/materiels/index et /view) qui teste le CONTENU des vues pour TOUS les materiels de la BD de test (fixture), aussi bien dans la vue index globale que dans CHAQUE vue détaillée de chaque matériel (et surtout en vérifiant aussi la liste des entités associées (suivis,emprunts,documents). | |
76 | + - (i) TEST3 : Ajout d'un 3ème (et DERNIER) gros test générique des vues index et view de Materiels (/materiels/index et /view) qui teste le CONTENU des vues pour TOUS les materiels de la BD de test (fixture), aussi bien dans la vue index globale que dans CHAQUE vue détaillée de chaque matériel (et surtout en vérifiant aussi la liste des entités associées (suivis,emprunts,documents). | |
53 | 77 | |
78 | +------- | |
54 | 79 | 25/06/2020 v3.7.9.43-47 (EP) |
55 | - - TEST2 : Ajout d'un 2ème très gros test générique des vues index et view de Materiels (/materiels/index et /view) qui teste le CONTENU des vues (les boutons d'action) | |
80 | + - (i) TEST2 : Ajout d'un 2ème très gros test générique des vues index et view de Materiels (/materiels/index et /view) qui teste le CONTENU des vues (les boutons d'action) | |
56 | 81 | à partir d'UN UNIQUE matériel de test qui est modifié à souhait pour essayer de représenter tous les grands cas possibles |
57 | 82 | |
83 | +------- | |
58 | 84 | 23/06/2020 v3.7.9.40-42 (EP) |
59 | - - Nouvelle page qui affiche les messages de log PAR niveau (level info, debug, notice, error...) : disponible depuis la page Outils (/pages/logs) | |
60 | - - Toules les actions importantes (add,edit,delete, changement statut...) sont désormais loggées et donc affichables via la page Outils ci-dessus | |
85 | + - (e) Nouvelle page qui affiche les messages de log PAR niveau (level info, debug, notice, error...) : disponible depuis la page Outils (/pages/logs) | |
86 | + - (i) Toules les actions importantes (add,edit,delete, changement statut...) sont désormais loggées et donc affichables via la page Outils ci-dessus | |
61 | 87 | - Accélération de la recherche du numéro de version dans le fichier README, affichée à CHAQUE page web du site !!! |
62 | 88 | |
89 | +------- | |
63 | 90 | 19/06/2020 v3.7.9.39 (EP) |
64 | - - TEST1 : Ajout d'un 1er très gros test générique automatique pour (presque) TOUTES les actions de (presque) TOUS les controleurs principaux (Materiels, Suivis, et Emprunts) mais aussi du controleur "quelconque" SurCategories (pour vérifier que ça marche aussi, et j'ai bien fait car il est spécial ne serait-ce que de par son nom !!!) | |
91 | + - (i) TEST1 : Ajout d'un 1er très gros test générique automatique pour (presque) TOUTES les actions de (presque) TOUS les controleurs principaux (Materiels, Suivis, et Emprunts) mais aussi du controleur "quelconque" SurCategories (pour vérifier que ça marche aussi, et j'ai bien fait car il est spécial ne serait-ce que de par son nom !!!) | |
65 | 92 | - Dans ces tests génériques, on teste non seulement qu'une action s'exécute seulement quand elle y est autorisée, mais aussi qu'elle s'exécute correctement (au moins pour les actions CRUD : add,edit,delete...) |
66 | 93 | |
94 | +------- | |
67 | 95 | 12/06/2020 v3.7.9.37 (EP) |
68 | 96 | - Amélioré l'action materiels/print_label_ruban (impression etiquette) : un peu plus conforme au standard, un peu moins bidouille qu'avant, et surtout plus besoin de la finir par un "sale" "exit" => donc on peut maintenant la tester, et c'est ce qui a été fait ! (elle est pas encore total nickel mais bon c'est mieux qu'avant) |
69 | 97 | - modifié Fixtures pour supprimer les 'id' explicites |
70 | - - bugfix action materiels/statusToBeArchived (ou statusToBearchived) => remplacé partout par statusTobearchived | |
98 | + - (b) bugfix action materiels/statusToBeArchived (ou statusToBearchived) => remplacé partout par statusTobearchived | |
71 | 99 | |
100 | +------- | |
72 | 101 | 10/06/2020 v3.7.9.35 (EP) |
73 | 102 | - Requete SQL pour répercuter tous les changements depuis avril !!! |
74 | 103 | - 1ère version officielle mise en PROD depuis un bail (presque 2 mois) |
75 | 104 | |
105 | +------- | |
76 | 106 | 05/06/2020 v3.7.9.33 (EP) |
77 | - - bugfix : renommé groupe_thematique_id en groupes_thematique_id pour etre harmonisé partout et surtout avec "groupes_metier_id" !!! | |
78 | - - AUTORISATIONS DESORMAIS ADAPTABLES POUR CHAQUE LABO => pris en compte (testé) aussi dans les tests avec setAuthorizations_TEST() | |
107 | + - (b) bugfix : renommé groupe_thematique_id en groupes_thematique_id pour etre harmonisé partout et surtout avec "groupes_metier_id" !!! | |
108 | + - (i) AUTORISATIONS DESORMAIS ADAPTABLES POUR CHAQUE LABO => pris en compte (testé) aussi dans les tests avec setAuthorizations_TEST() | |
79 | 109 | => chaque labo peut désormais adapter les autorisations des utilisateurs à sa sauce !!! |
80 | 110 | => on part des règles générales par défaut, puis on adapte si besoin, cool non ? |
81 | 111 | - Vues view (déjà fait avant) et index : les boutons d'action (éditer, valider, supprimer...) s'affichent désormais en fonction des autorisations centralisées |
82 | 112 | |
113 | +------- | |
83 | 114 | 04/06/2020 v3.7.9.30-31 (EP) |
84 | - - MISE À JOUR DE TOUS LES CONTROLEURS pour le nouveau système d'autorisation | |
85 | - - SIMPLIFICATION DES AUTORISATIONS POUR LA PLUPART DES CONTROLEURS SIMPLES | |
86 | - - AUTORISATIONS PAR DÉFAUT POUR TOUT NOUVEAU CONTROLEUR BASIQUE | |
87 | - - NOUVELLE PAGE AFFICHANT LES AUTORISATIONS DYNAMIQUEMENT (/pages/acls ou /pages/acls/#nom_du_controleur) | |
115 | + - (i) MISE À JOUR DE TOUS LES CONTROLEURS pour le nouveau système d'autorisation | |
116 | + - (i) SIMPLIFICATION DES AUTORISATIONS POUR LA PLUPART DES CONTROLEURS SIMPLES | |
117 | + - (i) AUTORISATIONS PAR DÉFAUT POUR TOUT NOUVEAU CONTROLEUR BASIQUE | |
118 | + - (e) NOUVELLE PAGE AFFICHANT LES AUTORISATIONS DYNAMIQUEMENT (/pages/acls ou /pages/acls/#nom_du_controleur) | |
88 | 119 | => On peut ainsi vérifier ce qui est appliqué à l'instant T (juste après la modif d'une règle par exemple) |
89 | 120 | |
121 | +------- | |
90 | 122 | 03/06/2020 v3.7.9.29 (EP) |
91 | - - NOUVEAU SYSTEME D'AUTORISATION DES ACTIONS => CENTRALISÉ et testé OK | |
123 | + - (i) NOUVEAU SYSTEME D'AUTORISATION DES ACTIONS => CENTRALISÉ et testé OK | |
92 | 124 | => TOUS les tests passent sauf certains qui ne passent plus car les nouvelles conditions sont plus strictes |
93 | 125 | (ils ont été temporairement désactivés en attendant réécriture plus générique qui viendra très vite) |
94 | 126 | => Autorisations définies dans chaque controleur par setAuthorizations() qui initialise un tableau UNIQUE de AppController ($this->is_authorized_action) |
... | ... | @@ -98,36 +130,40 @@ La liste ci-dessous est aussi en ligne ici : https://tinyurl.com/labinvent#headi |
98 | 130 | => L'initialisation des autorisations est faite (par la méthode setAuthorizationForAction() de AppController) dans un format standard, |
99 | 131 | quelque soit l'autorisation, donc c'est très LISIBLE et facile à modifier |
100 | 132 | |
133 | +------- | |
101 | 134 | 15/05/2020 v3.7.9.28 (EP) |
102 | - - Utilisation systématique de variables "$CAN_xxx" dans les VUES pour tester si un affichage est autorisé ou pas | |
135 | + - (i) Utilisation systématique de variables "$CAN_xxx" dans les VUES pour tester si un affichage est autorisé ou pas | |
103 | 136 | => bcp plus centralisé qu'avant, et bcp plus clean et lisible |
104 | 137 | => désormais TOUS les droits sont définis dans la SEULE méthode isAuthorized() de CHAQUE controleur et NULLE PART AILLEURS |
105 | 138 | => si on veut changer un droit d'accès quelconque, on ne le change QUE là. Ouf, on respire, c'est bien plus cohérent et maintenable qu'avant |
106 | 139 | => FIN de la galère de la gestion des droits (acl) enfin, il aura fallu quelques années pour y parvenir !!! |
107 | 140 | |
141 | +------- | |
108 | 142 | 11/05/2020 v3.7.9.27 (EP) |
109 | - - Ajout d'un LOG applicatif dans le fichier /logs/debug.log pour toutes les actions importantes (add, edit, delete, ...) qui permet de savoir kiafekoi | |
143 | + - (e) Ajout d'un LOG applicatif dans le fichier /logs/debug.log pour toutes les actions importantes (add, edit, delete, ...) qui permet de savoir kiafekoi | |
110 | 144 | |
145 | +------- | |
111 | 146 | 07/05/2020 Version 3.7.9.26 (EP) |
112 | - - shortcuts dans AppController (donc disponible pour TOUS les controleurs) : | |
147 | + - (i) shortcuts dans AppController (donc disponible pour TOUS les controleurs) : | |
113 | 148 | - $this->u = user courant |
114 | 149 | - $this->e = entité courante |
115 | 150 | - $this->e_id = id de l'entité courante |
116 | 151 | - $this->a = action en cours |
117 | 152 | - $this->c = controleur en cours (?) |
118 | 153 | - $this->getEntity($id=null) // id=null si matos courant |
119 | - - harmonisation des noms de méthodes pour MaterielsController : | |
154 | + - (i) harmonisation des noms de méthodes pour MaterielsController : | |
120 | 155 | - $this->isCreated($id=null) // id=null si matos courant |
121 | 156 | - $this->belongsToUser($username, $id=null) // id=null si matos courant |
122 | 157 | et $this->belongsToCurrentUser($id=null) // id=null si matos courant |
123 | 158 | - $this->isSameGroupAsUser($userlogin, $id=null) // id=null si matos courant |
124 | 159 | et $this->isSameGroupAsCurrentUser($id=null) // // id=null si matos courant |
125 | - - harmonisation des méthodes dans entité Materiel (Entity) : | |
160 | + - (i) harmonisation des méthodes dans entité Materiel (Entity) : | |
126 | 161 | - is_created, is_validated, is_tobearchived, is_archived |
127 | 162 | - belongsToUser($username) // owned or declared by user |
128 | 163 | - isSameGroupAsUser($usergroup1, $usergroup2) // is same group as user groups |
129 | 164 | - ... |
130 | 165 | |
166 | +------- | |
131 | 167 | 30/04/2020 Version 3.7.9.23 (EP) |
132 | 168 | - ajout de l'option globale $this->SUPERADMIN_CAN_DO_EVERYTHING dans AppController (false par défaut) pour donner rapidement TOUS les droits à superadmin (juste passer à true) |
133 | 169 | - Nouvelles règles ACL (conditions d'accès) sous forme de tableau $acl => en cours... |
... | ... | @@ -138,82 +174,100 @@ La liste ci-dessous est aussi en ligne ici : https://tinyurl.com/labinvent#headi |
138 | 174 | - afficher une page web présentant automatiquement (dynamiquement) une synthèse claire de toutes les ACL, action par action, et profil par profil |
139 | 175 | (ce qui permettra de se rendre compte plus facilement de l'état actuel des conditions d'accès) |
140 | 176 | |
177 | +------- | |
141 | 178 | 28/04/2020 Version 3.7.9.21 (EP) |
142 | - - mon 1er View Helper dans src/View/Helper (MyButtonHelper) pour créer plus facilement des boutons !! : | |
143 | - - migration des fonctions getActionButton() et displayElement() dans MyButtonHelper et remplacement progressif dans les vues | |
179 | + - (i) mon 1er View Helper dans src/View/Helper (MyButtonHelper) pour créer plus facilement des boutons !! : | |
180 | + - (i) migration des fonctions getActionButton() et displayElement() dans MyButtonHelper et remplacement progressif dans les vues | |
144 | 181 | |
182 | +------- | |
145 | 183 | 20/04/2020 Version 3.7.9.19 (EP) |
146 | - - TOUTES les nombreuses sections Toggle javascript refactorisées en 5 lignes (show/hide) !! | |
184 | + - (i) TOUTES les nombreuses sections Toggle javascript refactorisées en 5 lignes (show/hide) !! | |
147 | 185 | |
186 | +------- | |
148 | 187 | 16/04/2020 Version 3.7.9.18 (EP) |
149 | - Amelioration gestion des Dates... : | |
150 | - - GROS bugfix check dates : uniformisation du format date partout (vues et DatePicker.js et code javascript) => dd/mm/aaaa (au lieu de dd-mm-aa) | |
151 | - - nombreuses refactorisations, généralisations et améliorations du code javascript (bcp de refactorisation dans script.js) | |
188 | + - (i) Amelioration gestion des Dates... : | |
189 | + - GROS bugfix check dates : uniformisation du format date partout (vues et DatePicker.js et code javascript) => dd/mm/aaaa (au lieu de dd-mm-aa) | |
190 | + - nombreuses refactorisations, généralisations et améliorations du code javascript (bcp de refactorisation dans script.js) | |
152 | 191 | |
192 | +------- | |
153 | 193 | 09/04/2020 Version 3.7.9.16-17 (EP) |
154 | - Amelioration Suivis : | |
155 | - - ajout champ is_metro dans table type_suivis pour les types liés au module métrologie | |
156 | - - ajout champ "is_regular" dans table type_suivis pour déclarer les types de suivis réguliers (fréquence) ou irréguliers (date) | |
194 | + (i) Amelioration Suivis : | |
195 | + - ajout champ is_metro dans table type_suivis pour les types liés au module métrologie | |
196 | + - ajout champ "is_regular" dans table type_suivis pour déclarer les types de suivis réguliers (fréquence) ou irréguliers (date) | |
157 | 197 | - début d'utilisation des migrations de BD |
158 | 198 | |
199 | +------- | |
159 | 200 | 01-02/04/2020 Version 3.7.9.13-14 (EP) |
160 | - MATERIELS : GROSSE amélioration pour le fournisseur avec autocomplétion et autocorrection !! | |
161 | - (le fournisseur est toujours en BD mais il est automatiquement ajouté si on en saisit un nouveau) | |
162 | - (ça corrige aussi automatiquement si espaces en trop, y-compris les anciens déjà saisis, | |
163 | - bref c'est miraculous !!!) | |
164 | - (2 jours de boulot quand même...) | |
201 | + - (e) MATERIELS : GROSSE amélioration pour le fournisseur avec autocomplétion et autocorrection !! | |
202 | + (le fournisseur est toujours en BD mais il est automatiquement ajouté si on en saisit un nouveau) | |
203 | + (ça corrige aussi automatiquement si espaces en trop, y-compris les anciens déjà saisis, | |
204 | + bref c'est miraculous !!!) | |
205 | + (2 jours de boulot quand même...) | |
165 | 206 | |
207 | +------- | |
166 | 208 | 31/03/2020 Version 3.7.9.12 (EP) |
167 | - MATERIELS : Amélioration et Bugfixes par refactorisation des vues add et edit en 1 seule add_edit | |
168 | - + Ajout de fournisseur possible | |
209 | + - (i) MATERIELS : Amélioration et Bugfixes par refactorisation des vues add et edit en 1 seule add_edit | |
210 | + - + Ajout de fournisseur possible | |
169 | 211 | |
212 | +------- | |
170 | 213 | 26/03/2020 Version 3.7.9.10 (EP) |
171 | - EMPRUNTS : Amélioration par refactorisation (1) | |
172 | - Comme pour les docs attachés et les suivis (même principe) : | |
173 | - - refactorisation des actions add() et edit() en une seule add_or_edit() (car très semblables) | |
174 | - - refactorisation des vues add et edit en une seule add_edit (car très semblables) | |
214 | + - (i) EMPRUNTS : Amélioration par refactorisation (1) | |
215 | + Comme pour les docs attachés et les suivis (même principe) : | |
216 | + - refactorisation des actions add() et edit() en une seule add_or_edit() (car très semblables) | |
217 | + - refactorisation des vues add et edit en une seule add_edit (car très semblables) | |
175 | 218 | |
219 | +------- | |
176 | 220 | 25/03/2020 Version 3.7.9.9 (EP) |
177 | - SUIVIS : Amélioration par refactorisation (2) | |
178 | - Comme pour les docs attachés (même principe) : | |
179 | - - refactorisation des actions add() et edit() en une seule add_or_edit() (car très semblables) | |
180 | - - refactorisation des vues add et edit en une seule add_edit (car très semblables) | |
221 | + - (i) SUIVIS : Amélioration par refactorisation (2) | |
222 | + Comme pour les docs attachés (même principe) : | |
223 | + - refactorisation des actions add() et edit() en une seule add_or_edit() (car très semblables) | |
224 | + - refactorisation des vues add et edit en une seule add_edit (car très semblables) | |
181 | 225 | |
226 | +------- | |
182 | 227 | 24/03/2020 Version 3.7.9.8 (EP) |
183 | - SUIVIS : Amélioration et nombreux Bugfixes !!! (1) | |
184 | - - ajout intitulé comme titre | |
228 | + - (i) SUIVIS : Amélioration et nombreux Bugfixes !!! (1) | |
229 | + - ajout intitulé comme titre | |
185 | 230 | |
231 | +------- | |
186 | 232 | 23/03/2020 Version 3.7.9.6-7 (EP) |
187 | - DOCS LIÉS : Amélioration de la gestion des docs attachés (3) | |
188 | - - Enorme simplification grâce à la refactorisation des vues add et edit en une seule add_edit car elles sont très semblables | |
189 | - - Amélioration et nombreux bugfixes de la gestion des docs attachés (2) | |
233 | + - (i) DOCS LIÉS : Amélioration de la gestion des docs attachés (3) | |
234 | + - Enorme simplification grâce à la refactorisation des vues add et edit en une seule add_edit car elles sont très semblables | |
235 | + - Amélioration et nombreux bugfixes de la gestion des docs attachés (2) | |
190 | 236 | |
237 | +------- | |
191 | 238 | 16/03/2020 Version 3.7.9.1-5 (EP) |
192 | - Premiers bugfixes du nouveau site responsive | |
239 | + - (b) Premiers bugfixes du nouveau site responsive | |
193 | 240 | |
241 | +------- | |
194 | 242 | 11/03/2020 Version 3.7.9.0 (EP) |
195 | - NOUVELLE VERSION RESPONSIVE validée et installée officiellement à l'IRAP et au CRAL (mobile ready) | |
196 | - Nouveau format de version qui colle à la version utilisée du framework Cakephp (3.7.9) | |
243 | + - (e) NOUVELLE VERSION RESPONSIVE validée et installée officiellement à l'IRAP et au CRAL (mobile ready) | |
244 | + - (e) Nouveau format de version qui colle à la version utilisée du framework Cakephp (3.7.9) | |
197 | 245 | |
246 | +------- | |
198 | 247 | 10/03/2020 Version 2.14.8 (EP) |
199 | - Dernier bugfix pour valider nouvelle version 2.14 (responsive) : bugfix test etiquette collée | |
248 | + - (b) Dernier bugfix pour valider nouvelle version 2.14 (responsive) : bugfix test etiquette collée | |
200 | 249 | |
250 | +------- | |
201 | 251 | 10/03/2020 Version 2.14.7 (EP) |
202 | - Nombreux petits bugfixes (dont 1 gros : bouton CANCEL) : | |
252 | + - (b) Nombreux petits bugfixes (dont 1 gros : bouton CANCEL) : | |
203 | 253 | |
254 | +------- | |
204 | 255 | 06/03/2020 Version 2.14.6 (EP) |
205 | - 6 gros bugfixes de la version 2.14 (responsive) sur 1 semaine de boulot !! | |
256 | + - (b) 6 gros bugfixes de la version 2.14 (responsive) sur 1 semaine de boulot !! | |
206 | 257 | |
258 | +------- | |
207 | 259 | 28/02/2020 Version 2.14.0 (Jeanne Prugniel, stagiaire CRAL) |
208 | - Application maintenant "responsive" avec l'utilisation de boostrap (ok sur pc, tablette, et mobile) | |
260 | + - (e) Application maintenant "responsive" avec l'utilisation de boostrap (ok sur pc, tablette, et mobile) | |
209 | 261 | |
262 | +------- | |
210 | 263 | 29/01-17/02/2020 Version 2.13.13-14 (EP) |
211 | 264 | Ajout bootstrap-ui |
212 | 265 | |
266 | +------- | |
213 | 267 | 21/01/2019 Version 2.13.12 (EP) |
214 | - Bugfix connexion superadmin en mode SANS LDAP (en cours...) | |
215 | - Bugfix et amélioration script installation (script création users BDD...) | |
216 | - Amélioration script update (ajout mise à jour auto des plugins php) | |
268 | + - (b) Bugfix connexion superadmin en mode SANS LDAP (en cours...) | |
269 | + - (b) Bugfix et amélioration script installation (script création users BDD...) | |
270 | + - (i) Amélioration script update (ajout mise à jour auto des plugins php) | |
217 | 271 | |
218 | 272 | ... |
219 | 273 | ... | ... |
README.md
... | ... | @@ -42,18 +42,9 @@ Logiciel testé et validé sur les configurations suivantes : |
42 | 42 | |
43 | 43 | -------------------------------------------------------------------------------------------- |
44 | 44 | |
45 | -VERSION ACTUELLE | |
46 | - | |
47 | -Date: 13/07/2020 | |
48 | -Version: 3.7.9.60 (encours) | |
49 | -Author: EP | |
50 | -Commentaire: | |
51 | - - Nouvelle page web "Nouveautés" (/pages/changes) | |
52 | - - Changements migrés dans fichier CHANGES.txt et affichés proprement dans une nouvelle page web changes.ctp | |
53 | - - Mise à jour page 'about' avec fichier LICENSE | |
54 | - - Bugfix requete sql db-update-2020-06-10.sh pour IAS | |
55 | - | |
56 | - - Nouvelle page web "Statistiques mensuelles" (/pages/stats) | |
45 | +Date: 16/07/2020 | |
46 | +Version: 3.7.9.61 | |
47 | + | |
57 | 48 | |
58 | 49 | HISTORIQUE DES CHANGEMENTS DE VERSION : voir le fichier CHANGES.txt (ou la page web /pages/changes) |
59 | 50 | ... | ... |
src/Controller/MaterielsController.php
... | ... | @@ -791,30 +791,38 @@ class MaterielsController extends AppController { |
791 | 791 | $GMV = $this->request->getQuery('GMV'); |
792 | 792 | $GTV = $this->request->getQuery('GTV'); |
793 | 793 | if ($GMV !== null || $GTV !== null) { |
794 | - if ($GMV !== null && $GMV != TableRegistry::getTableLocator()->get('GroupesMetiers')->find() | |
795 | - ->where([ | |
796 | - 'nom =' => 'N/A' | |
797 | - ]) | |
798 | - ->first()['id']) | |
794 | + if ( | |
795 | + $GMV !== null | |
796 | + && | |
797 | + $GMV != TableRegistry::getTableLocator()->get('GroupesMetiers') | |
798 | + ->find() | |
799 | + ->where([ | |
800 | + 'nom =' => 'N/A' | |
801 | + ]) | |
802 | + ->first()['id'] | |
803 | + ) | |
799 | 804 | $conditions = [ |
800 | 805 | 'Materiels.groupes_metier_id =' => $GMV, |
801 | 806 | 'Materiels.status =' => 'CREATED', |
802 | 807 | 'Materiels.status !=' => 'ARCHIVED' |
803 | 808 | ]; |
804 | - else if ($GTV !== null && $GTV != TableRegistry::getTableLocator()->get('GroupesThematiques')->find() | |
805 | - ->where([ | |
806 | - 'nom =' => 'N/A' | |
807 | - ]) | |
808 | - ->first()['id']) | |
809 | + else if ( | |
810 | + $GTV !== null | |
811 | + && | |
812 | + $GTV != TableRegistry::getTableLocator()->get('GroupesThematiques') | |
813 | + ->find() | |
814 | + ->where([ | |
815 | + 'nom =' => 'N/A' | |
816 | + ]) | |
817 | + ->first()['id'] | |
818 | + ) | |
809 | 819 | $conditions = [ |
810 | 820 | 'Materiels.groupes_metier_id =' => $GTV, |
811 | 821 | 'Materiels.status =' => 'CREATED', |
812 | 822 | 'Materiels.status !=' => 'ARCHIVED' |
813 | 823 | ]; |
814 | 824 | else |
815 | - $conditions = [ | |
816 | - 'Materiels.id =' => 0 | |
817 | - ]; | |
825 | + $conditions = [ 'Materiels.id =' => 0 ]; | |
818 | 826 | } |
819 | 827 | |
820 | 828 | $MY = $this->request->getQuery('MY'); |
... | ... | @@ -839,7 +847,7 @@ class MaterielsController extends AppController { |
839 | 847 | if (in_array($this->getUserRole(), [ |
840 | 848 | 'Utilisateur', |
841 | 849 | 'Responsable' |
842 | - ]) && $conditions == '') | |
850 | + ]) && $conditions == []) | |
843 | 851 | $conditions = [ |
844 | 852 | 'Materiels.status !=' => 'ARCHIVED' |
845 | 853 | ]; |
... | ... | @@ -930,7 +938,9 @@ class MaterielsController extends AppController { |
930 | 938 | return $exp->isNull('date_acquisition'); |
931 | 939 | } |
932 | 940 | ); |
933 | - $this->set('nbMateriels', $materiels->count()); | |
941 | + $nbMateriels = $materiels->count(); | |
942 | + //debug("age=$age, nbMateriels = $nbMateriels"); | |
943 | + $this->set(compact('nbMateriels')); | |
934 | 944 | |
935 | 945 | /* |
936 | 946 | $this->set('nbMateriels', | ... | ... |
src/Model/Table/MaterielsTable.php
... | ... | @@ -313,6 +313,7 @@ class MaterielsTable extends AppTable |
313 | 313 | ])->first(); |
314 | 314 | */ |
315 | 315 | $this->config = TableRegistry::getTableLocator()->get('Configurations')->get(1); |
316 | + //debug($this->config); | |
316 | 317 | |
317 | 318 | /* |
318 | 319 | * CONTROLE de la cohérence des champs materiel_administratif et materiel_technique | ... | ... |
... | ... | @@ -0,0 +1,114 @@ |
1 | +<?php | |
2 | +// parameters passed by controller | |
3 | +?> | |
4 | +<h2> | |
5 | + <!-- | |
6 | + <i class="icon-print"></i> | |
7 | + --> | |
8 | + <center>CHANGEMENTS FAITS SUR LE LOGICIEL</center> | |
9 | +</h2> | |
10 | + | |
11 | +<p> | |
12 | +<u><b>Légende</b></u>: | |
13 | +<ul> | |
14 | + <li>En <b style='color:green'>vert</b>, les changements importants et visibles</li> | |
15 | + <li>En <b style='color:orange'>orange</b>, les changements importants mais internes (non visibles, souvent techniques)</li> | |
16 | + <li>En <b style='color:red'>rouge</b>, les corrections de bug (bugfixes)</li> | |
17 | +</ul> | |
18 | +</p> | |
19 | +<br> | |
20 | +<br> | |
21 | +<br> | |
22 | + | |
23 | + | |
24 | + | |
25 | + | |
26 | +<?php | |
27 | + | |
28 | +// On lit le fichier /WWWROOT/../CHANGES.txt | |
29 | +const EMPTY_LINE = "\n"; // Attention, '\n' ne marche pas... seulement "\n" | |
30 | +const NEW_SECTION = "-------\n"; | |
31 | +/* | |
32 | +const IMPORTANT1 = '- (e)'; | |
33 | +const IMPORTANT2 = '- (i)'; | |
34 | +const IMPORTANT3 = '- (b)'; | |
35 | +*/ | |
36 | +const IMPORTANT = [ | |
37 | + '- (e)' => 'green', | |
38 | + '- (i)' => 'orange', | |
39 | + '- (b)' => 'red' | |
40 | +]; | |
41 | + | |
42 | +$wwwroot_dir = new Cake\Filesystem\Folder(WWW_ROOT); | |
43 | +$fname = 'CHANGES.txt'; | |
44 | +$fpath = $wwwroot_dir->pwd() . DS . '..' . DS . $fname; | |
45 | +$nblines_to_read = 5000; | |
46 | + | |
47 | +$f = fopen($fpath, "r") or die("Le fichier /$fname n'existe pas... !"); | |
48 | + | |
49 | +// On zappe jqa début d'une première section | |
50 | +$line = ''; | |
51 | +while ($line != NEW_SECTION) $line = fgets($f); | |
52 | + | |
53 | +while(!feof($f)) { | |
54 | + // Traitement d'une section : on lit jqa ligne vide | |
55 | + $line = fgets($f); | |
56 | + echo "<b>$line</b><br>"; | |
57 | + //if ($line == NEW_SECTION) echo "OUI"; | |
58 | + //while (!feof($f) && $line!=NEW_SECTION) { | |
59 | + while (true) { | |
60 | + $line = fgets($f); | |
61 | + if (feof($f) || $line==NEW_SECTION) break; | |
62 | + foreach (array_keys(IMPORTANT) as $code) { | |
63 | + $pos = strpos($line, $code); | |
64 | + if ($pos) break; | |
65 | + } | |
66 | + if ($pos) { | |
67 | + $color = IMPORTANT[$code]; | |
68 | + echo "<b style='color:$color'> - ".substr($line,$pos+strlen($code))."</b>"; | |
69 | + } | |
70 | + else echo $line; | |
71 | + echo "<br>"; | |
72 | + } | |
73 | +} | |
74 | + | |
75 | +fclose($f); | |
76 | + | |
77 | + | |
78 | +/* Autre methode de lecture, avec iterateur | |
79 | + | |
80 | +// On va direct à la fin du fichier | |
81 | +try { | |
82 | + $f = new SplFileObject($fpath, "r"); | |
83 | +} catch (Exception $e) { | |
84 | + echo("Le fichier /$fname n'existe pas..."); | |
85 | + return; | |
86 | +} | |
87 | +$f->seek(PHP_INT_MAX); | |
88 | +$last_line = $f->key(); | |
89 | + | |
90 | +// Lire TOUT le fichier | |
91 | +//$lines = new LimitIterator($f, 0, $last_line); | |
92 | +// Lire seulement les $nblines_to_read dernières lignes | |
93 | +//$line_num_from = max(0,$last_line-$nblines_to_read); | |
94 | +$line_num_from = 0; | |
95 | +$lines = new LimitIterator($f, $line_num_from); | |
96 | +//$lines = new LimitIterator($f, $last_line-$nblines_to_read, $last_line); | |
97 | +//print_r(iterator_to_array($lines)); | |
98 | + | |
99 | +// Inversion des lignes pour affichage anti-chrono | |
100 | +//$lines_reversed = array_reverse(iterator_to_array($lines)); | |
101 | +$lines = iterator_to_array($lines); | |
102 | +foreach ($lines as $line) { | |
103 | + echo $line.'<br>'; | |
104 | + //if (mb_strpos($line, "$level: ") !== FALSE) echo $line.'<br><br>'; | |
105 | + //if (mb_strpos($line, 'Info: ') !== FALSE) echo $line.'<br><br>'; | |
106 | + //if (mb_strpos($line, '/materiels/edit/') !== FALSE) echo $line.'<br><br>'; | |
107 | +} | |
108 | + | |
109 | +// Close file | |
110 | +$f=null; | |
111 | + | |
112 | +*/ | |
113 | + | |
114 | +?> | |
0 | 115 | \ No newline at end of file | ... | ... |
tests/Fixture/MaterielsFixture.php
... | ... | @@ -3,6 +3,21 @@ namespace App\Test\Fixture; |
3 | 3 | |
4 | 4 | use Cake\TestSuite\Fixture\TestFixture; |
5 | 5 | |
6 | +const yyyy0 = 2020; // Année en cours | |
7 | +const yyyy1 = yyyy0-1; // max : 'TEST-'.yyyy1.'-0002' => donc prochain créé doit être en -0003 | |
8 | +const yyyy2 = yyyy0-2; // max : 'TEST-'.yyyy2.'-0010' => donc prochain créé doit être en -0010 | |
9 | +const yyyy3 = yyyy0-3; | |
10 | +const mmdd1 = '05-11'; | |
11 | +const mmdd2 = '04-19'; | |
12 | +const yyyy0mmdd1 = yyyy0.'-'.mmdd1; // Date toujours la plus récente (plus récente que n'importe quel matos de la fixture) | |
13 | +const yyyy1mmdd1 = yyyy1.'-'.mmdd1; // Date du matos le plus récent | |
14 | +const yyyy1mmdd2 = yyyy1.'-'.mmdd2; | |
15 | +const yyyy2mmdd1 = yyyy2.'-'.mmdd1; | |
16 | +const yyyy2mmdd2 = yyyy2.'-'.mmdd2; // // Date du matos le plus ancien | |
17 | +const yyyy3mmdd2 = yyyy3.'-'.mmdd2; // Date toujours la plus ancienne (plus ancienne que n'importe quel matos de la fixture) | |
18 | +const yyyy1_highest_num = '0002'; | |
19 | +const yyyy2_highest_num = '0010'; | |
20 | + | |
6 | 21 | /** |
7 | 22 | * MaterielsFixture |
8 | 23 | */ |
... | ... | @@ -632,13 +647,16 @@ class MaterielsFixture extends TestFixture { |
632 | 647 | 'sur_categorie_id' => 1, |
633 | 648 | 'categorie_id' => 1, |
634 | 649 | 'sous_categorie_id' => 1, |
635 | - 'numero_laboratoire' => 'TEST-2016-0001', | |
650 | + //'numero_laboratoire' => 'TEST-2018-0001', //+4 | |
651 | + 'numero_laboratoire' => 'TEST-'.yyyy1.'-0001', //+4 | |
636 | 652 | 'description' => 'Lorem ipsum dolor sit amet, aliquet feugiat. Convallis morbi fringilla gravida, phasellus feugiat dapibus velit nunc, pulvinar eget sollicitudin venenatis cum nullam, vivamus ut a sed, mollitia lectus. Nulla vestibulum massa neque ut et, id hendrerit sit, feugiat in taciti enim proin nibh, tempor dignissim, rhoncus duis vestibulum nunc mattis convallis.', |
637 | 653 | 'materiel_administratif' => 0, |
638 | 654 | 'materiel_technique' => 1, |
639 | 655 | 'status' => 'CREATED', |
640 | 656 | //'status' => 'VALIDATED', |
641 | - 'date_acquisition' => '2014-04-19', | |
657 | + //'date_acquisition' => '2018-04-19', // 2014-04-19 | |
658 | + //'date_acquisition' => yyyy1.'-04-19', // 2014-04-19 | |
659 | + 'date_acquisition' => yyyy1mmdd1, | |
642 | 660 | 'prix_ht' => 25, |
643 | 661 | 'eotp' => 'Lorem ipsum dolor sit amet', |
644 | 662 | 'numero_commande' => 'Lorem ipsum dolor sit amet', |
... | ... | @@ -648,7 +666,8 @@ class MaterielsFixture extends TestFixture { |
648 | 666 | 'groupes_metier_id' => 1, |
649 | 667 | 'numero_inventaire_organisme' => 'Lorem ipsum dolor sit amet', |
650 | 668 | 'numero_inventaire_old' => 'Lorem ipsum dolor sit amet', |
651 | - 'date_archivage' => '2016-04-19', | |
669 | + //'date_archivage' => '2016-04-19', | |
670 | + 'date_archivage' => yyyy1mmdd1, | |
652 | 671 | 'etiquette' => 1, |
653 | 672 | 'lieu_detail' => 'Lorem ipsum dolor sit amet', |
654 | 673 | |
... | ... | @@ -659,9 +678,10 @@ class MaterielsFixture extends TestFixture { |
659 | 678 | //'nom_createur' => 'Lorem ipsum dolor sit amet', |
660 | 679 | //'nom_createur' => 'test0 test9', |
661 | 680 | 'nom_modificateur' => 'Lorem ipsum dolor sit amet', |
662 | - 'created' => '2016-04-19 09:09:29', | |
663 | - 'modified' => '2016-04-19 09:09:29', | |
664 | - 'date_reception' => '2016-04-19', | |
681 | + 'created' => '2020-04-19 09:09:29', | |
682 | + 'modified' => '2020-04-19 09:09:29', | |
683 | + //'date_reception' => '2016-04-19', | |
684 | + 'date_reception' => yyyy1mmdd1, | |
665 | 685 | 'organisme_id' => 1, |
666 | 686 | 'site_id' => 1, // Roche |
667 | 687 | 'metrologie' => 0, |
... | ... | @@ -675,12 +695,16 @@ class MaterielsFixture extends TestFixture { |
675 | 695 | 'sur_categorie_id' => 1, |
676 | 696 | 'categorie_id' => 1, |
677 | 697 | 'sous_categorie_id' => 1, |
678 | - 'numero_laboratoire' => 'TEST-2016-0002', | |
698 | + //'numero_laboratoire' => 'TEST-2020-0002', | |
699 | + //'numero_laboratoire' => 'TEST-'.yyyy2.'-0010', | |
700 | + 'numero_laboratoire' => 'TEST-'.yyyy2.'-'.yyyy2_highest_num, | |
679 | 701 | 'description' => 'Lorem ipsum dolor sit amet, aliquet feugiat. Convallis morbi fringilla gravida, phasellus feugiat dapibus velit nunc, pulvinar eget sollicitudin venenatis cum nullam, vivamus ut a sed, mollitia lectus. Nulla vestibulum massa neque ut et, id hendrerit sit, feugiat in taciti enim proin nibh, tempor dignissim, rhoncus duis vestibulum nunc mattis convallis.', |
680 | 702 | 'materiel_administratif' => 0, |
681 | 703 | 'materiel_technique' => 1, |
682 | 704 | 'status' => 'CREATED', |
683 | - 'date_acquisition' => '2015-04-19', | |
705 | + //'date_acquisition' => '2019-04-19', // 2015-04-19 | |
706 | + //'date_acquisition' => yyyy2.'-'.mmdd1, // 2015-04-19 | |
707 | + 'date_acquisition' => yyyy2mmdd1, | |
684 | 708 | 'prix_ht' => 50, |
685 | 709 | 'eotp' => 'Lorem ipsum dolor sit amet', |
686 | 710 | 'numero_commande' => 'Lorem ipsum dolor sit amet', |
... | ... | @@ -690,7 +714,8 @@ class MaterielsFixture extends TestFixture { |
690 | 714 | 'groupes_metier_id' => 1, |
691 | 715 | 'numero_inventaire_organisme' => 'Lorem ipsum dolor sit amet', |
692 | 716 | 'numero_inventaire_old' => 'Lorem ipsum dolor sit amet', |
693 | - 'date_archivage' => '2016-04-19', | |
717 | + //'date_archivage' => '2016-04-19', | |
718 | + 'date_archivage' => yyyy2mmdd1, | |
694 | 719 | 'etiquette' => 1, |
695 | 720 | 'lieu_detail' => 'Lorem ipsum dolor sit amet', |
696 | 721 | 'nom_responsable' => 'Lorem ipsum dolor sit amet', |
... | ... | @@ -699,9 +724,10 @@ class MaterielsFixture extends TestFixture { |
699 | 724 | 'email_responsable' => 'Lorem ipsum dolor sit amet', |
700 | 725 | 'nom_createur' => 'Lorem ipsum dolor sit amet', |
701 | 726 | 'nom_modificateur' => 'Lorem ipsum dolor sit amet', |
702 | - 'created' => '2016-04-19 09:09:29', | |
703 | - 'modified' => '2016-04-19 09:09:29', | |
704 | - 'date_reception' => '2016-04-19', | |
727 | + 'created' => '2020-04-19 09:09:29', | |
728 | + 'modified' => '2020-04-19 09:09:29', | |
729 | + //'date_reception' => '2016-04-19', | |
730 | + 'date_reception' => yyyy2mmdd1, | |
705 | 731 | 'organisme_id' => 1, |
706 | 732 | 'site_id' => 1, // Roche |
707 | 733 | 'metrologie' => 0, |
... | ... | @@ -715,12 +741,15 @@ class MaterielsFixture extends TestFixture { |
715 | 741 | 'sur_categorie_id' => 1, |
716 | 742 | 'categorie_id' => 1, |
717 | 743 | 'sous_categorie_id' => 1, |
718 | - 'numero_laboratoire' => 'TEST-2016-0003', | |
744 | + //'numero_laboratoire' => 'TEST-2020-0003', | |
745 | + 'numero_laboratoire' => 'TEST-'.yyyy2.'-0007', | |
719 | 746 | 'description' => 'Lorem ipsum dolor sit amet, aliquet feugiat. Convallis morbi fringilla gravida, phasellus feugiat dapibus velit nunc, pulvinar eget sollicitudin venenatis cum nullam, vivamus ut a sed, mollitia lectus. Nulla vestibulum massa neque ut et, id hendrerit sit, feugiat in taciti enim proin nibh, tempor dignissim, rhoncus duis vestibulum nunc mattis convallis.', |
720 | 747 | 'materiel_administratif' => 1, |
721 | 748 | 'materiel_technique' => 1, |
722 | 749 | 'status' => 'VALIDATED', |
723 | - 'date_acquisition' => '2016-05-11', | |
750 | + //'date_acquisition' => '2020-05-11', // 2016-05-11 | |
751 | + //'date_acquisition' => yyyy2.'-'.mmdd2, | |
752 | + 'date_acquisition' => yyyy2mmdd2, | |
724 | 753 | 'prix_ht' => 1100, |
725 | 754 | 'eotp' => 'Lorem ipsum dolor sit amet', |
726 | 755 | 'numero_commande' => 'Lorem ipsum dolor sit amet', |
... | ... | @@ -730,16 +759,18 @@ class MaterielsFixture extends TestFixture { |
730 | 759 | 'groupes_metier_id' => 1, |
731 | 760 | 'numero_inventaire_organisme' => 'Lorem ipsum dolor sit amet', |
732 | 761 | 'numero_inventaire_old' => 'Lorem ipsum dolor sit amet', |
733 | - 'date_archivage' => '2016-04-19', | |
762 | + //'date_archivage' => '2016-04-19', | |
763 | + 'date_archivage' => yyyy2mmdd2, | |
734 | 764 | 'etiquette' => 1, |
735 | 765 | 'lieu_detail' => 'Lorem ipsum dolor sit amet', |
736 | 766 | 'nom_responsable' => 'Lorem ipsum dolor sit amet', |
737 | 767 | 'email_responsable' => 'Lorem ipsum dolor sit amet', |
738 | 768 | 'nom_createur' => 'Lorem ipsum dolor sit amet', |
739 | 769 | 'nom_modificateur' => 'Lorem ipsum dolor sit amet', |
740 | - 'created' => '2016-04-19 09:09:29', | |
741 | - 'modified' => '2016-04-19 09:09:29', | |
742 | - 'date_reception' => '2016-04-19', | |
770 | + 'created' => '2020-04-19 09:09:29', | |
771 | + 'modified' => '2020-04-19 09:09:29', | |
772 | + //'date_reception' => '2016-04-19', | |
773 | + 'date_reception' => yyyy2mmdd2, | |
743 | 774 | 'organisme_id' => 1, |
744 | 775 | 'site_id' => 1, // Roche |
745 | 776 | 'metrologie' => 0, |
... | ... | @@ -755,12 +786,15 @@ class MaterielsFixture extends TestFixture { |
755 | 786 | 'sur_categorie_id' => 1, |
756 | 787 | 'categorie_id' => 1, |
757 | 788 | 'sous_categorie_id' => 1, |
758 | - 'numero_laboratoire' => 'TEST-2016-0011', | |
789 | + //'numero_laboratoire' => 'TEST-2020-0011', | |
790 | + 'numero_laboratoire' => 'TEST-'.yyyy2.'-0003', | |
759 | 791 | 'description' => 'Lorem ipsum dolor sit amet, aliquet feugiat. Convallis morbi fringilla gravida, phasellus feugiat dapibus velit nunc, pulvinar eget sollicitudin venenatis cum nullam, vivamus ut a sed, mollitia lectus. Nulla vestibulum massa neque ut et, id hendrerit sit, feugiat in taciti enim proin nibh, tempor dignissim, rhoncus duis vestibulum nunc mattis convallis.', |
760 | 792 | 'materiel_administratif' => 1, |
761 | 793 | 'materiel_technique' => 1, |
762 | 794 | 'status' => 'CREATED', |
763 | - 'date_acquisition' => '2016-05-11', | |
795 | + //'date_acquisition' => '2020-05-11', // +4 | |
796 | + //'date_acquisition' => yyyy2.'-'.mmdd1, | |
797 | + 'date_acquisition' => yyyy2mmdd2, | |
764 | 798 | 'prix_ht' => 75, |
765 | 799 | 'eotp' => 'Lorem ipsum dolor sit amet', |
766 | 800 | 'numero_commande' => 'Lorem ipsum dolor sit amet', |
... | ... | @@ -770,7 +804,8 @@ class MaterielsFixture extends TestFixture { |
770 | 804 | 'groupes_metier_id' => 1, |
771 | 805 | 'numero_inventaire_organisme' => 'Lorem ipsum dolor sit amet', |
772 | 806 | 'numero_inventaire_old' => 'Lorem ipsum dolor sit amet', |
773 | - 'date_archivage' => '2016-04-19', | |
807 | + //'date_archivage' => '2016-04-19', | |
808 | + 'date_archivage' => yyyy2mmdd2, | |
774 | 809 | 'etiquette' => 0, |
775 | 810 | 'lieu_detail' => 'Lorem ipsum dolor sit amet', |
776 | 811 | //'nom_responsable' => 'test0 test9', |
... | ... | @@ -779,9 +814,10 @@ class MaterielsFixture extends TestFixture { |
779 | 814 | //'nom_createur' => 'test0 test9', |
780 | 815 | 'nom_createur' => 'user5 USER', |
781 | 816 | 'nom_modificateur' => 'Lorem ipsum dolor sit amet', |
782 | - 'created' => '2016-04-19 09:09:29', | |
783 | - 'modified' => '2016-04-19 09:09:29', | |
784 | - 'date_reception' => '2016-04-19', | |
817 | + 'created' => '2020-04-19 09:09:29', | |
818 | + 'modified' => '2020-04-19 09:09:29', | |
819 | + //'date_reception' => '2016-04-19', | |
820 | + 'date_reception' => yyyy2mmdd2, | |
785 | 821 | 'organisme_id' => 1, |
786 | 822 | 'site_id' => 1, // Roche |
787 | 823 | 'metrologie' => 0, |
... | ... | @@ -795,12 +831,15 @@ class MaterielsFixture extends TestFixture { |
795 | 831 | 'sur_categorie_id' => 1, |
796 | 832 | 'categorie_id' => 1, |
797 | 833 | 'sous_categorie_id' => 1, |
798 | - 'numero_laboratoire' => 'TEST-2016-0012', | |
834 | + //'numero_laboratoire' => 'TEST-2020-0012', | |
835 | + 'numero_laboratoire' => 'TEST-'.yyyy2.'-0002', | |
799 | 836 | 'description' => 'Lorem ipsum dolor sit amet, aliquet feugiat. Convallis morbi fringilla gravida, phasellus feugiat dapibus velit nunc, pulvinar eget sollicitudin venenatis cum nullam, vivamus ut a sed, mollitia lectus. Nulla vestibulum massa neque ut et, id hendrerit sit, feugiat in taciti enim proin nibh, tempor dignissim, rhoncus duis vestibulum nunc mattis convallis.', |
800 | 837 | 'materiel_administratif' => 1, |
801 | 838 | 'materiel_technique' => 1, |
802 | 839 | 'status' => 'VALIDATED', |
803 | - 'date_acquisition' => '2016-05-11', | |
840 | + //'date_acquisition' => '2020-05-11', // + 4 | |
841 | + //'date_acquisition' => yyyy2.'-'.mmdd2, | |
842 | + 'date_acquisition' => yyyy2mmdd2, | |
804 | 843 | 'prix_ht' => 75, |
805 | 844 | 'eotp' => 'Lorem ipsum dolor sit amet', |
806 | 845 | 'numero_commande' => 'Lorem ipsum dolor sit amet', |
... | ... | @@ -814,16 +853,18 @@ class MaterielsFixture extends TestFixture { |
814 | 853 | 'groupes_metier_id' => 2, |
815 | 854 | 'numero_inventaire_organisme' => 'Lorem ipsum dolor sit amet', |
816 | 855 | 'numero_inventaire_old' => 'Lorem ipsum dolor sit amet', |
817 | - 'date_archivage' => '2016-04-19', | |
856 | + //'date_archivage' => '2016-04-19', | |
857 | + 'date_archivage' => yyyy2mmdd2, | |
818 | 858 | 'etiquette' => 1, |
819 | 859 | 'lieu_detail' => 'Lorem ipsum dolor sit amet', |
820 | 860 | 'nom_responsable' => 'Lorem ipsum dolor sit amet', |
821 | 861 | 'email_responsable' => 'Lorem ipsum dolor sit amet', |
822 | 862 | 'nom_createur' => 'Lorem ipsum dolor sit amet', |
823 | 863 | 'nom_modificateur' => 'Lorem ipsum dolor sit amet', |
824 | - 'created' => '2016-04-19 09:09:29', | |
825 | - 'modified' => '2016-04-19 09:09:29', | |
826 | - 'date_reception' => '2016-04-19', | |
864 | + 'created' => '2020-04-19 09:09:29', | |
865 | + 'modified' => '2020-04-19 09:09:29', | |
866 | + //'date_reception' => '2016-04-19', | |
867 | + 'date_reception' => yyyy2mmdd2, | |
827 | 868 | 'organisme_id' => 1, |
828 | 869 | 'site_id' => 1, // Roche |
829 | 870 | 'metrologie' => 0, |
... | ... | @@ -837,12 +878,14 @@ class MaterielsFixture extends TestFixture { |
837 | 878 | 'sur_categorie_id' => 1, |
838 | 879 | 'categorie_id' => 1, |
839 | 880 | 'sous_categorie_id' => 1, |
840 | - 'numero_laboratoire' => 'TEST-2016-0013', | |
881 | + //'numero_laboratoire' => 'TEST-2020-0013', | |
882 | + 'numero_laboratoire' => 'TEST-'.yyyy2.'-0006', | |
841 | 883 | 'description' => 'TEST COPIE MATERIEL', |
842 | 884 | 'materiel_administratif' => 1, |
843 | 885 | 'materiel_technique' => 1, |
844 | 886 | 'status' => 'TOBEARCHIVED', |
845 | - 'date_acquisition' => '2016-05-11', | |
887 | + //'date_acquisition' => '2020-05-11', // +4 | |
888 | + 'date_acquisition' => yyyy2mmdd2, | |
846 | 889 | 'prix_ht' => 75, |
847 | 890 | 'eotp' => 'Lorem ipsum dolor sit amet', |
848 | 891 | 'numero_commande' => 'Lorem ipsum dolor sit amet', |
... | ... | @@ -852,7 +895,8 @@ class MaterielsFixture extends TestFixture { |
852 | 895 | 'groupes_metier_id' => 1, |
853 | 896 | 'numero_inventaire_organisme' => 'Lorem ipsum dolor sit amet', |
854 | 897 | 'numero_inventaire_old' => 'Lorem ipsum dolor sit amet', |
855 | - 'date_archivage' => '2016-04-19', | |
898 | + //'date_archivage' => '2016-04-19', | |
899 | + 'date_archivage' => yyyy2mmdd2, | |
856 | 900 | 'etiquette' => 1, |
857 | 901 | 'lieu_detail' => 'Lorem ipsum dolor sit amet', |
858 | 902 | //'nom_responsable' => 'Jesus', |
... | ... | @@ -860,9 +904,10 @@ class MaterielsFixture extends TestFixture { |
860 | 904 | 'email_responsable' => 'Lorem ipsum dolor sit amet', |
861 | 905 | 'nom_createur' => 'Lorem ipsum dolor sit amet', |
862 | 906 | 'nom_modificateur' => 'Lorem ipsum dolor sit amet', |
863 | - 'created' => '2016-04-19 09:09:29', | |
864 | - 'modified' => '2016-04-19 09:09:29', | |
865 | - 'date_reception' => '2016-04-19', | |
907 | + 'created' => '2020-04-19 09:09:29', | |
908 | + 'modified' => '2020-04-19 09:09:29', | |
909 | + //'date_reception' => '2016-04-19', | |
910 | + 'date_reception' => yyyy2mmdd2, | |
866 | 911 | 'organisme_id' => 1, |
867 | 912 | 'site_id' => 1, // Roche |
868 | 913 | 'metrologie' => 0, |
... | ... | @@ -876,13 +921,16 @@ class MaterielsFixture extends TestFixture { |
876 | 921 | 'sur_categorie_id' => 1, |
877 | 922 | 'categorie_id' => 1, |
878 | 923 | 'sous_categorie_id' => 1, |
879 | - 'numero_laboratoire' => 'TEST-2016-0014', | |
924 | + //'numero_laboratoire' => 'TEST-2020-0014', | |
925 | + //'numero_laboratoire' => 'TEST-'.yyyy1.'-0002', | |
926 | + 'numero_laboratoire' => 'TEST-'.yyyy1.'-'.yyyy1_highest_num, | |
880 | 927 | 'description' => 'blabla', |
881 | 928 | 'materiel_administratif' => 1, |
882 | 929 | 'materiel_technique' => 1, |
883 | 930 | 'status' => 'ARCHIVED', |
884 | 931 | //'status' => 'TOBEARCHIVED', |
885 | - 'date_acquisition' => '2016-05-10', | |
932 | + //'date_acquisition' => '2020-05-10', //+4 | |
933 | + 'date_acquisition' => yyyy1mmdd2, | |
886 | 934 | 'prix_ht' => 75, |
887 | 935 | 'eotp' => 'Lorem ipsum dolor sit amet', |
888 | 936 | 'numero_commande' => 'Lorem ipsum dolor sit amet', |
... | ... | @@ -892,7 +940,8 @@ class MaterielsFixture extends TestFixture { |
892 | 940 | 'groupes_metier_id' => 1, |
893 | 941 | 'numero_inventaire_organisme' => 'Lorem ipsum dolor sit amet', |
894 | 942 | 'numero_inventaire_old' => 'Lorem ipsum dolor sit amet', |
895 | - 'date_archivage' => '2016-04-19', | |
943 | + //'date_archivage' => '2016-04-19', | |
944 | + 'date_archivage' => yyyy1mmdd2, | |
896 | 945 | 'etiquette' => 1, |
897 | 946 | 'lieu_detail' => 'Lorem ipsum dolor sit amet', |
898 | 947 | //'nom_responsable' => 'Jesus', |
... | ... | @@ -900,9 +949,10 @@ class MaterielsFixture extends TestFixture { |
900 | 949 | 'email_responsable' => 'Lorem ipsum dolor sit amet', |
901 | 950 | 'nom_createur' => 'Lorem ipsum dolor sit amet', |
902 | 951 | 'nom_modificateur' => 'Lorem ipsum dolor sit amet', |
903 | - 'created' => '2016-04-19 09:09:29', | |
904 | - 'modified' => '2016-04-19 09:09:29', | |
905 | - 'date_reception' => '2016-04-19', | |
952 | + 'created' => '2020-04-19 09:09:29', | |
953 | + 'modified' => '2020-04-19 09:09:29', | |
954 | + //'date_reception' => '2016-04-19', | |
955 | + 'date_reception' => yyyy1mmdd2, | |
906 | 956 | 'organisme_id' => 1, |
907 | 957 | 'site_id' => 1, // Roche |
908 | 958 | 'metrologie' => 0, | ... | ... |
tests/TestCase/Controller/MaterielsControllerTest.php
... | ... | @@ -9,9 +9,34 @@ use Cake\ORM\TableRegistry; |
9 | 9 | use Cake\Core\Configure; |
10 | 10 | use App\Controller\AppController; |
11 | 11 | use Cake\Utility\Inflector; |
12 | + | |
12 | 13 | //use phpDocumentor\Reflection\Types\Boolean; |
13 | 14 | |
14 | 15 | |
16 | +// Mettre ici les memes constantes que celles utilisées dans MaterielsFixture | |
17 | +use const App\Test\Fixture\yyyy0mmdd1; | |
18 | +use const App\Test\Fixture\yyyy1mmdd1; | |
19 | +use const App\Test\Fixture\yyyy1mmdd2; | |
20 | +use const App\Test\Fixture\yyyy2mmdd1; | |
21 | +use const App\Test\Fixture\yyyy2mmdd2; | |
22 | +use const App\Test\Fixture\yyyy3mmdd2; | |
23 | +use const App\Test\Fixture\yyyy1_highest_num; | |
24 | +use const App\Test\Fixture\yyyy2_highest_num; | |
25 | +/* marche pas, why ??? | |
26 | +use const App\Test\Fixture\yyyy0; | |
27 | +use const App\Test\Fixture\yyyy1; | |
28 | +use const App\Test\Fixture\yyyy2; | |
29 | +use const App\Test\Fixture\yyyy3; | |
30 | +*/ | |
31 | +const yyyy0 = 2020; // Année en cours | |
32 | +const yyyy1 = yyyy0-1; // max : 'TEST-'.yyyy1.'-0002' => donc prochain créé doit être en -0003 | |
33 | +const yyyy2 = yyyy0-2; // max : 'TEST-'.yyyy2.'-0010' => donc prochain créé doit être en -0010 | |
34 | +const yyyy3 = yyyy0-3; | |
35 | + | |
36 | +// AVIRER | |
37 | +//private $nb_matos_in_fixture = 7; | |
38 | +const nb_matos_in_fixture = 7; | |
39 | + | |
15 | 40 | |
16 | 41 | |
17 | 42 | /** |
... | ... | @@ -57,9 +82,6 @@ class MaterielsControllerTest extends General { |
57 | 82 | 'app.unites' |
58 | 83 | ]; |
59 | 84 | |
60 | - // AVIRER | |
61 | - private $nb_matos_in_fixture = 7; | |
62 | - | |
63 | 85 | /* |
64 | 86 | private $statuses = [ |
65 | 87 | 'CREATED', |
... | ... | @@ -91,13 +113,18 @@ class MaterielsControllerTest extends General { |
91 | 113 | |
92 | 114 | private $newMaterielWithAllMandatoryFields = [ |
93 | 115 | //'id' => 16, |
94 | - 'designation' => 'Test 15', | |
116 | + //'designation' => 'Test 15', | |
117 | + 'designation' => 'Test '.(nb_matos_in_fixture+1), | |
95 | 118 | 'sur_categorie_id' => 1, |
96 | 119 | 'categorie_id' => 1, |
97 | 120 | 'materiel_administratif' => 0, |
98 | 121 | 'materiel_technique' => 1, |
99 | - 'date_acquisition' => '19-04-2016', | |
122 | + //'date_acquisition' => '19-04-2020', //+4 | |
100 | 123 | //'date_acquisition' => '19-04-2019', |
124 | + // Ca marche pas dans le sens US yyyy-mm-dd alors que ça marche dans la fixture, WHY ??? | |
125 | + //'date_acquisition' => yyyy1.'-04-19', //+4 | |
126 | + // Donc format FR dd-mm-yyyy | |
127 | + 'date_acquisition' => '19-04-'.yyyy1, | |
101 | 128 | // pas obligatoire, mais plus cohérent car c'est le statut minimum |
102 | 129 | ////'status' => 'CREATED', |
103 | 130 | /* |
... | ... | @@ -124,7 +151,8 @@ class MaterielsControllerTest extends General { |
124 | 151 | return 'Materiels'; |
125 | 152 | } |
126 | 153 | */ |
127 | - | |
154 | + | |
155 | + | |
128 | 156 | //@Override parent |
129 | 157 | // PAS le 1 (ni le 3 ni le 12) car il a des suivis et donc on ne pourra pas le supprimer !!! |
130 | 158 | static protected function _getEntityIdOkForTesting() { |
... | ... | @@ -132,6 +160,14 @@ class MaterielsControllerTest extends General { |
132 | 160 | } |
133 | 161 | |
134 | 162 | |
163 | + private function _getNextNum4DigitsAfter($num4digits) { | |
164 | + $num4digits_next = intval($num4digits)+1; | |
165 | + //debug($num4digits, $num4digits_next); | |
166 | + $num4digits_next = sprintf('%04d',$num4digits_next); | |
167 | + //debug($num4digits, $num4digits_next); | |
168 | + return $num4digits_next; | |
169 | + } | |
170 | + | |
135 | 171 | protected function getNewEntityWithAllMandatoryFields() { |
136 | 172 | return $this->newMaterielWithAllMandatoryFields; |
137 | 173 | } |
... | ... | @@ -434,7 +470,7 @@ class MaterielsControllerTest extends General { |
434 | 470 | private function _testMatReadAllAs($role) |
435 | 471 | */ |
436 | 472 | /** |
437 | - * @dataProvider dataProviderRoles6 | |
473 | + * @dataProvider dataProviderRoles4 | |
438 | 474 | */ |
439 | 475 | public function testMat20ReadAllAs($role) |
440 | 476 | { |
... | ... | @@ -442,7 +478,10 @@ class MaterielsControllerTest extends General { |
442 | 478 | |
443 | 479 | // On doit pouvoir accéder à la page une fois authentifié |
444 | 480 | $this->authAs($role); |
481 | + // - 5 ans | |
445 | 482 | $this->get('/materiels/index'); |
483 | + // Tous | |
484 | + //$this->get('/materiels/index?age=0'); | |
446 | 485 | $this->assertNoRedirect("Authentifié mais redirection vers /users/login."); |
447 | 486 | |
448 | 487 | // Seul admin+ peut voir les materiels archivés et a accès à des filtres par statut + bouton exporter + cases à cocher |
... | ... | @@ -523,7 +562,7 @@ class MaterielsControllerTest extends General { |
523 | 562 | private function _testMatReadOneAs($role) |
524 | 563 | */ |
525 | 564 | /** |
526 | - * @dataProvider dataProviderRoles6 | |
565 | + * @dataProvider dataProviderRoles4 | |
527 | 566 | */ |
528 | 567 | public function testMat10ReadOneAs($role) |
529 | 568 | { |
... | ... | @@ -584,7 +623,7 @@ class MaterielsControllerTest extends General { |
584 | 623 | private function _testMatAccessCreateFormAs($role) |
585 | 624 | */ |
586 | 625 | /** |
587 | - * @dataProvider dataProviderRoles6 | |
626 | + * @dataProvider dataProviderRoles4 | |
588 | 627 | */ |
589 | 628 | public function testMat30AccessCreateFormAs($role) { |
590 | 629 | //$this->setUp(); |
... | ... | @@ -627,7 +666,7 @@ class MaterielsControllerTest extends General { |
627 | 666 | private function _testMatCreateAdministratifOrTechnicalAs($role) { |
628 | 667 | */ |
629 | 668 | /** |
630 | - * @dataProvider dataProviderRoles5 | |
669 | + * @dataProvider dataProviderRoles4 | |
631 | 670 | */ |
632 | 671 | public function testMat32CreateAdministratifOrTechnicalAs($role) { |
633 | 672 | $newMateriel = $this->newMaterielWithAllMandatoryFields; |
... | ... | @@ -647,10 +686,12 @@ class MaterielsControllerTest extends General { |
647 | 686 | $this->d($combination); |
648 | 687 | |
649 | 688 | // KO: ni administratif ni technique |
650 | - if ($combination == [0,0]) $this->_testMatCreate1FailsAs($role, $newMateriel, implode(',',$combination)); | |
689 | + if ($combination == [0,0]) | |
690 | + $this->_testMatCreate1FailsAs($role, $newMateriel, implode(',',$combination)); | |
651 | 691 | |
652 | 692 | // OK : technique only |
653 | 693 | if ($combination == [0,1]) { |
694 | + continue; | |
654 | 695 | // cree un nouveau materiel |
655 | 696 | //$this->_testMatCreateAs($role, $newMateriel, implode(',',$combination)); |
656 | 697 | //$this->testMat31CreateAs($role, $newMateriel, implode(',',$combination)); |
... | ... | @@ -688,7 +729,8 @@ class MaterielsControllerTest extends General { |
688 | 729 | $this->_testMatCreate1FailsAs($role, $newMateriel, implode(',',$combination)); |
689 | 730 | |
690 | 731 | // prix >= 800 => ok |
691 | - $newMateriel['prix_ht'] = 800; | |
732 | + $newMateriel['prix_ht'] = 800; // 1000 | |
733 | + //debug($newMateriel); | |
692 | 734 | $this->testMat31CreateAs($role, $newMateriel, implode(',',$combination)); |
693 | 735 | /* |
694 | 736 | // supprimer un materiel pour avoir toujours le meme nombre |
... | ... | @@ -706,7 +748,7 @@ class MaterielsControllerTest extends General { |
706 | 748 | |
707 | 749 | |
708 | 750 | /** |
709 | - * @dataProvider dataProviderRoles6 | |
751 | + * @dataProvider dataProviderRoles4 | |
710 | 752 | */ |
711 | 753 | //private function _testMatCreateAs($role, $materiel=null) { $this->testMat31CreateAs($role, $materiel); } |
712 | 754 | public function testMat31CreateAs($role, $materiel=null) { |
... | ... | @@ -724,9 +766,13 @@ class MaterielsControllerTest extends General { |
724 | 766 | //debug($this->USER_IS_ADMIN_AT_LEAST()); |
725 | 767 | $nbmat = $this->USER_IS_ADMIN_AT_LEAST() ? 7 : 6; |
726 | 768 | $this->assertResponseContains("Liste des matériels (".$nbmat.")", $role); |
769 | + //debug("bef $nbmat"); | |
770 | + | |
771 | + // ADD | |
727 | 772 | //$this->post('/materiels/add', $this->newMaterielWithAllMandatoryFields); |
728 | 773 | $this->post('/materiels/add', $materiel); |
729 | 774 | $nbmat++; |
775 | + //debug("after $nbmat"); | |
730 | 776 | |
731 | 777 | // APRES add |
732 | 778 | $this->get('/materiels/index'); |
... | ... | @@ -734,8 +780,13 @@ class MaterielsControllerTest extends General { |
734 | 780 | //var_dump($this->_getBodyAsString()); |
735 | 781 | $this->assertResponseContains("Liste des matériels (".$nbmat.")", "(testMat31CreateAs): Le matériel ne s'ajoute pas correctement (avec le profil $role)"); |
736 | 782 | //$this->assertResponseContains("Liste des matériels (", "(testMat31CreateAs): Le matériel ne s'ajoute pas correctement avec le profil $role"); |
737 | - $this->assertResponseContains("Test 15", "Le matériel ne s'ajoute pas correctement."); | |
738 | - $this->assertResponseContains("TEST-2016-0015", "La génération du n°de labo n'est pas bonne."); | |
783 | + //$this->assertResponseContains("Test 15", "Le matériel ne s'ajoute pas correctement."); | |
784 | + $this->assertResponseContains('Test '.(nb_matos_in_fixture+1), "Le matériel ne s'ajoute pas correctement."); | |
785 | + //$nummat = $this->USER_IS_ADMIN_AT_LEAST() ? '15' : '13'; | |
786 | + //$this->assertResponseContains("TEST-2020-00$nummat", "La génération du n°de labo n'est pas bonne."); //+4 | |
787 | + $new_yyyy_highest_num = $this->_getNextNum4DigitsAfter(yyyy1_highest_num); | |
788 | + $this->assertResponseContains('TEST-'.yyyy1.'-'.$new_yyyy_highest_num, "La génération du n°de labo n'est pas bonne."); //+4 | |
789 | + //$this->assertResponseContains("TEST-2020-0015", "La génération du n°de labo n'est pas bonne."); //+4 | |
739 | 790 | //$this->tearDown(); |
740 | 791 | } |
741 | 792 | |
... | ... | @@ -777,7 +828,7 @@ class MaterielsControllerTest extends General { |
777 | 828 | private function _testMatCreateFailsAs($role) { |
778 | 829 | */ |
779 | 830 | /** |
780 | - * @dataProvider dataProviderRoles6 | |
831 | + * @dataProvider dataProviderRoles4 | |
781 | 832 | */ |
782 | 833 | public function testMat33CreateFailsAs($role) { |
783 | 834 | // test with each mandatory field except materiel_administratif and materiel_technique |
... | ... | @@ -822,7 +873,7 @@ class MaterielsControllerTest extends General { |
822 | 873 | |
823 | 874 | // Test de l'action "Copier ce materiel" (= materiel/add/id) sur tous les roles |
824 | 875 | /** |
825 | - * @dataProvider dataProviderRoles5 | |
876 | + * @dataProvider dataProviderRoles4 | |
826 | 877 | */ |
827 | 878 | public function testMatCopy($role) { |
828 | 879 | |
... | ... | @@ -842,8 +893,10 @@ class MaterielsControllerTest extends General { |
842 | 893 | // 1) RULE MATERIEL.COPY.1 : |
843 | 894 | // Copie d'un matos (CREATED) à l'IDENTIQUE (tel quel sans rien changer, |
844 | 895 | // sauf ce qui changera automatiquement: id, numlab) |
845 | - if ($do1) $this->_testMatCopy(1, true, $role, 1, [], 'TEST-2014-0001'); | |
846 | - | |
896 | + //if ($do1) $this->_testMatCopy(1, true, $role, 1, [], 'TEST-2018-0001'); //+4 | |
897 | + //if ($do1) $this->_testMatCopy(1, true, $role, 1, [], 'TEST-'.yyyy1.'-0003'); //+4 | |
898 | + if ($do1) $this->_testMatCopy(1, true, $role, 1, [], 'TEST-'.yyyy1.'-'.$this->_getNextNum4DigitsAfter(yyyy1_highest_num)); | |
899 | + | |
847 | 900 | // 2) RULE MATERIEL.COPY.2 : |
848 | 901 | // Copie d'un matos (CREATED) en changeant quelques données |
849 | 902 | $new_designation = 'matos 1 USER (C) modified'; |
... | ... | @@ -854,14 +907,17 @@ class MaterielsControllerTest extends General { |
854 | 907 | //'materiel_administratif' => 0, |
855 | 908 | //'materiel_technique' => 1, |
856 | 909 | //'status' => 'CREATED', |
857 | - 'date_acquisition' => '19-04-2016', | |
910 | + //'date_acquisition' => '19-04-2016', | |
911 | + 'date_acquisition' => '19-04-'.yyyy0, | |
858 | 912 | //'nom_createur' => 'Pallier Etienne', |
859 | 913 | //'nom_modificateur' => 'Jean Administration', |
860 | 914 | //'nom_responsable' => 'Jacques Utilisateur', |
861 | 915 | //'email_responsable' => 'Jacques.Utilisateur@irap.omp.eu', |
862 | 916 | //'fournisseur_id' => 2 |
863 | 917 | ]; |
864 | - if ($do2) $this->_testMatCopy(2, true, $role, 1, $modified_data, 'TEST-2016-0015'); | |
918 | + //if ($do2) $this->_testMatCopy(2, true, $role, 1, $modified_data, 'TEST-2016-0015'); | |
919 | + //if ($do2) $this->_testMatCopy(2, true, $role, 1, $modified_data, 'TEST-'.yyyy2.'-'.$this->_getNextNum4DigitsAfter(yyyy2_highest_num)); | |
920 | + if ($do2) $this->_testMatCopy(2, true, $role, 1, $modified_data, 'TEST-'.yyyy0.'-'.'0001'); | |
865 | 921 | |
866 | 922 | // 3) RULE MATERIEL.COPY.3 : |
867 | 923 | // Impossible de copier un matos de statut superieur à CREATED (même pas pour SUPERADMIN) |
... | ... | @@ -972,7 +1028,7 @@ class MaterielsControllerTest extends General { |
972 | 1028 | private function _testUpdatesAs($role) { |
973 | 1029 | */ |
974 | 1030 | /** |
975 | - * @dataProvider dataProviderRoles6 | |
1031 | + * @dataProvider dataProviderRoles4 | |
976 | 1032 | */ |
977 | 1033 | public function testUpdatesAs($role) { |
978 | 1034 | //$role="RESP"; |
... | ... | @@ -1131,7 +1187,8 @@ class MaterielsControllerTest extends General { |
1131 | 1187 | public function STRICTER_testACLDeleteAsAdmin() { |
1132 | 1188 | $this->authAdmin(); |
1133 | 1189 | |
1134 | - $nb = $this->nb_matos_in_fixture; | |
1190 | + //$nb = $this->nb_matos_in_fixture; | |
1191 | + $nb = nb_matos_in_fixture; | |
1135 | 1192 | |
1136 | 1193 | // matos TBA => KO |
1137 | 1194 | $this->post('/materiels/delete/13'); |
... | ... | @@ -1320,33 +1377,36 @@ class MaterielsControllerTest extends General { |
1320 | 1377 | * 2. Test champ global "s_all_2" dans le menu latéral de gauche |
1321 | 1378 | */ |
1322 | 1379 | // Recherche en majuscules |
1323 | - $this->post( '/materiels/find', ['s_all_2' => 'TEST-2016-0002'] ); | |
1324 | - $this->assertResponseContains("Résultats (1)", "Le nb de materiels pour la recherche général du menu latéral est incorrecte."); | |
1380 | + //$this->post( '/materiels/find', ['s_all_2' => 'TEST-2020-0002'] ); //+4 | |
1381 | + $this->post( '/materiels/find', ['s_all_2' => 'TEST-'.yyyy2.'-0002'] ); | |
1382 | + $this->assertResponseContains("Résultats (1)", "Le nb de materiels pour la recherche générale du menu latéral est incorrect."); | |
1325 | 1383 | // Recherche en minuscules |
1326 | - $this->post( '/materiels/find', ['s_all_2' => 'test-2016-0002'] ); | |
1327 | - $this->assertResponseContains("Résultats (1)", "Le nb de materiels pour la recherche général du menu latéral est incorrecte."); | |
1384 | + //$this->post( '/materiels/find', ['s_all_2' => 'test-2020-0002'] ); //+4 | |
1385 | + $this->post( '/materiels/find', ['s_all_2' => 'test-'.yyyy2.'-0002'] ); //+4 | |
1386 | + $this->assertResponseContains("Résultats (1)", "Le nb de materiels pour la recherche générale du menu latéral est incorrect."); | |
1328 | 1387 | |
1329 | 1388 | |
1330 | 1389 | /* |
1331 | 1390 | * 3. Test champ général "s_all" en haut du formulaire |
1332 | 1391 | */ |
1333 | - $this->post( '/materiels/find', ['s_all' => 'TEST-2016-0002'] ); | |
1334 | - $this->assertResponseContains("Résultats (1)", "Le nb de materiels pour la recherche générale du formulaire est incorrecte."); | |
1392 | + //$this->post( '/materiels/find', ['s_all' => 'TEST-2020-0002'] ); //+4 | |
1393 | + $this->post( '/materiels/find', ['s_all_2' => 'TEST-'.yyyy2.'-0002'] ); | |
1394 | + $this->assertResponseContains("Résultats (1)", "Le nb de materiels pour la recherche générale du formulaire est incorrect."); | |
1335 | 1395 | |
1336 | 1396 | $this->post( '/materiels/find', ['s_all' => 'Fournisseur'] ); |
1337 | - $this->assertResponseContains("Résultats (7)", "Le nb de materiels pour la recherche générale du formulaire est incorrecte."); | |
1397 | + $this->assertResponseContains("Résultats (7)", "Le nb de materiels pour la recherche générale du formulaire est incorrect."); | |
1338 | 1398 | |
1339 | 1399 | $this->post( '/materiels/find', ['s_all' => 'Fournisseur1'] ); |
1340 | - $this->assertResponseContains("Résultats (4)", "Le nb de materiels pour la recherche générale du formulaire est incorrecte."); | |
1400 | + $this->assertResponseContains("Résultats (4)", "Le nb de materiels pour la recherche générale du formulaire est incorrect."); | |
1341 | 1401 | $this->post( '/materiels/find', ['s_all' => 'Fournisseur2'] ); |
1342 | - $this->assertResponseContains("Résultats (3)", "Le nb de materiels pour la recherche générale du formulaire est incorrecte."); | |
1402 | + $this->assertResponseContains("Résultats (3)", "Le nb de materiels pour la recherche générale du formulaire est incorrect."); | |
1343 | 1403 | |
1344 | 1404 | $this->post( '/materiels/find', ['s_all' => 'Fournisseur Test'] ); |
1345 | - $this->assertResponseContains("Résultats (7)", "Le nb de materiels pour la recherche générale du formulaire est incorrecte."); | |
1405 | + $this->assertResponseContains("Résultats (7)", "Le nb de materiels pour la recherche générale du formulaire est incorrect."); | |
1346 | 1406 | |
1347 | 1407 | // les matériels trouvés doivent contenir "Fournisseur" ET "Test" ET "(C)" |
1348 | 1408 | $this->post( '/materiels/find', ['s_all' => 'Fournisseur Test (C)'] ); |
1349 | - $this->assertResponseContains("Résultats (3)", "Le nb de materiels pour la recherche générale du formulaire est incorrecte."); | |
1409 | + $this->assertResponseContains("Résultats (3)", "Le nb de materiels pour la recherche générale du formulaire est incorrect."); | |
1350 | 1410 | |
1351 | 1411 | |
1352 | 1412 | /* |
... | ... | @@ -1361,51 +1421,57 @@ class MaterielsControllerTest extends General { |
1361 | 1421 | // --- tel quel |
1362 | 1422 | $dataSearch['s_designation'] = 'Test'; |
1363 | 1423 | $this->post('/materiels/find', $dataSearch); |
1364 | - $this->assertResponseContains("Résultats (6)", "Le nb de materiels pour la recherche par désignation est incorrecte."); | |
1424 | + $this->assertResponseContains("Résultats (6)", "Le nb de materiels pour la recherche par désignation est incorrect."); | |
1365 | 1425 | // --- en minuscules |
1366 | 1426 | $dataSearch['s_designation'] = 'test'; |
1367 | 1427 | $this->post('/materiels/find', $dataSearch); |
1368 | - $this->assertResponseContains("Résultats (6)", "Le nb de materiels pour la recherche par désignation est incorrecte."); | |
1428 | + $this->assertResponseContains("Résultats (6)", "Le nb de materiels pour la recherche par désignation est incorrect."); | |
1369 | 1429 | // --- en majuscules |
1370 | 1430 | $dataSearch['s_designation'] = 'TEST'; |
1371 | 1431 | $this->post('/materiels/find', $dataSearch); |
1372 | - $this->assertResponseContains("Résultats (6)", "Le nb de materiels pour la recherche par désignation est incorrecte."); | |
1432 | + $this->assertResponseContains("Résultats (6)", "Le nb de materiels pour la recherche par désignation est incorrect."); | |
1373 | 1433 | |
1374 | 1434 | // -- N mots |
1375 | 1435 | $dataSearch['s_designation'] = 'Test TBA'; // = contient "Test" ET "TBA" => devrait trouver "Test 13 (TBA)" |
1376 | 1436 | $this->post('/materiels/find', $dataSearch); |
1377 | - $this->assertResponseContains("Résultats (1)", "Le nb de materiels pour la recherche par désignation est incorrecte."); | |
1437 | + $this->assertResponseContains("Résultats (1)", "Le nb de materiels pour la recherche par désignation est incorrect."); | |
1378 | 1438 | $dataSearch['s_designation'] = 'Test 13 TBA'; // = contient "Test" ET "TBA" => devrait trouver "Test 13 (TBA)" |
1379 | 1439 | $this->post('/materiels/find', $dataSearch); |
1380 | - $this->assertResponseContains("Résultats (1)", "Le nb de materiels pour la recherche par désignation est incorrecte."); | |
1440 | + $this->assertResponseContains("Résultats (1)", "Le nb de materiels pour la recherche par désignation est incorrect."); | |
1381 | 1441 | $dataSearch['s_designation'] = ''; |
1382 | 1442 | |
1383 | 1443 | // - Test champ numero_laboratoire |
1384 | - $dataSearch['s_numero_laboratoire'] = 'TEST-2016-0003'; | |
1444 | + //$dataSearch['s_numero_laboratoire'] = 'TEST-2020-0003'; //+4 | |
1445 | + $dataSearch['s_numero_laboratoire'] = 'TEST-'.yyyy1.'-0002'; | |
1385 | 1446 | $this->post('/materiels/find', $dataSearch); |
1386 | - $this->assertResponseContains("Résultats (1)", "Le nb de materiels pour la recherche par numero de laboratoire est incorrecte."); | |
1447 | + $this->assertResponseContains("Résultats (1)", "Le nb de materiels pour la recherche par numero de laboratoire est incorrect."); | |
1387 | 1448 | $dataSearch['s_numero_laboratoire'] = ''; |
1388 | 1449 | |
1389 | 1450 | // - Test champ status |
1390 | 1451 | $dataSearch['s_status'] = 'CREATED'; |
1391 | 1452 | $this->post('/materiels/find', $dataSearch); |
1392 | - $this->assertResponseContains("Résultats (3)", "Le nb de materiels pour la recherche par statut est incorrecte."); | |
1453 | + $this->assertResponseContains("Résultats (3)", "Le nb de materiels pour la recherche par statut est incorrect."); | |
1393 | 1454 | $dataSearch['s_status'] = ''; |
1394 | 1455 | |
1395 | 1456 | // - Test champ date_acquisition |
1396 | - $dataSearch['s_date_acquisition'] = '2016-05-11'; | |
1457 | + //$dataSearch['s_date_acquisition'] = '2016-05-11'; | |
1458 | + $dataSearch['s_date_acquisition'] = yyyy2mmdd1; | |
1459 | + $this->post('/materiels/find', $dataSearch); | |
1460 | + $this->assertResponseContains("Résultats (1)", "Le nb de materiels pour la recherche par date d'acquisition est incorrect."); | |
1461 | + $dataSearch['s_date_acquisition'] = yyyy2mmdd2; | |
1397 | 1462 | $this->post('/materiels/find', $dataSearch); |
1398 | - $this->assertResponseContains("Résultats (4)", "Le nb de materiels pour la recherche par date d'acquisition est incorrecte."); | |
1463 | + $this->assertResponseContains("Résultats (4)", "Le nb de materiels pour la recherche par date d'acquisition est incorrect."); | |
1399 | 1464 | $dataSearch['s_date_acquisition'] = ''; |
1400 | 1465 | |
1401 | 1466 | // - Test champ fournisseur_id |
1402 | 1467 | $dataSearch['s_fournisseur_id'] = 1; |
1403 | - $dataSearch['s_date_acquisition'] = '2016-05-11'; | |
1468 | + //$dataSearch['s_date_acquisition'] = '2016-05-11'; | |
1469 | + $dataSearch['s_date_acquisition'] = yyyy2mmdd2; | |
1404 | 1470 | $this->post('/materiels/find', $dataSearch); |
1405 | - $this->assertResponseContains("Résultats (3)", "Le nb de materiels pour la recherche par fournisseur_id est incorrecte."); | |
1471 | + $this->assertResponseContains("Résultats (3)", "Le nb de materiels pour la recherche par fournisseur_id est incorrect."); | |
1406 | 1472 | $dataSearch['s_date_acquisition'] = ''; |
1407 | 1473 | $this->post('/materiels/find', $dataSearch); |
1408 | - $this->assertResponseContains("Résultats (4)", "Le nb de materiels pour la recherche par fournisseur_id est incorrecte."); | |
1474 | + $this->assertResponseContains("Résultats (4)", "Le nb de materiels pour la recherche par fournisseur_id est incorrect."); | |
1409 | 1475 | $dataSearch['s_fournisseur_id'] = ''; |
1410 | 1476 | $dataSearch['s_date_acquisition'] = ''; |
1411 | 1477 | |
... | ... | @@ -1413,59 +1479,134 @@ class MaterielsControllerTest extends General { |
1413 | 1479 | /* |
1414 | 1480 | * $dataSearch['s_salle'] = 'I203'; |
1415 | 1481 | * $this->post('/materiels/find', $dataSearch); |
1416 | - * $this->assertResponseContains("Résultats (2)", "Le nb de materiels pour la recherche par detaille lieu est incorrecte."); | |
1482 | + * $this->assertResponseContains("Résultats (2)", "Le nb de materiels pour la recherche par detaille lieu est incorrect."); | |
1417 | 1483 | */ |
1418 | 1484 | |
1419 | - // - Test champ periode_acquisition1 (debut) | |
1420 | - $dataSearch['s_periode_acquisition1'] = '2015-01-01'; | |
1485 | + | |
1486 | + // | |
1487 | + // Test sur Période de temps (intervalle) | |
1488 | + // | |
1489 | + | |
1490 | + // - Test [champ periode_acquisition1 - +infini] | |
1491 | + | |
1492 | + //$dataSearch['s_periode_acquisition1'] = '2015-01-01'; | |
1493 | + $dataSearch['s_periode_acquisition1'] = yyyy1mmdd1; // search [yyyy1mmdd1 - ] | |
1421 | 1494 | $this->post('/materiels/find', $dataSearch); |
1422 | - $this->assertResponseContains("Résultats (6)", "Le nb de materiels pour la recherche par debut de periode d'acquisition est incorrecte."); | |
1423 | - // - Test champ periode_acquisition1 (debut) && champ periode_acquisition2 (fin) | |
1424 | - $dataSearch['s_periode_acquisition2'] = '2016-01-01'; | |
1495 | + //$this->assertResponseContains("Résultats (6)", "Le nb de materiels pour la recherche par debut de periode d'acquisition est incorrect."); | |
1496 | + $this->assertResponseContains("Résultats (1)", "Le nb de materiels pour la recherche par debut de periode d'acquisition est incorrect."); | |
1497 | + | |
1498 | + $dataSearch['s_periode_acquisition1'] = yyyy1mmdd2; // search [yyyy1mmdd2 - ] | |
1425 | 1499 | $this->post('/materiels/find', $dataSearch); |
1426 | - $this->assertResponseContains("Résultats (1)", "Le nb de materiels pour la recherche par intervalle entre la periode d'acquisition (debut) et la periode d'acquisition (fin) est incorrecte."); | |
1427 | - // - Test champ periode_acquisition2 (fin) | |
1500 | + //$this->assertResponseContains("Résultats (6)", "Le nb de materiels pour la recherche par debut de periode d'acquisition est incorrect."); | |
1501 | + $this->assertResponseContains("Résultats (2)", "Le nb de materiels pour la recherche par debut de periode d'acquisition est incorrect."); | |
1502 | + | |
1503 | + $dataSearch['s_periode_acquisition1'] = yyyy2mmdd2; // search [yyyy2mmdd2 - ] | |
1504 | + $this->post('/materiels/find', $dataSearch); | |
1505 | + $this->assertResponseContains('Résultats ('.nb_matos_in_fixture.')', "Le nb de materiels pour la recherche par debut de periode d'acquisition est incorrect."); | |
1506 | + | |
1507 | + $dataSearch['s_periode_acquisition1'] = yyyy2mmdd1; // search [yyyy2mmdd1 - ] | |
1508 | + $this->post('/materiels/find', $dataSearch); | |
1509 | + $this->assertResponseContains('Résultats (3)', "Le nb de materiels pour la recherche par debut de periode d'acquisition est incorrect."); | |
1510 | + | |
1511 | + $dataSearch['s_periode_acquisition1'] = yyyy0mmdd1; // search [yyyy0mmdd1 - ] | |
1512 | + $this->post('/materiels/find', $dataSearch); | |
1513 | + $this->assertResponseContains('Résultats (0)', "Le nb de materiels pour la recherche par debut de periode d'acquisition est incorrect."); | |
1514 | + | |
1515 | + // - Test [champ periode_acquisition1 - champ periode_acquisition2] | |
1516 | + | |
1517 | + //$dataSearch['s_periode_acquisition2'] = '2016-01-01'; | |
1518 | + $dataSearch['s_periode_acquisition1'] = yyyy2mmdd2; | |
1519 | + $dataSearch['s_periode_acquisition2'] = yyyy1mmdd1; // search [yyyy2mmdd2 - yyyy1mmdd1] (plus ancien au plus récent) | |
1520 | + $this->post('/materiels/find', $dataSearch); | |
1521 | + //$this->assertResponseContains("Résultats (1)", "Le nb de materiels pour la recherche par intervalle entre la periode d'acquisition (debut) et la periode d'acquisition (fin) est incorrect."); | |
1522 | + $this->assertResponseContains('Résultats ('.nb_matos_in_fixture.')', "Le nb de materiels pour la recherche par intervalle entre la periode d'acquisition (debut) et la periode d'acquisition (fin) est incorrect."); | |
1523 | + | |
1524 | + $dataSearch['s_periode_acquisition1'] = yyyy1mmdd1; | |
1525 | + $dataSearch['s_periode_acquisition2'] = yyyy2mmdd2; // search [yyyy1mmdd1 - yyyy2mmdd2] | |
1526 | + $this->post('/materiels/find', $dataSearch); | |
1527 | + $this->assertResponseContains('Résultats (0)', "Le nb de materiels pour la recherche par intervalle entre la periode d'acquisition (debut) et la periode d'acquisition (fin) est incorrect."); | |
1528 | + | |
1529 | + $dataSearch['s_periode_acquisition1'] = yyyy2mmdd2; | |
1530 | + $dataSearch['s_periode_acquisition2'] = yyyy2mmdd2; // search [yyyy2mmdd2 - yyyy2mmdd2] | |
1531 | + $this->post('/materiels/find', $dataSearch); | |
1532 | + $this->assertResponseContains('Résultats (4)', "Le nb de materiels pour la recherche par intervalle entre la periode d'acquisition (debut) et la periode d'acquisition (fin) est incorrect."); | |
1533 | + | |
1534 | + $dataSearch['s_periode_acquisition1'] = yyyy2mmdd1; | |
1535 | + $dataSearch['s_periode_acquisition2'] = yyyy1mmdd2; // search [yyyy2mmdd1 - yyyy1mmdd2] | |
1536 | + $this->post('/materiels/find', $dataSearch); | |
1537 | + $nb = nb_matos_in_fixture - 4 - 1; | |
1538 | + $this->assertResponseContains('Résultats ('.$nb.')', "Le nb de materiels pour la recherche par intervalle entre la periode d'acquisition (debut) et la periode d'acquisition (fin) est incorrect."); | |
1539 | + | |
1540 | + // - Test [-infini - champ periode_acquisition2] | |
1541 | + | |
1428 | 1542 | $dataSearch['s_periode_acquisition1'] = ''; |
1543 | + $dataSearch['s_periode_acquisition2'] = yyyy0mmdd1; // search [ - yyyy0mmdd1] // jusqu'a l'infini | |
1544 | + $this->post('/materiels/find', $dataSearch); | |
1545 | + //$this->assertResponseContains("Résultats (2)", "Le nb de materiels pour la recherche par fin de periode d'acquisition est incorrect."); | |
1546 | + $this->assertResponseContains('Résultats ('.nb_matos_in_fixture.')', "Le nb de materiels pour la recherche par fin de periode d'acquisition est incorrect."); | |
1547 | + | |
1548 | + $dataSearch['s_periode_acquisition2'] = yyyy1mmdd1; // search [ - yyyy1mmdd1] // jqau plus récent | |
1429 | 1549 | $this->post('/materiels/find', $dataSearch); |
1430 | - $this->assertResponseContains("Résultats (2)", "Le nb de materiels pour la recherche par fin de periode d'acquisition est incorrecte."); | |
1550 | + $this->assertResponseContains('Résultats ('.nb_matos_in_fixture.')', "Le nb de materiels pour la recherche par fin de periode d'acquisition est incorrect."); | |
1551 | + | |
1552 | + $dataSearch['s_periode_acquisition2'] = yyyy1mmdd2; // search [ - yyyy1mmdd2] | |
1553 | + $this->post('/materiels/find', $dataSearch); | |
1554 | + $nb = nb_matos_in_fixture - 1; | |
1555 | + $this->assertResponseContains('Résultats ('.$nb.')', "Le nb de materiels pour la recherche par fin de periode d'acquisition est incorrect."); | |
1556 | + | |
1557 | + $dataSearch['s_periode_acquisition2'] = yyyy2mmdd1; // search [ - yyyy2mmdd1] | |
1558 | + $this->post('/materiels/find', $dataSearch); | |
1559 | + $nb = 5; | |
1560 | + $this->assertResponseContains('Résultats ('.$nb.')', "Le nb de materiels pour la recherche par fin de periode d'acquisition est incorrect."); | |
1561 | + | |
1562 | + $dataSearch['s_periode_acquisition2'] = yyyy2mmdd2; // search [ - yyyy2mmdd2] // jqau plus ancien | |
1563 | + $this->post('/materiels/find', $dataSearch); | |
1564 | + $nb = 5 - 1; | |
1565 | + $this->assertResponseContains('Résultats ('.$nb.')', "Le nb de materiels pour la recherche par fin de periode d'acquisition est incorrect."); | |
1566 | + | |
1431 | 1567 | $dataSearch['s_periode_acquisition2'] = ''; |
1432 | 1568 | |
1569 | + | |
1570 | + // | |
1571 | + // Test sur prix | |
1572 | + // | |
1573 | + | |
1433 | 1574 | // - Test champ prix_ht |
1434 | 1575 | $dataSearch['s_prix_ht'] = '50'; |
1435 | 1576 | $this->post('/materiels/find', $dataSearch); |
1436 | - $this->assertResponseContains("Résultats (1)", "Le nb de materiels pour la recherche par prix ht est incorrecte (v1)."); | |
1577 | + $this->assertResponseContains("Résultats (1)", "Le nb de materiels pour la recherche par prix ht est incorrect (v1)."); | |
1437 | 1578 | $dataSearch['s_prix_ht'] = ''; |
1438 | 1579 | // - Meme test mais avec autres champs |
1439 | 1580 | $dataSearch['s_prix_ht_sup'] = '50'; // >= 50 |
1440 | 1581 | $dataSearch['s_prix_ht_inf'] = '50'; // <= 50 |
1441 | 1582 | $this->post('/materiels/find', $dataSearch); |
1442 | - $this->assertResponseContains("Résultats (1)", "Le nb de materiels pour la recherche par prix ht est incorrecte (v2)."); | |
1583 | + $this->assertResponseContains("Résultats (1)", "Le nb de materiels pour la recherche par prix ht est incorrect (v2)."); | |
1443 | 1584 | $dataSearch['s_prix_ht_inf'] = ''; |
1444 | 1585 | $dataSearch['s_prix_ht_sup'] = ''; |
1445 | 1586 | $dataSearch['s_prix_ht'] = '75'; |
1446 | 1587 | $this->post('/materiels/find', $dataSearch); |
1447 | - $this->assertResponseContains("Résultats (4)", "Le nb de materiels pour la recherche par prix ht est incorrecte (v1)."); | |
1588 | + $this->assertResponseContains("Résultats (4)", "Le nb de materiels pour la recherche par prix ht est incorrect (v1)."); | |
1448 | 1589 | $dataSearch['s_prix_ht'] = ''; |
1449 | 1590 | |
1450 | 1591 | // - Test champ prix_ht_sup |
1451 | 1592 | $dataSearch['s_prix_ht_sup'] = '30'; // >= 30 |
1452 | 1593 | $this->post('/materiels/find', $dataSearch); |
1453 | - $this->assertResponseContains("Résultats (6)", "Le nb de materiels pour la recherche par prix ht superieur est incorrecte."); | |
1594 | + $this->assertResponseContains("Résultats (6)", "Le nb de materiels pour la recherche par prix ht superieur est incorrect."); | |
1454 | 1595 | $dataSearch['s_prix_ht_sup'] = ''; |
1455 | 1596 | // - Test champ prix_ht_inf |
1456 | 1597 | $dataSearch['s_prix_ht_inf'] = '70'; // <=70 |
1457 | 1598 | $this->post('/materiels/find', $dataSearch); |
1458 | - $this->assertResponseContains("Résultats (2)", "Le nb de materiels pour la recherche par prix ht inferieur est incorrecte."); | |
1599 | + $this->assertResponseContains("Résultats (2)", "Le nb de materiels pour la recherche par prix ht inferieur est incorrect."); | |
1459 | 1600 | $dataSearch['s_prix_ht_inf'] = ''; |
1460 | 1601 | // - Test champ prix_ht_inf et sup |
1461 | 1602 | $dataSearch['s_prix_ht_sup'] = '30'; // >= 30 |
1462 | 1603 | $dataSearch['s_prix_ht_inf'] = '70'; // <=70 |
1463 | 1604 | $this->post('/materiels/find', $dataSearch); |
1464 | - $this->assertResponseContains("Résultats (1)", "Le nb de materiels pour la recherche par prix ht inf et sup est incorrecte."); | |
1605 | + $this->assertResponseContains("Résultats (1)", "Le nb de materiels pour la recherche par prix ht inf et sup est incorrect."); | |
1465 | 1606 | $dataSearch['s_prix_ht_sup'] = '25'; // >= 30 |
1466 | 1607 | $dataSearch['s_prix_ht_inf'] = '75'; // <=75 |
1467 | 1608 | $this->post('/materiels/find', $dataSearch); |
1468 | - $this->assertResponseContains("Résultats (6)", "Le nb de materiels pour la recherche par prix ht inf et sup est incorrecte."); | |
1609 | + $this->assertResponseContains("Résultats (6)", "Le nb de materiels pour la recherche par prix ht inf et sup est incorrect."); | |
1469 | 1610 | $dataSearch['s_prix_ht_inf'] = ''; |
1470 | 1611 | $dataSearch['s_prix_ht_sup'] = ''; |
1471 | 1612 | ... | ... |