diff --git a/README-LABINVENT.md b/README-LABINVENT.md index a2dab4c..a895991 100755 --- a/README-LABINVENT.md +++ b/README-LABINVENT.md @@ -50,12 +50,16 @@ Logiciel testé et validé sur les configurations suivantes : VERSION ACTUELLE -Date: 23/06/2016 -Version: 2.4.6.9 +Date: 24/06/2016 +Version: 2.4.7.0 -Date garantie (materiel) + bugfixes calcul date (suivi) +!!! Se placer dans database/update et exécuter le script ./db-update-2016-06-24.sh !!! -Demande (terminé) : https://projects.irap.omp.eu/issues/3804 +gérer panne matériel + validation si champ rempli + menu home profil responsable + +Demande (terminé) : https://projects.irap.omp.eu/issues/3897 + https://projects.irap.omp.eu/issues/3807 + https://projects.irap.omp.eu/issues/3781 Version majeure en cours (2.4): https://projects.irap.omp.eu/versions/107 @@ -91,6 +95,8 @@ Liste complète des évolutions: https://gitlab.irap.omp.eu/epallier/labinvent/c MODIFICATIONS STRUCTURELLES A FAIRE MANUELLEMENT APRES LA MISE A JOUR (git pull) +24/06/16 (v2.4.7.0) Se placer dans database/update et exécuter le script ./db-update-2016-06-24.sh + 23/06/16 (v2.4.6.5) Se placer dans database/update et exécuter le script ./db-update-2016-06-23.sh 23/06/16 (v2.4.6.4) Se placer dans database/update et exécuter le script ./db-update-2016-06-22.sh diff --git a/database/labinvent_2.1_12-05-16.sql b/database/labinvent_2.1_12-05-16.sql index f319ca7..39bd0f2 100755 --- a/database/labinvent_2.1_12-05-16.sql +++ b/database/labinvent_2.1_12-05-16.sql @@ -412,7 +412,7 @@ ALTER TABLE `users` ADD CONSTRAINT `fk_users_groupe_thematique_id` FOREIGN KEY (`groupe_thematique_id`) REFERENCES `groupes_thematiques` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION; -- Insertion par défaut -Insert into type_suivis(id, nom) values (9, 'Panne'); +Insert into type_suivis(nom) values ('Réparation'); Insert into sites(id, nom) values (9, 'N/A'); -- Insertion par défaut pour la table configuration diff --git a/database/update/db-update-2016-06-24.sh b/database/update/db-update-2016-06-24.sh new file mode 100755 index 0000000..28045d4 --- /dev/null +++ b/database/update/db-update-2016-06-24.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +# Pour Mac OS recent (10.10, Yosemite), la syntaxe du SED est differente +# Il faut donc faire une copie de ce fichier et transformer les instructions sed a l'interieur +# Pour cela, il suffit d'executer ces 2 lignes : +# cp ce_script.sh ce_script_macosx.sh +# sed -e "s/ -i / -i '' /" -i '' ce_script_macosx.sh + +if [ ! -f ../../config/app.php ] ; then +echo "Vous devez executer ce script depuis le dossier database/update/" +exit 1 +fi + + +# Get login, pass, dbname, and hostname +username=$(grep "/\*d\*/'username'" ../../config/app.php | cut -d"'" -f4) +password=$(grep "/\*d\*/'password'" ../../config/app.php | cut -d"'" -f4) +database=$(grep "/\*d\*/'database'" ../../config/app.php | cut -d"'" -f4) +host=$(grep "/\*d\*/'host'" ../../config/app.php | cut -d"'" -f4) + + +cp -p ./script_sql/db-update-2016-06-24.sql ./script_sql/db-update-2016-06-24-build.sql + +# Execute sql update script +sed -e "s/database/$database/" -i ./script_sql/db-update-2016-06-24-build.sql +mysql --user=$username --password=$password -h $host < ./script_sql/db-update-2016-06-24-build.sql + +# Delete cakephp cache +sudo rm ../../tmp/cache/models/* +sudo rm ../../tmp/cache/persistent/* + +sudo chmod -R 770 ../../tmp +sudo chmod -R 770 ../../vendor +sudo chmod -R 770 ../../webroot diff --git a/database/update/db-update-modele.sh b/database/update/db-update-modele.sh index 34a335e..2a7a8d0 100755 --- a/database/update/db-update-modele.sh +++ b/database/update/db-update-modele.sh @@ -29,6 +29,6 @@ mysql --user=$username --password=$password -h $host < ./script_sql/db-update-xx sudo rm ../../tmp/cache/models/* sudo rm ../../tmp/cache/persistent/* -sudo chmod -R 777 ../../tmp -sudo chmod -R 777 ../../vendor -sudo chmod -R 777 ../../webroot +sudo chmod -R 770 ../../tmp +sudo chmod -R 770 ../../vendor +sudo chmod -R 770 ../../webroot diff --git a/database/update/script_sql/.gitignore b/database/update/script_sql/.gitignore index 228b9f8..14f0301 100644 --- a/database/update/script_sql/.gitignore +++ b/database/update/script_sql/.gitignore @@ -1 +1,2 @@ /db-update-2016-06-20-build.sql +/db-update-2016-06-24-build.sql diff --git a/database/update/script_sql/db-update-2016-06-24.sql b/database/update/script_sql/db-update-2016-06-24.sql new file mode 100755 index 0000000..115a108 --- /dev/null +++ b/database/update/script_sql/db-update-2016-06-24.sql @@ -0,0 +1,3 @@ +use database; + +ALTER TABLE `materiels` ADD `hors_service` tinyint(1) DEFAULT NULL; diff --git a/install/installation.sh b/install/installation.sh index 2fea0ad..071b991 100755 --- a/install/installation.sh +++ b/install/installation.sh @@ -124,7 +124,7 @@ sudo chgrp -R $grp ./vendor/phpqrcode/ # Normalement, il faudrait ecrire dans app/tmp et pas dans app/webroot # EP 2014/12/11 chmod 775 ne suffit pas #chmod -R 775 ./webroot/img/ -sudo chmod -R 777 ./webroot/img/ +sudo chmod -R 770 ./webroot/img/ #sudo chown -R $grp:$grp ./webroot/img/ sudo chgrp -R $grp ./webroot/img/ # TODO: il faudrait plutot faire ceci : @@ -149,7 +149,7 @@ sudo chgrp -R $grp ./tmp/ chmod -R 777 ./logs/ sudo chgrp -R $grp ./logs/ #Il semble qu'il manque des droits au dossier Vendor, droit trop général à réduire (identifié les composants qui ont besoin de s'éxécuter ou de se lire, pas d'écriture dans le dossier Vendor normalement...) -sudo chmod -R 777 ./vendor/ +sudo chmod -R 770 ./vendor/ echo "==>Done" diff --git a/src/Controller/AppController.php b/src/Controller/AppController.php index 4f30e6c..3d714f0 100755 --- a/src/Controller/AppController.php +++ b/src/Controller/AppController.php @@ -80,7 +80,7 @@ class AppController extends Controller if($role == 'Super Administrateur') return true; //Pour tout le monde - if (in_array($action, ['index', 'find', 'view', 'creer', 'add', 'getNextDate'])) return true; + if (in_array($action, ['index', 'find', 'view', 'creer', 'add', 'getNextDate', 'getDateGarantie'])) return true; // Par défaut refuser diff --git a/src/Controller/MaterielsController.php b/src/Controller/MaterielsController.php index 7ce0b24..eb23700 100755 --- a/src/Controller/MaterielsController.php +++ b/src/Controller/MaterielsController.php @@ -170,7 +170,18 @@ class MaterielsController extends AppController $this->set('STATUS', $this->passedArgs[0]); } - if(!(in_array($this->role, ['Administration', 'Administration Plus', 'Super Administrateur']))) { + $GM = $this->request->query('GM'); + if(isset($GM)) { + $condition = ['Materiels.groupes_metier_id =' => $this->request->query('GM'), 'Materiels.status !=' => 'ARCHIVED']; + } + + $GMV = $this->request->query('GMV'); + if(isset($GMV)) { + $condition = ['Materiels.groupes_metier_id =' => $this->request->query('GMV'), 'Materiels.status =' => 'CREATED', 'Materiels.status !=' => 'ARCHIVED']; + } + + + if($this->role == 'Utilisateur') { $condition = ['Materiels.status !=' => 'ARCHIVED']; } @@ -363,6 +374,13 @@ class MaterielsController extends AppController $materiel->set('date_archivage', date('Y-m-d')); } + if($newStatus == 'VALIDATED') { + if(!isset($materiel->nom_responsable) || !isset($materiel->fournisseur) || !isset($materiel->numero_commande) || !isset($materiel->organisme_id) || !isset($materiel->date_reception) || !isset($materiel->prix_ht)) { + $this->Flash->success('Pour valider un matériel, les champs suivants ne doivent pas être vide : Nom propriétaire, Fournisseur, Numéro de commande, Organisme, prix et date de reception'); + return $this->redirect(['action' => 'edit', $id]); + } + } + if ($this->Materiels->save($materiel, ['checkRules' => false, 'checkExisting' => false])) { $this->Flash->success(__($message)); $this->sendEmailToManagement($id); diff --git a/src/Controller/SuivisController.php b/src/Controller/SuivisController.php index 70375ae..2890958 100755 --- a/src/Controller/SuivisController.php +++ b/src/Controller/SuivisController.php @@ -58,12 +58,19 @@ class SuivisController extends AppController */ public function index() { + $condition = ''; + + $GM = $this->request->query('GM'); + if(isset($GM)) { + $condition = ['Suivis.groupes_metier_id =' => $this->request->query('GM')]; + } + $this->paginate = [ 'contain' => ['Materiels', 'TypeSuivis'] ]; - $suivis = $this->paginate($this->Suivis); + $suivis = $this->paginate($this->Suivis->find('all', ['conditions' => $condition])); - $this->set('nbSuivis', $this->Suivis->find('all')->count()); + $this->set('nbSuivis', $this->Suivis->find('all', ['conditions' => $condition])->count()); $this->set(compact('suivis')); $this->set('_serialize', ['suivis']); diff --git a/src/Model/Entity/Materiel.php b/src/Model/Entity/Materiel.php index dca4d1c..4b19ea4 100755 --- a/src/Model/Entity/Materiel.php +++ b/src/Model/Entity/Materiel.php @@ -48,6 +48,7 @@ use Cake\ORM\Entity; * @property int $organisme_id * @property \App\Model\Entity\Organisme $organisme * @property int $site_id + * @property bool $hors_service * @property \App\Model\Entity\Site $site * @property \App\Model\Entity\Document[] $documents * @property \App\Model\Entity\Emprunt[] $emprunts diff --git a/src/Model/Table/MaterielsTable.php b/src/Model/Table/MaterielsTable.php index 486aeea..ed98ee1 100755 --- a/src/Model/Table/MaterielsTable.php +++ b/src/Model/Table/MaterielsTable.php @@ -161,6 +161,11 @@ class MaterielsTable extends AppTable ->allowEmpty('etiquette'); $validator + ->boolean('hors_service') + ->allowEmpty('hors_service'); + + + $validator ->notEmpty('site_id', 'Ce champ doit être rempli'); $validator diff --git a/src/Template/Layout/default.ctp b/src/Template/Layout/default.ctp index 97365ce..7afdee8 100755 --- a/src/Template/Layout/default.ctp +++ b/src/Template/Layout/default.ctp @@ -94,7 +94,7 @@ $cakeDescription = 'Labinvent 2';
'.$this->Html->link('Voir les matériels de mon groupe métier', [ + 'controller' => 'materiels', 'action' => 'index', 'GM' => $userConnected->groupes_metier_id]).' |
'.$this->Html->link('Voir les matériels de mon groupe métier à valider', [ + 'controller' => 'materiels', 'action' => 'index', 'GMV' => $userConnected->groupes_metier_id]).' |
'.$this->Html->link('Voir les suivis des materiels donc je suis responsable', [ + 'controller' => 'suivis', 'action' => 'index', 'GM' => $userConnected->groupes_metier_id]).' |