diff --git a/CHANGES.txt b/CHANGES.txt index 7fdfe62..9510b50 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -12,6 +12,20 @@ CHANGEMENTS ======= NEWS ======= +------- +NOVEMBRE 2020 - JANVIER 2021 : Chantier en cours pour arriver à la v5 avec le nouveau workflow de commande + +ROADMAP IRAP : +- Janvier : test en production +- Février : présentation aux JST +- Mars : usage obligatoire pour toute commande + + +------- +26/11/2020 NEWS#5 (v4.107.x) : + +Liste des matériels beaucoup plus pratique (colonnes plus pertinentes) et filtrage plus efficace + ------- 20/10/2020 NEWS#4 (v4.105.29-3.7.9) : @@ -127,23 +141,166 @@ Outre ces changements, voici d'autres changements importants : - Une VM linux (Ubuntu) est désormais disponible pour faciliter le déploiement -======= TODO ======= +======= TODO3 - PEUT ATTENDRE ======= -======= CHANGES ======= +will_stay => resident (ou permanent) + +EOTP : +“Sur quel(s) budget(s) ?” c'est pour le lot 1 pour l'acheteur (status CREATED) +“Entité(s) dépensière(s)” / lot 2 gestionnaire (status VALIDATED) + +Modif d’une fiche materiel ne doit pas refaire une commande !!! + +- Install from scratch + +- Update VM + +- lire article juridique + +- check add by copy + +- appel à contribuer + +STATS +moyenne annuelle, total : arrondir (pas de virgule, ce sont des matos) +2 premières ligne en jaune pour mettre en évidence +mettre en rouge les évol. % négatifs +Ca continue de marcher en 2021 ? + +Fournisseur update : +3 - (LATER) Simplifier le beforeSave() sur le traitement des feurs car ça sera désormais inutile vue que CLEAN + +GO GENERIC : +delete generic +index generic +add_edit generic + +Services (poles) + +cakephp 3.9 + +cake crud + view + + + + +======= TODO2 - URGENT ======= + +- Adapter règles "nouveau suivi" + + +- lot1 toujours obligatoire (en dur dans Table), LOT2 = ssi status > CREATED (géré via soft dans add_edit(), la vue ne doit rien gérer du tout !) + + +- technique/admin inutile + + +- Gestionnaire de ref : + “Je ne sais pas” + + +Install titreuse Carole + +DB complète à mettre à jour + +- (MT) Install locale, puis répondre stagiaire + +- install GEPI -TODO : - - (b) Bugfix "nouveau suivi" +- déclarer etiquette collée => supprimer ? + +- Commande directe ou seulement pour inventaire : "Enregistrer & Commander" et "Enregistrer seulement" + +- Infos obligatoires LOT1 + +- Supprimer un CREATED + Annuler cde + tobeordered=true + edit possible + +- Validation (LOT2 obligatoire) + invalider + edit LOT2 + +ADMIN Dernier modificateur = Gestionnaire de ref. + +Ancien seuil 800€ doit rester valable pour anciens matos + +Partager les imprimantes de Jean-Louis (pour Roche) et Carole (pour Belin) + +Responsable = groupe métier, ou projet, ou pôle (PIME), MAIS PAS thématique + +Bug groupe thématique dans groupe metier sur fiche materiel (+ virer “code comptable” et changer le nom des champs eotp, ajouter ligne budgétaire…) + +Procédure accueil : +>=10K obligatoire (inventaire comptable) +<10K : possible quand même (inventaire physique) +Bouton “Je veux commander un matos” + +Mail “Matériel à commander (Fiche inventirap n° XXX)” : +Ce mail est destiné au gestionnaire “untel” +Acheteur/Demandeur : +Utilisateur : +Désignation : +Description : +A commander sur le(s) budget(s) : +Devis en pièce jointe + + +GEPI (Laurence) + +Nouvelle fiche matos : +Bouton “Commander” +=> Si ADMIN, devient “Enregistrer” (et pas de mail envoyé) +Menu Matos/Nouveau materiel => ADMIN only + +Commander etiqueteuses + + +Bugfix : un profil Utilisateur ne doit pas pouvoir changer l’acheteur (acheteur = lui) !!! + +User = Acheteur + +Modif possible sans devoir dévalider/revalider + +Outils : voir/gérer ? + +Photo : type ? +documents.photo = TRUE + +Fournisseurs : src/Template/Common/add_edit.ctp + + + + + + +Ecran d’accueil : +Voir Mes matériels (que j’ai achetés) +Voir les Matériels que j’utilise (find sur champ utilisateur) +(admin) Voir Matériels à commander (tous les TOBEORDERED qui sont à mon nom de gestionnaire ET qui ont (date-cde null OU num-BC null) +(admin) “Voir toutes les commandes en cours” +(admin) “Voir les matériels ‘zombie’” (materiels CREATED depuis longtemps, et toujours pas ORDERED => sans doute à virer (pour ne pas fausser les stats...) +(admin) Voir matos à archiver + + + +TAG version 3.7.9 finale ANCIEN workflow + + + +======= TODO1 - BUGFIXES (TRES URGENT) ======= + + - (b) Bugfix et Amélioration Recherche matériels + - (e) Réorganisation des colonnes de la liste des matériels recherchés + + +======= CHANGES ======= ------- 26/11/2020 v4.107.17-3.7.9 - - (b) Bugfix et amélioration Recherche et filtre matériels (2 sur 2) + - (b) Bugfix et Amélioration filtre matériels (2 sur 2) - (e) Réorganisation des colonnes de la liste des matériels (2 sur 2) ------- 25/11/2020 v4.107.16-3.7.9 - - (b) Bugfix et amélioration Recherche et filtre matériels (1 sur 2) + - (b) Bugfix et amélioration filtre matériels (1 sur 2) - (e) Réorganisation des colonnes de la liste des matériels (1 sur 2) - (i) On peut toujours imprimer une étiquette (plus seulement quand la fiche est validée) - (i) Date achat désormais facultative (avant validation) diff --git a/README.md b/README.md index b9e3a6d..f169ca2 100644 --- a/README.md +++ b/README.md @@ -52,8 +52,8 @@ Logiciel testé et validé sur les configurations suivantes : -------------------------------------------------------------------------------------------- -Date: 25/11/2020 -Version: 4.107.16-3.7.9 +Date: 26/11/2020 +Version: 4.107.17-3.7.9 HISTORIQUE DES CHANGEMENTS DE VERSION : voir le fichier CHANGES.txt (ou la page web /pages/changes) diff --git a/src/Controller/MaterielsController.php b/src/Controller/MaterielsController.php index d67773e..080f908 100755 --- a/src/Controller/MaterielsController.php +++ b/src/Controller/MaterielsController.php @@ -899,7 +899,7 @@ class MaterielsController extends AppController { //debug($this->request); $conditions = []; //$contain = []; - $contain = ['Fournisseurs', 'Categories', 'Organismes', 'Projets', 'Users']; + $contain = ['Sites', 'Fournisseurs', 'Categories', 'Organismes', 'Projets', 'Users']; // - FILTRE Statut ? (status=CREATED, status=VALIDATED, ...) @@ -1295,16 +1295,30 @@ class MaterielsController extends AppController { 'limit' => $limit, 'maxLimit' => 1000, 'sortWhitelist' => [ + + // - Champs directs 'designation', 'numero_laboratoire', - 'Categories.nom', - 'Organismes.nom', + // tutelle 'numero_inventaire_organisme', + 'numero_commande', //'nom_responsable', 'nom_user', + 'status', 'date_acquisition', - 'etiquette', + 'prix_ht', + //'etiquette', + //'lieu_detail', + + // - Champs FK (HasOne only) + 'Sites.nom', + 'Categories.nom', + //'Organismes.nom', + // Gestionnaire + 'Users.nom', + 'Fournisseurs.nom', + ], 'order' => [ 'numero_laboratoire' => 'desc' @@ -1423,6 +1437,9 @@ class MaterielsController extends AppController { */ $materiel = $this->Materiels->get($id, [ 'contain' => [ + + // 1) HasOne + 'SurCategories', 'Categories', 'SousCategories', @@ -1431,15 +1448,23 @@ class MaterielsController extends AppController { 'Projets', 'Organismes', 'Sites', + 'Fournisseurs', + + //'Gestionnaires', + 'Users', + + // 2) HasMany + 'Documents', 'Emprunts', // Tous les suivis de ce $materiel (sans leur type) //'Suivis', // Tous les suivis de ce $materiel AVEC leur type de suivi 'Suivis.TypeSuivis', - 'Fournisseurs' + ] ]); + $this->e = $materiel; $e = $materiel; @@ -2885,6 +2910,7 @@ class MaterielsController extends AppController { $search_fields = [ // 1) Materiels table direct (straight) columns + 'Materiels.designation', 'Materiels.numero_laboratoire', 'Materiels.numero_inventaire_organisme', @@ -2899,11 +2925,15 @@ class MaterielsController extends AppController { 'Materiels.date_acquisition', 'Materiels.lieu_detail', - // 2) Materiels table foreign keys + // 2) Materiels table foreign keys (HasOne only) + + 'Sites.nom', 'Fournisseurs.nom', 'Categories.nom', 'Organismes.nom', 'Projets.nom', + + // - Gestionnaire 'Users.nom', ]; diff --git a/src/Template/Materiels/index.ctp b/src/Template/Materiels/index.ctp index 8ee1246..82763ae 100644 --- a/src/Template/Materiels/index.ctp +++ b/src/Template/Materiels/index.ctp @@ -31,6 +31,7 @@ $statuses_color = $statuses_color; $nbMateriels = $nbMateriels; $controller=$controller; $materiels = $materiels; +//debug($materiels); $configuration = $configuration; $searchfor = $searchfor; @@ -847,7 +848,10 @@ if ($SELECTED_STATUS) echo $this->Form->hidden('what', ['value'=>$SELECTED_STATU --> Paginator->sort('nom_user', "Utilisateur") ?> - Paginator->sort('Gestionnaires.nom', 'Gestionnaire') ?> + + Paginator->sort('Users.nom', 'Gestionnaire') ?> + Paginator->sort('Sites.nom', 'Lieu') ?> nom_user) ?> - has('gestionnaire') ? h($materiel->gestionnaires->nom) : '' ?> + + has('user') ? h($materiel->user->nom) : '' ?> has('category') ? h($materiel->category->nom) : '' ?> @@ -970,7 +980,14 @@ if ($SELECTED_STATUS) echo $this->Form->hidden('what', ['value'=>$SELECTED_STATU has('fournisseur') ? h($materiel->fournisseur->nom) : '' ?> - lieu_detail) ?> + has('site') ? h($materiel->site->nom) : ''; + if ($materiel->lieu_detail) { + if ($materiel->has('site')) $lieu .= '-'; + $lieu .= $materiel->lieu_detail; + } + ?> +