Commit 4dae83a2d48a5806c596ec7d4d4a174633e68186

Authored by Alexandre
1 parent 644e6326

Version: 2.5.1.0

!!! Se placer dans database/update et exécuter le script
./db-update-2016-06-28.sh !!!

Confirmation suppression doc + organisation configuration/form + taille
doc config + photo materiel + liste type document défaut + acl documents
+ bugfixes

Demande (terminé) : https://projects.irap.omp.eu/issues/3905
					https://projects.irap.omp.eu/issues/3790
					https://projects.irap.omp.eu/issues/3904

Demande (en cours) : https://projects.irap.omp.eu/issues/3716
	   
Version majeure en cours (2.5): https://projects.irap.omp.eu/versions/99

ROADMAP: https://projects.irap.omp.eu/projects/labinvent/roadmap
README-LABINVENT.md
@@ -50,19 +50,18 @@ Logiciel testé et validé sur les configurations suivantes : @@ -50,19 +50,18 @@ Logiciel testé et validé sur les configurations suivantes :
50 50
51 VERSION ACTUELLE 51 VERSION ACTUELLE
52 52
53 -Date: 27/06/2016  
54 -Version: 2.5.0.0 53 +Date: 28/06/2016
  54 +Version: 2.5.1.0
55 55
56 -!!! Se placer dans database/update et exécuter le script ./db-update-2016-06-27.sh !!! 56 +!!! Se placer dans database/update et exécuter le script ./db-update-2016-06-28.sh !!!
57 57
58 -Documents + Type documents + Réorganisation configuration générale (view) + Bugfixes (numero de labo, ... ) 58 +Confirmation suppression doc + organisation configuration/form + taille doc config + photo materiel + liste type document défaut + acl documents + bugfixes
59 59
60 -Demande (terminé) : https://projects.irap.omp.eu/issues/3789  
61 - https://projects.irap.omp.eu/issues/3762  
62 - https://projects.irap.omp.eu/issues/3791 60 +Demande (terminé) : https://projects.irap.omp.eu/issues/3905
  61 + https://projects.irap.omp.eu/issues/3790
  62 + https://projects.irap.omp.eu/issues/3904
63 63
64 -Demande (en cours) : https://projects.irap.omp.eu/issues/3790  
65 - https://projects.irap.omp.eu/issues/3716 64 +Demande (en cours) : https://projects.irap.omp.eu/issues/3716
66 65
67 Version majeure en cours (2.5): https://projects.irap.omp.eu/versions/99 66 Version majeure en cours (2.5): https://projects.irap.omp.eu/versions/99
68 67
@@ -101,6 +100,10 @@ Liste complète des évolutions: https://gitlab.irap.omp.eu/epallier/labinvent/c @@ -101,6 +100,10 @@ Liste complète des évolutions: https://gitlab.irap.omp.eu/epallier/labinvent/c
101 100
102 MODIFICATIONS STRUCTURELLES A FAIRE MANUELLEMENT APRES LA MISE A JOUR (git pull) 101 MODIFICATIONS STRUCTURELLES A FAIRE MANUELLEMENT APRES LA MISE A JOUR (git pull)
103 102
  103 +28/06/16 (v2.5.1.0) Se placer dans database/update et exécuter le script ./db-update-2016-06-28.sh
  104 +
  105 +27/06/16 (v2.5.0.0) Se placer dans database/update et exécuter le script ./db-update-2016-06-27.sh
  106 +
104 24/06/16 (v2.4.7.2) Se placer dans database/update et exécuter le script ./db-update-2016-06-24-2.sh 107 24/06/16 (v2.4.7.2) Se placer dans database/update et exécuter le script ./db-update-2016-06-24-2.sh
105 108
106 24/06/16 (v2.4.7.0) Se placer dans database/update et exécuter le script ./db-update-2016-06-24.sh 109 24/06/16 (v2.4.7.0) Se placer dans database/update et exécuter le script ./db-update-2016-06-24.sh
database/labinvent_2.1_12-05-16.sql
@@ -73,11 +73,11 @@ CREATE TABLE IF NOT EXISTS `documents` ( @@ -73,11 +73,11 @@ CREATE TABLE IF NOT EXISTS `documents` (
73 `id` int(11) NOT NULL AUTO_INCREMENT, 73 `id` int(11) NOT NULL AUTO_INCREMENT,
74 `type_doc` varchar(20) DEFAULT NULL, 74 `type_doc` varchar(20) DEFAULT NULL,
75 `description` text DEFAULT NULL, 75 `description` text DEFAULT NULL,
76 - `chemin` varchar(200) DEFAULT NULL,  
77 `nom` VARCHAR(100) DEFAULT NULL, 76 `nom` VARCHAR(100) DEFAULT NULL,
78 `materiel_id` int(11) DEFAULT NULL, 77 `materiel_id` int(11) DEFAULT NULL,
79 `suivi_id` int(11) DEFAULT NULL, 78 `suivi_id` int(11) DEFAULT NULL,
80 `type_document_id` int(11) DEFAULT NULL, 79 `type_document_id` int(11) DEFAULT NULL,
  80 + `photo` tinyint(1) DEFAULT NULL,
81 PRIMARY KEY (`id`), 81 PRIMARY KEY (`id`),
82 KEY `fk_documents_materiel_id` (`materiel_id`), 82 KEY `fk_documents_materiel_id` (`materiel_id`),
83 KEY `fk_documents_suivi_id` (`suivi_id`), 83 KEY `fk_documents_suivi_id` (`suivi_id`),
@@ -182,6 +182,7 @@ CREATE TABLE IF NOT EXISTS `materiels` ( @@ -182,6 +182,7 @@ CREATE TABLE IF NOT EXISTS `materiels` (
182 `date_fin_garantie` date DEFAULT NULL, 182 `date_fin_garantie` date DEFAULT NULL,
183 `duree_garantie` int(10) DEFAULT NULL, 183 `duree_garantie` int(10) DEFAULT NULL,
184 `unite_duree_garantie` varchar (30) DEFAULT NULL, 184 `unite_duree_garantie` varchar (30) DEFAULT NULL,
  185 + `photo_id` int(11) DEFAULT NULL,
185 PRIMARY KEY (`id`), 186 PRIMARY KEY (`id`),
186 UNIQUE KEY `numero_irap` (`numero_laboratoire`), 187 UNIQUE KEY `numero_irap` (`numero_laboratoire`),
187 KEY `fk_administrative_materials_sub_categories1` (`sous_categorie_id`), 188 KEY `fk_administrative_materials_sub_categories1` (`sous_categorie_id`),
@@ -298,7 +299,6 @@ CREATE TABLE `type_documents` ( @@ -298,7 +299,6 @@ CREATE TABLE `type_documents` (
298 PRIMARY KEY (`id`) 299 PRIMARY KEY (`id`)
299 ); 300 );
300 301
301 -Insert into type_documents(id, nom) values (1, 'N/A');  
302 -- -------------------------------------------------------- 302 -- --------------------------------------------------------
303 -- 303 --
304 -- Structure de la table `users` 304 -- Structure de la table `users`
@@ -360,6 +360,7 @@ CREATE TABLE IF NOT EXISTS `configurations` ( @@ -360,6 +360,7 @@ CREATE TABLE IF NOT EXISTS `configurations` (
360 `prix_inventaire_administratif` int( 10 ) DEFAULT '800', 360 `prix_inventaire_administratif` int( 10 ) DEFAULT '800',
361 `numero_labo_sans_annee` tinyint(1) DEFAULT NULL, 361 `numero_labo_sans_annee` tinyint(1) DEFAULT NULL,
362 `date_commande_facultative` tinyint(1) DEFAULT NULL, 362 `date_commande_facultative` tinyint(1) DEFAULT NULL,
  363 + `taille_max_doc` int (15) DEFAULT '8000000',
363 PRIMARY KEY (`id`), 364 PRIMARY KEY (`id`),
364 UNIQUE KEY `nom_UNIQUE` (`nom`) 365 UNIQUE KEY `nom_UNIQUE` (`nom`)
365 ); 366 );
@@ -430,10 +431,24 @@ ALTER TABLE `users` @@ -430,10 +431,24 @@ ALTER TABLE `users`
430 Insert into type_suivis(nom) values ('Réparation'); 431 Insert into type_suivis(nom) values ('Réparation');
431 Insert into sites(id, nom) values (9, 'N/A'); 432 Insert into sites(id, nom) values (9, 'N/A');
432 433
  434 +Insert into type_documents(id, nom) values (1, 'N/A');
  435 +Insert into type_documents(nom) values ('Bon de commande');
  436 +Insert into type_documents(nom) values ('Bon de livraison');
  437 +Insert into type_documents(nom) values ('Photo');
  438 +Insert into type_documents(nom) values ('Documentation technique');
  439 +Insert into type_documents(nom) values ('Spécifications');
  440 +Insert into type_documents(nom) values ('CR de maintenance');
  441 +Insert into type_documents(nom) values ('CR d\'étalonnage');
  442 +Insert into type_documents(nom) values ('Suivi de panne');
  443 +Insert into type_documents(nom) values ('Certificat de garantie');
  444 +Insert into type_documents(nom) values ('Certificat de conformité');
  445 +Insert into type_documents(nom) values ('Manuel d\'utilisation');
  446 +
433 -- Insertion par défaut pour la table configuration 447 -- Insertion par défaut pour la table configuration
434 Insert into `configurations`(`nom`, `mode_install`, `mode_debug`, `use_ldap`, `host_ldap`, `port_ldap`, `authentificationType_ldap`, `baseDn_ldap`, `filter_ldap`, `labName`, `labNameShort`, `labPresent`, `labUmr`, `hasPrinter`, `emailGuest1`, `emailGuest2`, `emailGuest3`) values ('default', '1', '0', '0', '', '', 'xxx', '', '', 'LABONAME', 'LABO', 'du ', '', '0', '', '', ''); 448 Insert into `configurations`(`nom`, `mode_install`, `mode_debug`, `use_ldap`, `host_ldap`, `port_ldap`, `authentificationType_ldap`, `baseDn_ldap`, `filter_ldap`, `labName`, `labNameShort`, `labPresent`, `labUmr`, `hasPrinter`, `emailGuest1`, `emailGuest2`, `emailGuest3`) values ('default', '1', '0', '0', '', '', 'xxx', '', '', 'LABONAME', 'LABO', 'du ', '', '0', '', '', '');
435 449
436 450
  451 +
437 /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; 452 /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
438 /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; 453 /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
439 /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; 454 /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
database/update/db-update-2016-06-28.sh 0 → 100755
@@ -0,0 +1,38 @@ @@ -0,0 +1,38 @@
  1 +#!/bin/bash
  2 +
  3 +# Pour Mac OS recent (10.10, Yosemite), la syntaxe du SED est differente
  4 +# Il faut donc faire une copie de ce fichier et transformer les instructions sed a l'interieur
  5 +# Pour cela, il suffit d'executer ces 2 lignes :
  6 +# cp ce_script.sh ce_script_macosx.sh
  7 +# sed -e "s/ -i / -i '' /" -i '' ce_script_macosx.sh
  8 +
  9 +if [ ! -f ../../config/app.php ] ; then
  10 +echo "Vous devez executer ce script depuis le dossier database/update/"
  11 +exit 1
  12 +fi
  13 +
  14 +if [ ! -d "../../webroot/img/photos" ]; then
  15 + mkdir ../../webroot/img/photos
  16 +fi
  17 +
  18 +
  19 +# Get login, pass, dbname, and hostname
  20 +username=$(grep "/\*d\*/'username'" ../../config/app.php | cut -d"'" -f4)
  21 +password=$(grep "/\*d\*/'password'" ../../config/app.php | cut -d"'" -f4)
  22 +database=$(grep "/\*d\*/'database'" ../../config/app.php | cut -d"'" -f4)
  23 +host=$(grep "/\*d\*/'host'" ../../config/app.php | cut -d"'" -f4)
  24 +
  25 +
  26 +cp -p ./script_sql/db-update-2016-06-28.sql ./script_sql/db-update-2016-06-28-build.sql
  27 +
  28 +# Execute sql update script
  29 +sed -e "s/database/$database/" -i ./script_sql/db-update-2016-06-28-build.sql
  30 +mysql --user=$username --password=$password -h $host < ./script_sql/db-update-2016-06-28-build.sql
  31 +
  32 +# Delete cakephp cache
  33 +sudo rm ../../tmp/cache/models/*
  34 +sudo rm ../../tmp/cache/persistent/*
  35 +
  36 +sudo chmod -R 777 ../../tmp
  37 +sudo chmod -R 777 ../../vendor
  38 +sudo chmod -R 777 ../../webroot
database/update/script_sql/db-update-2016-06-28.sql 0 → 100755
@@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
  1 +use database;
  2 +
  3 +ALTER TABLE `materiels` ADD `photo_id` int(11) DEFAULT NULL;
  4 +
  5 +ALTER TABLE `configurations` ADD `taille_max_doc` int (15) DEFAULT '8000000';
  6 +
  7 +ALTER TABLE `documents` ADD `photo` tinyint(1) DEFAULT NULL;
  8 +
  9 +Insert into type_documents(nom) values ('Bon de commande');
  10 +Insert into type_documents(nom) values ('Bon de livraison');
  11 +Insert into type_documents(nom) values ('Photo');
  12 +Insert into type_documents(nom) values ('Documentation technique');
  13 +Insert into type_documents(nom) values ('Spécifications');
  14 +Insert into type_documents(nom) values ('CR de maintenance');
  15 +Insert into type_documents(nom) values ('CR d\'étalonnage');
  16 +Insert into type_documents(nom) values ('Suivi de panne');
  17 +
  18 +Insert into type_documents(nom) values ('Certificat de garantie');
  19 +Insert into type_documents(nom) values ('Certificat de conformité');
  20 +Insert into type_documents(nom) values ('Manuel d\'utilisation');
install/installation.sh
@@ -98,6 +98,9 @@ fi @@ -98,6 +98,9 @@ fi
98 if [ ! -d "./webroot/img/qrcodes" ]; then 98 if [ ! -d "./webroot/img/qrcodes" ]; then
99 mkdir ./webroot/img/qrcodes 99 mkdir ./webroot/img/qrcodes
100 fi 100 fi
  101 +if [ ! -d "./webroot/img/photos" ]; then
  102 + mkdir ./webroot/img/photos
  103 +fi
101 104
102 if [ ! -d "./vendor/phpunit" ]; then 105 if [ ! -d "./vendor/phpunit" ]; then
103 ./composer.phar require --dev phpunit/phpunit 106 ./composer.phar require --dev phpunit/phpunit
src/Controller/DocumentsController.php
@@ -35,9 +35,17 @@ class DocumentsController extends AppController @@ -35,9 +35,17 @@ class DocumentsController extends AppController
35 return true; 35 return true;
36 } 36 }
37 } 37 }
  38 +
  39 + if($action == 'delete') {
  40 + if ($this->userHasRole('Administration')) {
  41 + return true;
  42 + }
  43 + }
38 44
39 //Pour tout le monde 45 //Pour tout le monde
40 if (in_array($action, ['view', 'add', 'ficheMateriel'])) return true; 46 if (in_array($action, ['view', 'add', 'ficheMateriel'])) return true;
  47 +
  48 + return false;
41 } 49 }
42 50
43 /** 51 /**
@@ -96,9 +104,27 @@ class DocumentsController extends AppController @@ -96,9 +104,27 @@ class DocumentsController extends AppController
96 if ($this->request->is('post')) { 104 if ($this->request->is('post')) {
97 $document = $this->Documents->patchEntity($document, $this->request->data); 105 $document = $this->Documents->patchEntity($document, $this->request->data);
98 106
  107 + if(isset($this->passedArgs[2]) && $this->passedArgs[2] == 'photo') {
  108 + $document->set('photo', 1);
  109 + }
  110 +
99 if ($this->Documents->save($document)) { 111 if ($this->Documents->save($document)) {
100 $this->Flash->success(__('Le fichier a bien été ajouté.')); 112 $this->Flash->success(__('Le fichier a bien été ajouté.'));
101 113
  114 + if(isset($this->passedArgs[2]) && $this->passedArgs[2] == 'photo') {
  115 + $materielTable = TableRegistry::get('Materiels');
  116 + $materiel = $materielTable->get($document->materiel_id);
  117 +
  118 + $photoIdOld = $materiel->get('photo_id');
  119 + if(isset($photoIdOld)) {
  120 + $docOld = TableRegistry::get('Documents')->get($photoIdOld);
  121 + $this->Documents->delete($docOld);
  122 + }
  123 +
  124 + $materiel->set('photo_id', $document->id);
  125 + $materielTable->save($materiel);
  126 + }
  127 +
102 $id = $document->materiel_id; 128 $id = $document->materiel_id;
103 if(empty($id)) { 129 if(empty($id)) {
104 $id = $document->suivi_id; 130 $id = $document->suivi_id;
@@ -120,6 +146,10 @@ class DocumentsController extends AppController @@ -120,6 +146,10 @@ class DocumentsController extends AppController
120 $suivi = $this->Documents->Suivis->find('list', [ 'keyField' => 'id', 'valueField' => 'id'])->where(['id =' => $this->passedArgs[0]]); 146 $suivi = $this->Documents->Suivis->find('list', [ 'keyField' => 'id', 'valueField' => 'id'])->where(['id =' => $this->passedArgs[0]]);
121 $this->set('suivi', $suivi); 147 $this->set('suivi', $suivi);
122 } 148 }
  149 +
  150 + if(isset($this->passedArgs[2]) && $this->passedArgs[2] == 'photo') {
  151 + $this->set('photo', 1);
  152 + }
123 153
124 154
125 $typesD = $this->Documents->TypeDocuments->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'TypeDocuments.nom']); 155 $typesD = $this->Documents->TypeDocuments->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'TypeDocuments.nom']);
@@ -141,6 +171,14 @@ class DocumentsController extends AppController @@ -141,6 +171,14 @@ class DocumentsController extends AppController
141 $this->request->allowMethod(['post', 'delete']); 171 $this->request->allowMethod(['post', 'delete']);
142 $document = $this->Documents->get($id); 172 $document = $this->Documents->get($id);
143 173
  174 + if($document->photo) {
  175 + $materielTable = TableRegistry::get('Materiels');
  176 + $materiel = $materielTable->get($document->materiel_id);
  177 +
  178 + $materiel->set('photo_id', null);
  179 + $materielTable->save($materiel);
  180 + }
  181 +
144 if ($this->Documents->delete($document)) { 182 if ($this->Documents->delete($document)) {
145 $this->Flash->success(__('Le fichier a bien été supprimé.')); 183 $this->Flash->success(__('Le fichier a bien été supprimé.'));
146 } else { 184 } else {
src/Controller/MaterielsController.php
@@ -217,6 +217,11 @@ class MaterielsController extends AppController @@ -217,6 +217,11 @@ class MaterielsController extends AppController
217 $typeSuivis = TableRegistry::get('TypeSuivis'); 217 $typeSuivis = TableRegistry::get('TypeSuivis');
218 $typeDocuments = TableRegistry::get('TypeDocuments'); 218 $typeDocuments = TableRegistry::get('TypeDocuments');
219 219
  220 + if($materiel->photo_id != null) {
  221 + $imgMateriel = $materiel->photo_id.'.'.TableRegistry::get('Documents')->get($materiel->photo_id)->get('type_doc');
  222 + $this->set('imgMateriel', $imgMateriel);
  223 + }
  224 +
220 $this->set('sites', $sites); 225 $this->set('sites', $sites);
221 $this->set('typeSuivis', $typeSuivis); 226 $this->set('typeSuivis', $typeSuivis);
222 $this->set('typeDocuments', $typeDocuments); 227 $this->set('typeDocuments', $typeDocuments);
src/Model/Entity/Configuration.php
@@ -39,6 +39,7 @@ use Cake\ORM\Entity; @@ -39,6 +39,7 @@ use Cake\ORM\Entity;
39 * @property bool $date_commande_facultative 39 * @property bool $date_commande_facultative
40 * @property bool $numero_labo_sans_annee 40 * @property bool $numero_labo_sans_annee
41 * @property int $prix_inventaire_administratif 41 * @property int $prix_inventaire_administratif
  42 + * @property int $taille_max_doc
42 */ 43 */
43 class Configuration extends Entity 44 class Configuration extends Entity
44 { 45 {
src/Model/Entity/Document.php
@@ -11,6 +11,7 @@ use Cake\ORM\Entity; @@ -11,6 +11,7 @@ use Cake\ORM\Entity;
11 * @property string $chemin 11 * @property string $chemin
12 * @property string $description 12 * @property string $description
13 * @property string $nom 13 * @property string $nom
  14 + * @property bool $photo
14 * @property int $materiel_id 15 * @property int $materiel_id
15 * @property \App\Model\Entity\Materiel $materiel 16 * @property \App\Model\Entity\Materiel $materiel
16 * @property int $suivi_id 17 * @property int $suivi_id
src/Model/Entity/Materiel.php
@@ -48,6 +48,7 @@ use Cake\ORM\Entity; @@ -48,6 +48,7 @@ use Cake\ORM\Entity;
48 * @property int $organisme_id 48 * @property int $organisme_id
49 * @property \App\Model\Entity\Organisme $organisme 49 * @property \App\Model\Entity\Organisme $organisme
50 * @property int $site_id 50 * @property int $site_id
  51 + * @property int $photo_id
51 * @property bool $hors_service 52 * @property bool $hors_service
52 * @property \App\Model\Entity\Site $site 53 * @property \App\Model\Entity\Site $site
53 * @property \App\Model\Entity\Document[] $documents 54 * @property \App\Model\Entity\Document[] $documents
src/Model/Table/AppTable.php
@@ -20,7 +20,7 @@ class AppTable extends Table @@ -20,7 +20,7 @@ class AppTable extends Table
20 // autoriser les caracteres spéciaux (pour une PHRASE ou paragraphe) : 20 // autoriser les caracteres spéciaux (pour une PHRASE ou paragraphe) :
21 // check_string PLUS ces symboles ====> & * > < ? % ! : , " ' 21 // check_string PLUS ces symboles ====> & * > < ? % ! : , " '
22 public function check_string_with_some_special_cars($check) { 22 public function check_string_with_some_special_cars($check) {
23 - return (bool) preg_match('/^['.$this->string.'?%!:,&*><\-\="'.']*$/', $check); 23 + return (bool) preg_match('/^['.$this->string.'?%!:,&#*><\-\="'.']*$/', $check);
24 } 24 }
25 25
26 public function check_mail($check) { 26 public function check_mail($check) {
src/Model/Table/ConfigurationsTable.php
@@ -80,7 +80,7 @@ class ConfigurationsTable extends AppTable @@ -80,7 +80,7 @@ class ConfigurationsTable extends AppTable
80 ->notEmpty('labNameShort'); 80 ->notEmpty('labNameShort');
81 81
82 $validator 82 $validator
83 - ->allowEmpty('labPresent'); 83 + ->notEmpty('labPresent');
84 84
85 $validator 85 $validator
86 ->allowEmpty('labUmr'); 86 ->allowEmpty('labUmr');
@@ -136,7 +136,10 @@ class ConfigurationsTable extends AppTable @@ -136,7 +136,10 @@ class ConfigurationsTable extends AppTable
136 ->allowEmpty('test'); 136 ->allowEmpty('test');
137 137
138 $validator 138 $validator
139 - ->allowEmpty('prix_inventaire_administratif'); 139 + ->notEmpty('prix_inventaire_administratif');
  140 +
  141 + $validator
  142 + ->notEmpty('taille_max_doc');
140 143
141 $validator 144 $validator
142 ->allowEmpty('date_commande_facultative'); 145 ->allowEmpty('date_commande_facultative');
src/Model/Table/DocumentsTable.php
@@ -6,6 +6,7 @@ use Cake\ORM\Query; @@ -6,6 +6,7 @@ use Cake\ORM\Query;
6 use Cake\ORM\RulesChecker; 6 use Cake\ORM\RulesChecker;
7 use Cake\ORM\Table; 7 use Cake\ORM\Table;
8 use Cake\Validation\Validator; 8 use Cake\Validation\Validator;
  9 +use Cake\ORM\TableRegistry;
9 10
10 /** 11 /**
11 * Documents Model 12 * Documents Model
@@ -73,6 +74,9 @@ class DocumentsTable extends AppTable @@ -73,6 +74,9 @@ class DocumentsTable extends AppTable
73 74
74 $validator 75 $validator
75 ->allowEmpty('materiel_id'); 76 ->allowEmpty('materiel_id');
  77 +
  78 + $validator
  79 + ->allowEmpty('photo');
76 80
77 $validator 81 $validator
78 ->allowEmpty('suivi_id'); 82 ->allowEmpty('suivi_id');
@@ -90,10 +94,13 @@ class DocumentsTable extends AppTable @@ -90,10 +94,13 @@ class DocumentsTable extends AppTable
90 */ 94 */
91 public function buildRules(RulesChecker $rules) 95 public function buildRules(RulesChecker $rules)
92 { 96 {
  97 + $config = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first();
  98 +
93 $checkSizeDoc= function($entity) { 99 $checkSizeDoc= function($entity) {
  100 + $config = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first();
94 $size = $entity->get('chemin_file')['size']; 101 $size = $entity->get('chemin_file')['size'];
95 if(isset($size)) { 102 if(isset($size)) {
96 - if($size > 1000000) { 103 + if($size > $config->taille_max_doc) {
97 return false; 104 return false;
98 } else { 105 } else {
99 return true; 106 return true;
@@ -104,11 +111,28 @@ class DocumentsTable extends AppTable @@ -104,11 +111,28 @@ class DocumentsTable extends AppTable
104 111
105 }; 112 };
106 113
  114 + $checkPhoto= function($entity) {
  115 + if($entity->get('photo')) {
  116 + $extension = strtolower(pathinfo($entity->get('chemin_file')['name'] , PATHINFO_EXTENSION));
  117 + return in_array($extension, ['png', 'jpg', 'jpeg']);
  118 + }
  119 + else {
  120 + return true;
  121 + }
  122 + };
  123 +
  124 +
107 $rules->add($checkSizeDoc, [ 125 $rules->add($checkSizeDoc, [
108 'errorField' => 'chemin_file', 126 'errorField' => 'chemin_file',
109 - 'message' => 'Le fichier ne peut pas avoir une taille supérieur à 8mo.' 127 + 'message' => 'Le fichier ne peut pas avoir une taille supérieur à '.substr($config->taille_max_doc/(1024*1024), 0, 4).' Mo.'
110 ]); 128 ]);
111 129
  130 + $rules->add($checkPhoto, [
  131 + 'errorField' => 'chemin_file',
  132 + 'message' => 'La photo doit etre au format png, jpg (ou jpeg).'
  133 + ]);
  134 +
  135 +
112 return $rules; 136 return $rules;
113 } 137 }
114 138
@@ -144,7 +168,12 @@ class DocumentsTable extends AppTable @@ -144,7 +168,12 @@ class DocumentsTable extends AppTable
144 $file = $entity->get('chemin_file'); 168 $file = $entity->get('chemin_file');
145 if(!empty($file['tmp_name'])) { 169 if(!empty($file['tmp_name'])) {
146 $extension = strtolower(pathinfo($file['name'], PATHINFO_EXTENSION)); 170 $extension = strtolower(pathinfo($file['name'], PATHINFO_EXTENSION));
147 - move_uploaded_file($file['tmp_name'], 'files'.DS.$entity->get('id').'.'.$extension); 171 + if($entity->get('photo')) {
  172 + move_uploaded_file($file['tmp_name'], 'img'.DS.'photos'.DS.$entity->get('id').'.'.$extension);
  173 + }
  174 + else {
  175 + move_uploaded_file($file['tmp_name'], 'files'.DS.$entity->get('id').'.'.$extension);
  176 + }
148 } 177 }
149 178
150 } 179 }
@@ -154,8 +183,12 @@ class DocumentsTable extends AppTable @@ -154,8 +183,12 @@ class DocumentsTable extends AppTable
154 **/ 183 **/
155 public function afterDelete($event, $entity, $options) { 184 public function afterDelete($event, $entity, $options) {
156 $nomFichier = $entity->get('id').'.'.$entity->get('type_doc'); 185 $nomFichier = $entity->get('id').'.'.$entity->get('type_doc');
157 - unlink('files'.DS.$nomFichier);  
158 - 186 + if($entity->get('photo')) {
  187 + unlink('img'.DS.'photos'.DS.$nomFichier);
  188 + }
  189 + else {
  190 + unlink('files'.DS.$nomFichier);
  191 + }
159 } 192 }
160 193
161 } 194 }
src/Model/Table/MaterielsTable.php
@@ -165,6 +165,9 @@ class MaterielsTable extends AppTable @@ -165,6 +165,9 @@ class MaterielsTable extends AppTable
165 ->allowEmpty('date_archivage'); 165 ->allowEmpty('date_archivage');
166 166
167 $validator 167 $validator
  168 + ->allowEmpty('photo_id');
  169 +
  170 + $validator
168 ->boolean('etiquette') 171 ->boolean('etiquette')
169 ->allowEmpty('etiquette'); 172 ->allowEmpty('etiquette');
170 173
src/Template/Configurations/edit.ctp
@@ -5,48 +5,83 @@ @@ -5,48 +5,83 @@
5 5
6 <fieldset> 6 <fieldset>
7 <?php 7 <?php
  8 + echo '<h3 id="t_informations" style="cursor: pointer;">';
  9 + echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_informations"></i>';
  10 + echo '<span style="text-decoration: underline;">Modes</span>';
  11 + echo '</h3>';
  12 + echo '<div id="informations" style="margin-bottom: 20px;">';
  13 + echo $this->Form->input('mode_install');
  14 + echo $this->Form->input('mode_debug');
  15 + echo '</div>';
  16 +
  17 +
  18 + echo '<h3 id="t_informations_admin" style="cursor: pointer;">';
  19 + echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_informations_admin"></i>';
  20 + echo '<span style="text-decoration: underline;">Laboratoire</span>';
  21 + echo '</h3>';
  22 + echo '<div id="informations_admin" style="margin-bottom: 20px;">';
  23 + echo $this->Form->input('labName', ['label' => 'Nom complet du Labo']);
  24 + echo $this->Form->input('labNameShort', ['label' => 'Nom court du Labo']);
  25 + echo $this->Form->input('labPresent', ['label' => 'Liaison présentation nom du Labo']);
  26 + echo $this->Form->input('labUmr', ['label' => 'UMR du Labo']);
  27 + echo '</div>';
8 28
  29 +
  30 + echo '<h3 id="t_suivis" style="cursor: pointer;">';
  31 + echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_suivis"></i>';
  32 + echo '<span style="text-decoration: underline;">Divers</span>';
  33 + echo '</h3>';
  34 + echo '<div id="suivis" style="margin-bottom: 20px;">';
  35 + echo $this->Form->input('hasPrinter', ['label' => 'Imprimante disponible']);
  36 +
  37 + echo $this->Form->input('numero_labo_sans_annee', ['label' => 'Numero labo sans année']);
  38 + echo $this->Form->input('date_commande_facultative', ['label' => 'Champ date commande non obligatoire']);
  39 +
  40 + echo $this->Form->input('prix_inventaire_administratif', ['label' => 'Seuil (prix) Matériel administratif']);
  41 + echo $this->Form->input('taille_max_doc', ['label' => 'Taille max documents (octets)']);
  42 +
  43 + echo $this->Form->input('nom_groupe_thematique', ['label' => 'Label groupe thématique']);
  44 + echo $this->Form->input('nom_groupe_metier', ['label' => 'Label groupe métier']);
  45 +
  46 +
  47 + echo '</div>';
  48 +
  49 +
  50 + echo '<h3 id="t_emprunts" style="cursor: pointer;">';
  51 + echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_emprunts"></i>';
  52 + echo '<span style="text-decoration: underline;">Emails</span>';
  53 + echo '</h3>';
  54 + echo '<div id="emprunts" style="margin-bottom: 20px;">';
  55 + echo $this->Form->input('envoi_mail_management_dev', ['label' => 'Ne pas envoyer les mails de management en local']);
  56 + echo $this->Form->input('sender_mail', ['label' => 'Attribut "sender" (mail)']);
  57 + echo $this->Form->input('emailGuest1', ['label' => 'Mail guest 1']);
  58 + echo $this->Form->input('emailGuest2', ['label' => 'Mail guest 2']);
  59 + echo $this->Form->input('emailGuest3', ['label' => 'Mail guest 3']);
  60 + echo $this->Form->input('emailGuest4', ['label' => 'Mail guest 4']);
  61 + echo $this->Form->input('emailGuest5', ['label' => 'Mail guest 5']);
  62 + echo $this->Form->input('emailGuest6', ['label' => 'Mail guest 6']);
  63 + echo $this->Form->input('emailGuest7', ['label' => 'Mail guest 7']);
  64 + echo $this->Form->input('emailGuest8', ['label' => 'Mail guest 8']);
  65 + echo $this->Form->input('emailGuest9', ['label' => 'Mail guest 9']);
  66 + echo $this->Form->input('emailGuest10', ['label' => 'Mail guest 10']);
  67 + echo '</div>';
  68 +
  69 +
  70 + echo '<h3 id="t_fichiers" style="cursor: pointer;">';
  71 + echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_fichiers"></i>';
  72 + echo '<span style="text-decoration: underline;">LDAP</span>';
  73 + echo '</h3>';
  74 + echo '<div id="fichiers" style="margin-bottom: 20px;">';
  75 + echo $this->Form->input('use_ldap', ['label' => 'Utilisation du LDAP', 'onchange' => 'display_ldap();']);
  76 + echo '<div id="ldap" style="border-top: 1px solid #CCC; border-bottom: 1px solid #CCC; margin-bottom: 0; background: #EEE; '.$disp.'">';
  77 + echo $this->Form->input('host_ldap', ['label' => 'Host du LDAP']);
  78 + echo $this->Form->input('port_ldap', ['label' => 'Port du LDAP']);
  79 + echo $this->Form->input('authentificationType_ldap', ['label' => 'Type d\'authentification du LDAP']);
  80 + echo $this->Form->input('baseDn_ldap', ['label' => 'Base DN du LDAP']);
  81 + echo $this->Form->input('filter_ldap', ['label' => 'Filtre du LDAP']);
  82 + echo '</div>';
  83 + echo '</div>';
9 84
10 - echo $this->Form->input('mode_install');  
11 - echo $this->Form->input('mode_debug');  
12 -  
13 - echo $this->Form->input('hasPrinter', ['label' => 'Imprimante disponible']);  
14 -  
15 - echo $this->Form->input('labName', ['label' => 'Nom complet du Labo']);  
16 - echo $this->Form->input('labNameShort', ['label' => 'Nom court du Labo']);  
17 - echo $this->Form->input('labPresent', ['label' => 'Liaison présentation nom du Labo']);  
18 - echo $this->Form->input('labUmr', ['label' => 'UMR du Labo']);  
19 -  
20 - echo $this->Form->input('nom_groupe_thematique', ['label' => 'Label groupe thématique']);  
21 - echo $this->Form->input('nom_groupe_metier', ['label' => 'Label groupe métier']);  
22 -  
23 - echo $this->Form->input('prix_inventaire_administratif', ['label' => 'Seuil (prix) Matériel administratif']);  
24 -  
25 -  
26 - echo $this->Form->input('envoi_mail_management_dev', ['label' => 'Ne pas envoyer les mails de management en local']);  
27 - echo $this->Form->input('sender_mail', ['label' => 'Attribut "sender" (mail)']);  
28 - echo $this->Form->input('emailGuest1', ['label' => 'Mail guest 1']);  
29 - echo $this->Form->input('emailGuest2', ['label' => 'Mail guest 2']);  
30 - echo $this->Form->input('emailGuest3', ['label' => 'Mail guest 3']);  
31 - echo $this->Form->input('emailGuest4', ['label' => 'Mail guest 4']);  
32 - echo $this->Form->input('emailGuest5', ['label' => 'Mail guest 5']);  
33 - echo $this->Form->input('emailGuest6', ['label' => 'Mail guest 6']);  
34 - echo $this->Form->input('emailGuest7', ['label' => 'Mail guest 7']);  
35 - echo $this->Form->input('emailGuest8', ['label' => 'Mail guest 8']);  
36 - echo $this->Form->input('emailGuest9', ['label' => 'Mail guest 9']);  
37 - echo $this->Form->input('emailGuest10', ['label' => 'Mail guest 10']);  
38 -  
39 - echo $this->Form->input('numero_labo_sans_annee', ['label' => 'Numero labo sans année']);  
40 - echo $this->Form->input('date_commande_facultative', ['label' => 'Champ date commande non obligatoire']);  
41 -  
42 - echo $this->Form->input('use_ldap', ['label' => 'Utilisation du LDAP', 'onchange' => 'display_ldap();']);  
43 - echo '<div id="ldap" style="border-top: 1px solid #CCC; border-bottom: 1px solid #CCC; margin-bottom: 0; background: #EEE; '.$disp.'">';  
44 - echo $this->Form->input('host_ldap', ['label' => 'Host du LDAP']);  
45 - echo $this->Form->input('port_ldap', ['label' => 'Port du LDAP']);  
46 - echo $this->Form->input('authentificationType_ldap', ['label' => 'Type d\'authentification du LDAP']);  
47 - echo $this->Form->input('baseDn_ldap', ['label' => 'Base DN du LDAP']);  
48 - echo $this->Form->input('filter_ldap', ['label' => 'Filtre du LDAP']);  
49 - echo '</div>';  
50 ?> 85 ?>
51 </fieldset> 86 </fieldset>
52 <?= $this->Form->submit(__('Valider')) ?> 87 <?= $this->Form->submit(__('Valider')) ?>
src/Template/Configurations/view.ctp
@@ -86,6 +86,7 @@ @@ -86,6 +86,7 @@
86 echo '<tr><th style="width: 250px;"></th><th></th></tr>'; 86 echo '<tr><th style="width: 250px;"></th><th></th></tr>';
87 $displayElement(__('Imprimante disponible'), $print); 87 $displayElement(__('Imprimante disponible'), $print);
88 $displayElement(__('Seuil (prix) Matériel administratif'), h($configurationObj->prix_inventaire_administratif)); 88 $displayElement(__('Seuil (prix) Matériel administratif'), h($configurationObj->prix_inventaire_administratif));
  89 + $displayElement(__('Taille max documents (octets)'), substr($configurationObj->taille_max_doc/(1024*1024), 0, 4).' Mo');
89 $displayElement(__('Numero labo sans année'), $numLab); 90 $displayElement(__('Numero labo sans année'), $numLab);
90 $displayElement(__('Champ date commande non obligatoire'), $dateObl); 91 $displayElement(__('Champ date commande non obligatoire'), $dateObl);
91 $displayElement(__('Label groupe thématique'), h($configurationObj->nom_groupe_thematique)); 92 $displayElement(__('Label groupe thématique'), h($configurationObj->nom_groupe_thematique));
src/Template/Documents/add.ctp
@@ -2,8 +2,12 @@ @@ -2,8 +2,12 @@
2 <div class="documents form"> 2 <div class="documents form">
3 <?= $this->Form->create($document, ['type' => 'file']) ?> 3 <?= $this->Form->create($document, ['type' => 'file']) ?>
4 <fieldset> 4 <fieldset>
5 - <h2><i class="icon-plus"></i> Lier un document</h2>  
6 - <?php 5 + <?php
  6 + if(isset($photo)) {
  7 + echo '<h2><i class="icon-plus"></i> Lier une photo</h2>';
  8 + }else {
  9 + echo '<h2><i class="icon-plus"></i> Lier un document</h2>';
  10 + }
7 if(isset($materiel)) { 11 if(isset($materiel)) {
8 echo $this->Form->input('materiel_id', ['label' => 'N° materiel labo', 'options' => $materiel, 'default' => $this->passedArgs[0], 'readonly' => true]); 12 echo $this->Form->input('materiel_id', ['label' => 'N° materiel labo', 'options' => $materiel, 'default' => $this->passedArgs[0], 'readonly' => true]);
9 } 13 }
@@ -13,9 +17,17 @@ @@ -13,9 +17,17 @@
13 17
14 echo $this->Form->input('nom'); 18 echo $this->Form->input('nom');
15 echo $this->Form->input('type_document_id', ['label' => 'Type', 'options' => $typesD, 'default' => 1]); 19 echo $this->Form->input('type_document_id', ['label' => 'Type', 'options' => $typesD, 'default' => 1]);
16 -  
17 echo $this->Form->input('description'); 20 echo $this->Form->input('description');
18 - echo $this->Form->input('chemin_file', ['label' => 'Fichier (10 Mo max)', 'type' => 'file']); 21 + echo $this->Form->input('chemin_file', ['label' => 'Fichier ('.substr($configuration->taille_max_doc/(1024*1024), 0, 4).' Mo max)', 'type' => 'file']);
  22 +
  23 +
  24 + if(isset($photo)) {
  25 + echo $this->Form->hidden('photo', ['default' => 1]);
  26 + }
  27 + else {
  28 + echo $this->Form->hidden('photo', ['default' => 0]);
  29 + }
  30 +
19 31
20 32
21 ?> 33 ?>
src/Template/Documents/index.ctp
@@ -9,11 +9,18 @@ @@ -9,11 +9,18 @@
9 <th><?= $this->Paginator->sort('suivi_id', 'Suivi') ?></th> 9 <th><?= $this->Paginator->sort('suivi_id', 'Suivi') ?></th>
10 <th><?= $this->Paginator->sort('type_document_id', 'Type') ?></th> 10 <th><?= $this->Paginator->sort('type_document_id', 'Type') ?></th>
11 <th><?= $this->Paginator->sort('type_doc', 'Extension fichier') ?></th> 11 <th><?= $this->Paginator->sort('type_doc', 'Extension fichier') ?></th>
  12 + <th><?= $this->Paginator->sort('photo', 'Photo') ?></th>
12 <th class="actions"><?= __('') ?></th> 13 <th class="actions"><?= __('') ?></th>
13 </tr> 14 </tr>
14 </thead> 15 </thead>
15 <tbody> 16 <tbody>
16 - <?php foreach ($documents as $document): ?> 17 + <?php foreach ($documents as $document):
  18 + if($document->photo) {
  19 + $p = 'Oui';
  20 + } else {
  21 + $p = '';
  22 + }
  23 + ?>
17 <tr> 24 <tr>
18 <td class="smallText"><?= $this->Html->link($document->nom, ['action' => 'view', $document->id]) ?></td> 25 <td class="smallText"><?= $this->Html->link($document->nom, ['action' => 'view', $document->id]) ?></td>
19 26
@@ -27,14 +34,21 @@ @@ -27,14 +34,21 @@
27 34
28 <td class="smallText"><?= $document->has('type_document') ? h($document->type_document->nom) : '' ?></td> 35 <td class="smallText"><?= $document->has('type_document') ? h($document->type_document->nom) : '' ?></td>
29 <td class="smallText"><?= h($document->type_doc) ?></td> 36 <td class="smallText"><?= h($document->type_doc) ?></td>
  37 + <td class="smallText"><?= $p ?></td>
30 38
31 <td class="actions" style="padding: 6px 0;"> 39 <td class="actions" style="padding: 6px 0;">
32 <?= $this->Html->link(__('<i class="icon-eye-open"></i>'), ['action' => 'view', $document->id], ['title' => 'Visualiser', 'style' => 'margin: 0 2px', 'escape' => false ]) ?> 40 <?= $this->Html->link(__('<i class="icon-eye-open"></i>'), ['action' => 'view', $document->id], ['title' => 'Visualiser', 'style' => 'margin: 0 2px', 'escape' => false ]) ?>
33 - <?= $this->Form->postLink(__('<i class="icon-download"></i>'), '/webroot/files/'.$document->id.'.'.$document->type_doc, ['title' => 'Télécharger', 'style' => 'margin: 0 2px', 'escape' => false ]) ?> 41 + <?php
  42 + if($document->photo) {
  43 + echo $this->Form->postLink(__('<i class="icon-download"></i>'), '/webroot/img/photos/'.$document->id.'.'.$document->type_doc, ['title' => 'Télécharger', 'style' => 'margin: 0 2px', 'escape' => false ]);
  44 + }else {
  45 + echo $this->Form->postLink(__('<i class="icon-download"></i>'), '/webroot/files/'.$document->id.'.'.$document->type_doc, ['title' => 'Télécharger', 'style' => 'margin: 0 2px', 'escape' => false ]);
  46 + }
  47 + ?>
34 <?= $this->Form->postLink(__('<i class="icon-trash"></i>'), ['action' => 'delete', $document->id], ['title' => 'Supprimer', 'style' => 'margin: 0 2px', 'escape' => false, 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $document->id)]) ?> 48 <?= $this->Form->postLink(__('<i class="icon-trash"></i>'), ['action' => 'delete', $document->id], ['title' => 'Supprimer', 'style' => 'margin: 0 2px', 'escape' => false, 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $document->id)]) ?>
35 </td> 49 </td>
36 </tr> 50 </tr>
37 - <?php endforeach; ?> 51 + <?php endforeach; ?>
38 </tbody> 52 </tbody>
39 </table> 53 </table>
40 54
src/Template/Documents/view.ctp
@@ -20,7 +20,13 @@ @@ -20,7 +20,13 @@
20 $displayElement(__('Description'), h($document->description)); 20 $displayElement(__('Description'), h($document->description));
21 $displayElement(__('Extension fichier'), h($document->type_doc)); 21 $displayElement(__('Extension fichier'), h($document->type_doc));
22 22
23 - echo '<tr><td><strong>Fichier</strong></td><td><a href="'.$this->request->webroot.'webroot/files/'.$document->id.'.'.$document->type_doc.'">Télécharger fichier</a></td></tr>'; 23 +
  24 + if($document->photo) {
  25 + echo '<tr><td><strong>Fichier</strong></td><td><a href="'.$this->request->webroot.'webroot/img/photos/'.$document->id.'.'.$document->type_doc.'">Télécharger fichier</a></td></tr>';
  26 + }else {
  27 + echo '<tr><td><strong>Fichier</strong></td><td><a href="'.$this->request->webroot.'webroot/files/'.$document->id.'.'.$document->type_doc.'">Télécharger fichier</a></td></tr>';
  28 + }
  29 +
24 30
25 31
26 32
src/Template/Layout/default.ctp
@@ -94,7 +94,7 @@ $cakeDescription = &#39;Labinvent 2&#39;; @@ -94,7 +94,7 @@ $cakeDescription = &#39;Labinvent 2&#39;;
94 </i></td> 94 </i></td>
95 <td id="version"> 95 <td id="version">
96 <!-- VERSION M.m.f.b (version (M)ajeure, version (m)ineure, numero de nouvelle (f)onctionnalite, numero de (b)ugfix) --> 96 <!-- VERSION M.m.f.b (version (M)ajeure, version (m)ineure, numero de nouvelle (f)onctionnalite, numero de (b)ugfix) -->
97 - <font color="black">VERSION 2.5.0.0 (27/06/2016)</font> 97 + <font color="black">VERSION 2.5.1.0 (28/06/2016)</font>
98 </td> 98 </td>
99 </tr> 99 </tr>
100 </table> 100 </table>
src/Template/Materiels/view.ctp
1 1
2 <div class="materiels view"> 2 <div class="materiels view">
3 3
4 - <h2>  
5 - <?php if (h($materiel->status) == 'ARCHIVED') echo '<i class="icon-inbox"></i> ';  
6 - $panne = '';  
7 - if(h($materiel->hors_service)) {  
8 - $panne = ' (HORS SERVICE)';  
9 - }  
10 - ?> 4 + <h2>
  5 + <?php
  6 +
  7 +if (h ( $materiel->status ) == 'ARCHIVED')
  8 + echo '<i class="icon-inbox"></i> ';
  9 + $panne = '';
  10 + if (h ( $materiel->hors_service )) {
  11 + $panne = ' (HORS SERVICE)';
  12 + }
  13 + ?>
11 14
12 <?= h($materiel->designation).$panne?> 15 <?= h($materiel->designation).$panne?>
13 <span style="font-size: 70%; color: grey;"> 16 <span style="font-size: 70%; color: grey;">
14 - <?= h($materiel->numero_laboratoire) ?> 17 + <?= h($materiel->numero_laboratoire)?>
15 <?php if (h($materiel->status) == 'ARCHIVED') echo ' (Archivé)'; ?> 18 <?php if (h($materiel->status) == 'ARCHIVED') echo ' (Archivé)'; ?>
16 </span> 19 </span>
17 - <?php  
18 - //Url transformé en QrCode  
19 - $this->request->session()->write("qrUrl", $this->request->env('SERVER_NAME').$this->request->env('REQUEST_URI'));  
20 -  
21 - $this->requestAction('/QrCodes/creer/');  
22 - echo $this->Html->image('qrcodes/'.$this->request->session()->read("filename"), [  
23 - 'alt' => 'QrCode : '.$materiel->numero_laboratoire,  
24 - 'style' => 'float: right']);  
25 -  
26 - ?>  
27 - </h2>  
28 -  
29 - <div class="actions" style="margin-bottom: 20px; width: 100%; float: none; padding: 10px 0;">  
30 - <?php  
31 - if (in_array($materiel->status, ['CREATED', 'VALIDATED'])) {  
32 - if(($role == 'Utilisateur' && (in_array($username, [$materiel->nom_createur, $materiel->nom_responsable]))) || (in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur'])) || ($role == 'Responsable' && ($materiel->groupes_metier_id == $userConnected->groupes_metier_id || $materiel->groupes_thematique_id == $userConnected->groupe_thematique_id))) {  
33 - echo $this->Html->link(__('<i class="icon-pencil"></i> Editer ce matériel'),  
34 - ['action' => 'edit', $materiel->id],  
35 - ['escape' => false,  
36 - 'onclick' => 'return true;',  
37 - 'style' => 'margin-right: 10px'  
38 - ]);  
39 - }  
40 - }else {  
41 - if(in_array($role, ['Administration Plus', 'Super Administrateur'])) {  
42 - echo $this->Html->link(__('<i class="icon-pencil"></i> Editer ce matériel'),  
43 - ['action' => 'edit', $materiel->id],  
44 - ['escape' => false,  
45 - 'onclick' => 'return true;',  
46 - 'style' => 'margin-right: 10px'  
47 - ]);  
48 - }  
49 - }  
50 -  
51 - if($materiel->status == 'VALIDATED') {  
52 - // BOUTON NOUVEAU SUIVI  
53 - echo $this->Html->link('<i class="icon-plus"></i> Nouv. Suivi',  
54 - ['controller' => 'suivis',  
55 - 'action' => 'add',  
56 - $materiel->id],  
57 - ['title' => 'Faire un nouveau suivi de ce matériel',  
58 - 'style' => 'margin-right: 10px',  
59 - 'escape' => false]  
60 - ); // End link  
61 -  
62 - // BOUTON NOUVEL EMPRUNT  
63 - echo $this->Html->link('<i class="icon-plus"></i> Nouv. Emprunt',  
64 - ['controller' => 'emprunts',  
65 - 'action' => 'add',  
66 - $materiel->id],  
67 - ['title' => 'Faire un nouvel emprunt de ce matériel',  
68 - 'style' => 'margin-right: 10px',  
69 - 'escape' => false]  
70 - ); // End link  
71 -  
72 - 20 + </h2>
  21 + </br>
  22 + <div style="text-align: center;">
  23 + <?php
  24 +
  25 + if (isset ( $imgMateriel )) {
  26 + echo $this->Html->image ( 'photos/' . $imgMateriel, [
  27 + 'alt' => 'Photo matériel',
  28 + 'style' => 'max-width: 300px; text-align: center;'
  29 + ] );
  30 + }
  31 +
  32 + // Url transformé en QrCode
  33 + $this->request->session ()->write ( "qrUrl", $this->request->env ( 'SERVER_NAME' ) . $this->request->env ( 'REQUEST_URI' ) );
  34 +
  35 + $this->requestAction ( '/QrCodes/creer/' );
  36 + echo $this->Html->image ( 'qrcodes/' . $this->request->session ()->read ( "filename" ), [
  37 + 'alt' => 'QrCode : ' . $materiel->numero_laboratoire,
  38 + 'style' => 'float: right'
  39 + ] );
  40 + echo '</div>';
  41 + ?>
  42 + </br>
73 43
74 - }  
75 -  
76 - echo $this->Html->link('<i class="icon-file"></i> Lier un Doc.',  
77 - ['controller' => 'documents',  
78 - 'action' => 'add',  
79 - $materiel->id, 'mat'],  
80 - ['title' => 'Attacher un Doc. à ce matériel',  
81 - 'style' => 'margin-right: 10px',  
82 - 'escape' => false]  
83 - );  
84 -  
85 -  
86 - if(in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur'])) {  
87 - if (($materiel->status == 'VALIDATED') || ($materiel->status == 'CREATED')) {  
88 - echo $this->Html->link('<i class="icon-file"></i> Doc. admission',  
89 - ['controller' => 'documents', 'action' => 'admission', $materiel->numero_laboratoire],  
90 - ['title' => 'Voir le document d\'admission', 'style' => 'margin-right: 10px', 'escape' => false]);  
91 - }  
92 - // Doc sortie (admin only)  
93 - else if (($materiel->status == 'ARCHIVED') || ($materiel->status == 'TOBEARCHIVED')) {  
94 - echo $this->Html->link('<i class="icon-file"></i> Doc. sortie',  
95 - ['controller' => 'documents', 'action' => 'sortie', $materiel->numero_laboratoire],  
96 - ['title' => 'Voir le document de sortie', 'style' => 'margin-right: 10px', 'escape' => false]);  
97 - }  
98 - }  
99 -  
100 - if(in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur']) || ($role == 'Responsable' && ($materiel->groupes_metier_id == $userConnected->groupes_metier_id || $materiel->groupes_thematique_id == $userConnected->groupe_thematique_id))) {  
101 - // 2) Bouton de changement de statut : Valider, Demander archivage, ou Archiver  
102 - switch ($materiel->status) {  
103 - case "CREATED":  
104 - echo $this->Html->link('<i class="icon-ok-sign"></i> Valider',  
105 - ['action' => 'statusValidated', $materiel->id, 'view'],  
106 - ['title' => 'Valider le matériel', 'style' => 'margin-right: 10px', 'escape' => false]);  
107 - break;  
108 -  
109 - case "VALIDATED":  
110 - echo $this->Html->link('<i class="icon-ok-sign"></i> Demander sortie',  
111 - ['action' => 'statusToBeArchived', $materiel->id, 'view'],  
112 - ['title' => 'Demander la sortie de l\'inventaire', 'style' => 'margin-right: 10px', 'escape' => false]);  
113 - break;  
114 -  
115 - case "TOBEARCHIVED":  
116 - if($role != 'Responsable'&& $role != 'Super Administrateur') {  
117 - echo $this->Html->link('<i class="icon-ok-sign"></i> Sortie inventaire',  
118 - ['action' => 'statusArchived', $materiel->id, 'view'],  
119 - ['title' => 'Sortir définitivement de l\'inventaire', 'style' => 'margin-right: 10px', 'escape' => false,  
120 - 'confirm' => 'Êtes-vous sur de bien vouloir archiver ' . $materiel->designation . ' ?']);  
121 - }  
122 - break;  
123 -  
124 - } // switch  
125 - }  
126 -  
127 - echo $this->Html->link('<i class="icon-pencil"></i> Copier ce matériel',  
128 - ['controller' => 'materiels',  
129 - 'action' => 'add', $materiel->id],  
130 - ['title' => 'Copier ce matériel',  
131 - 'style' => 'margin-right: 10px; margin-top: 10px; display: inline-block',  
132 - 'escape' => false]);  
133 -  
134 -  
135 - echo $this->Html->link('<i class="icon-file"></i> Fiche matériel',  
136 - ['controller' => 'documents', 'action' => 'ficheMateriel', $materiel->numero_laboratoire],  
137 - ['title' => 'Voir la fiche du materiel', 'style' => 'margin-right: 10px', 'escape' => false]);  
138 -  
139 - // BOUTON ETIQUETTE POSEE  
140 - if ($configuration->hasPrinter && in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur'])) {  
141 - echo '<div class="actions" style="margin-bottom: 20px; width: 100%; float: none; padding: 10px 0;">';  
142 -  
143 - $action = 'Impr. ruban';  
144 - echo $this->Html->link('<i class="icon-print"></i> '.$action,  
145 - ['action' => 'printLabelRuban', h($materiel->id), 'view'],  
146 - ['title' => 'Imprimer sur un ruban 12mm',  
147 - 'style' => 'margin-right: 10px',  
148 - 'escape' => false,  
149 - 'onclick' => 'return true;'  
150 - ]); // End link  
151 -  
152 -  
153 - echo $this->Html->link(  
154 - '<i class="icon-file"></i> '.  
155 - (h($materiel->etiquette) ? "Etiquette NON posée sur le matériel" : "Etiquette posée sur le matériel"),  
156 - ['controller' => 'materiels',  
157 - 'action' => h($materiel->etiquette) ?'setLabelIsNotPlaced':'setLabelIsPlaced', h($materiel->id), 'view'],  
158 - ['title' => h($materiel->etiquette) ?  
159 - "En cliquant sur ce bouton, vous déclarez que l'étiquette n'a PAS été posée sur le matériel":  
160 - "En cliquant sur ce bouton, vous certifiez que l'étiquette a bien été posée sur le matériel",  
161 - 'style' => 'margin-left: 0px',  
162 - 'escape' => false]  
163 - ); // End link  
164 -  
165 -  
166 - echo '</div>';  
167 - }  
168 -  
169 -  
170 - ?> 44 + <div class="actions"
  45 + style="margin-bottom: 20px; width: 100%; float: none; padding: 10px 0;">
  46 + <?php
  47 + if (in_array ( $materiel->status, [
  48 + 'CREATED',
  49 + 'VALIDATED'
  50 + ] )) {
  51 + if (($role == 'Utilisateur' && (in_array ( $username, [
  52 + $materiel->nom_createur,
  53 + $materiel->nom_responsable
  54 + ] ))) || (in_array ( $role, [
  55 + 'Administration',
  56 + 'Administration Plus',
  57 + 'Super Administrateur'
  58 + ] )) || ($role == 'Responsable' && ($materiel->groupes_metier_id == $userConnected->groupes_metier_id || $materiel->groupes_thematique_id == $userConnected->groupe_thematique_id))) {
  59 + echo $this->Html->link ( __ ( '<i class="icon-pencil"></i> Editer ce matériel' ), [
  60 + 'action' => 'edit',
  61 + $materiel->id
  62 + ], [
  63 + 'escape' => false,
  64 + 'onclick' => 'return true;',
  65 + 'style' => 'margin-right: 10px'
  66 + ] );
  67 + }
  68 + } else {
  69 + if (in_array ( $role, [
  70 + 'Administration Plus',
  71 + 'Super Administrateur'
  72 + ] )) {
  73 + echo $this->Html->link ( __ ( '<i class="icon-pencil"></i> Editer ce matériel' ), [
  74 + 'action' => 'edit',
  75 + $materiel->id
  76 + ], [
  77 + 'escape' => false,
  78 + 'onclick' => 'return true;',
  79 + 'style' => 'margin-right: 10px'
  80 + ] );
  81 + }
  82 + }
  83 +
  84 + if ($materiel->status == 'VALIDATED') {
  85 + // BOUTON NOUVEAU SUIVI
  86 + echo $this->Html->link ( '<i class="icon-plus"></i> Nouv. Suivi', [
  87 + 'controller' => 'suivis',
  88 + 'action' => 'add',
  89 + $materiel->id
  90 + ], [
  91 + 'title' => 'Faire un nouveau suivi de ce matériel',
  92 + 'style' => 'margin-right: 10px',
  93 + 'escape' => false
  94 + ] ); // End link
  95 +
  96 + // BOUTON NOUVEL EMPRUNT
  97 + echo $this->Html->link ( '<i class="icon-plus"></i> Nouv. Emprunt', [
  98 + 'controller' => 'emprunts',
  99 + 'action' => 'add',
  100 + $materiel->id
  101 + ], [
  102 + 'title' => 'Faire un nouvel emprunt de ce matériel',
  103 + 'style' => 'margin-right: 10px',
  104 + 'escape' => false
  105 + ] ); // End link
  106 + }
  107 +
  108 + if (($role == 'Utilisateur' && (in_array ( $username, [
  109 + $materiel->nom_createur,
  110 + $materiel->nom_responsable
  111 + ] ))) || (in_array ( $role, [
  112 + 'Administration',
  113 + 'Administration Plus',
  114 + 'Super Administrateur'
  115 + ] )) || ($role == 'Responsable' && ($materiel->groupes_metier_id == $userConnected->groupes_metier_id || $materiel->groupes_thematique_id == $userConnected->groupe_thematique_id))) {
  116 +
  117 + echo $this->Html->link ( '<i class="icon-file"></i> Lier un Doc.', [
  118 + 'controller' => 'documents',
  119 + 'action' => 'add',
  120 + $materiel->id,
  121 + 'mat'
  122 + ], [
  123 + 'title' => 'Attacher un Doc. à ce matériel',
  124 + 'style' => 'margin-right: 10px',
  125 + 'escape' => false
  126 + ] );
  127 +
  128 + if ($materiel->photo_id != null) {
  129 + echo $this->Html->link ( '<i class="icon-file"></i> Remplacer la photo.', [
  130 + 'controller' => 'documents',
  131 + 'action' => 'add',
  132 + $materiel->id,
  133 + 'mat',
  134 + 'photo'
  135 + ], [
  136 + 'title' => 'Remplacer la photo de ce matériel',
  137 + 'style' => 'margin-right: 10px',
  138 + 'escape' => false
  139 + ] );
  140 + } else {
  141 + echo $this->Html->link ( '<i class="icon-file"></i> Lier une photo.', [
  142 + 'controller' => 'documents',
  143 + 'action' => 'add',
  144 + $materiel->id,
  145 + 'mat',
  146 + 'photo'
  147 + ], [
  148 + 'title' => 'Attacher une photo à ce matériel',
  149 + 'style' => 'margin-right: 10px',
  150 + 'escape' => false
  151 + ] );
  152 + }
  153 + }
  154 +
  155 + if (in_array ( $role, [
  156 + 'Administration',
  157 + 'Administration Plus',
  158 + 'Super Administrateur'
  159 + ] )) {
  160 + if (($materiel->status == 'VALIDATED') || ($materiel->status == 'CREATED')) {
  161 + echo $this->Html->link ( '<i class="icon-file"></i> Doc. admission', [
  162 + 'controller' => 'documents',
  163 + 'action' => 'admission',
  164 + $materiel->numero_laboratoire
  165 + ], [
  166 + 'title' => 'Voir le document d\'admission',
  167 + 'style' => 'margin-right: 10px',
  168 + 'escape' => false
  169 + ] );
  170 + } // Doc sortie (admin only)
  171 + else if (($materiel->status == 'ARCHIVED') || ($materiel->status == 'TOBEARCHIVED')) {
  172 + echo $this->Html->link ( '<i class="icon-file"></i> Doc. sortie', [
  173 + 'controller' => 'documents',
  174 + 'action' => 'sortie',
  175 + $materiel->numero_laboratoire
  176 + ], [
  177 + 'title' => 'Voir le document de sortie',
  178 + 'style' => 'margin-right: 10px',
  179 + 'escape' => false
  180 + ] );
  181 + }
  182 + }
  183 +
  184 + if (in_array ( $role, [
  185 + 'Administration',
  186 + 'Administration Plus',
  187 + 'Super Administrateur'
  188 + ] ) || ($role == 'Responsable' && ($materiel->groupes_metier_id == $userConnected->groupes_metier_id || $materiel->groupes_thematique_id == $userConnected->groupe_thematique_id))) {
  189 + // 2) Bouton de changement de statut : Valider, Demander archivage, ou Archiver
  190 + switch ($materiel->status) {
  191 + case "CREATED" :
  192 + echo $this->Html->link ( '<i class="icon-ok-sign"></i> Valider', [
  193 + 'action' => 'statusValidated',
  194 + $materiel->id,
  195 + 'view'
  196 + ], [
  197 + 'title' => 'Valider le matériel',
  198 + 'style' => 'margin-right: 10px',
  199 + 'escape' => false
  200 + ] );
  201 + break;
  202 +
  203 + case "VALIDATED" :
  204 + echo $this->Html->link ( '<i class="icon-ok-sign"></i> Demander sortie', [
  205 + 'action' => 'statusToBeArchived',
  206 + $materiel->id,
  207 + 'view'
  208 + ], [
  209 + 'title' => 'Demander la sortie de l\'inventaire',
  210 + 'style' => 'margin-right: 10px',
  211 + 'escape' => false
  212 + ] );
  213 + break;
  214 +
  215 + case "TOBEARCHIVED" :
  216 + if ($role != 'Responsable' && $role != 'Super Administrateur') {
  217 + echo $this->Html->link ( '<i class="icon-ok-sign"></i> Sortie inventaire', [
  218 + 'action' => 'statusArchived',
  219 + $materiel->id,
  220 + 'view'
  221 + ], [
  222 + 'title' => 'Sortir définitivement de l\'inventaire',
  223 + 'style' => 'margin-right: 10px',
  224 + 'escape' => false,
  225 + 'confirm' => 'Êtes-vous sur de bien vouloir archiver ' . $materiel->designation . ' ?'
  226 + ] );
  227 + }
  228 + break;
  229 + } // switch
  230 + }
  231 +
  232 + echo $this->Html->link ( '<i class="icon-pencil"></i> Copier ce matériel', [
  233 + 'controller' => 'materiels',
  234 + 'action' => 'add',
  235 + $materiel->id
  236 + ], [
  237 + 'title' => 'Copier ce matériel',
  238 + 'style' => 'margin-right: 10px; margin-top: 10px; display: inline-block',
  239 + 'escape' => false
  240 + ] );
  241 +
  242 + echo $this->Html->link ( '<i class="icon-file"></i> Fiche matériel', [
  243 + 'controller' => 'documents',
  244 + 'action' => 'ficheMateriel',
  245 + $materiel->numero_laboratoire
  246 + ], [
  247 + 'title' => 'Voir la fiche du materiel',
  248 + 'style' => 'margin-right: 10px',
  249 + 'escape' => false
  250 + ] );
  251 +
  252 + // BOUTON ETIQUETTE POSEE
  253 + if ($configuration->hasPrinter && in_array ( $role, [
  254 + 'Administration',
  255 + 'Administration Plus',
  256 + 'Super Administrateur'
  257 + ] )) {
  258 + echo '<div class="actions" style="margin-bottom: 20px; width: 100%; float: none; padding: 10px 0;">';
  259 +
  260 + $action = 'Impr. ruban';
  261 + echo $this->Html->link ( '<i class="icon-print"></i> ' . $action, [
  262 + 'action' => 'printLabelRuban',
  263 + h ( $materiel->id ),
  264 + 'view'
  265 + ], [
  266 + 'title' => 'Imprimer sur un ruban 12mm',
  267 + 'style' => 'margin-right: 10px',
  268 + 'escape' => false,
  269 + 'onclick' => 'return true;'
  270 + ] ); // End link
  271 +
  272 + echo $this->Html->link ( '<i class="icon-file"></i> ' . (h ( $materiel->etiquette ) ? "Etiquette NON posée sur le matériel" : "Etiquette posée sur le matériel"), [
  273 + 'controller' => 'materiels',
  274 + 'action' => h ( $materiel->etiquette ) ? 'setLabelIsNotPlaced' : 'setLabelIsPlaced',
  275 + h ( $materiel->id ),
  276 + 'view'
  277 + ], [
  278 + 'title' => h ( $materiel->etiquette ) ? "En cliquant sur ce bouton, vous déclarez que l'étiquette n'a PAS été posée sur le matériel" : "En cliquant sur ce bouton, vous certifiez que l'étiquette a bien été posée sur le matériel",
  279 + 'style' => 'margin-left: 0px',
  280 + 'escape' => false
  281 + ] ); // End link
  282 +
  283 + echo '</div>';
  284 + }
  285 +
  286 + ?>
171 </div> 287 </div>
172 -  
173 - <h3 id="t_informations" style="cursor: pointer;">  
174 - <i class="icon-chevron-down" style="font-size: 14px;" id="i_informations"></i>  
175 - <span style="text-decoration: underline;">Informations</span>  
176 - </h3>  
177 - <div id="informations" style="margin-bottom: 20px;">  
178 - <table>  
179 - <tr><th style="width: 250px;"></th><th></th></tr>  
180 -  
181 - <?php  
182 - $type = "";  
183 - if(h($materiel->materiel_administratif) == 1 && h($materiel->materiel_technique) == 1) {  
184 - $type = 'Administratif et technique';  
185 - }  
186 - else if (h($materiel->materiel_administratif) == 1) {  
187 - $type = 'Administratif';  
188 - }  
189 - else if (h($materiel->materiel_technique) == 1) {  
190 - $type = 'Technique';  
191 - }  
192 -  
193 - $displayElement(__('Description'), h($materiel->description));  
194 - $displayElement(__('Materiel inventorié'), $type);  
195 - $displayElement(__('Organisme'), $materiel->has('organisme') ? h($materiel->organisme->nom) : '');  
196 - $displayElement(__('Domaine'), $materiel->has('sur_category') ? h($materiel->sur_category->nom) : '');  
197 - $displayElement(__('Catégorie'), $materiel->has('category') ? h($materiel->category->nom) : '');  
198 - $displayElement(__('Sous-Catégorie'), $materiel->has('sous_category') ? h($materiel->sous_category->nom) : '');  
199 -  
200 - if(h($materiel->etiquette) == 0) {  
201 - $etiq="Non";  
202 - }else {  
203 - $etiq="Oui";  
204 - }  
205 - $displayElement(__('Etiquette posée'), $etiq);  
206 - $displayElement(__($configuration->nom_groupe_thematique), $materiel->has('groupes_thematique') ? $this->Html->link($materiel->groupes_thematique->nom, ['controller' => 'GroupesThematiques', 'action' => 'view', $materiel->groupes_thematique->id]) : '');  
207 - $displayElement(__($configuration->nom_groupe_metier), $materiel->has('groupes_metier') ? $this->Html->link($materiel->groupes_metier->nom, ['controller' => 'GroupesMetiers', 'action' => 'view', $materiel->groupes_metier->id]) : '');  
208 - $displayElement(__('Date d\'achat'), h($materiel->date_acquisition));  
209 -  
210 - $displayElement(__('Date de reception'), h($materiel->date_reception));  
211 - if(!empty(h($materiel->duree_garntie))) {  
212 - $displayElement(__('Duree garantie'), h($materiel->duree_garantie).' '.h($materiel->unite_duree_garantie));  
213 - }  
214 - $displayElement(__('Date fin de garantie'), h($materiel->date_fin_garantie));  
215 -  
216 - $displayElement(__('Statut'), h($materiel->status));  
217 - if($materiel->status == 'ARCHIVED') {  
218 - $displayElement(__('Date d\'archivage'), h($materiel->date_archivage));  
219 - }  
220 - $displayElement(__('Prix (HT)'), h($materiel->prix_ht).' €');  
221 - $displayElement(__('Fournisseur'), h($materiel->fournisseur));  
222 -  
223 - $displayElement(__('Lieu de stockage'), $materiel->has('site') ? h($materiel->site->nom) : '');  
224 - $displayElement(__('Détail lieu de stockage'), h($materiel->lieu_detail));  
225 -  
226 - $displayElement(__('Nom du propriétaire'), $this->Html->link(h($materiel->nom_responsable), 'mailto:'.h($materiel->email_responsable)));  
227 - $displayElement(__('N. interne (labo)'), h($materiel->numero_laboratoire));  
228 -  
229 - if($role == 'Super Administrateur') {  
230 - $displayElement(__('Date création'), h($materiel->created));  
231 - $displayElement(__('Nom du créateur'), h($materiel->nom_createur));  
232 - $displayElement(__('Date modification'), h($materiel->modified));  
233 - $displayElement(__('Nom du modificateur'), h($materiel->nom_modificateur));  
234 - }  
235 -  
236 - ?> 288 +
  289 + <h3 id="t_informations" style="cursor: pointer;">
  290 + <i class="icon-chevron-down" style="font-size: 14px;"
  291 + id="i_informations"></i> <span style="text-decoration: underline;">Informations</span>
  292 + </h3>
  293 + <div id="informations" style="margin-bottom: 20px;">
  294 + <table>
  295 + <tr>
  296 + <th style="width: 250px;"></th>
  297 + <th></th>
  298 + </tr>
  299 +
  300 + <?php
  301 + $type = "";
  302 + if (h ( $materiel->materiel_administratif ) == 1 && h ( $materiel->materiel_technique ) == 1) {
  303 + $type = 'Administratif et technique';
  304 + } else if (h ( $materiel->materiel_administratif ) == 1) {
  305 + $type = 'Administratif';
  306 + } else if (h ( $materiel->materiel_technique ) == 1) {
  307 + $type = 'Technique';
  308 + }
  309 +
  310 + $displayElement ( __ ( 'Description' ), h ( $materiel->description ) );
  311 + $displayElement ( __ ( 'Materiel inventorié' ), $type );
  312 + $displayElement ( __ ( 'Organisme' ), $materiel->has ( 'organisme' ) ? h ( $materiel->organisme->nom ) : '' );
  313 + $displayElement ( __ ( 'Domaine' ), $materiel->has ( 'sur_category' ) ? h ( $materiel->sur_category->nom ) : '' );
  314 + $displayElement ( __ ( 'Catégorie' ), $materiel->has ( 'category' ) ? h ( $materiel->category->nom ) : '' );
  315 + $displayElement ( __ ( 'Sous-Catégorie' ), $materiel->has ( 'sous_category' ) ? h ( $materiel->sous_category->nom ) : '' );
  316 +
  317 + if (h ( $materiel->etiquette ) == 0) {
  318 + $etiq = "Non";
  319 + } else {
  320 + $etiq = "Oui";
  321 + }
  322 + $displayElement ( __ ( 'Etiquette posée' ), $etiq );
  323 + $displayElement ( __ ( $configuration->nom_groupe_thematique ), $materiel->has ( 'groupes_thematique' ) ? $this->Html->link ( $materiel->groupes_thematique->nom, [
  324 + 'controller' => 'GroupesThematiques',
  325 + 'action' => 'view',
  326 + $materiel->groupes_thematique->id
  327 + ] ) : '' );
  328 + $displayElement ( __ ( $configuration->nom_groupe_metier ), $materiel->has ( 'groupes_metier' ) ? $this->Html->link ( $materiel->groupes_metier->nom, [
  329 + 'controller' => 'GroupesMetiers',
  330 + 'action' => 'view',
  331 + $materiel->groupes_metier->id
  332 + ] ) : '' );
  333 + $displayElement ( __ ( 'Date d\'achat' ), h ( $materiel->date_acquisition ) );
  334 +
  335 + $displayElement ( __ ( 'Date de reception' ), h ( $materiel->date_reception ) );
  336 + if (! empty ( h ( $materiel->duree_garntie ) )) {
  337 + $displayElement ( __ ( 'Duree garantie' ), h ( $materiel->duree_garantie ) . ' ' . h ( $materiel->unite_duree_garantie ) );
  338 + }
  339 + $displayElement ( __ ( 'Date fin de garantie' ), h ( $materiel->date_fin_garantie ) );
  340 +
  341 + $displayElement ( __ ( 'Statut' ), h ( $materiel->status ) );
  342 + if ($materiel->status == 'ARCHIVED') {
  343 + $displayElement ( __ ( 'Date d\'archivage' ), h ( $materiel->date_archivage ) );
  344 + }
  345 + $displayElement ( __ ( 'Prix (HT)' ), h ( $materiel->prix_ht ) . ' €' );
  346 + $displayElement ( __ ( 'Fournisseur' ), h ( $materiel->fournisseur ) );
  347 +
  348 + $displayElement ( __ ( 'Lieu de stockage' ), $materiel->has ( 'site' ) ? h ( $materiel->site->nom ) : '' );
  349 + $displayElement ( __ ( 'Détail lieu de stockage' ), h ( $materiel->lieu_detail ) );
  350 +
  351 + $displayElement ( __ ( 'Nom du propriétaire' ), $this->Html->link ( h ( $materiel->nom_responsable ), 'mailto:' . h ( $materiel->email_responsable ) ) );
  352 + $displayElement ( __ ( 'N. interne (labo)' ), h ( $materiel->numero_laboratoire ) );
  353 +
  354 + if ($role == 'Super Administrateur') {
  355 + $displayElement ( __ ( 'Date création' ), h ( $materiel->created ) );
  356 + $displayElement ( __ ( 'Nom du créateur' ), h ( $materiel->nom_createur ) );
  357 + $displayElement ( __ ( 'Date modification' ), h ( $materiel->modified ) );
  358 + $displayElement ( __ ( 'Nom du modificateur' ), h ( $materiel->nom_modificateur ) );
  359 + }
  360 +
  361 + ?>
237 </table> 362 </table>
238 - </div> 363 + </div>
239 364
240 365
241 - <?php  
242 - //Partie admin  
243 - if(in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur'])) {  
244 - echo '<h3 id="t_informations_admin" style="cursor: pointer;">'; 366 + <?php
  367 + // Partie admin
  368 + if (in_array ( $role, [
  369 + 'Administration',
  370 + 'Administration Plus',
  371 + 'Super Administrateur'
  372 + ] )) {
  373 + echo '<h3 id="t_informations_admin" style="cursor: pointer;">';
245 echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_informations_admin"></i>'; 374 echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_informations_admin"></i>';
246 echo '<span style="text-decoration: underline;">Informations administratives</span>'; 375 echo '<span style="text-decoration: underline;">Informations administratives</span>';
247 echo '</h3>'; 376 echo '</h3>';
248 echo '<div id="informations_admin" style="margin-bottom: 20px;">'; 377 echo '<div id="informations_admin" style="margin-bottom: 20px;">';
249 echo '<table>'; 378 echo '<table>';
250 echo '<tr><th style="width: 250px;"></th><th></th></tr>'; 379 echo '<tr><th style="width: 250px;"></th><th></th></tr>';
251 -  
252 - echo '<tr><td><strong>'.__('CentreFinancier/EOTP').' </strong></td><td>'.h($materiel->eotp).'</td></tr>';  
253 - echo '<tr><td><strong>'.__('N° commande').' </strong></td><td>'.h($materiel->numero_commande).'</td></tr>';  
254 - echo '<tr><td><strong>'.__('Code comptable').' </strong></td><td>'.h($materiel->code_comptable).'</td></tr>';  
255 - echo '<tr><td><strong>'.__('N° de série').' </strong></td><td>'.h($materiel->numero_serie).'</td></tr>';  
256 - echo '<tr><td><strong>'.__('N. Inventaire Organisme').' </strong></td><td>'.h($materiel->numero_inventaire_organisme).'</td></tr>';  
257 - echo '<tr><td><strong>'.__('N. inventaire (ancien)').' </strong></td><td>'.h($materiel->numero_inventaire_old).'</td></tr>';  
258 -  
259 - echo '</table>';  
260 - echo '</div>';  
261 -  
262 - }  
263 -  
264 -  
265 - ?> 380 +
  381 + echo '<tr><td><strong>' . __ ( 'CentreFinancier/EOTP' ) . ' </strong></td><td>' . h ( $materiel->eotp ) . '</td></tr>';
  382 + echo '<tr><td><strong>' . __ ( 'N° commande' ) . ' </strong></td><td>' . h ( $materiel->numero_commande ) . '</td></tr>';
  383 + echo '<tr><td><strong>' . __ ( 'Code comptable' ) . ' </strong></td><td>' . h ( $materiel->code_comptable ) . '</td></tr>';
  384 + echo '<tr><td><strong>' . __ ( 'N° de série' ) . ' </strong></td><td>' . h ( $materiel->numero_serie ) . '</td></tr>';
  385 + echo '<tr><td><strong>' . __ ( 'N. Inventaire Organisme' ) . ' </strong></td><td>' . h ( $materiel->numero_inventaire_organisme ) . '</td></tr>';
  386 + echo '<tr><td><strong>' . __ ( 'N. inventaire (ancien)' ) . ' </strong></td><td>' . h ( $materiel->numero_inventaire_old ) . '</td></tr>';
  387 +
  388 + echo '</table>';
  389 + echo '</div>';
  390 + }
  391 +
  392 + ?>
266 393
267 394
268 <h3 id="t_suivis" style="cursor: pointer;"> 395 <h3 id="t_suivis" style="cursor: pointer;">
269 - <i class="icon-chevron-down" style="font-size: 14px;" id="i_suivis"></i> 396 + <i class="icon-chevron-down" style="font-size: 14px;" id="i_suivis"></i>
270 <span style="text-decoration: underline;">Suivi(s) du matériel (<?= count($materiel->suivis) ?>)</span> 397 <span style="text-decoration: underline;">Suivi(s) du matériel (<?= count($materiel->suivis) ?>)</span>
271 </h3> 398 </h3>
272 <div id="suivis" style="margin-bottom: 20px;"> 399 <div id="suivis" style="margin-bottom: 20px;">
273 400
274 <?php if (!empty($materiel->suivis)) { ?> 401 <?php if (!empty($materiel->suivis)) { ?>
275 - <table>  
276 - <tr>  
277 - <th><?= __('Prestataire') ?></th>  
278 - <th><?= __('Date du contrôle') ?></th>  
279 - <th><?= __('Date prochain contrôle') ?></th>  
280 - <th><?= __('Type d\'intervention') ?></th>  
281 - <th style="width:50px;"><?= __('Détail') ?></th>  
282 - </tr> 402 + <table>
  403 + <tr>
  404 + <th><?= __('Prestataire') ?></th>
  405 + <th><?= __('Date du contrôle') ?></th>
  406 + <th><?= __('Date prochain contrôle') ?></th>
  407 + <th><?= __('Type d\'intervention') ?></th>
  408 + <th style="width: 50px;"><?= __('Détail') ?></th>
  409 + </tr>
283 <?php foreach ($materiel->suivis as $suivis): ?> 410 <?php foreach ($materiel->suivis as $suivis): ?>
284 <tr> 411 <tr>
285 - <td><?= h($suivis->organisme) ?></td>  
286 - <td><?= h($suivis->date_controle) ?></td>  
287 - <td><?= h($suivis->date_prochain_controle) ?></td>  
288 - <td><?= $typeSuivis->find()->where(['id =' => h($suivis->type_suivi_id)])->first()['nom']; ?></td> 412 + <td><?= h($suivis->organisme) ?></td>
  413 + <td><?= h($suivis->date_controle) ?></td>
  414 + <td><?= h($suivis->date_prochain_controle) ?></td>
  415 + <td><?= $typeSuivis->find()->where(['id =' => h($suivis->type_suivi_id)])->first()['nom']; ?></td>
289 416
290 - <td class="actions">  
291 - <?= $this->Html->link(__('<i class="icon-search"></i>'), ['controller' => 'Suivis', 'action' => 'view', $suivis->id], ['escape' => false, 'style' => 'margin:0']) ?> 417 + <td class="actions">
  418 + <?= $this->Html->link(__('<i class="icon-search"></i>'), ['controller' => 'Suivis', 'action' => 'view', $suivis->id], ['escape' => false, 'style' => 'margin:0'])?>
292 </td> 419 </td>
293 - </tr> 420 + </tr>
294 <?php endforeach; ?> 421 <?php endforeach; ?>
295 </table> 422 </table>
296 <?php }else { echo 'Aucun suivi pour ce matériel.'; } ?> 423 <?php }else { echo 'Aucun suivi pour ce matériel.'; } ?>
297 </div> 424 </div>
298 -  
299 -  
300 - 425 +
  426 +
  427 +
301 <h3 id="t_emprunts" style="cursor: pointer;"> 428 <h3 id="t_emprunts" style="cursor: pointer;">
302 - <i class="icon-chevron-down" style="font-size: 14px;" id="i_emprunts"></i> 429 + <i class="icon-chevron-down" style="font-size: 14px;" id="i_emprunts"></i>
303 <span style="text-decoration: underline;">Emprunt(s) du matériel (<?= count($materiel->emprunts) ?>)</span> 430 <span style="text-decoration: underline;">Emprunt(s) du matériel (<?= count($materiel->emprunts) ?>)</span>
304 </h3> 431 </h3>
305 <div id="emprunts" style="margin-bottom: 20px;"> 432 <div id="emprunts" style="margin-bottom: 20px;">
306 433
307 <?php if (!empty($materiel->emprunts)) { ?> 434 <?php if (!empty($materiel->emprunts)) { ?>
308 - <table>  
309 - <tr>  
310 - <th><?= __('Emprunteur') ?></th>  
311 - <th><?= __('Type d\'Emprunt') ?></th>  
312 - <th><?= __('Où') ?></th>  
313 - <th><?= __('Date de l\'emprunt') ?></th>  
314 - <th><?= __('Date de retour') ?></th>  
315 - <th style="width:50px;"><?= __('Détail') ?></th>  
316 - </tr>  
317 - <?php foreach ($materiel->emprunts as $emprunts):  
318 -  
319 - $type = 'Externe';  
320 - $lieu = $emprunts['laboratoire'];  
321 - if ($emprunts['emprunt_interne'] == 1)  
322 - {  
323 - $type = 'Interne';  
324 - $lieu = $sites->find()->where(['id =' => h($emprunts->site_id)])->first()['nom'].'-'.h($emprunts->e_lieu_detail);  
325 - }  
326 - ?> 435 + <table>
  436 + <tr>
  437 + <th><?= __('Emprunteur') ?></th>
  438 + <th><?= __('Type d\'Emprunt') ?></th>
  439 + <th><?= __('Où') ?></th>
  440 + <th><?= __('Date de l\'emprunt') ?></th>
  441 + <th><?= __('Date de retour') ?></th>
  442 + <th style="width: 50px;"><?= __('Détail') ?></th>
  443 + </tr>
  444 + <?php
  445 +
  446 +foreach ( $materiel->emprunts as $emprunts ) :
  447 +
  448 + $type = 'Externe';
  449 + $lieu = $emprunts ['laboratoire'];
  450 + if ($emprunts ['emprunt_interne'] == 1) {
  451 + $type = 'Interne';
  452 + $lieu = $sites->find ()->where ( [
  453 + 'id =' => h ( $emprunts->site_id )
  454 + ] )->first () ['nom'] . '-' . h ( $emprunts->e_lieu_detail );
  455 + }
  456 + ?>
327 <tr> 457 <tr>
328 - <td><?= h($emprunts->nom_emprunteur) ?></td>  
329 - <td><?= h($type) ?></td>  
330 - <td><?= h($lieu) ?></td>  
331 - <td><?= h($emprunts->date_emprunt) ?></td>  
332 - <td><?= h($emprunts->date_retour_emprunt) ?></td> 458 + <td><?= h($emprunts->nom_emprunteur) ?></td>
  459 + <td><?= h($type) ?></td>
  460 + <td><?= h($lieu) ?></td>
  461 + <td><?= h($emprunts->date_emprunt) ?></td>
  462 + <td><?= h($emprunts->date_retour_emprunt) ?></td>
333 463
334 - <td class="actions">  
335 - <?= $this->Html->link(__('<i class="icon-search"></i>'), ['controller' => 'Emprunts', 'action' => 'view', $emprunts->id], ['escape' => false, 'style' => 'margin:0']) ?> 464 + <td class="actions">
  465 + <?= $this->Html->link(__('<i class="icon-search"></i>'), ['controller' => 'Emprunts', 'action' => 'view', $emprunts->id], ['escape' => false, 'style' => 'margin:0'])?>
336 </td> 466 </td>
337 - </tr> 467 + </tr>
338 <?php endforeach; ?> 468 <?php endforeach; ?>
339 </table> 469 </table>
340 <?php }else { echo 'Aucun emprunt pour ce matériel.'; } ?> 470 <?php }else { echo 'Aucun emprunt pour ce matériel.'; } ?>
341 </div> 471 </div>
342 472
343 473
  474 + <?php
  475 + $nbFic = count ( $materiel->documents );
  476 + ?>
  477 +
344 478
345 <h3 id="t_fichiers" style="cursor: pointer;"> 479 <h3 id="t_fichiers" style="cursor: pointer;">
346 - <i class="icon-chevron-down" style="font-size: 14px;" id="i_fichiers"></i>  
347 - <span style="text-decoration: underline;">Fichier(s) lié(s) au matériel (<?= count($materiel->documents) ?>)</span> 480 + <i class="icon-chevron-down" style="font-size: 14px;" id="i_fichiers"></i>
  481 + <span style="text-decoration: underline;">Fichier(s) lié(s) au matériel (<?= $nbFic ?>)</span>
348 </h3> 482 </h3>
349 <div id="fichiers" style="margin-bottom: 20px;"> 483 <div id="fichiers" style="margin-bottom: 20px;">
350 484
351 - <?php if (!empty($materiel->documents)) { ?>  
352 - <table>  
353 - <tr>  
354 - <th><?= __('Nom') ?></th>  
355 - <th><?= __('Type') ?></th>  
356 - <th style="width:50px;"><?= __('Détail') ?></th>  
357 - <th style="width:50px;"><?= __('Télécharger') ?></th>  
358 - <th style="width:50px;"><?= __('Supprimer') ?></th>  
359 - </tr>  
360 - <?php foreach ($materiel->documents as $documents):  
361 -  
362 - $type = $typeDocuments->find()->where(['id =' => h($documents->type_document_id)])->first()['nom'];  
363 - ?> 485 + <?php if ($nbFic != 0) { ?>
  486 + <table>
  487 + <tr>
  488 + <th><?= __('Nom') ?></th>
  489 + <th><?= __('Type') ?></th>
  490 + <th><?= __('Photo') ?></th>
  491 + <th style="width: 50px;"><?= __('Détail') ?></th>
  492 + <th style="width: 50px;"><?= __('Télécharger') ?></th>
  493 + <?php
  494 + if(($role == 'Utilisateur' && (in_array($username, [$materiel->nom_createur, $materiel->nom_responsable]))) || (in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur'])) || ($role == 'Responsable' && ($materiel->groupes_metier_id == $userConnected->groupes_metier_id || $materiel->groupes_thematique_id == $userConnected->groupe_thematique_id))) {
  495 + ?>
  496 + <th style="width: 50px;"><?= __('Supprimer') ?></th>
  497 + <?php } ?>
  498 + </tr>
  499 + <?php
  500 +
  501 +foreach ( $materiel->documents as $documents ) :
  502 +
  503 + if ($documents->photo) {
  504 + $p = 'Oui';
  505 + } else {
  506 + $p = '';
  507 + }
  508 + $type = $typeDocuments->find ()->where ( [
  509 + 'id =' => h ( $documents->type_document_id )
  510 + ] )->first () ['nom'];
  511 + ?>
364 <tr> 512 <tr>
365 - <td><?= h($documents->nom) ?></td>  
366 - <td><?= $type ?></td> 513 + <td><?= h($documents->nom) ?></td>
  514 + <td><?= $type ?></td>
  515 + <td><?= $p ?></td>
367 516
368 - <td class="actions">  
369 - <?= $this->Html->link(__('<i class="icon-search"></i>'), ['controller' => 'Documents', 'action' => 'view', $documents->id], ['escape' => false, 'style' => 'margin:0']) ?>  
370 - </td>  
371 - <td class="actions">  
372 - <?= $this->Html->link(__('<i class="icon-download"></i>'), '/webroot/files/'.$documents->id.'.'.$documents->type_doc, ['title' => 'Télécharger', 'style' => 'margin:0', 'escape' => false ]) ?> 517 + <td class="actions">
  518 + <?= $this->Html->link(__('<i class="icon-search"></i>'), ['controller' => 'Documents', 'action' => 'view', $documents->id], ['escape' => false, 'style' => 'margin:0'])?>
373 </td> 519 </td>
374 - <td class="actions">  
375 - <?= $this->Form->postLink(__('<i class="icon-trash"></i>'), ['controller' => 'Documents', 'action' => 'delete', $documents->id], ['escape' => false, 'style' => 'margin:0']) ?> 520 +
  521 + <td class="actions">
  522 + <?php
  523 + if ($documents->photo) {
  524 + echo $this->Html->link ( __ ( '<i class="icon-download"></i>' ), '/webroot/img/photos/' . $documents->id . '.' . $documents->type_doc, [
  525 + 'title' => 'Télécharger',
  526 + 'style' => 'margin:0',
  527 + 'escape' => false
  528 + ] );
  529 + } else {
  530 + echo $this->Html->link ( __ ( '<i class="icon-download"></i>' ), '/webroot/files/' . $documents->id . '.' . $documents->type_doc, [
  531 + 'title' => 'Télécharger',
  532 + 'style' => 'margin:0',
  533 + 'escape' => false
  534 + ] );
  535 + }
  536 + ?>
376 </td> 537 </td>
377 - </tr>  
378 - <?php endforeach; ?> 538 + <?php
  539 + if(($role == 'Utilisateur' && (in_array($username, [$materiel->nom_createur, $materiel->nom_responsable]))) || (in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur'])) || ($role == 'Responsable' && ($materiel->groupes_metier_id == $userConnected->groupes_metier_id || $materiel->groupes_thematique_id == $userConnected->groupe_thematique_id))) {
  540 + ?>
  541 + <td class="actions">
  542 + <?= $this->Form->postLink(__('<i class="icon-trash"></i>'), ['controller' => 'Documents', 'action' => 'delete', $documents->id], ['escape' => false, 'style' => 'margin:0', 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $documents->id)])?>
  543 + </td>
  544 + <?php } ?>
  545 + </tr>
  546 + <?php
  547 + endforeach
  548 + ;
  549 + ?>
379 </table> 550 </table>
380 <?php }else { echo 'Aucun fichier pour ce matériel.'; } ?> 551 <?php }else { echo 'Aucun fichier pour ce matériel.'; } ?>
381 </div> 552 </div>
382 553
383 -</div> 554 + </div>
384 555
385 556
386 - <div class="actions">  
387 - <?php echo $this->element('menu') ?>  
388 - <?php echo $this->element('menu_view',  
389 - [ 'pluralHumanName' => 'Matériels',  
390 - 'singularHumanName' => 'Matériel',  
391 - 'lien' => $materiel->id ]) ?> 557 + <div class="actions">
  558 + <?php echo $this->element('menu')?>
  559 + <?php
  560 +
  561 +echo $this->element ( 'menu_view', [
  562 + 'pluralHumanName' => 'Matériels',
  563 + 'singularHumanName' => 'Matériel',
  564 + 'lien' => $materiel->id
  565 + ] )?>
392 </div> 566 </div>
393 \ No newline at end of file 567 \ No newline at end of file
src/Template/Suivis/view.ctp
@@ -66,7 +66,11 @@ @@ -66,7 +66,11 @@
66 <th><?= __('Type') ?></th> 66 <th><?= __('Type') ?></th>
67 <th style="width:50px;"><?= __('Détail') ?></th> 67 <th style="width:50px;"><?= __('Détail') ?></th>
68 <th style="width:50px;"><?= __('Télécharger') ?></th> 68 <th style="width:50px;"><?= __('Télécharger') ?></th>
  69 + <?php
  70 + if(($role == 'Utilisateur' && in_array($username, [$suivi->nom_createur])) || (in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur'])) || $role == 'Responsable' && ($suivi->groupes_metier_id == $userConnected->groupes_metier_id || $suivi->groupes_thematique_id == $userConnected->groupe_thematique_id)) {
  71 + ?>
69 <th style="width:50px;"><?= __('Supprimer') ?></th> 72 <th style="width:50px;"><?= __('Supprimer') ?></th>
  73 + <?php } ?>
70 </tr> 74 </tr>
71 <?php foreach ($suivi->documents as $documents): 75 <?php foreach ($suivi->documents as $documents):
72 76
@@ -83,9 +87,13 @@ @@ -83,9 +87,13 @@
83 <td class="actions"> 87 <td class="actions">
84 <?= $this->Html->link(__('<i class="icon-download"></i>'), '/webroot/files/'.$documents->id.'.'.$documents->type_doc, ['title' => 'Télécharger', 'style' => 'margin:0', 'escape' => false ]) ?> 88 <?= $this->Html->link(__('<i class="icon-download"></i>'), '/webroot/files/'.$documents->id.'.'.$documents->type_doc, ['title' => 'Télécharger', 'style' => 'margin:0', 'escape' => false ]) ?>
85 </td> 89 </td>
  90 + <?php
  91 + if(($role == 'Utilisateur' && in_array($username, [$suivi->nom_createur])) || (in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur'])) || $role == 'Responsable' && ($suivi->groupes_metier_id == $userConnected->groupes_metier_id || $suivi->groupes_thematique_id == $userConnected->groupe_thematique_id)) {
  92 + ?>
86 <td class="actions"> 93 <td class="actions">
87 - <?= $this->Form->postLink(__('<i class="icon-trash"></i>'), ['controller' => 'Documents', 'action' => 'delete', $documents->id], ['escape' => false, 'style' => 'margin:0']) ?> 94 + <?= $this->Form->postLink(__('<i class="icon-trash"></i>'), ['controller' => 'Documents', 'action' => 'delete', $documents->id], ['escape' => false, 'style' => 'margin:0', 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $documents->id)]) ?>
88 </td> 95 </td>
  96 + <?php } ?>
89 </tr> 97 </tr>
90 <?php endforeach; ?> 98 <?php endforeach; ?>
91 </table> 99 </table>
tests/Fixture/ConfigurationsFixture.php
@@ -50,6 +50,7 @@ class ConfigurationsFixture extends TestFixture @@ -50,6 +50,7 @@ class ConfigurationsFixture extends TestFixture
50 'date_commande_facultative' => ['type' => 'boolean', 'length' => null, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null], 50 'date_commande_facultative' => ['type' => 'boolean', 'length' => null, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null],
51 'numero_labo_sans_annee' => ['type' => 'boolean', 'length' => null, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null], 51 'numero_labo_sans_annee' => ['type' => 'boolean', 'length' => null, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null],
52 'prix_inventaire_administratif' => ['type' => 'integer', 'length' => 10, 'null' => true, 'default' => 800, 'comment' => '', 'precision' => null], 52 'prix_inventaire_administratif' => ['type' => 'integer', 'length' => 10, 'null' => true, 'default' => 800, 'comment' => '', 'precision' => null],
  53 + 'taille_max_doc' => ['type' => 'integer', 'length' => 15, 'null' => true, 'default' => 8000000, 'comment' => '', 'precision' => null],
53 '_constraints' => [ 54 '_constraints' => [
54 'primary' => ['type' => 'primary', 'columns' => ['id'], 'length' => []], 55 'primary' => ['type' => 'primary', 'columns' => ['id'], 'length' => []],
55 'nom_UNIQUE' => ['type' => 'unique', 'columns' => ['nom'], 'length' => []], 56 'nom_UNIQUE' => ['type' => 'unique', 'columns' => ['nom'], 'length' => []],
tests/Fixture/DocumentsFixture.php
@@ -23,7 +23,8 @@ class DocumentsFixture extends TestFixture @@ -23,7 +23,8 @@ class DocumentsFixture extends TestFixture
23 'suivi_id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null, 'autoIncrement' => null], 23 'suivi_id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null, 'autoIncrement' => null],
24 'nom' => ['type' => 'string', 'length' => 100, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null, 'fixed' => null], 24 'nom' => ['type' => 'string', 'length' => 100, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null, 'fixed' => null],
25 'type_document_id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => true, 'default' => '1', 'comment' => '', 'precision' => null, 'autoIncrement' => null], 25 'type_document_id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => true, 'default' => '1', 'comment' => '', 'precision' => null, 'autoIncrement' => null],
26 - '_indexes' => [ 26 + 'photo' => ['type' => 'boolean', 'length' => null, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null],
  27 + '_indexes' => [
27 'fk_documents_materiel_id' => ['type' => 'index', 'columns' => ['materiel_id'], 'length' => []], 28 'fk_documents_materiel_id' => ['type' => 'index', 'columns' => ['materiel_id'], 'length' => []],
28 'fk_documents_suivi_id' => ['type' => 'index', 'columns' => ['suivi_id'], 'length' => []], 29 'fk_documents_suivi_id' => ['type' => 'index', 'columns' => ['suivi_id'], 'length' => []],
29 'fk_documents_type_documents_id' => ['type' => 'index', 'columns' => ['type_document_id'], 'length' => []], 30 'fk_documents_type_documents_id' => ['type' => 'index', 'columns' => ['type_document_id'], 'length' => []],
tests/Fixture/MaterielsFixture.php
@@ -53,6 +53,7 @@ class MaterielsFixture extends TestFixture @@ -53,6 +53,7 @@ class MaterielsFixture extends TestFixture
53 'date_reception' => ['type' => 'date', 'length' => null, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null], 53 'date_reception' => ['type' => 'date', 'length' => null, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null],
54 'organisme_id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null, 'autoIncrement' => null], 54 'organisme_id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null, 'autoIncrement' => null],
55 'site_id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => true, 'default' => '1', 'comment' => '', 'precision' => null, 'autoIncrement' => null], 55 'site_id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => true, 'default' => '1', 'comment' => '', 'precision' => null, 'autoIncrement' => null],
  56 + 'photo_id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null, 'autoIncrement' => null],
56 'hors_service' => ['type' => 'boolean', 'length' => null, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null], 57 'hors_service' => ['type' => 'boolean', 'length' => null, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null],
57 '_indexes' => [ 58 '_indexes' => [
58 'fk_administrative_materials_sub_categories1' => ['type' => 'index', 'columns' => ['sous_categorie_id'], 'length' => []], 59 'fk_administrative_materials_sub_categories1' => ['type' => 'index', 'columns' => ['sous_categorie_id'], 'length' => []],
webroot/img/.gitignore
1 /qrcodes/ 1 /qrcodes/
  2 +/photos/
2 \ No newline at end of file 3 \ No newline at end of file