Commit e7797d3da52ae53da950f4ed9a1db4281fce8893

Authored by Thibaud Ajas
1 parent 4b724c72

fin des bugfixes liés au merge avec le LATMOS

README-LABINVENT.md
... ... @@ -53,13 +53,12 @@ Logiciel testé et validé sur les configurations suivantes :
53 53  
54 54 VERSION ACTUELLE
55 55  
56   -Date: 02/06/2017
57   -Version: 2.6.4
58   -- Bugfixes divers
59   -- Corrections de fautes
60   -- Refactorisations de fonctions
61   -- Les responsables ne peuvent plus valider les matériels
62   -- Ajout de la procédure à suivre lors d'une demande d'achat de matériel
  56 +Date: 09/06/2017
  57 +Version: 2.6.5
  58 +- 1er merge avec le LATMOS
  59 + -> Récupération du module de métrologie
  60 + -> Bugfixes nombreux
  61 +- Changements mineurs au niveau des ACLs
63 62 - ATTENTION : Mise à jour de la base de données requise (cf database/update)
64 63  
65 64 Version majeure en cours (2.6): https://projects.irap.omp.eu/versions/99
... ...
database/labinvent_2.6_09-06-17.sql 0 → 100644
... ... @@ -0,0 +1,694 @@
  1 +-- phpMyAdmin SQL Dump
  2 +-- version 4.0.10deb1
  3 +-- http://www.phpmyadmin.net
  4 +--
  5 +-- Client: localhost
  6 +-- Généré le: Ven 09 Juin 2017 à 18:40
  7 +-- Version du serveur: 5.5.55-0ubuntu0.14.04.1
  8 +-- Version de PHP: 5.6.30-11+deb.sury.org~trusty+3
  9 +
  10 +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
  11 +SET time_zone = "+00:00";
  12 +
  13 +
  14 +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
  15 +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
  16 +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
  17 +/*!40101 SET NAMES utf8 */;
  18 +
  19 +--
  20 +-- Base de données: `mydb`
  21 +--
  22 +USE `mydb`;
  23 +
  24 +-- --------------------------------------------------------
  25 +
  26 +--
  27 +-- Structure de la table `categories`
  28 +--
  29 +-- Création: Mar 02 Mai 2017 à 15:27
  30 +--
  31 +
  32 +CREATE TABLE IF NOT EXISTS `categories` (
  33 + `id` int(11) NOT NULL AUTO_INCREMENT,
  34 + `nom` varchar(45) NOT NULL COMMENT 'obligatoire (et unique)',
  35 + `sur_categorie_id` int(11) NOT NULL,
  36 + PRIMARY KEY (`id`),
  37 + UNIQUE KEY `nom_UNIQUE` (`nom`),
  38 + KEY `fk_sur_categorie_id` (`sur_categorie_id`)
  39 +) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=74 ;
  40 +
  41 +--
  42 +-- RELATIONS POUR LA TABLE `categories`:
  43 +-- `sur_categorie_id`
  44 +-- `sur_categories` -> `id`
  45 +--
  46 +
  47 +-- --------------------------------------------------------
  48 +
  49 +--
  50 +-- Structure de la table `configurations`
  51 +--
  52 +-- Création: Jeu 08 Juin 2017 à 13:56
  53 +--
  54 +
  55 +CREATE TABLE IF NOT EXISTS `configurations` (
  56 + `id` int(11) NOT NULL AUTO_INCREMENT,
  57 + `nom` varchar(45) NOT NULL COMMENT 'obligatoire (et unique)',
  58 + `mode_install` tinyint(1) DEFAULT NULL,
  59 + `mode_debug` tinyint(1) DEFAULT NULL,
  60 + `use_ldap` tinyint(1) DEFAULT NULL,
  61 + `host_ldap` text,
  62 + `port_ldap` varchar(10) DEFAULT NULL,
  63 + `authentificationType_ldap` varchar(30) DEFAULT 'xxx',
  64 + `baseDn_ldap` varchar(300) DEFAULT NULL,
  65 + `filter_ldap` varchar(30) DEFAULT NULL,
  66 + `labName` varchar(200) DEFAULT 'NOM COMPLET',
  67 + `labNameShort` varchar(20) DEFAULT NULL,
  68 + `labPresent` varchar(10) DEFAULT NULL,
  69 + `labUmr` varchar(30) DEFAULT NULL,
  70 + `hasPrinter` tinyint(1) DEFAULT NULL,
  71 + `nom_groupe_thematique` varchar(50) DEFAULT 'Groupe thematique',
  72 + `nom_groupe_metier` varchar(50) DEFAULT 'Groupe metier',
  73 + `envoi_mail` tinyint(1) NOT NULL DEFAULT '0',
  74 + `envoi_mail_guests` tinyint(1) NOT NULL DEFAULT '0',
  75 + `sender_mail` varchar(500) DEFAULT 'labinvent@irap.omp.eu',
  76 + `emailGuest1` varchar(45) DEFAULT NULL,
  77 + `emailGuest2` varchar(45) DEFAULT NULL,
  78 + `emailGuest3` varchar(45) DEFAULT NULL,
  79 + `emailGuest4` varchar(45) DEFAULT NULL,
  80 + `emailGuest5` varchar(45) DEFAULT NULL,
  81 + `emailGuest6` varchar(45) DEFAULT NULL,
  82 + `emailGuest7` varchar(45) DEFAULT NULL,
  83 + `emailGuest8` varchar(45) DEFAULT NULL,
  84 + `emailGuest9` varchar(45) DEFAULT NULL,
  85 + `emailGuest10` varchar(45) DEFAULT NULL,
  86 + `test` tinyint(1) DEFAULT NULL,
  87 + `prix_inventaire_administratif` int(10) DEFAULT '800',
  88 + `numero_labo_sans_annee` tinyint(1) DEFAULT NULL,
  89 + `date_commande_facultative` tinyint(1) DEFAULT NULL,
  90 + `taille_max_doc` int(15) DEFAULT '8000000',
  91 + `metrologie` tinyint(1) DEFAULT '0',
  92 + `aff_par_defaut` smallint(6) NOT NULL DEFAULT '20',
  93 + `procedure_sur_accueil` tinyint(1) NOT NULL DEFAULT '1',
  94 + PRIMARY KEY (`id`),
  95 + UNIQUE KEY `nom_UNIQUE` (`nom`)
  96 +) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
  97 +
  98 +-- --------------------------------------------------------
  99 +
  100 +--
  101 +-- Structure de la table `documents`
  102 +--
  103 +-- Création: Mar 02 Mai 2017 à 15:27
  104 +--
  105 +
  106 +CREATE TABLE IF NOT EXISTS `documents` (
  107 + `id` int(11) NOT NULL AUTO_INCREMENT,
  108 + `type_doc` varchar(20) DEFAULT NULL,
  109 + `description` text,
  110 + `nom` varchar(100) DEFAULT NULL,
  111 + `materiel_id` int(11) DEFAULT NULL,
  112 + `suivi_id` int(11) DEFAULT NULL,
  113 + `type_document_id` int(11) DEFAULT NULL,
  114 + `photo` tinyint(1) DEFAULT NULL,
  115 + PRIMARY KEY (`id`),
  116 + KEY `fk_documents_materiel_id` (`materiel_id`),
  117 + KEY `fk_documents_suivi_id` (`suivi_id`),
  118 + KEY `fk_documents_type_documents_id` (`type_document_id`)
  119 +) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
  120 +
  121 +--
  122 +-- RELATIONS POUR LA TABLE `documents`:
  123 +-- `materiel_id`
  124 +-- `materiels` -> `id`
  125 +-- `suivi_id`
  126 +-- `suivis` -> `id`
  127 +-- `type_document_id`
  128 +-- `type_documents` -> `id`
  129 +--
  130 +
  131 +-- --------------------------------------------------------
  132 +
  133 +--
  134 +-- Structure de la table `emprunts`
  135 +--
  136 +-- Création: Mar 02 Mai 2017 à 15:27
  137 +--
  138 +
  139 +CREATE TABLE IF NOT EXISTS `emprunts` (
  140 + `id` int(11) NOT NULL AUTO_INCREMENT,
  141 + `materiel_id` int(11) NOT NULL,
  142 + `date_emprunt` date DEFAULT NULL,
  143 + `date_retour_emprunt` date DEFAULT NULL,
  144 + `emprunt_interne` tinyint(1) DEFAULT NULL,
  145 + `laboratoire` varchar(45) DEFAULT NULL,
  146 + `site_id` int(11) DEFAULT NULL,
  147 + `e_lieu_detail` varchar(45) DEFAULT NULL,
  148 + `nom_emprunteur` varchar(45) DEFAULT NULL,
  149 + `email_emprunteur` varchar(45) DEFAULT NULL,
  150 + `tel` varchar(20) DEFAULT NULL,
  151 + `commentaire` varchar(200) DEFAULT NULL,
  152 + `nom_createur` varchar(45) DEFAULT NULL COMMENT 'nom du createur de la fiche',
  153 + `nom_modificateur` varchar(45) DEFAULT NULL COMMENT 'nom du modificateur de la fiche',
  154 + `created` datetime DEFAULT NULL COMMENT 'date et heure de creation de la fiche',
  155 + `modified` datetime DEFAULT NULL COMMENT 'date et heure de modif de la fiche',
  156 + PRIMARY KEY (`id`),
  157 + KEY `fk_technical_materials_internal_loans_copy1_admi_materials1` (`materiel_id`),
  158 + KEY `fk_emprunts_site_id` (`site_id`)
  159 +) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
  160 +
  161 +--
  162 +-- RELATIONS POUR LA TABLE `emprunts`:
  163 +-- `site_id`
  164 +-- `sites` -> `id`
  165 +-- `materiel_id`
  166 +-- `materiels` -> `id`
  167 +--
  168 +
  169 +-- --------------------------------------------------------
  170 +
  171 +--
  172 +-- Structure de la table `fichemetrologiques`
  173 +--
  174 +-- Création: Ven 02 Juin 2017 à 15:18
  175 +--
  176 +
  177 +CREATE TABLE IF NOT EXISTS `fichemetrologiques` (
  178 + `id` int(11) NOT NULL AUTO_INCREMENT,
  179 + `suivi_id` int(11) NOT NULL,
  180 + `mesurande` double DEFAULT NULL,
  181 + `moyenne` double DEFAULT NULL,
  182 + `ecarttype` double DEFAULT NULL,
  183 + `correction` double DEFAULT NULL,
  184 + `ua` double DEFAULT NULL,
  185 + `ub` double DEFAULT NULL,
  186 + `uc` double DEFAULT NULL,
  187 + `uf` double DEFAULT NULL,
  188 + `u` double DEFAULT NULL,
  189 + `incertitude` double DEFAULT NULL,
  190 + `conditionEnv` double DEFAULT NULL,
  191 + `resolution` varchar(45) DEFAULT NULL,
  192 + `etatmateriel` varchar(45) DEFAULT NULL,
  193 + `etatmetrologique` varchar(45) DEFAULT NULL,
  194 + `emtpersonnel` double DEFAULT NULL,
  195 + `nbMesure` int(11) DEFAULT NULL,
  196 + `conformeEMTstandart` varchar(100) DEFAULT NULL,
  197 + `conformeEMTperso` varchar(100) DEFAULT NULL,
  198 + `resultatfinal` varchar(100) DEFAULT NULL,
  199 + `observation` varchar(200) DEFAULT NULL,
  200 + `datefiche` date DEFAULT NULL,
  201 + `retard` varchar(45) DEFAULT 'RAS',
  202 + `justesse` double DEFAULT NULL,
  203 + PRIMARY KEY (`id`),
  204 + KEY `fk_fichemetrologique_suivi_id_idx` (`suivi_id`)
  205 +) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
  206 +
  207 +--
  208 +-- RELATIONS POUR LA TABLE `fichemetrologiques`:
  209 +-- `suivi_id`
  210 +-- `suivis` -> `id`
  211 +--
  212 +
  213 +-- --------------------------------------------------------
  214 +
  215 +--
  216 +-- Structure de la table `formules`
  217 +--
  218 +-- Création: Ven 02 Juin 2017 à 14:54
  219 +--
  220 +
  221 +CREATE TABLE IF NOT EXISTS `formules` (
  222 + `id` int(11) NOT NULL AUTO_INCREMENT,
  223 + `nommesure` varchar(100) DEFAULT NULL,
  224 + `symbole` varchar(45) DEFAULT 'F',
  225 + `unite` varchar(45) DEFAULT NULL,
  226 + `nbVariable` int(11) DEFAULT NULL,
  227 + `formule` varchar(200) DEFAULT 'F',
  228 + PRIMARY KEY (`id`)
  229 +) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
  230 +
  231 +-- --------------------------------------------------------
  232 +
  233 +--
  234 +-- Structure de la table `fournisseurs`
  235 +--
  236 +-- Création: Ven 02 Juin 2017 à 14:54
  237 +--
  238 +
  239 +CREATE TABLE IF NOT EXISTS `fournisseurs` (
  240 + `id` int(11) NOT NULL AUTO_INCREMENT,
  241 + `nom` varchar(45) DEFAULT NULL,
  242 + PRIMARY KEY (`id`)
  243 +) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
  244 +
  245 +-- --------------------------------------------------------
  246 +
  247 +--
  248 +-- Structure de la table `groupes_metiers`
  249 +--
  250 +-- Création: Mar 02 Mai 2017 à 15:27
  251 +--
  252 +
  253 +CREATE TABLE IF NOT EXISTS `groupes_metiers` (
  254 + `id` int(11) NOT NULL AUTO_INCREMENT,
  255 + `nom` varchar(45) DEFAULT NULL,
  256 + `description` varchar(100) DEFAULT NULL,
  257 + PRIMARY KEY (`id`)
  258 +) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;
  259 +
  260 +-- --------------------------------------------------------
  261 +
  262 +--
  263 +-- Structure de la table `groupes_thematiques`
  264 +--
  265 +-- Création: Mar 02 Mai 2017 à 15:27
  266 +--
  267 +
  268 +CREATE TABLE IF NOT EXISTS `groupes_thematiques` (
  269 + `id` int(11) NOT NULL AUTO_INCREMENT,
  270 + `nom` varchar(45) DEFAULT NULL,
  271 + `description` varchar(100) DEFAULT NULL,
  272 + PRIMARY KEY (`id`)
  273 +) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;
  274 +
  275 +-- --------------------------------------------------------
  276 +
  277 +--
  278 +-- Structure de la table `materiels`
  279 +--
  280 +-- Création: Ven 09 Juin 2017 à 10:52
  281 +--
  282 +
  283 +CREATE TABLE IF NOT EXISTS `materiels` (
  284 + `id` int(11) NOT NULL AUTO_INCREMENT,
  285 + `designation` varchar(50) DEFAULT NULL,
  286 + `sur_categorie_id` int(11) DEFAULT NULL,
  287 + `categorie_id` int(11) DEFAULT NULL,
  288 + `sous_categorie_id` int(11) DEFAULT NULL,
  289 + `numero_laboratoire` varchar(14) DEFAULT NULL,
  290 + `description` text,
  291 + `materiel_administratif` tinyint(1) DEFAULT NULL,
  292 + `materiel_technique` tinyint(1) DEFAULT NULL,
  293 + `status` varchar(15) DEFAULT 'CREATED',
  294 + `date_acquisition` date DEFAULT NULL,
  295 + `fournisseur_id` int(11) DEFAULT NULL,
  296 + `prix_ht` float unsigned DEFAULT NULL,
  297 + `eotp` varchar(45) DEFAULT NULL,
  298 + `numero_commande` varchar(45) DEFAULT NULL,
  299 + `code_comptable` varchar(45) DEFAULT NULL,
  300 + `numero_serie` varchar(45) DEFAULT NULL,
  301 + `groupes_thematique_id` int(11) DEFAULT NULL,
  302 + `groupes_metier_id` int(11) DEFAULT NULL,
  303 + `numero_inventaire_organisme` varchar(45) DEFAULT NULL,
  304 + `numero_inventaire_old` varchar(45) DEFAULT NULL COMMENT 'Ancien numero inventaire',
  305 + `date_archivage` date DEFAULT NULL,
  306 + `etiquette` tinyint(1) DEFAULT '0' COMMENT 'etiquette sur materiel oui ou non',
  307 + `lieu_detail` varchar(45) DEFAULT NULL,
  308 + `nom_responsable` varchar(45) DEFAULT NULL,
  309 + `email_responsable` varchar(45) DEFAULT NULL,
  310 + `gestionnaire_id` int(11) DEFAULT NULL,
  311 + `nom_createur` varchar(45) DEFAULT NULL COMMENT 'nom du createur de la fiche',
  312 + `nom_modificateur` varchar(45) DEFAULT NULL COMMENT 'nom du modificateur de la fiche',
  313 + `created` datetime DEFAULT NULL COMMENT 'date et heure de creation de la fiche',
  314 + `modified` datetime DEFAULT NULL COMMENT 'date et heure de modif de la fiche',
  315 + `date_reception` date DEFAULT NULL,
  316 + `organisme_id` int(11) DEFAULT NULL,
  317 + `site_id` int(11) DEFAULT '2',
  318 + `date_fin_garantie` date DEFAULT NULL,
  319 + `duree_garantie` int(10) DEFAULT NULL,
  320 + `unite_duree_garantie` varchar(30) DEFAULT NULL,
  321 + `photo_id` int(11) DEFAULT NULL,
  322 + `metrologie` tinyint(1) DEFAULT '0',
  323 + PRIMARY KEY (`id`),
  324 + UNIQUE KEY `numero_irap` (`numero_laboratoire`),
  325 + KEY `fk_administrative_materials_sub_categories1` (`sous_categorie_id`),
  326 + KEY `fk_materials_thematic_group1` (`groupes_thematique_id`),
  327 + KEY `fk_materials_work_group1` (`groupes_metier_id`),
  328 + KEY `fk_materiels_categories1` (`categorie_id`),
  329 + KEY `fk_materiels_sur_categorie_id` (`sur_categorie_id`),
  330 + KEY `fk_materiels_organisme_id` (`organisme_id`),
  331 + KEY `fk_materiels_site_id` (`site_id`),
  332 + KEY `fk_materiels_fournisseurs_id_idx` (`fournisseur_id`)
  333 +) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=11723 ;
  334 +
  335 +--
  336 +-- RELATIONS POUR LA TABLE `materiels`:
  337 +-- `sous_categorie_id`
  338 +-- `sous_categories` -> `id`
  339 +-- `groupes_thematique_id`
  340 +-- `groupes_thematiques` -> `id`
  341 +-- `groupes_metier_id`
  342 +-- `groupes_metiers` -> `id`
  343 +-- `categorie_id`
  344 +-- `categories` -> `id`
  345 +-- `organisme_id`
  346 +-- `organismes` -> `id`
  347 +-- `site_id`
  348 +-- `sites` -> `id`
  349 +-- `sur_categorie_id`
  350 +-- `sur_categories` -> `id`
  351 +--
  352 +
  353 +-- --------------------------------------------------------
  354 +
  355 +--
  356 +-- Structure de la table `mesures`
  357 +--
  358 +-- Création: Ven 02 Juin 2017 à 15:18
  359 +--
  360 +
  361 +CREATE TABLE IF NOT EXISTS `mesures` (
  362 + `id` int(11) NOT NULL AUTO_INCREMENT,
  363 + `fichemetrologique_id` int(11) NOT NULL,
  364 + `valeur` double DEFAULT NULL,
  365 + `erreur` double DEFAULT NULL,
  366 + PRIMARY KEY (`id`),
  367 + KEY `fk_mesures_fichemetrologique_id_idx` (`fichemetrologique_id`)
  368 +) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
  369 +
  370 +--
  371 +-- RELATIONS POUR LA TABLE `mesures`:
  372 +-- `fichemetrologique_id`
  373 +-- `fichemetrologiques` -> `id`
  374 +--
  375 +
  376 +-- --------------------------------------------------------
  377 +
  378 +--
  379 +-- Structure de la table `organismes`
  380 +--
  381 +-- Création: Mar 02 Mai 2017 à 15:27
  382 +--
  383 +
  384 +CREATE TABLE IF NOT EXISTS `organismes` (
  385 + `id` int(11) NOT NULL AUTO_INCREMENT,
  386 + `nom` varchar(50) DEFAULT NULL,
  387 + PRIMARY KEY (`id`)
  388 +) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
  389 +
  390 +-- --------------------------------------------------------
  391 +
  392 +--
  393 +-- Structure de la table `sites`
  394 +--
  395 +-- Création: Mar 02 Mai 2017 à 15:27
  396 +--
  397 +
  398 +CREATE TABLE IF NOT EXISTS `sites` (
  399 + `id` int(11) NOT NULL AUTO_INCREMENT,
  400 + `nom` varchar(50) DEFAULT NULL,
  401 + PRIMARY KEY (`id`)
  402 +) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;
  403 +
  404 +-- --------------------------------------------------------
  405 +
  406 +--
  407 +-- Structure de la table `sous_categories`
  408 +--
  409 +-- Création: Mar 02 Mai 2017 à 15:27
  410 +--
  411 +
  412 +CREATE TABLE IF NOT EXISTS `sous_categories` (
  413 + `id` int(11) NOT NULL AUTO_INCREMENT,
  414 + `nom` varchar(45) NOT NULL,
  415 + `categorie_id` int(11) NOT NULL,
  416 + PRIMARY KEY (`id`),
  417 + KEY `category_id` (`categorie_id`)
  418 +) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=43 ;
  419 +
  420 +--
  421 +-- RELATIONS POUR LA TABLE `sous_categories`:
  422 +-- `categorie_id`
  423 +-- `categories` -> `id`
  424 +--
  425 +
  426 +-- --------------------------------------------------------
  427 +
  428 +--
  429 +-- Structure de la table `suivis`
  430 +--
  431 +-- Création: Ven 02 Juin 2017 à 15:18
  432 +--
  433 +
  434 +CREATE TABLE IF NOT EXISTS `suivis` (
  435 + `id` int(11) NOT NULL AUTO_INCREMENT,
  436 + `materiel_id` int(11) NOT NULL,
  437 + `date_controle` date DEFAULT NULL,
  438 + `date_prochain_controle` date DEFAULT NULL,
  439 + `type_suivi_id` int(11) DEFAULT NULL,
  440 + `organisme` varchar(50) DEFAULT NULL,
  441 + `frequence` int(11) DEFAULT NULL,
  442 + `type_frequence` varchar(30) DEFAULT NULL,
  443 + `commentaire` varchar(100) DEFAULT NULL,
  444 + `panne_resolu` tinyint(1) DEFAULT '1',
  445 + `groupes_thematique_id` int(11) DEFAULT NULL,
  446 + `groupes_metier_id` int(11) DEFAULT NULL,
  447 + `statut` varchar(30) DEFAULT 'En cours',
  448 + `nom_createur` varchar(45) DEFAULT NULL COMMENT 'nom du createur de la fiche',
  449 + `nom_modificateur` varchar(45) DEFAULT NULL COMMENT 'nom du modificateur de la fiche',
  450 + `created` datetime DEFAULT NULL COMMENT 'date et heure de creation de la fiche',
  451 + `modified` datetime DEFAULT NULL COMMENT 'date et heure de modif de la fiche',
  452 + `unite_id` int(11) DEFAULT NULL,
  453 + `plage_debut` double DEFAULT NULL,
  454 + `plage_fin` double DEFAULT NULL,
  455 + `resolution` double DEFAULT NULL,
  456 + `tolerance` double DEFAULT NULL,
  457 + `sensibilite` double DEFAULT NULL,
  458 + `justesse` double DEFAULT NULL,
  459 + `fidelite` double DEFAULT NULL,
  460 + `typemesure` varchar(45) DEFAULT 'Direct',
  461 + `emtstandart` double DEFAULT NULL,
  462 + `symbole` varchar(45) DEFAULT NULL,
  463 + `nommesure` varchar(45) DEFAULT NULL,
  464 + `valeurRef` double DEFAULT NULL,
  465 + `intitule` varchar(100) DEFAULT NULL,
  466 + `conforme` varchar(100) DEFAULT NULL,
  467 + `formule_id` int(11) DEFAULT NULL,
  468 + PRIMARY KEY (`id`),
  469 + KEY `fk_admi_material_histories_admi_materials1` (`materiel_id`),
  470 + KEY `fk_suivis_type_suivi_id` (`type_suivi_id`),
  471 + KEY `fk_suivis_groupe_thematique` (`groupes_thematique_id`),
  472 + KEY `fk_suivis_groupe_metier` (`groupes_metier_id`),
  473 + KEY `fk_suivis_unite_id_idx` (`unite_id`),
  474 + KEY `fk_suivis_formule_id_idx` (`formule_id`)
  475 +) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
  476 +
  477 +--
  478 +-- RELATIONS POUR LA TABLE `suivis`:
  479 +-- `materiel_id`
  480 +-- `materiels` -> `id`
  481 +-- `formule_id`
  482 +-- `formules` -> `id`
  483 +-- `groupes_metier_id`
  484 +-- `groupes_metiers` -> `id`
  485 +-- `groupes_thematique_id`
  486 +-- `groupes_thematiques` -> `id`
  487 +-- `type_suivi_id`
  488 +-- `type_suivis` -> `id`
  489 +-- `unite_id`
  490 +-- `unites` -> `id`
  491 +--
  492 +
  493 +-- --------------------------------------------------------
  494 +
  495 +--
  496 +-- Structure de la table `sur_categories`
  497 +--
  498 +-- Création: Mar 02 Mai 2017 à 15:27
  499 +--
  500 +
  501 +CREATE TABLE IF NOT EXISTS `sur_categories` (
  502 + `id` int(11) NOT NULL AUTO_INCREMENT,
  503 + `nom` varchar(45) NOT NULL,
  504 + PRIMARY KEY (`id`),
  505 + UNIQUE KEY `nom_UNIQUE` (`nom`)
  506 +) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
  507 +
  508 +-- --------------------------------------------------------
  509 +
  510 +--
  511 +-- Structure de la table `type_documents`
  512 +--
  513 +-- Création: Mar 02 Mai 2017 à 15:27
  514 +--
  515 +
  516 +CREATE TABLE IF NOT EXISTS `type_documents` (
  517 + `id` int(11) NOT NULL AUTO_INCREMENT,
  518 + `nom` varchar(100) DEFAULT NULL,
  519 + PRIMARY KEY (`id`)
  520 +) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ;
  521 +
  522 +-- --------------------------------------------------------
  523 +
  524 +--
  525 +-- Structure de la table `type_suivis`
  526 +--
  527 +-- Création: Mar 02 Mai 2017 à 15:27
  528 +--
  529 +
  530 +CREATE TABLE IF NOT EXISTS `type_suivis` (
  531 + `id` int(11) NOT NULL AUTO_INCREMENT,
  532 + `nom` varchar(50) DEFAULT NULL,
  533 + PRIMARY KEY (`id`)
  534 +) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
  535 +
  536 +-- --------------------------------------------------------
  537 +
  538 +--
  539 +-- Structure de la table `unites`
  540 +--
  541 +-- Création: Ven 02 Juin 2017 à 14:54
  542 +--
  543 +
  544 +CREATE TABLE IF NOT EXISTS `unites` (
  545 + `id` int(11) NOT NULL AUTO_INCREMENT,
  546 + `nom` varchar(45) DEFAULT NULL,
  547 + `symbole` varchar(45) DEFAULT NULL,
  548 + PRIMARY KEY (`id`)
  549 +) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
  550 +
  551 +-- --------------------------------------------------------
  552 +
  553 +--
  554 +-- Structure de la table `users`
  555 +--
  556 +-- Création: Ven 02 Juin 2017 à 15:18
  557 +--
  558 +
  559 +CREATE TABLE IF NOT EXISTS `users` (
  560 + `id` int(11) NOT NULL AUTO_INCREMENT,
  561 + `nom` varchar(45) DEFAULT NULL,
  562 + `username` varchar(45) DEFAULT NULL,
  563 + `password` varchar(255) DEFAULT NULL,
  564 + `email` varchar(45) DEFAULT NULL,
  565 + `role` varchar(45) DEFAULT NULL,
  566 + `groupes_metier_id` int(11) DEFAULT NULL,
  567 + `groupe_thematique_id` int(11) DEFAULT NULL,
  568 + `sur_categorie_id` int(11) DEFAULT NULL,
  569 + PRIMARY KEY (`id`),
  570 + UNIQUE KEY `username_UNIQUE` (`username`),
  571 + KEY `fk_users_groupes_travails1` (`groupes_metier_id`),
  572 + KEY `fk_users_groupe_thematique_id` (`groupe_thematique_id`),
  573 + KEY `fk_users_sur_categories_id_idx` (`sur_categorie_id`)
  574 +) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=36 ;
  575 +
  576 +--
  577 +-- RELATIONS POUR LA TABLE `users`:
  578 +-- `groupes_metier_id`
  579 +-- `groupes_metiers` -> `id`
  580 +-- `groupe_thematique_id`
  581 +-- `groupes_thematiques` -> `id`
  582 +-- `sur_categorie_id`
  583 +-- `sur_categories` -> `id`
  584 +--
  585 +
  586 +-- --------------------------------------------------------
  587 +
  588 +--
  589 +-- Structure de la table `variables`
  590 +--
  591 +-- Création: Ven 02 Juin 2017 à 15:18
  592 +--
  593 +
  594 +CREATE TABLE IF NOT EXISTS `variables` (
  595 + `id` int(11) NOT NULL AUTO_INCREMENT,
  596 + `formule_id` int(11) DEFAULT NULL,
  597 + `symbolegrandeurphysique` varchar(45) DEFAULT NULL,
  598 + `symboleunitemesure` varchar(45) DEFAULT NULL,
  599 + `nomgrandeurphysique` varchar(45) DEFAULT NULL,
  600 + `domainedef` varchar(45) DEFAULT NULL,
  601 + `derivepartielle` varchar(100) DEFAULT 'F',
  602 + PRIMARY KEY (`id`),
  603 + KEY `fk_variables_formule_id_idx` (`formule_id`)
  604 +) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
  605 +
  606 +--
  607 +-- RELATIONS POUR LA TABLE `variables`:
  608 +-- `formule_id`
  609 +-- `formules` -> `id`
  610 +--
  611 +
  612 +--
  613 +-- Contraintes pour les tables exportées
  614 +--
  615 +
  616 +--
  617 +-- Contraintes pour la table `categories`
  618 +--
  619 +ALTER TABLE `categories`
  620 + ADD CONSTRAINT `fk_sur_categorie_id` FOREIGN KEY (`sur_categorie_id`) REFERENCES `sur_categories` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;
  621 +
  622 +--
  623 +-- Contraintes pour la table `documents`
  624 +--
  625 +ALTER TABLE `documents`
  626 + ADD CONSTRAINT `fk_documents_materiel_id` FOREIGN KEY (`materiel_id`) REFERENCES `materiels` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  627 + ADD CONSTRAINT `fk_documents_suivi_id` FOREIGN KEY (`suivi_id`) REFERENCES `suivis` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  628 + ADD CONSTRAINT `fk_documents_type_documents_id` FOREIGN KEY (`type_document_id`) REFERENCES `type_documents` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;
  629 +
  630 +--
  631 +-- Contraintes pour la table `emprunts`
  632 +--
  633 +ALTER TABLE `emprunts`
  634 + ADD CONSTRAINT `fk_emprunts_site_id` FOREIGN KEY (`site_id`) REFERENCES `sites` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  635 + ADD CONSTRAINT `fk_technical_materials_internal_loans_copy1_admi_materials1` FOREIGN KEY (`materiel_id`) REFERENCES `materiels` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;
  636 +
  637 +--
  638 +-- Contraintes pour la table `fichemetrologiques`
  639 +--
  640 +ALTER TABLE `fichemetrologiques`
  641 + ADD CONSTRAINT `fk_fichemetrologique_suivi_id` FOREIGN KEY (`suivi_id`) REFERENCES `suivis` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;
  642 +
  643 +--
  644 +-- Contraintes pour la table `materiels`
  645 +--
  646 +ALTER TABLE `materiels`
  647 + ADD CONSTRAINT `fk_administrative_materials_sub_categories1` FOREIGN KEY (`sous_categorie_id`) REFERENCES `sous_categories` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  648 + ADD CONSTRAINT `fk_materials_thematic_group1` FOREIGN KEY (`groupes_thematique_id`) REFERENCES `groupes_thematiques` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  649 + ADD CONSTRAINT `fk_materials_work_group1` FOREIGN KEY (`groupes_metier_id`) REFERENCES `groupes_metiers` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  650 + ADD CONSTRAINT `fk_materiels_categories1` FOREIGN KEY (`categorie_id`) REFERENCES `categories` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  651 + ADD CONSTRAINT `fk_materiels_organisme_id` FOREIGN KEY (`organisme_id`) REFERENCES `organismes` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  652 + ADD CONSTRAINT `fk_materiels_site_id` FOREIGN KEY (`site_id`) REFERENCES `sites` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  653 + ADD CONSTRAINT `fk_materiels_sur_categorie_id` FOREIGN KEY (`sur_categorie_id`) REFERENCES `sur_categories` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;
  654 +
  655 +--
  656 +-- Contraintes pour la table `mesures`
  657 +--
  658 +ALTER TABLE `mesures`
  659 + ADD CONSTRAINT `fk_mesures_fichemetrologique_id` FOREIGN KEY (`fichemetrologique_id`) REFERENCES `fichemetrologiques` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;
  660 +
  661 +--
  662 +-- Contraintes pour la table `sous_categories`
  663 +--
  664 +ALTER TABLE `sous_categories`
  665 + ADD CONSTRAINT `category_id` FOREIGN KEY (`categorie_id`) REFERENCES `categories` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;
  666 +
  667 +--
  668 +-- Contraintes pour la table `suivis`
  669 +--
  670 +ALTER TABLE `suivis`
  671 + ADD CONSTRAINT `fk_admi_material_histories_admi_materials1` FOREIGN KEY (`materiel_id`) REFERENCES `materiels` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  672 + ADD CONSTRAINT `fk_suivis_formule_id` FOREIGN KEY (`formule_id`) REFERENCES `formules` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  673 + ADD CONSTRAINT `fk_suivis_groupe_metier` FOREIGN KEY (`groupes_metier_id`) REFERENCES `groupes_metiers` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  674 + ADD CONSTRAINT `fk_suivis_groupe_thematique` FOREIGN KEY (`groupes_thematique_id`) REFERENCES `groupes_thematiques` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  675 + ADD CONSTRAINT `fk_suivis_type_suivi_id` FOREIGN KEY (`type_suivi_id`) REFERENCES `type_suivis` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  676 + ADD CONSTRAINT `fk_suivis_unite_id` FOREIGN KEY (`unite_id`) REFERENCES `unites` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;
  677 +
  678 +--
  679 +-- Contraintes pour la table `users`
  680 +--
  681 +ALTER TABLE `users`
  682 + ADD CONSTRAINT `fk_users_groupes_travails1` FOREIGN KEY (`groupes_metier_id`) REFERENCES `groupes_metiers` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  683 + ADD CONSTRAINT `fk_users_groupe_thematique_id` FOREIGN KEY (`groupe_thematique_id`) REFERENCES `groupes_thematiques` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  684 + ADD CONSTRAINT `fk_users_sur_categories_id` FOREIGN KEY (`sur_categorie_id`) REFERENCES `sur_categories` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;
  685 +
  686 +--
  687 +-- Contraintes pour la table `variables`
  688 +--
  689 +ALTER TABLE `variables`
  690 + ADD CONSTRAINT `fk_variables_formule_id` FOREIGN KEY (`formule_id`) REFERENCES `formules` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;
  691 +
  692 +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
  693 +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
  694 +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
... ...
database/update/db-update-2017-06-09.sh 0 → 100644
... ... @@ -0,0 +1,32 @@
  1 +#!/bin/bash
  2 +
  3 +# Pour Mac OS recent (10.10, Yosemite), la syntaxe du SED est differente
  4 +# Il faut donc executer ce script comme ceci :
  5 +# ./macos-db-update.sh ce_script.sh
  6 +
  7 +if [ ! -f ../../config/app.php ] ; then
  8 +echo "Vous devez executer ce script depuis le dossier database/update/"
  9 +exit 1
  10 +fi
  11 +
  12 +
  13 +# Get login, pass, dbname, and hostname
  14 +username=$(grep "/\*d\*/'username'" ../../config/app.php | cut -d"'" -f4)
  15 +password=$(grep "/\*d\*/'password'" ../../config/app.php | cut -d"'" -f4)
  16 +database=$(grep "/\*d\*/'database'" ../../config/app.php | cut -d"'" -f4)
  17 +host=$(grep "/\*d\*/'host'" ../../config/app.php | cut -d"'" -f4)
  18 +
  19 +
  20 +cp -p ./script_sql/db-update-2017-06-09.sql ./script_sql/db-update-2017-06-09-build.sql
  21 +
  22 +# Execute sql update script
  23 +sed -e "s/database/$database/" -i ./script_sql/db-update-2017-06-09-build.sql
  24 +mysql --user=$username --password=$password -h $host < ./script_sql/db-update-2017-06-09-build.sql
  25 +
  26 +# Delete cakephp cache
  27 +sudo rm ../../tmp/cache/models/*
  28 +sudo rm ../../tmp/cache/persistent/*
  29 +
  30 +sudo chmod -R 777 ../../tmp
  31 +sudo chmod -R 777 ../../vendor
  32 +sudo chmod -R 777 ../../webroot
... ...
database/update/script_sql/db-update-2017-05-22.sql
1 1 use database;
2 2  
3   -ALTER TABLE `materiels` CHANGE `nom_gestionnaire` `gestionnaire_id` INT( 11 ) NOT NULL ;
4 3 \ No newline at end of file
  4 +ALTER TABLE `materiels` CHANGE `nom_gestionnaire` `gestionnaire_id` INT( 11 ) NULL ;
5 5 \ No newline at end of file
... ...
database/update/script_sql/db-update-2017-06-09.sql 0 → 100644
... ... @@ -0,0 +1,3 @@
  1 +use database;
  2 +
  3 +ALTER TABLE `configurations` ADD `procedure_sur_accueil` TINYINT( 1 ) NOT NULL DEFAULT '1';
0 4 \ No newline at end of file
... ...
install/installation.sh
... ... @@ -137,7 +137,7 @@ echo &quot;Mise à jour des droits des dossiers...&quot;
137 137 # 1) POUR LES QRCODES
138 138 # Ajouter les droits en ecriture pour la creation des qrcodes
139 139 # phpqrcode write its errors into its folder ...
140   -chmod -R 775 ./vendor/phpqrcode/
  140 +sudo chmod -R 775 ./vendor/phpqrcode/
141 141 touch ./vendor/phpqrcode/errors.txt
142 142 chmod 775 ./vendor/phpqrcode/errors.txt
143 143 sudo chgrp -R $grp ./vendor/phpqrcode/
... ...
src/Controller/MaterielsController.php
... ... @@ -391,6 +391,21 @@ class MaterielsController extends AppController {
391 391 $materiel = $this->Materiels->newEntity();
392 392 if ($this->request->is('post')) {
393 393 $materiel = $this->Materiels->patchEntity($materiel, $this->request->data);
  394 + if (in_array($_SESSION['Auth']['User']['sn'][0], TableRegistry::get('Users')->find('list', [
  395 + 'keyField' => 'id',
  396 + 'valueField' => 'nom'
  397 + ])
  398 + ->where([
  399 + 'role =' => 'Administration'
  400 + ])
  401 + ->toArray())) {
  402 + $gestionnaireID = TableRegistry::get('Users')->find()
  403 + ->where([
  404 + 'nom' => $_SESSION['Auth']['User']['sn'][0]
  405 + ])
  406 + ->first()->id;
  407 + $materiel->gestionnaire_id = $gestionnaireID;
  408 + }
394 409 if ($this->Materiels->save($materiel)) {
395 410 $this->Flash->success(__('Le matériel a bien été ajouté.'));
396 411  
... ... @@ -521,6 +536,21 @@ class MaterielsController extends AppController {
521 536 'put'
522 537 ])) {
523 538 $materiel = $this->Materiels->patchEntity($materiel, $this->request->data);
  539 + if (in_array($_SESSION['Auth']['User']['sn'][0], TableRegistry::get('Users')->find('list', [
  540 + 'keyField' => 'id',
  541 + 'valueField' => 'nom'
  542 + ])
  543 + ->where([
  544 + 'role =' => 'Administration'
  545 + ])
  546 + ->toArray())) {
  547 + $gestionnaireID = TableRegistry::get('Users')->find()
  548 + ->where([
  549 + 'nom' => $_SESSION['Auth']['User']['sn'][0]
  550 + ])
  551 + ->first()->id;
  552 + $materiel->gestionnaire_id = $gestionnaireID;
  553 + }
524 554 if ($this->Materiels->save($materiel)) {
525 555 $this->Flash->success(__('Le matériel a bien été édité.'));
526 556 $this->sendEmail($materiel);
... ... @@ -869,6 +899,21 @@ class MaterielsController extends AppController {
869 899 */
870 900 public function statusValidated($id = null, $from = 'index') {
871 901 $this->statusSetTo('VALIDATED', 'Le matériel a bien été validé', $id, $from);
  902 + if (in_array($_SESSION['Auth']['User']['sn'][0], TableRegistry::get('Users')->find('list', [
  903 + 'keyField' => 'id',
  904 + 'valueField' => 'nom'
  905 + ])
  906 + ->where([
  907 + 'role =' => 'Administration'
  908 + ])
  909 + ->toArray())) {
  910 + $gestionnaireID = TableRegistry::get('Users')->find()
  911 + ->where([
  912 + 'nom' => $_SESSION['Auth']['User']['sn'][0]
  913 + ])
  914 + ->first()->id;
  915 + $materiel->gestionnaire_id = $gestionnaireID;
  916 + }
872 917 $this->sendEmail($this->Materiels->get($id));
873 918 }
874 919  
... ... @@ -1100,25 +1145,25 @@ class MaterielsController extends AppController {
1100 1145  
1101 1146 switch ($matostype) {
1102 1147 // Administratif
1103   - case 'A':
  1148 + case 'A' :
1104 1149 $matostypeRequest['Materiels.materiel_administratif ='] = '1';
1105 1150 break;
1106 1151 // Technique
1107   - case 'T':
  1152 + case 'T' :
1108 1153 $matostypeRequest['Materiels.materiel_technique ='] = '1';
1109 1154 break;
1110 1155 // Admin et Tech
1111   - case 'AT':
  1156 + case 'AT' :
1112 1157 $matostypeRequest['Materiels.materiel_administratif ='] = '1';
1113 1158 $matostypeRequest['Materiels.materiel_technique ='] = '1';
1114 1159 break;
1115 1160 // Admin ONLY
1116   - case 'AO':
  1161 + case 'AO' :
1117 1162 $matostypeRequest['Materiels.materiel_administratif ='] = '1';
1118 1163 $matostypeRequest['Materiels.materiel_technique ='] = '0';
1119 1164 break;
1120 1165 // Tech ONLY
1121   - case 'TO':
  1166 + case 'TO' :
1122 1167 $matostypeRequest['Materiels.materiel_administratif ='] = '0';
1123 1168 $matostypeRequest['Materiels.materiel_technique ='] = '1';
1124 1169 break;
... ... @@ -1264,13 +1309,13 @@ else if (isset($resultTri) &amp;&amp; strstr($this-&gt;request-&gt;here(), &#39;sort&#39;) != false &amp;&amp;
1264 1309 foreach ($this->request->data as $id => $value) :
1265 1310 if ($value == 1) {
1266 1311 switch ($what) {
1267   - case 'CREATED':
  1312 + case 'CREATED' :
1268 1313 $new = 'VALIDATED';
1269 1314 break;
1270   - case 'VALIDATED':
  1315 + case 'VALIDATED' :
1271 1316 $new = 'TOBEARCHIVED';
1272 1317 break;
1273   - case 'TOBEARCHIVED':
  1318 + case 'TOBEARCHIVED' :
1274 1319 $new = 'ARCHIVED';
1275 1320 break;
1276 1321 }
... ... @@ -1945,10 +1990,10 @@ else if (isset($resultTri) &amp;&amp; strstr($this-&gt;request-&gt;here(), &#39;sort&#39;) != false &amp;&amp;
1945 1990 $date_next = date_create_from_format('d-m-Y', $date);
1946 1991  
1947 1992 switch ($unite) {
1948   - case "Mois":
  1993 + case "Mois" :
1949 1994 date_add($date_next, date_interval_create_from_date_string($duree . ' months'));
1950 1995 break;
1951   - case "Ans":
  1996 + case "Ans" :
1952 1997 date_add($date_next, date_interval_create_from_date_string($duree . ' years'));
1953 1998 break;
1954 1999 }
... ...
src/Controller/SuivisController.php
... ... @@ -28,12 +28,9 @@ class SuivisController extends AppController {
28 28 'username' => $user[$configuration->authentificationType_ldap][0]
29 29 ])
30 30 ->first()['role'];
31   -
32 31 $action = $this->request->params['action'];
33   -
34 32 if ($this->userHasRole('Administration'))
35 33 return true;
36   -
37 34 // Pour un "utilisateur"
38 35 if (in_array($action, [
39 36 'edit',
... ... @@ -45,7 +42,6 @@ class SuivisController extends AppController {
45 42 if ($role == 'Responsable' && $this->isRespGroup($id, $user[$configuration->authentificationType_ldap][0]))
46 43 return true;
47 44 }
48   -
49 45 return parent::isAuthorized($user);
50 46 }
51 47  
... ... @@ -62,7 +58,6 @@ class SuivisController extends AppController {
62 58 'username' => $loginResponsable
63 59 ])
64 60 ->first();
65   -
66 61 if (isset($u['groupes_metier_id']) && $u['groupes_metier_id'] != TableRegistry::get('GroupesMetiers')->find()
67 62 ->where([
68 63 'nom =' => 'N/A'
... ... @@ -93,10 +88,8 @@ class SuivisController extends AppController {
93 88 */
94 89 public function index() {
95 90 $condition = '';
96   -
97 91 $GM = $this->request->query('GM');
98 92 $GT = $this->request->query('GT');
99   -
100 93 if (isset($GM) || isset($GT)) {
101 94 if (isset($GM) && $GM != TableRegistry::get('GroupesMetiers')->find()
102 95 ->where([
... ... @@ -120,7 +113,6 @@ class SuivisController extends AppController {
120 113 ];
121 114 }
122 115 }
123   -
124 116 $this->paginate = [
125 117 'contain' => [
126 118 'Materiels',
... ... @@ -130,12 +122,10 @@ class SuivisController extends AppController {
130 122 $suivis = $this->paginate($this->Suivis->find('all', [
131 123 'conditions' => $condition
132 124 ]));
133   -
134 125 $this->set('nbSuivis', $this->Suivis->find('all', [
135 126 'conditions' => $condition
136 127 ])
137 128 ->count());
138   -
139 129 $this->set(compact('suivis'));
140 130 $this->set('_serialize', [
141 131 'suivis'
... ... @@ -169,12 +159,10 @@ class SuivisController extends AppController {
169 159 ],
170 160 'order' => ('id DESC')
171 161 ]);
172   -
173 162 if (! isset($fichemet))
174 163 $fiche = $fichemet->first();
175 164 else
176 165 $fiche = null;
177   -
178 166 $this->set('typeDocuments', $typeDocuments);
179 167 $this->set('suivi', $suivi);
180 168 $this->set('fiche', $fiche);
... ... @@ -229,14 +217,12 @@ class SuivisController extends AppController {
229 217 ])
230 218 ->first()['metrologie'];
231 219 $variables = TableRegistry::get('Variables')->find('list')->toArray();
232   -
233 220 $materiel = $this->Suivis->Materiels->find()
234 221 ->where([
235 222 'id =' => $this->request->params['pass'][0]
236 223 ])
237 224 ->first();
238 225 // $domaineresp= TableRegistry::get('Users')->find()->select('sur_categorie_id')->where(['username =' => $this->LdapAuth->user($this->request->session()->read('authType'))[0]])->first()['sur_categorie_id'];
239   -
240 226 if ($metro == 1) {
241 227 $typeSuivis = $this->Suivis->TypeSuivis->find('list', [
242 228 'keyField' => 'id',
... ... @@ -248,15 +234,7 @@ class SuivisController extends AppController {
248 234 'valueField' => 'nom',
249 235 'conditions' => [
250 236 'AND' => [
251   - [
252   - 'nom !=' => 'Etalonnage interne'
253   - ],
254   - [
255   - 'nom !=' => 'Etalonnage externe'
256   - ],
257   - [
258   - 'nom !=' => 'Vérification métrologique'
259   - ]
  237 + 'nom !=' => 'Vérification métrologique'
260 238 ]
261 239 ]
262 240 ]);
... ... @@ -278,7 +256,6 @@ class SuivisController extends AppController {
278 256 $domaineresp = true;
279 257 else
280 258 $domaineresp = false;
281   -
282 259 $groupesThematiques = $this->Suivis->GroupesThematiques->find('list', [
283 260 'keyField' => 'id',
284 261 'valueField' => 'nom',
... ... @@ -289,7 +266,6 @@ class SuivisController extends AppController {
289 266 'valueField' => 'nom',
290 267 'order' => 'GroupesMetiers.nom'
291 268 ]);
292   -
293 269 $this->set(compact('variables', 'formule', 'formules', 'unite', 'domaineresp', 'suivi', 'materiels', 'typeSuivis', 'materiel', 'groupesThematiques', 'groupesMetiers'));
294 270 $this->set('_serialize', [
295 271 'suivi'
... ... @@ -334,7 +310,6 @@ class SuivisController extends AppController {
334 310 'keyfield' => 'id',
335 311 'valueField' => 'nom'
336 312 ]);
337   -
338 313 $numMateriel = $this->Suivis->Materiels->find()
339 314 ->select('numero_laboratoire')
340 315 ->where([
... ... @@ -347,12 +322,10 @@ class SuivisController extends AppController {
347 322 'id =' => $suivi->materiel_id
348 323 ])
349 324 ->first()['metrologie'];
350   -
351 325 $typeSuivis = $this->Suivis->TypeSuivis->find('list', [
352 326 'keyField' => 'id',
353 327 'valueField' => 'nom'
354 328 ]);
355   -
356 329 $groupesThematiques = $this->Suivis->GroupesThematiques->find('list', [
357 330 'keyField' => 'id',
358 331 'valueField' => 'nom',
... ... @@ -404,7 +377,6 @@ class SuivisController extends AppController {
404 377 $domaineresp = true;
405 378 else
406 379 $domaineresp = false;
407   -
408 380 $this->set(compact('unite', 'metro', 'domaineresp', 'suivi', 'materiel', 'materiels', 'typeSuivis', 'numMateriel', 'groupesThematiques', 'groupesMetiers'));
409 381 $this->set('_serialize', [
410 382 'suivi'
... ... @@ -481,14 +453,10 @@ class SuivisController extends AppController {
481 453 ]);
482 454 $s_type_suivis = $this->Suivis->TypeSuivis;
483 455 $materiels = $this->Suivis->Materiels;
484   -
485 456 $this->set(compact('s_groupes_thematiques', 's_groupes_metiers', 's_type_suivis', 'materiels'));
486   -
487 457 $resultTri = $this->request->session()->read("resultTri");
488   -
489 458 if ($this->request->is('post')) {
490 459 $specificFieldsConditions = NULL;
491   -
492 460 $periode_interventionRequest = NULL;
493 461 $date_intervention = NULL;
494 462 if ($this->request->data['s_periode_controle1'] != '')
... ... @@ -497,7 +465,6 @@ class SuivisController extends AppController {
497 465 $periode_interventionRequest['Suivis.date_controle <='] = date('Y-m-d', strtotime(str_replace('/', '-', $this->request->data['s_periode_controle2'])));
498 466 if ($this->request->data['s_date_controle'] != '')
499 467 $date_intervention['Suivis.date_controle ='] = date('Y-m-d', strtotime(str_replace('/', '-', $this->request->data['s_date_controle'])));
500   -
501 468 $specificFieldsConditions = [
502 469 $date_intervention,
503 470 $periode_interventionRequest,
... ... @@ -507,13 +474,11 @@ class SuivisController extends AppController {
507 474 $this->getConditionForFieldNumber('groupes_metier_id'),
508 475 $this->getConditionForFieldNumber('groupes_thematique_id')
509 476 ];
510   -
511 477 // CONSTRUCTION DE LA REQUETE SQL COMPLETE = $specificFieldsConditions
512 478 // by default, no sort
513 479 $lastResults = $this->Suivis->find('all', [
514 480 'conditions' => $specificFieldsConditions
515 481 ]);
516   -
517 482 $this->paginate = [
518 483 'limit' => 1000
519 484 ];
... ... @@ -522,7 +487,6 @@ class SuivisController extends AppController {
522 487 } // end if()
523 488 else if (isset($resultTri) && strstr($this->request->here(), 'sort') != false && strstr($this->request->here(), 'direction') != false) {
524 489 $findedSuivis = [];
525   -
526 490 foreach ($resultTri as $r) {
527 491 array_push($findedSuivis, $r->id);
528 492 }
... ... @@ -534,7 +498,6 @@ else if (isset($resultTri) &amp;&amp; strstr($this-&gt;request-&gt;here(), &#39;sort&#39;) != false &amp;&amp;
534 498 'id =' => $findedSuivis[$i]
535 499 ]);
536 500 }
537   -
538 501 $this->paginate = [
539 502 'limit' => 1000
540 503 ];
... ... @@ -552,26 +515,22 @@ else if (isset($resultTri) &amp;&amp; strstr($this-&gt;request-&gt;here(), &#39;sort&#39;) != false &amp;&amp;
552 515 $frequence = $frequenceORmois;
553 516 $typeFrequence = $typeFrequenceORannee;
554 517 }
555   -
556 518 $date_next = date_create_from_format('d-m-Y', $date);
557   -
558 519 switch ($typeFrequence) {
559   - case "Jours":
  520 + case "Jours" :
560 521 date_add($date_next, date_interval_create_from_date_string($frequence . ' days'));
561 522 break;
562   - case "Semaines":
  523 + case "Semaines" :
563 524 date_add($date_next, date_interval_create_from_date_string((7 * $frequence) . ' days'));
564 525 break;
565   - case "Mois":
  526 + case "Mois" :
566 527 date_add($date_next, date_interval_create_from_date_string($frequence . ' months'));
567 528 break;
568   - case "Ans":
  529 + case "Ans" :
569 530 date_add($date_next, date_interval_create_from_date_string($frequence . ' years'));
570 531 break;
571 532 }
572   -
573 533 $this->set('date', date_format($date_next, 'd-m-Y'));
574   -
575 534 $this->viewBuilder()->layout = 'ajax';
576 535 }
577 536 }
... ...
src/Model/Table/MaterielsTable.php
... ... @@ -42,13 +42,10 @@ class MaterielsTable extends AppTable {
42 42 */
43 43 public function initialize(array $config) {
44 44 parent::initialize($config);
45   -
46 45 $this->table('materiels');
47 46 $this->displayField('id');
48 47 $this->primaryKey('id');
49   -
50 48 $this->addBehavior('Timestamp');
51   -
52 49 $this->belongsTo('SurCategories', [
53 50 'foreignKey' => 'sur_categorie_id'
54 51 ]);
... ... @@ -93,38 +90,29 @@ class MaterielsTable extends AppTable {
93 90 */
94 91 public function validationDefault(Validator $validator) {
95 92 $validator->integer('id')->allowEmpty('id', 'create');
96   -
97 93 $validator->notEmpty('designation', 'Ce champ doit être rempli')->add('designation', 'valid', [
98 94 'rule' => 'check_string',
99 95 'message' => 'Ce champ contient des caractères interdits',
100 96 'provider' => 'table'
101 97 ]);
102   -
103 98 $validator->notEmpty('sur_categorie_id', 'Vous devez sélectionner une valeur');
104   -
105 99 $validator->notEmpty('categorie_id', 'Vous devez sélectionner une valeur');
106   -
107 100 $validator->allowEmpty('numero_laboratoire')->add('numero_laboratoire', 'unique', [
108 101 'rule' => 'validateUnique',
109 102 'provider' => 'table'
110 103 ]);
111   -
112 104 $validator->allowEmpty('description')->add('description', 'valid', [
113 105 'rule' => 'check_string_with_some_special_cars',
114 106 'message' => 'Ce champ contient des caractères interdits',
115 107 'provider' => 'table'
116 108 ]);
117   -
118 109 $validator->boolean('materiel_administratif')->allowEmpty('materiel_administratif');
119   -
120 110 $validator->boolean('materiel_technique')->allowEmpty('materiel_technique');
121   -
122 111 $validator->add('status', 'valid', [
123 112 'rule' => 'checkStatus',
124 113 'message' => 'Le statut doit prendre une des 4 valeurs CREATED, VALIDATED, TOBEARCHIVED, ou ARCHIVED',
125 114 'provider' => 'table'
126 115 ]);
127   -
128 116 $configuration = TableRegistry::get('Configurations')->find()
129 117 ->where([
130 118 'id =' => 1
... ... @@ -135,13 +123,11 @@ class MaterielsTable extends AppTable {
135 123 } else {
136 124 $validator->notEmpty('date_acquisition', 'Ce champ doit être rempli');
137 125 }
138   -
139 126 $validator->allowEmpty('fournisseur')->add('fournisseur', 'valid', [
140 127 'rule' => 'check_string',
141 128 'message' => 'Ce champ contient des caractères interdits',
142 129 'provider' => 'table'
143 130 ]);
144   -
145 131 $validator->numeric('prix_ht')
146 132 ->allowEmpty('prix_ht')
147 133 ->add('prix_ht', 'valid', [
... ... @@ -149,84 +135,62 @@ class MaterielsTable extends AppTable {
149 135 'message' => 'Ce champ contient des caractères interdits',
150 136 'provider' => 'table'
151 137 ]);
152   -
153 138 $validator->allowEmpty('eotp')->add('eotp', 'valid', [
154 139 'rule' => 'check_string',
155 140 'message' => 'Ce champ contient des caractères interdits',
156 141 'provider' => 'table'
157 142 ]);
158   -
159 143 $validator->allowEmpty('numero_commande')->add('numero_commande', 'valid', [
160 144 'rule' => 'check_string',
161 145 'message' => 'Ce champ contient des caractères interdits',
162 146 'provider' => 'table'
163 147 ]);
164   -
165 148 $validator->allowEmpty('code_comptable')->add('code_comptable', 'valid', [
166 149 'rule' => 'check_string',
167 150 'message' => 'Ce champ contient des caractères interdits',
168 151 'provider' => 'table'
169 152 ]);
170   -
171 153 $validator->allowEmpty('numero_serie')->add('numero_serie', 'valid', [
172 154 'rule' => 'check_string',
173 155 'message' => 'Ce champ contient des caractères interdits',
174 156 'provider' => 'table'
175 157 ]);
176   -
177 158 $validator->allowEmpty('numero_inventaire_organisme')->add('numero_inventaire_organisme', 'valid', [
178 159 'rule' => 'check_string',
179 160 'message' => 'Ce champ contient des caractères interdits',
180 161 'provider' => 'table'
181 162 ]);
182   -
183 163 $validator->allowEmpty('numero_inventaire_old')->add('numero_inventaire_old', 'valid', [
184 164 'rule' => 'check_string',
185 165 'message' => 'Ce champ contient des caractères interdits',
186 166 'provider' => 'table'
187 167 ]);
188   -
189 168 $validator->allowEmpty('date_archivage');
190   -
191 169 $validator->allowEmpty('photo_id');
192   -
193 170 $validator->boolean('etiquette')->allowEmpty('etiquette');
194   -
195 171 $validator->boolean('hors_service')->allowEmpty('hors_service');
196   -
197 172 $validator->
198 173 // ->notEmpty('site_id', 'Ce champ doit être rempli');
199 174 allowEmpty('site_id');
200   -
201 175 $validator->allowEmpty('lieu_detail')->add('lieu_detail', 'valid', [
202 176 'rule' => 'check_string',
203 177 'message' => 'Ce champ contient des caractères interdits',
204 178 'provider' => 'table'
205 179 ]);
206   -
207 180 $validator->allowEmpty('nom_responsable')->add('nom_responsable', 'valid', [
208 181 'rule' => 'check_string',
209 182 'message' => 'Ce champ contient des caractères interdits',
210 183 'provider' => 'table'
211 184 ]);
212   -
213 185 $validator->allowEmpty('email_responsable')->email('email_responsable');
214   -
215   - $validator->allowEmpty('id_gestionnaire');
216   - // ->notEmpty('id_gestionnaire', 'Ce champ doit être rempli');
217   -
  186 + $validator->allowEmpty('gestionnaire_id');
  187 + // ->notEmpty('gestionnaire_id', 'Ce champ doit être rempli');
218 188 $validator->allowEmpty('nom_createur');
219   -
220 189 $validator->allowEmpty('nom_modificateur');
221   -
222 190 $validator->allowEmpty('date_reception');
223   -
224 191 $validator->allowEmpty('date_fin_garantie');
225   -
226 192 $validator->allowEmpty('duree_garantie');
227   -
228 193 $validator->allowEmpty('unite_duree_garantie');
229   -
230 194 return $validator;
231 195 }
232 196  
... ... @@ -248,11 +212,9 @@ class MaterielsTable extends AppTable {
248 212 'id =' => 1
249 213 ])
250 214 ->first();
251   -
252 215 $checkAtLeastOneChecked = function ($entity) {
253 216 return ($entity->materiel_administratif || $entity->materiel_technique);
254 217 };
255   -
256 218 // return if price >= $configuration->prix_inventaire_administratif € then must be checked as "administratif"
257 219 $checkIfIsAdministratifWhenShouldBe = function ($entity) {
258 220 $configuration = TableRegistry::get('Configurations')->find()
... ... @@ -262,7 +224,6 @@ class MaterielsTable extends AppTable {
262 224 ->first();
263 225 return ! (isset($entity->prix_ht) && $entity->prix_ht >= $configuration->prix_inventaire_administratif && ! $entity->materiel_administratif);
264 226 };
265   -
266 227 // return if price <800€ then must NOT be checked as "administratif"
267 228 $checkIfIsNotAdministratifWhenShouldNotBe = function ($entity) {
268 229 $configuration = TableRegistry::get('Configurations')->find()
... ... @@ -272,14 +233,12 @@ class MaterielsTable extends AppTable {
272 233 ->first();
273 234 return ! (isset($entity->prix_ht) && $entity->prix_ht < $configuration->prix_inventaire_administratif && $entity->materiel_administratif);
274 235 };
275   -
276 236 // return if checked as "administratif" price MUST be set
277 237 $checkPriceIfIsAdministratif = function ($entity) {
278 238 if ($entity->materiel_administratif)
279 239 return (isset($entity->prix_ht));
280 240 return true;
281 241 };
282   -
283 242 $rules->add($checkAtLeastOneChecked, [
284 243 'errorField' => 'materiel_administratif',
285 244 'message' => 'Le matériel est obligatoirement inventoriable ou technique.'
... ... @@ -296,7 +255,6 @@ class MaterielsTable extends AppTable {
296 255 'errorField' => 'prix_ht',
297 256 'message' => 'Le matériel ne peut pas être inventoriable et ne pas avoir de prix'
298 257 ]);
299   -
300 258 $rules->add($rules->isUnique([
301 259 'numero_laboratoire'
302 260 ]));
... ... @@ -321,17 +279,14 @@ class MaterielsTable extends AppTable {
321 279 $rules->add($rules->existsIn([
322 280 'site_id'
323 281 ], 'Sites'));
324   -
325 282 return $rules;
326 283 }
327 284  
328 285 public function beforeSave($event, $entity, $options) {
329 286 if (! $entity->get('administrer')) {
330   -
331 287 if (! empty($entity->get('nom_responsable')) && empty($entity->get('nom_responsable'))) {
332 288 $entity->set('nom_responsable', $entity->get('nom_ancien_responsable'));
333 289 }
334   -
335 290 // numero_laboratoire generator (QC changed this in Jan 2015)
336 291 $configuration = TableRegistry::get('Configurations')->find()
337 292 ->where([
... ... @@ -340,9 +295,7 @@ class MaterielsTable extends AppTable {
340 295 ->first();
341 296 if ($configuration->numero_labo_sans_annee) {
342 297 if (empty($entity->get('numero_laboratoire'))) {
343   -
344 298 $labShortName = $configuration->labNameShort;
345   -
346 299 $num = TableRegistry::get('Materiels')->find('all', [
347 300 'fields' => [
348 301 'numero_laboratoire'
... ... @@ -354,25 +307,19 @@ class MaterielsTable extends AppTable {
354 307 'Materiels.numero_laboratoire DESC'
355 308 ]
356 309 ])->first()['numero_laboratoire'];
357   -
358 310 error_log($num);
359   -
360 311 $newId = substr($num, - 4) + 1;
361 312 error_log($newId);
362 313 $labNumber = $labShortName . '-' . sprintf("%04d", $newId);
363   -
364 314 $entity->set('numero_laboratoire', $labNumber);
365 315 }
366 316 } else {
367 317 if (empty($entity->get('numero_laboratoire')) && ! empty($entity->get('date_acquisition'))) {
368 318 $year = substr($entity->get('date_acquisition'), 6, 4);
369   -
370 319 if (strlen($year) == 2) {
371 320 $year = '20' . $year;
372 321 }
373   -
374 322 $labShortName = $configuration->labNameShort;
375   -
376 323 $num = TableRegistry::get('Materiels')->find('all', [
377 324 'fields' => [
378 325 'numero_laboratoire'
... ... @@ -384,24 +331,18 @@ class MaterielsTable extends AppTable {
384 331 'Materiels.numero_laboratoire DESC'
385 332 ]
386 333 ])->first()['numero_laboratoire'];
387   -
388 334 $newId = substr($num, - 4) + 1;
389   -
390 335 $labNumber = $labShortName . '-' . $year . '-' . sprintf("%04d", $newId);
391   -
392 336 $entity->set('numero_laboratoire', $labNumber);
393 337 }
394 338 }
395 339 }
396   -
397 340 if (empty($entity->get('date_acquisition'))) {
398 341 $entity->set('date_acquisition', null);
399 342 }
400   -
401 343 if (empty($entity->get('date_reception'))) {
402 344 $entity->set('date_reception', null);
403 345 }
404   -
405 346 return true;
406 347 }
407 348 }
... ...
src/Template/Layout/default.ctp
1 1 <?php
2 2 /**
3 3 * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
4   - * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
5   - *
  4 + * Copyright (c) Cake Software Foundation, Inc.
  5 + * (http://cakefoundation.org)
6 6 * Licensed under The MIT License
7 7 * For full copyright and license information, please see the LICENSE.txt
8 8 * Redistributions of files must retain the above copyright notice.
9 9 *
10   - * @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
11   - * @link http://cakephp.org CakePHP(tm) Project
12   - * @since 0.10.0
13   - * @license http://www.opensource.org/licenses/mit-license.php MIT License
  10 + * @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
  11 + * @link http://cakephp.org CakePHP(tm) Project
  12 + * @since 0.10.0
  13 + * @license http://www.opensource.org/licenses/mit-license.php MIT License
14 14 */
15 15 $cakeDescription = 'Labinvent 2';
16 16 ?>
17 17 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
18 18 <html xmlns="http://www.w3.org/1999/xhtml">
19 19 <head>
20   - <?= $this->Html->charset()?>
21   - <?= $this->Html->css('smoothness')?>
22   - <?= $this->Html->script('jquery-1.5.2') ?>
23   - <?= $this->Html->script('jquery-1.8.12') ?>
24   - <?= $this->Html->script('script') ?>
25   - <?= $this->Html->script('DatepickerConfig') ?>
  20 + <?=$this->Html->charset()?>
  21 + <?=$this->Html->css('smoothness')?>
  22 + <?=$this->Html->script('jquery-1.5.2')?>
  23 + <?=$this->Html->script('jquery-1.8.12')?>
  24 + <?=$this->Html->script('script')?>
  25 + <?=$this->Html->script('DatepickerConfig')?>
26 26 <title>
27   - <?= $cakeDescription?>
  27 + <?=$cakeDescription?>
28 28 </title>
29   - <?= $this->Html->meta('icon')?>
30   - <?= $this->Html->css('inventirap')?>
31   - <?= $this->Html->css('font-awesome')?>
32   - <?= $this->Html->script('jquery.min') ?>
33   - <?= $this->fetch('meta')?>
34   - <?= $this->fetch('css')?>
35   - <?= $this->fetch('script')?>
  29 + <?=$this->Html->meta('icon')?>
  30 + <?=$this->Html->css('inventirap')?>
  31 + <?=$this->Html->css('font-awesome')?>
  32 + <?=$this->Html->script('jquery.min')?>
  33 + <?=$this->fetch('meta')?>
  34 + <?=$this->fetch('css')?>
  35 + <?=$this->fetch('script')?>
36 36 <style>
37 37 #footer a, #footer p, #footer font { font-size: x-small; }
38 38 </style>
... ... @@ -41,34 +41,38 @@ $cakeDescription = &#39;Labinvent 2&#39;;
41 41  
42 42 <div id="container">
43 43 <div id="header">
44   -
45 44  
46   -<?= $this->Html->image('logo_software.jpg', ['alt' => 'Logo de l\'application', 'border' => '0', 'height' => '80px', 'url' => '/']) ?>
47   -
  45 +
  46 +<?=$this->Html->image('logo_software.jpg', ['alt' => 'Logo de l\'application','border' => '0','height' => '80px','url' => '/'])?>
  47 +
48 48 <div class="user">
49   -
50   -
  49 +
  50 +
51 51 <?php
52   - if (isset($username) && $username != " ") {
53   - echo 'Bienvenue '.$username.'<br/>';
54   - echo $role.'<br/>';
55   - echo $this->Html->link('Se déconnecter', ['controller' => 'Users', 'action' => 'logout']);
56   - }
57   - else {
58   - echo 'Bienvenue invité<br/>';
59   - echo $this->Html->link('Se connecter', ['controller' => 'Users', 'action' => 'login']);
60   - }
61   -
62   - ?>
63   -
  52 + if (isset($username) && $username != " ") {
  53 + echo 'Bienvenue ' . $username . '<br/>';
  54 + echo $role . '<br/>';
  55 + echo $this->Html->link('Se déconnecter', [
  56 + 'controller' => 'Users',
  57 + 'action' => 'logout'
  58 + ]);
  59 + } else {
  60 + echo 'Bienvenue invité<br/>';
  61 + echo $this->Html->link('Se connecter', [
  62 + 'controller' => 'Users',
  63 + 'action' => 'login'
  64 + ]);
  65 + }
  66 + ?>
  67 +
64 68 </div>
65 69 </div>
66   -
  70 +
67 71  
68 72 <div id="content">
69   - <?= $this->Flash->render()?>
70   - <?= $this->Flash->render('auth') ?>
71   - <?= $this->fetch('content')?>
  73 + <?=$this->Flash->render()?>
  74 + <?=$this->Flash->render('auth')?>
  75 + <?=$this->fetch('content')?>
72 76 </div>
73 77  
74 78  
... ... @@ -76,7 +80,7 @@ $cakeDescription = &#39;Labinvent 2&#39;;
76 80 <table>
77 81 <tr>
78 82 <td>
79   - <?= $this->Html->image('logo_entity.jpg', ['alt' => 'Logo du labo', 'border' => '0', 'height' => '50px']) ?>
  83 + <?=$this->Html->image('logo_entity.jpg', ['alt' => 'Logo du labo','border' => '0','height' => '50px'])?>
80 84 </td>
81 85 <td><br /> <a href="http://cakephp.org">Baked with CAKEPHP</a></td>
82 86  
... ... @@ -86,20 +90,22 @@ $cakeDescription = &#39;Labinvent 2&#39;;
86 90 href="mailto:inventirap@irap.omp.eu">LABINVENT-MAILING-LIST</a>
87 91 </p>
88 92 <?php
89   - echo '
  93 + echo '
90 94 <p>
91 95 (<a href="https://projects.irap.omp.eu/projects/inventirap/activity">Activité récente sur le projet</a>)
92 96 &nbsp;&nbsp;&nbsp
93 97 (<a href="https://projects.irap.omp.eu/projects/inventirap/roadmap?tracker_ids[]=1&tracker_ids[]=2&tracker_ids[]=4&tracker_ids[]=5&tracker_ids[]=6&tracker_ids[]=7&tracker_ids[]=8&tracker_ids[]=9#version_2.04_-_Impl%C3%A9mentation_des_ACL_%28droits%29">ROADMAP : Activité restant à réaliser</a>)
94 98 </p>
95 99 ';
96   - ?>
  100 + ?>
97 101 </i></td>
98 102 <td id="version">
99 103 <!-- VERSION M.m.f.b (version (M)ajeure, version (m)ineure, numero de nouvelle (f)onctionnalite, numero de (b)ugfix) -->
100   - <font color="black">VERSION 2.6.4 (02/06/2017)</font>
  104 + <font color="black">VERSION 2.6.5 (09/06/2017)</font>
101 105 <br/>
102   - <font color="black"><a href="<?php echo $this->request->webroot ?>webroot/doc/userguide/labinvent2_userguide.pdf" onclick="window.open(this.href); return false;">Documentation utilisateurs</a> | <a href="https://projects.irap.omp.eu/projects/inventirap/wiki/Installation" onclick="window.open(this.href); return false;">Wiki installation</a></font>
  106 + <font color="black"><a href="<?php
  107 +
  108 + echo $this->request->webroot?>webroot/doc/userguide/labinvent2_userguide.pdf" onclick="window.open(this.href); return false;">Documentation utilisateurs</a> | <a href="https://projects.irap.omp.eu/projects/inventirap/wiki/Installation" onclick="window.open(this.href); return false;">Wiki installation</a></font>
103 109 </td>
104 110 </tr>
105 111 </table>
... ...
src/Template/Materiels/add.ctp
1 1 <?php
2 2 use Cake\ORM\TableRegistry;
3   -
4 3 if (isset($cpMateriel)) {
5 4 $Designation = $cpMateriel->designation;
6 5 $Sur_categ_id = $cpMateriel->sur_categorie_id;
... ... @@ -50,7 +49,6 @@ if (isset($cpMateriel)) {
50 49 echo "<option value=\"$e\">";
51 50 }
52 51 echo '</datalist> </div>';
53   -
54 52 echo $this->Form->input('sur_categorie_id', [
55 53 'label' => 'Domaine',
56 54 'style' => 'width: 260px',
... ... @@ -58,7 +56,6 @@ if (isset($cpMateriel)) {
58 56 'empty' => 'Choisir un domaine',
59 57 'default' => $Sur_categ_id
60 58 ]);
61   -
62 59 // if a domaine is selected, reduce the categories list to this domaine
63 60 $categs = $categories;
64 61 if (isset($this->request->data['sur_categorie_id']) && ($this->request->data['sur_categorie_id'] != '')) {
... ... @@ -73,7 +70,6 @@ if (isset($cpMateriel)) {
73 70 'empty' => 'Choisir une catégorie',
74 71 'default' => $Categ_id
75 72 ]);
76   -
77 73 // by default, list is empty
78 74 $souscategs = [];
79 75 // if a categ is selected, update sous-categs list for this categ (only)
... ... @@ -90,7 +86,6 @@ if (isset($cpMateriel)) {
90 86 'empty' => 'Choisir une sous-catégorie',
91 87 'default' => $Sous_categ_id
92 88 ]);
93   -
94 89 echo $this->Form->input('materiel_technique', [
95 90 'label' => 'Technique',
96 91 'default' => $Mat_technique
... ... @@ -99,8 +94,6 @@ if (isset($cpMateriel)) {
99 94 'label' => 'Inventoriable (>' . $configuration->prix_inventaire_administratif . '€)',
100 95 'default' => $Mat_administratif
101 96 ]);
102   -
103   - var_dump($configuration->metrologie);
104 97 if ($configuration->metrologie) {
105 98 echo $this->Form->input('metrologie', [
106 99 'label' => 'Métrologie',
... ... @@ -111,7 +104,6 @@ if (isset($cpMateriel)) {
111 104 'label' => 'Description',
112 105 'default' => $Description
113 106 ]);
114   -
115 107 if (in_array($role, [
116 108 'Responsable',
117 109 'Administration',
... ... @@ -122,7 +114,6 @@ if (isset($cpMateriel)) {
122 114 'label' => 'Etiquette posée'
123 115 ]);
124 116 }
125   -
126 117 echo $this->Form->input('site_id', [
127 118 'options' => $sites,
128 119 'style' => 'width: 380px',
... ... @@ -133,7 +124,6 @@ if (isset($cpMateriel)) {
133 124 echo "<option value=\"$e\">";
134 125 }
135 126 echo '</datalist> </div>';
136   -
137 127 echo $this->Form->input('date_acquisition', [
138 128 'type' => 'text',
139 129 'label' => 'Date de la commande',
... ... @@ -149,14 +139,12 @@ if (isset($cpMateriel)) {
149 139 'empty' => true,
150 140 'default' => $Date_reception
151 141 ]);
152   -
153 142 // Ancienne version dev-IRAP
154 143 //
155 144 // echo $this->Form->input ( 'designation', [
156 145 // 'label' => 'Désignation',
157 146 // 'default' => $Designation
158 147 // ] );
159   -
160 148 // echo $this->Form->input ( 'sur_categorie_id', [
161 149 // 'label' => 'Domaine',
162 150 // 'style' => 'width: 260px',
... ... @@ -164,7 +152,6 @@ if (isset($cpMateriel)) {
164 152 // 'empty' => 'Choisir un domaine',
165 153 // 'default' => $Sur_categ_id
166 154 // ] );
167   -
168 155 // // if a domaine is selected, reduce the categories list to this domaine
169 156 // $categs = $categories;
170 157 // if (isset ( $this->request->data ['sur_categorie_id'] ) && ($this->request->data ['sur_categorie_id'] != '')) {
... ... @@ -179,7 +166,6 @@ if (isset($cpMateriel)) {
179 166 // 'empty' => 'Choisir une catégorie',
180 167 // 'default' => $Categ_id
181 168 // ] );
182   -
183 169 // // by default, list is empty
184 170 // $souscategs = [ ];
185 171 // // if a categ is selected, update sous-categs list for this categ (only)
... ... @@ -196,7 +182,6 @@ if (isset($cpMateriel)) {
196 182 // 'empty' => 'Choisir une sous-catégorie',
197 183 // 'default' => $Sous_categ_id
198 184 // ] );
199   -
200 185 // echo $this->Form->input ( 'materiel_technique', [
201 186 // 'label' => 'Technique',
202 187 // 'default' => $Mat_technique
... ... @@ -205,12 +190,10 @@ if (isset($cpMateriel)) {
205 190 // 'label' => 'Inventoriable (>' . $configuration->prix_inventaire_administratif . '€)',
206 191 // 'default' => $Mat_administratif
207 192 // ] );
208   -
209 193 // echo $this->Form->input ( 'description', [
210 194 // 'label' => 'Description',
211 195 // 'default' => $Description
212 196 // ] );
213   -
214 197 // if (in_array ( $role, [
215 198 // 'Responsable',
216 199 // 'Administration',
... ... @@ -221,7 +204,6 @@ if (isset($cpMateriel)) {
221 204 // 'label' => 'Etiquette posée'
222 205 // ] );
223 206 // }
224   -
225 207 // echo $this->Form->input ( 'site_id', [
226 208 // 'options' => $sites,
227 209 // 'style' => 'width: 380px',
... ... @@ -231,7 +213,6 @@ if (isset($cpMateriel)) {
231 213 // 'label' => 'Détail lieu de stockage',
232 214 // 'default' => $Lieu_detail
233 215 // ] );
234   -
235 216 // echo $this->Form->input ( 'date_acquisition', [
236 217 // 'type' => 'text',
237 218 // 'label' => 'Date de la commande',
... ... @@ -247,7 +228,6 @@ if (isset($cpMateriel)) {
247 228 // 'empty' => true,
248 229 // 'default' => $Date_reception
249 230 // ] );
250   -
251 231 echo '<table id="tableAlignementFrequence"><tr><td>';
252 232 echo $this->Form->input('duree_garantie', [
253 233 'type' => 'text',
... ... @@ -278,7 +258,6 @@ if (isset($cpMateriel)) {
278 258 'class' => 'datepicker',
279 259 'default' => NULL
280 260 ]);
281   -
282 261 echo $this->Form->input('numero_serie', [
283 262 'label' => 'Numéro de série'
284 263 ]);
... ... @@ -331,13 +310,12 @@ if (isset($cpMateriel)) {
331 310 'role =' => 'Administration'
332 311 ])
333 312 ->toArray();
334   - echo $this->Form->input('id_gestionnaire', [
  313 + echo $this->Form->input('gestionnaire_id', [
335 314 'label' => 'Nom du gestionnaire de référence du matériel',
336 315 'empty' => 'Choisir un gestionnaire',
337 316 'default' => $_SESSION['Auth']['User']['sn'][0],
338 317 'options' => $administrateurs
339 318 ]);
340   -
341 319 echo $this->Form->input('fournisseur', [
342 320 'label' => 'Fournisseur',
343 321 'default' => $Fournisseur,
... ... @@ -354,7 +332,6 @@ if (isset($cpMateriel)) {
354 332 'label' => 'Prix HT (€)',
355 333 'default' => $Prix_ht
356 334 ]);
357   -
358 335 if (in_array($role, [
359 336 'Administration',
360 337 'Administration Plus',
... ... @@ -434,13 +411,9 @@ echo $this-&gt;element(&#39;menu_form&#39;, [
434 411 $("#sur-categorie-id").bind("change", function(event) {
435 412 var domaineId = $("#sur-categorie-id :selected").val();
436 413  
437   - var domaineresp= <?php
438   -
439   -echo $domaineresp?>;
440   -
441   - var role= "<?php
  414 + var domaineresp= <?=$domaineresp?>;
442 415  
443   -echo $role?>";
  416 + var role= "<?=$role?>";
444 417 if(domaineId== domaineresp){
445 418 if (role == "Responsable") $("#metro").css("display", "block");
446 419 else $("#metro").css("display", "none");
... ...
src/Template/Materiels/edit.ctp
... ... @@ -13,7 +13,6 @@ if ($IS_VALIDATED)
13 13 $myReadonlyFields = array_merge(array(
14 14 'sur_categorie_id',
15 15 'categorie_id',
16   - 'sous_categorie_id',
17 16 'materiel_administratif',
18 17 'materiel_technique',
19 18 'site_id',
... ... @@ -21,7 +20,8 @@ if ($IS_VALIDATED)
21 20 'date_reception',
22 21 'organisme_id',
23 22 'prix_ht',
24   - 'id_gestionnaire'
  23 + 'gestionnaire_id',
  24 + 'nom_responsable'
25 25 ), $administrationData);
26 26 else if ($IS_ARCHIVED_OR_TOBE) {
27 27 $myReadonlyFields = array(
... ... @@ -29,7 +29,14 @@ else if ($IS_ARCHIVED_OR_TOBE) {
29 29 'status'
30 30 );
31 31 }
32   -
  32 +if ($IS_VALIDATED && $materiel->sous_categorie_id)
  33 + $myReadonlyFields = array_merge(array(
  34 + 'sous_categorie_id'
  35 + ), $myReadonlyFields);
  36 +if ($IS_VALIDATED && $materiel->numero_serie)
  37 + $myReadonlyFields = array_merge(array(
  38 + 'numero_serie'
  39 + ), $myReadonlyFields);
33 40 ?>
34 41  
35 42 <div class="materiels form">
... ... @@ -58,14 +65,11 @@ else if ($IS_ARCHIVED_OR_TOBE) {
58 65 * }
59 66 * echo '</datalist> </div>';
60 67 */
61   -
62 68 // Version IRAP - Désignation
63   -
64 69 echo $this->Form->input('designation', [
65 70 'label' => 'Désignation',
66 71 'disabled' => $isReadonlyField('designation', $myReadonlyFields)
67 72 ]);
68   -
69 73 if (in_array($role, [
70 74 'Administration',
71 75 'Administration Plus',
... ... @@ -281,7 +285,8 @@ else if ($IS_ARCHIVED_OR_TOBE) {
281 285 'role =' => 'Administration'
282 286 ])
283 287 ->toArray();
284   - echo $this->Form->input('nom_gestionnaire', [
  288 + var_dump($administrateurs);
  289 + echo $this->Form->input('gestionnaire_id', [
285 290 'label' => 'Nom du gestionnaire de référence du matériel',
286 291 'empty' => 'Choisir un gestionnaire',
287 292 'default' => $_SESSION['Auth']['User']['sn'][0],
... ... @@ -375,11 +380,12 @@ echo $this-&gt;element(&#39;menu_form&#39;, [
375 380 * Event scateg change : RIEN A FAIRE
376 381 */
377 382 ?>
378   -<?php
379   -// Alors oui, c'est pas joli, mais CakePHP a eu l'EXCELENTE IDEE de TOUT inclure dans la balise <head> du site ... Et bien entendu c'est pas pris en compte ici .... Halleluja bordel (#JeremyFerrary) ?>
  383 +
  384 +<!--Alors oui, c'est pas joli, mais CakePHP a eu l'EXCELENTE IDEE de TOUT inclure dans la balise <head> du site ... Et bien entendu c'est pas pris en compte ici .... Halleluja bordel (#JeremyFerrary) -->
380 385 <?=$this->Html->script('jquery-1.8.12')?>
381 386 <?=$this->Html->script('script')?>
382 387 <?=$this->Html->script('DatepickerConfig')?>
  388 +
383 389 <script type="text/javascript">
384 390  
385 391 /**
... ... @@ -397,10 +403,8 @@ echo $this-&gt;element(&#39;menu_form&#39;, [
397 403 $(document).ready(function () {
398 404 $("#sur-categorie-id").bind("change", function (event) {
399 405 var domaineId=$("#sur-categorie-id :selected").val();
400   - var domaineresp= "<?php
401   -echo $domaineresp?>";
402   - var role= "<?php
403   -echo $role?>";
  406 + var domaineresp= "<?=$domaineresp?>";
  407 + var role= "<?=$role?>";
404 408 if(domaineId== domaineresp){
405 409 if(role == "Responsable"){
406 410 $("#metro").css("display", "block");
... ... @@ -421,10 +425,8 @@ echo $role?&gt;&quot;;
421 425  
422 426 //Mettre un gestionnaire par défaut si c'est un admin qui modifie la fiche. Sinon l'utilisateur aura a le rentrer à la mano
423 427 $(document).ready(function () {
424   - if ( <?php
425   -echo (! is_null($res)) ? true : false?>) $("#nom-gestionnaire").val("<?php
426   -echo $_SESSION['Auth']['User']['sn'][0]?>");
427   - // Oui, c'est un bâtard entre du JavaScript et du PHP ... Mais au moins ca fonctionne en une seule ligne !
  428 + if ( <?=(! is_null($res)) ? "true" : "false"?>) $("#gestionnaire-id").val("<?=$_SESSION['Auth']['User']['sn'][0]?>");
  429 + // Oui, c'est un batard entre du JavaScript et du PHP ... Mais au moins ca fonctionne en une seule ligne !
428 430 });
429 431  
430 432  
... ... @@ -484,8 +486,10 @@ echo $_SESSION[&#39;Auth&#39;][&#39;User&#39;][&#39;sn&#39;][0]?&gt;&quot;);
484 486  
485 487 });
486 488  
  489 + /**
  490 + * Fonction de mise à jour de la date de fin de guarantie
  491 + */
487 492 function update_date() {
488   - console.log("date update detected");
489 493 if ($("#date-reception").val() != "" && $("#duree-garantie").val() != "") {
490 494 var url = document.URL;
491 495 var reg = new RegExp("(materiels).*$", "g");
... ...
src/Template/Materiels/view.ctp
1   -<?php
  1 +<?php
2 2 use Cake\I18n\Time;
3 3 use Cake\I18n\Date;
4 4 use Cake\ORM\TableRegistry;
... ... @@ -8,288 +8,272 @@ use Cake\ORM\TableRegistry;
8 8  
9 9 <h2>
10 10 <?php
11   - if (h ( $materiel->status ) == 'ARCHIVED') echo '<i class="icon-inbox"></i> ';
12   - $panne = '';
13   - if (h ( $materiel->hors_service )) {
14   - $panne = ' (HORS SERVICE)';
15   - }
16   - ?>
17   -
18   - <?= h($materiel->designation).$panne?>
  11 + if (h($materiel->status) == 'ARCHIVED')
  12 + echo '<i class="icon-inbox"></i> ';
  13 + $panne = '';
  14 + if (h($materiel->hors_service)) {
  15 + $panne = ' (HORS SERVICE)';
  16 + }
  17 + ?>
  18 +
  19 + <?=h($materiel->designation) . $panne?>
19 20 <span style="font-size: 70%; color: grey;">
20   - <?= h($materiel->numero_laboratoire)?>
21   - <?php if (h($materiel->status) == 'ARCHIVED') echo ' (Archivé)'; ?>
  21 + <?=h($materiel->numero_laboratoire)?>
  22 + <?php
  23 +
  24 +if (h($materiel->status) == 'ARCHIVED')
  25 + echo ' (Archivé)';
  26 + ?>
22 27 </span>
23 28 </h2>
24 29 <br>
25 30 <div style="text-align: center;">
26   - <?php
27   - if (isset ( $imgMateriel )) {
28   - echo $this->Html->image ( 'photos/' . $imgMateriel, [
29   - 'alt' => 'Photo matériel',
30   - 'style' => 'max-width: 300px; text-align: center;'
31   - ] );
32   - }
33   -
34   - // Url transformé en QrCode
35   - $this->request->session ()->write ( "qrUrl", $this->request->env ( 'SERVER_NAME' ) . $this->request->env ( 'REQUEST_URI' ) );
36   -
37   - $this->requestAction ( '/QrCodes/creer/' );
38   - echo $this->Html->image ( 'qrcodes/' . $this->request->session ()->read ( "filename" ), [
39   - 'alt' => 'QrCode : ' . $materiel->numero_laboratoire,
40   - 'style' => 'float: right'
41   - ] );
42   - echo '</div>';
43   - ?>
  31 + <?php
  32 + if (isset($imgMateriel)) {
  33 + echo $this->Html->image('photos/' . $imgMateriel, [
  34 + 'alt' => 'Photo matériel',
  35 + 'style' => 'max-width: 300px; text-align: center;'
  36 + ]);
  37 + }
  38 + // Url transformé en QrCode
  39 + $this->request->session()->write("qrUrl", $this->request->env('SERVER_NAME') . $this->request->env('REQUEST_URI'));
  40 + $this->requestAction('/QrCodes/creer/');
  41 + echo $this->Html->image('qrcodes/' . $this->request->session()
  42 + ->read("filename"), [
  43 + 'alt' => 'QrCode : ' . $materiel->numero_laboratoire,
  44 + 'style' => 'float: right'
  45 + ]);
  46 + echo '</div>';
  47 + ?>
44 48 <br>
45 49  
46 50 <div class="actions"
47 51 style="margin-bottom: 20px; width: 100%; float: none; padding: 10px 0;">
48 52 <?php
49   - if (in_array ( $materiel->status, [
50   - 'CREATED',
51   - 'VALIDATED'
52   - ] )) {
53   - if (($role == 'Utilisateur' && (in_array ( $username, [$materiel->nom_createur, $materiel->nom_responsable ])))
54   - || (in_array ( $role, [ 'Administration', 'Administration Plus', 'Super Administrateur']))
55   - || ($role == 'Responsable' &&
56   - ((isset($userConnected->groupes_metier_id) && $userConnected->groupes_metier_id != $idGmNa && $materiel->groupes_metier_id == $userConnected->groupes_metier_id)
57   - ||(isset($userConnected->groupe_thematique_id) && $userConnected->groupe_thematique_id != $idGtNa && $materiel->groupes_thematique_id == $userConnected->groupe_thematique_id)))) {
58   -
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   - }
69   -
70   - else {
71   - if (in_array ( $role, [
72   - 'Administration Plus',
73   - 'Super Administrateur'
74   - ] )) {
75   - echo $this->Html->link ( __ ( '<i class="icon-pencil"></i> Editer ce matériel' ), [
76   - 'action' => 'edit',
77   - $materiel->id
78   - ], [
79   - 'escape' => false,
80   - 'onclick' => 'return true;',
81   - 'style' => 'margin-right: 10px'
82   - ] );
83   - }
84   - }
85   -
86   - if ($materiel->status == 'VALIDATED') {
87   - // BOUTON NOUVEAU SUIVI
88   - echo $this->Html->link ( '<i class="icon-plus"></i> Nouv. Suivi', [
89   - 'controller' => 'suivis',
90   - 'action' => 'add',
91   - $materiel->id
92   - ], [
93   - 'title' => 'Faire un nouveau suivi de ce matériel',
94   - 'style' => 'margin-right: 10px',
95   - 'escape' => false
96   - ] ); // End link
97   -
98   - // BOUTON NOUVEL EMPRUNT
99   - echo $this->Html->link ( '<i class="icon-plus"></i> Nouv. Emprunt', [
100   - 'controller' => 'emprunts',
101   - 'action' => 'add',
102   - $materiel->id
103   - ], [
104   - 'title' => 'Faire un nouvel emprunt de ce matériel',
105   - 'style' => 'margin-right: 10px',
106   - 'escape' => false
107   - ] ); // End link
108   - }
109   -
110   - if (($role == 'Utilisateur' && (in_array ( $username, [
111   - $materiel->nom_createur,
112   - $materiel->nom_responsable
113   - ] ))) || (in_array ( $role, [
114   - 'Administration',
115   - 'Administration Plus',
116   - 'Super Administrateur'
117   - ] )) || ($role == 'Responsable' &&
118   - ((isset($userConnected->groupes_metier_id) && $userConnected->groupes_metier_id != $idGmNa && $materiel->groupes_metier_id == $userConnected->groupes_metier_id)
119   - ||(isset($userConnected->groupe_thematique_id) && $userConnected->groupe_thematique_id != $idGtNa && $materiel->groupes_thematique_id == $userConnected->groupe_thematique_id)))) {
120   -
121   - echo $this->Html->link ( '<i class="icon-file"></i> Lier un Doc.', [
122   - 'controller' => 'documents',
123   - 'action' => 'add',
124   - $materiel->id,
125   - 'mat'
126   - ], [
127   - 'title' => 'Attacher un Doc. à ce matériel',
128   - 'style' => 'margin-right: 10px',
129   - 'escape' => false
130   - ] );
131   -
132   - if ($materiel->photo_id != null) {
133   - echo $this->Html->link ( '<i class="icon-file"></i> Remplacer la photo.', [
134   - 'controller' => 'documents',
135   - 'action' => 'add',
136   - $materiel->id,
137   - 'mat',
138   - 'photo'
139   - ], [
140   - 'title' => 'Remplacer la photo de ce matériel',
141   - 'style' => 'margin-right: 10px',
142   - 'escape' => false
143   - ] );
144   - } else {
145   - echo $this->Html->link ( '<i class="icon-file"></i> Lier une photo.', [
146   - 'controller' => 'documents',
147   - 'action' => 'add',
148   - $materiel->id,
149   - 'mat',
150   - 'photo'
151   - ], [
152   - 'title' => 'Attacher une photo à ce matériel',
153   - 'style' => 'margin-right: 10px',
154   - 'escape' => false
155   - ] );
156   - }
157   - }
158   -
159   - if (in_array ( $role, [
160   - 'Administration',
161   - 'Administration Plus',
162   - 'Super Administrateur'
163   - ] )) {
164   - if (($materiel->status == 'VALIDATED') || ($materiel->status == 'CREATED')) {
165   - echo $this->Html->link ( '<i class="icon-file"></i> Doc. admission', [
166   - 'controller' => 'documents',
167   - 'action' => 'admission',
168   - $materiel->numero_laboratoire
169   - ], [
170   - 'title' => 'Voir le document d\'admission',
171   - 'style' => 'margin-right: 10px',
172   - 'escape' => false
173   - ] );
174   - } // Doc sortie (admin only)
175   - else if (($materiel->status == 'ARCHIVED') || ($materiel->status == 'TOBEARCHIVED')) {
176   - echo $this->Html->link ( '<i class="icon-file"></i> Doc. sortie', [
177   - 'controller' => 'documents',
178   - 'action' => 'sortie',
179   - $materiel->numero_laboratoire
180   - ], [
181   - 'title' => 'Voir le document de sortie',
182   - 'style' => 'margin-right: 10px',
183   - 'escape' => false
184   - ] );
185   - }
186   - }
187   -
188   - if (in_array ( $role, [
189   - 'Administration',
190   - 'Administration Plus',
191   - 'Super Administrateur'
192   - ] ) || ($role == 'Responsable' &&
193   - ((isset($userConnected->groupes_metier_id) && $userConnected->groupes_metier_id != $idGmNa && $materiel->groupes_metier_id == $userConnected->groupes_metier_id)
194   - ||(isset($userConnected->groupe_thematique_id) && $userConnected->groupe_thematique_id != $idGtNa && $materiel->groupes_thematique_id == $userConnected->groupe_thematique_id)))) {
195   - // 2) Bouton de changement de statut : Valider, Demander archivage, ou Archiver
196   - switch ($materiel->status) {
197   - case "CREATED" :
198   - echo $this->Html->link ( '<i class="icon-ok-sign"></i> Valider', [
199   - 'action' => 'statusValidated',
200   - $materiel->id,
201   - 'view'
202   - ], [
203   - 'title' => 'Valider le matériel',
204   - 'style' => 'margin-right: 10px',
205   - 'escape' => false
206   - ] );
207   - break;
208   -
209   - case "VALIDATED" :
210   - echo $this->Html->link ( '<i class="icon-ok-sign"></i> Demander sortie', [
211   - 'action' => 'statusToBeArchived',
212   - $materiel->id,
213   - 'view'
214   - ], [
215   - 'title' => 'Demander la sortie de l\'inventaire',
216   - 'style' => 'margin-right: 10px',
217   - 'escape' => false
218   - ] );
219   - break;
220   -
221   - case "TOBEARCHIVED" :
222   - if ($role != 'Responsable' && $role != 'Super Administrateur') {
223   - echo $this->Html->link ( '<i class="icon-ok-sign"></i> Sortie inventaire', [
224   - 'action' => 'statusArchived',
225   - $materiel->id,
226   - 'view'
227   - ], [
228   - 'title' => 'Sortir définitivement de l\'inventaire',
229   - 'style' => 'margin-right: 10px',
230   - 'escape' => false,
231   - 'confirm' => 'Êtes-vous sur de bien vouloir archiver ' . $materiel->designation . ' ?'
232   - ] );
233   - }
234   - break;
235   - } // switch
236   - }
237   -
238   - echo $this->Html->link ( '<i class="icon-pencil"></i> Copier ce matériel', [
239   - 'controller' => 'materiels',
240   - 'action' => 'add',
241   - $materiel->id
242   - ], [
243   - 'title' => 'Copier ce matériel',
244   - 'style' => 'margin-right: 10px; margin-top: 10px; display: inline-block',
245   - 'escape' => false
246   - ] );
247   -
248   - // BOUTON ETIQUETTE POSEE
249   - if ($configuration->hasPrinter && in_array ( $role, [
250   - 'Administration',
251   - 'Administration Plus',
252   - 'Super Administrateur'
253   - ] )) {
254   - echo '<div class="actions" style="margin-bottom: 20px; width: 100%; float: none; padding: 10px 0;">';
255   -
256   - $action = 'Impr. étiquette';
257   - echo $this->Html->link ( '<i class="icon-print"></i> ' . $action, [
258   - 'action' => 'printLabelRuban',
259   - h ( $materiel->id ),
260   - 'view'
261   - ], [
262   - 'title' => 'Imprimer sur un ruban 12mm',
263   - 'style' => 'margin-right: 10px',
264   - 'escape' => false,
265   - 'onclick' => 'return true;'
266   - ] ); // End link
267   -
268   - 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"), [
269   - 'controller' => 'materiels',
270   - 'action' => h ( $materiel->etiquette ) ? 'setLabelIsNotPlaced' : 'setLabelIsPlaced',
271   - h ( $materiel->id ),
272   - 'view'
273   - ], [
274   - '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",
275   - 'style' => 'margin-left: 0px; margin-right: 10px',
276   - 'escape' => false
277   - ] ); // End link
278   -
279   - echo '</div>';
280   -
281   -
282   - echo $this->Html->link ( '<i class="icon-file"></i> Fiche PDF du matériel', [
283   - 'controller' => 'documents',
284   - 'action' => 'ficheMateriel',
285   - $materiel->numero_laboratoire
286   - ], [
287   - 'title' => 'Voir la fiche du materiel',
288   - 'style' => 'margin-right: 10px; background: green; color: white',
289   - 'escape' => false
290   - ] );
291   - }
292   - ?>
  53 + if (in_array($materiel->status, [
  54 + 'CREATED',
  55 + 'VALIDATED'
  56 + ])) {
  57 + if (($role == 'Utilisateur' && (in_array($username, [
  58 + $materiel->nom_createur,
  59 + $materiel->nom_responsable
  60 + ]))) || (in_array($role, [
  61 + 'Administration',
  62 + 'Administration Plus',
  63 + 'Super Administrateur'
  64 + ])) || ($role == 'Responsable' && ((isset($userConnected->groupes_metier_id) && $userConnected->groupes_metier_id != $idGmNa && $materiel->groupes_metier_id == $userConnected->groupes_metier_id) || (isset($userConnected->groupe_thematique_id) && $userConnected->groupe_thematique_id != $idGtNa && $materiel->groupes_thematique_id == $userConnected->groupe_thematique_id)))) {
  65 + echo $this->Html->link(__('<i class="icon-pencil"></i> Editer ce matériel'), [
  66 + 'action' => 'edit',
  67 + $materiel->id
  68 + ], [
  69 + 'escape' => false,
  70 + 'onclick' => 'return true;',
  71 + 'style' => 'margin-right: 10px'
  72 + ]);
  73 + }
  74 + } else {
  75 + if (in_array($role, [
  76 + 'Administration Plus',
  77 + 'Super Administrateur'
  78 + ])) {
  79 + echo $this->Html->link(__('<i class="icon-pencil"></i> Editer ce matériel'), [
  80 + 'action' => 'edit',
  81 + $materiel->id
  82 + ], [
  83 + 'escape' => false,
  84 + 'onclick' => 'return true;',
  85 + 'style' => 'margin-right: 10px'
  86 + ]);
  87 + }
  88 + }
  89 + if ($materiel->status == 'VALIDATED') {
  90 + // BOUTON NOUVEAU SUIVI
  91 + echo $this->Html->link('<i class="icon-plus"></i> Nouv. Suivi', [
  92 + 'controller' => 'suivis',
  93 + 'action' => 'add',
  94 + $materiel->id
  95 + ], [
  96 + 'title' => 'Faire un nouveau suivi de ce matériel',
  97 + 'style' => 'margin-right: 10px',
  98 + 'escape' => false
  99 + ]); // End link
  100 + // BOUTON NOUVEL EMPRUNT
  101 + echo $this->Html->link('<i class="icon-plus"></i> Nouv. Emprunt', [
  102 + 'controller' => 'emprunts',
  103 + 'action' => 'add',
  104 + $materiel->id
  105 + ], [
  106 + 'title' => 'Faire un nouvel emprunt de ce matériel',
  107 + 'style' => 'margin-right: 10px',
  108 + 'escape' => false
  109 + ]); // End link
  110 + }
  111 + if (($role == 'Utilisateur' && (in_array($username, [
  112 + $materiel->nom_createur,
  113 + $materiel->nom_responsable
  114 + ]))) || (in_array($role, [
  115 + 'Administration',
  116 + 'Administration Plus',
  117 + 'Super Administrateur'
  118 + ])) || ($role == 'Responsable' && ((isset($userConnected->groupes_metier_id) && $userConnected->groupes_metier_id != $idGmNa && $materiel->groupes_metier_id == $userConnected->groupes_metier_id) || (isset($userConnected->groupe_thematique_id) && $userConnected->groupe_thematique_id != $idGtNa && $materiel->groupes_thematique_id == $userConnected->groupe_thematique_id)))) {
  119 + echo $this->Html->link('<i class="icon-file"></i> Lier un Doc.', [
  120 + 'controller' => 'documents',
  121 + 'action' => 'add',
  122 + $materiel->id,
  123 + 'mat'
  124 + ], [
  125 + 'title' => 'Attacher un Doc. à ce matériel',
  126 + 'style' => 'margin-right: 10px',
  127 + 'escape' => false
  128 + ]);
  129 + if ($materiel->photo_id != null) {
  130 + echo $this->Html->link('<i class="icon-file"></i> Remplacer la photo.', [
  131 + 'controller' => 'documents',
  132 + 'action' => 'add',
  133 + $materiel->id,
  134 + 'mat',
  135 + 'photo'
  136 + ], [
  137 + 'title' => 'Remplacer la photo de ce matériel',
  138 + 'style' => 'margin-right: 10px',
  139 + 'escape' => false
  140 + ]);
  141 + } else {
  142 + echo $this->Html->link('<i class="icon-file"></i> Lier une photo.', [
  143 + 'controller' => 'documents',
  144 + 'action' => 'add',
  145 + $materiel->id,
  146 + 'mat',
  147 + 'photo'
  148 + ], [
  149 + 'title' => 'Attacher une photo à ce matériel',
  150 + 'style' => 'margin-right: 10px',
  151 + 'escape' => false
  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 + if (in_array($role, [
  184 + 'Administration',
  185 + 'Administration Plus',
  186 + 'Super Administrateur'
  187 + ]) || ($role == 'Responsable' && ((isset($userConnected->groupes_metier_id) && $userConnected->groupes_metier_id != $idGmNa && $materiel->groupes_metier_id == $userConnected->groupes_metier_id) || (isset($userConnected->groupe_thematique_id) && $userConnected->groupe_thematique_id != $idGtNa && $materiel->groupes_thematique_id == $userConnected->groupe_thematique_id)))) {
  188 + // 2) Bouton de changement de statut : Valider, Demander archivage, ou Archiver
  189 + switch ($materiel->status) {
  190 + case "CREATED" :
  191 + echo $this->Html->link('<i class="icon-ok-sign"></i> Valider', [
  192 + 'action' => 'statusValidated',
  193 + $materiel->id,
  194 + 'view'
  195 + ], [
  196 + 'title' => 'Valider le matériel',
  197 + 'style' => 'margin-right: 10px',
  198 + 'escape' => false
  199 + ]);
  200 + break;
  201 + case "VALIDATED" :
  202 + echo $this->Html->link('<i class="icon-ok-sign"></i> Demander sortie', [
  203 + 'action' => 'statusToBeArchived',
  204 + $materiel->id,
  205 + 'view'
  206 + ], [
  207 + 'title' => 'Demander la sortie de l\'inventaire',
  208 + 'style' => 'margin-right: 10px',
  209 + 'escape' => false
  210 + ]);
  211 + break;
  212 + case "TOBEARCHIVED" :
  213 + if ($role != 'Responsable' && $role != 'Super Administrateur') {
  214 + echo $this->Html->link('<i class="icon-ok-sign"></i> Sortie inventaire', [
  215 + 'action' => 'statusArchived',
  216 + $materiel->id,
  217 + 'view'
  218 + ], [
  219 + 'title' => 'Sortir définitivement de l\'inventaire',
  220 + 'style' => 'margin-right: 10px',
  221 + 'escape' => false,
  222 + 'confirm' => 'Êtes-vous sur de bien vouloir archiver ' . $materiel->designation . ' ?'
  223 + ]);
  224 + }
  225 + break;
  226 + } // switch
  227 + }
  228 + echo $this->Html->link('<i class="icon-pencil"></i> Copier ce matériel', [
  229 + 'controller' => 'materiels',
  230 + 'action' => 'add',
  231 + $materiel->id
  232 + ], [
  233 + 'title' => 'Copier ce matériel',
  234 + 'style' => 'margin-right: 10px; margin-top: 10px; display: inline-block',
  235 + 'escape' => false
  236 + ]);
  237 + // BOUTON ETIQUETTE POSEE
  238 + if ($configuration->hasPrinter && in_array($role, [
  239 + 'Administration',
  240 + 'Administration Plus',
  241 + 'Super Administrateur'
  242 + ])) {
  243 + echo '<div class="actions" style="margin-bottom: 20px; width: 100%; float: none; padding: 10px 0;">';
  244 + $action = 'Impr. étiquette';
  245 + echo $this->Html->link('<i class="icon-print"></i> ' . $action, [
  246 + 'action' => 'printLabelRuban',
  247 + h($materiel->id),
  248 + 'view'
  249 + ], [
  250 + 'title' => 'Imprimer sur un ruban 12mm',
  251 + 'style' => 'margin-right: 10px',
  252 + 'escape' => false,
  253 + 'onclick' => 'return true;'
  254 + ]); // End link
  255 + 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"), [
  256 + 'controller' => 'materiels',
  257 + 'action' => h($materiel->etiquette) ? 'setLabelIsNotPlaced' : 'setLabelIsPlaced',
  258 + h($materiel->id),
  259 + 'view'
  260 + ], [
  261 + '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",
  262 + 'style' => 'margin-left: 0px; margin-right: 10px',
  263 + 'escape' => false
  264 + ]); // End link
  265 + echo '</div>';
  266 + echo $this->Html->link('<i class="icon-file"></i> Fiche PDF du matériel', [
  267 + 'controller' => 'documents',
  268 + 'action' => 'ficheMateriel',
  269 + $materiel->numero_laboratoire
  270 + ], [
  271 + 'title' => 'Voir la fiche du materiel',
  272 + 'style' => 'margin-right: 10px; background: green; color: white',
  273 + 'escape' => false
  274 + ]);
  275 + }
  276 + ?>
293 277 </div>
294 278  
295 279 <h3 id="t_informations" style="cursor: pointer;">
... ... @@ -302,310 +286,363 @@ use Cake\ORM\TableRegistry;
302 286 <th style="width: 250px;"></th>
303 287 <th></th>
304 288 </tr>
305   -
306   -
  289 +
  290 +
307 291 <?php
308   - // Pour changer la couleur de la date de garantie si elle est passée - Ajout par Thibault Ajas le 02/05/2017
309   - $time = Time::now(); // On récupère la date et l'heure actuelles
310   - $today = new date("$time->year-$time->month-$time->day"); // On extrait la date pour la vérification de fin de garantie
311   - $today = $today->format('Ydm'); // On formatte la date initialement en 31-12-2000 en un format qui pourra etre comparé : 20001231
312   - if ($materiel->date_fin_garantie !== NULL) {
313   - $timeFin = new time($materiel->date_fin_garantie);
314   - $dateFin = new date("$timeFin->year-$timeFin->month-$timeFin->day");
315   - $dateFin = $dateFin->format('Ydm');
316   - }
317   - if($materiel->date_fin_garantie !== NULL) $style = ($today >= $dateFin) ? 'style="color: #FF0000"' : '' ; else $style = '';
318   - ?>
319   -
320   -
  292 +// Pour changer la couleur de la date de garantie si elle est passée - Ajout par Thibault Ajas le 02/05/2017
  293 +$time = Time::now(); // On récupère la date et l'heure actuelles
  294 +$today = new date("$time->year-$time->month-$time->day"); // On extrait la date pour la vérification de fin de garantie
  295 +$today = $today->format('Ydm'); // On formatte la date initialement en 31-12-2000 en un format qui pourra etre comparé : 20001231
  296 +if ($materiel->date_fin_garantie !== NULL) {
  297 + $timeFin = new time($materiel->date_fin_garantie);
  298 + $dateFin = new date("$timeFin->year-$timeFin->month-$timeFin->day");
  299 + $dateFin = $dateFin->format('Ydm');
  300 +}
  301 +if ($materiel->date_fin_garantie !== NULL)
  302 + $style = ($today >= $dateFin) ? 'style="color: #FF0000"' : '';
  303 +else
  304 + $style = '';
  305 +?>
  306 +
  307 +
321 308 <?php
322   - $type = "";
323   - if (h ( $materiel->materiel_administratif ) == 1 && h ( $materiel->materiel_technique ) == 1) {
324   - $type = 'Administratif et technique';
325   - } else if (h ( $materiel->materiel_administratif ) == 1) {
326   - $type = 'Administratif';
327   - } else if (h ( $materiel->materiel_technique ) == 1) {
328   - $type = 'Technique';
329   - }
330   -
331   - echo '<tr><td><strong>'.__('Description').' </strong></td><td>'.nl2br($materiel->description).'</td></tr>';
332   -
333   - // La variable-fonction $displayElement est définie dans le fichier src/Controller/AppController.php
334   -
335   - $displayElement ( __ ( 'Materiel inventorié' ), $type );
336   - $displayElement ( __ ( 'Organisme' ), $materiel->has ( 'organisme' ) ? h ( $materiel->organisme->nom ) : '' );
337   - $displayElement ( __ ( 'Domaine' ), $materiel->has ( 'sur_category' ) ? h ( $materiel->sur_category->nom ) : '' );
338   - $displayElement ( __ ( 'Catégorie' ), $materiel->has ( 'category' ) ? h ( $materiel->category->nom ) : '' );
339   - $displayElement ( __ ( 'Sous-Catégorie' ), $materiel->has ( 'sous_category' ) ? h ( $materiel->sous_category->nom ) : '' );
340   -
341   - if (h ( $materiel->etiquette ) == 0) {
342   - $etiq = "Non";
343   - } else {
344   - $etiq = "Oui";
345   - }
346   - $displayElement ( __ ( 'Etiquette posée' ), $etiq );
347   - $displayElement ( __ ( 'N° de série'),$materiel->numero_serie );
348   - $displayElement ( __ ( $configuration->nom_groupe_thematique ), $materiel->has ( 'groupes_thematique' ) ? $this->Html->link ( $materiel->groupes_thematique->nom, [
349   - 'controller' => 'GroupesThematiques',
350   - 'action' => 'view',
351   - $materiel->groupes_thematique->id
352   - ] ) : '' );
353   - $displayElement ( __ ( $configuration->nom_groupe_metier ), $materiel->has ( 'groupes_metier' ) ? $this->Html->link ( $materiel->groupes_metier->nom, [
354   - 'controller' => 'GroupesMetiers',
355   - 'action' => 'view',
356   - $materiel->groupes_metier->id
357   - ] ) : '' );
358   - if($configuration->metrologie == 1){
359   - if (h ( $materiel->metrologie ) == 0) {
360   - $metro = "Non";
361   - } else {
362   - $metro = "Oui";
363   - }
364   - $displayElement ( __ ( 'Métrologie' ), $metro);
365   - }
366   - $displayElement ( __ ( 'Date d\'achat' ), h ( $materiel->date_acquisition ) );
367   -
368   - $displayElement ( __ ( 'Date de reception' ), h ( $materiel->date_reception ) );
369   - if (! empty ( h ( $materiel->duree_garntie ) )) {
370   - $displayElement ( __ ( 'Duree garantie' ), h ( $materiel->duree_garantie ) . ' ' . h ( $materiel->unite_duree_garantie ) );
371   - }
372   - $displayElement ( __ ( 'Date fin de garantie' ), h ( $materiel->date_fin_garantie ), $style );
373   -
374   - $displayElement ( __ ( 'Statut' ), h ( $materiel->status ) );
375   - if ($materiel->status == 'ARCHIVED') {
376   - $displayElement ( __ ( 'Date d\'archivage' ), h ( $materiel->date_archivage ) );
377   - }
378   - $displayElement ( __ ( 'Prix (HT)' ), h ( $materiel->prix_ht ) . ' €' );
379   - $displayElement ( __ ( 'Fournisseur' ), $materiel->has( 'fournisseur' )? $materiel->fournisseur->nom : '' );
380   -
381   - $displayElement ( __ ( 'Lieu de stockage' ), $materiel->has ( 'site' ) ? h ( $materiel->site->nom ) : '' );
382   - $displayElement ( __ ( 'Détail lieu de stockage' ), h ( $materiel->lieu_detail ) );
383   -
384   - $displayElement ( __ ( 'Nom du propriétaire' ), $this->Html->link ( h ( $materiel->nom_responsable ), 'mailto:' . h ( $materiel->email_responsable ) ) );
385   - $displayElement ( __ ( 'N. interne (labo)' ), h ( $materiel->numero_laboratoire ) );
386   - $gestionnaire = TableRegistry::get('Users')->find()->where(['id =' => $materiel->id_gestionnaire]);
387   - $displayElement ( __ ( 'Nom du gestionnaire de référence' ), h ( $gestionnaire->first()['nom'] ));
388   - if ($role == 'Super Administrateur') {
389   - $displayElement ( __ ( 'Date création' ), h ( $materiel->created ) );
390   - $displayElement ( __ ( 'Nom du créateur' ), h ( $materiel->nom_createur ) );
391   - $displayElement ( __ ( 'Date modification' ), h ( $materiel->modified ) );
392   - $displayElement ( __ ( 'Nom du modificateur' ), h ( $materiel->nom_modificateur ) );
393   - }
394   -
395   - ?>
  309 + $type = "";
  310 + if (h($materiel->materiel_administratif) == 1 && h($materiel->materiel_technique) == 1) {
  311 + $type = 'Administratif et technique';
  312 + } else if (h($materiel->materiel_administratif) == 1) {
  313 + $type = 'Administratif';
  314 + } else if (h($materiel->materiel_technique) == 1) {
  315 + $type = 'Technique';
  316 + }
  317 + echo '<tr><td><strong>' . __('Description') . ' </strong></td><td>' . nl2br($materiel->description) . '</td></tr>';
  318 + // La variable-fonction $displayElement est définie dans le fichier src/Controller/AppController.php
  319 + $displayElement(__('Materiel inventorié'), $type);
  320 + $displayElement(__('Organisme'), $materiel->has('organisme') ? h($materiel->organisme->nom) : '');
  321 + $displayElement(__('Domaine'), $materiel->has('sur_category') ? h($materiel->sur_category->nom) : '');
  322 + $displayElement(__('Catégorie'), $materiel->has('category') ? h($materiel->category->nom) : '');
  323 + $displayElement(__('Sous-Catégorie'), $materiel->has('sous_category') ? h($materiel->sous_category->nom) : '');
  324 + if (h($materiel->etiquette) == 0) {
  325 + $etiq = "Non";
  326 + } else {
  327 + $etiq = "Oui";
  328 + }
  329 + $displayElement(__('Etiquette posée'), $etiq);
  330 + $displayElement(__('N° de série'), $materiel->numero_serie);
  331 + $displayElement(__($configuration->nom_groupe_thematique), $materiel->has('groupes_thematique') ? $this->Html->link($materiel->groupes_thematique->nom, [
  332 + 'controller' => 'GroupesThematiques',
  333 + 'action' => 'view',
  334 + $materiel->groupes_thematique->id
  335 + ]) : '');
  336 + $displayElement(__($configuration->nom_groupe_metier), $materiel->has('groupes_metier') ? $this->Html->link($materiel->groupes_metier->nom, [
  337 + 'controller' => 'GroupesMetiers',
  338 + 'action' => 'view',
  339 + $materiel->groupes_metier->id
  340 + ]) : '');
  341 + if ($configuration->metrologie == 1) {
  342 + if (h($materiel->metrologie) == 0) {
  343 + $metro = "Non";
  344 + } else {
  345 + $metro = "Oui";
  346 + }
  347 + $displayElement(__('Métrologie'), $metro);
  348 + }
  349 + $displayElement(__('Date d\'achat'), h($materiel->date_acquisition));
  350 + $displayElement(__('Date de reception'), h($materiel->date_reception));
  351 + if (! empty(h($materiel->duree_garntie))) {
  352 + $displayElement(__('Duree garantie'), h($materiel->duree_garantie) . ' ' . h($materiel->unite_duree_garantie));
  353 + }
  354 + $displayElement(__('Date fin de garantie'), h($materiel->date_fin_garantie), $style);
  355 + $displayElement(__('Statut'), h($materiel->status));
  356 + if ($materiel->status == 'ARCHIVED') {
  357 + $displayElement(__('Date d\'archivage'), h($materiel->date_archivage));
  358 + }
  359 + $displayElement(__('Prix (HT)'), h($materiel->prix_ht) . ' €');
  360 + $displayElement(__('Fournisseur'), $materiel->has('fournisseur') ? $materiel->fournisseur->nom : '');
  361 + $displayElement(__('Lieu de stockage'), $materiel->has('site') ? h($materiel->site->nom) : '');
  362 + $displayElement(__('Détail lieu de stockage'), h($materiel->lieu_detail));
  363 + $displayElement(__('Nom du propriétaire'), $this->Html->link(h($materiel->nom_responsable), 'mailto:' . h($materiel->email_responsable)));
  364 + $displayElement(__('N. interne (labo)'), h($materiel->numero_laboratoire));
  365 + $gestionnaire = TableRegistry::get('Users')->find()->where([
  366 + 'id =' => $materiel->gestionnaire_id
  367 + ]);
  368 + $displayElement(__('Nom du gestionnaire de référence'), h($gestionnaire->first()['nom']));
  369 + if ($role == 'Super Administrateur') {
  370 + $displayElement(__('Date création'), h($materiel->created));
  371 + $displayElement(__('Nom du créateur'), h($materiel->nom_createur));
  372 + $displayElement(__('Date modification'), h($materiel->modified));
  373 + $displayElement(__('Nom du modificateur'), h($materiel->nom_modificateur));
  374 + }
  375 + ?>
396 376 </table>
397 377 </div>
398   -
  378 +
399 379  
400 380 <?php
401   - // Partie admin
402   - if (in_array ( $role, [
403   - 'Administration',
404   - 'Administration Plus',
405   - 'Super Administrateur'
406   - ] )) {
407   - echo '<h3 id="t_informations_admin" style="cursor: pointer;">';
408   - echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_informations_admin"></i>';
409   - echo '<span style="text-decoration: underline;"> Informations administratives</span>';
410   - echo '</h3>';
411   - echo '<div id="informations_admin" style="margin-bottom: 20px;">';
412   - echo '<table>';
413   - echo '<tr><th style="width: 250px;"></th><th></th></tr>';
414   -
415   - echo '<tr><td><strong>' . __ ( 'CentreFinancier/EOTP' ) . ' </strong></td><td>' . h ( $materiel->eotp ) . '</td></tr>';
416   - echo '<tr><td><strong>' . __ ( 'N° commande' ) . ' </strong></td><td>' . h ( $materiel->numero_commande ) . '</td></tr>';
417   - echo '<tr><td><strong>' . __ ( 'Code comptable' ) . ' </strong></td><td>' . h ( $materiel->code_comptable ) . '</td></tr>';
418   - echo '<tr><td><strong>' . __ ( 'N. Inventaire Organisme' ) . ' </strong></td><td>' . h ( $materiel->numero_inventaire_organisme ) . '</td></tr>';
419   - echo '<tr><td><strong>' . __ ( 'N. inventaire (ancien)' ) . ' </strong></td><td>' . h ( $materiel->numero_inventaire_old ) . '</td></tr>';
420   -
421   - echo '</table>';
422   - echo '</div>';
423   - }
424   -
425   - ?>
426   -
427   -
  381 +// Partie admin
  382 +if (in_array($role, [
  383 + 'Administration',
  384 + 'Administration Plus',
  385 + 'Super Administrateur'
  386 +])) {
  387 + echo '<h3 id="t_informations_admin" style="cursor: pointer;">';
  388 + echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_informations_admin"></i>';
  389 + echo '<span style="text-decoration: underline;"> Informations administratives</span>';
  390 + echo '</h3>';
  391 + echo '<div id="informations_admin" style="margin-bottom: 20px;">';
  392 + echo '<table>';
  393 + echo '<tr><th style="width: 250px;"></th><th></th></tr>';
  394 + echo '<tr><td><strong>' . __('CentreFinancier/EOTP') . ' </strong></td><td>' . h($materiel->eotp) . '</td></tr>';
  395 + echo '<tr><td><strong>' . __('N° commande') . ' </strong></td><td>' . h($materiel->numero_commande) . '</td></tr>';
  396 + echo '<tr><td><strong>' . __('Code comptable') . ' </strong></td><td>' . h($materiel->code_comptable) . '</td></tr>';
  397 + echo '<tr><td><strong>' . __('N. Inventaire Organisme') . ' </strong></td><td>' . h($materiel->numero_inventaire_organisme) . '</td></tr>';
  398 + echo '<tr><td><strong>' . __('N. inventaire (ancien)') . ' </strong></td><td>' . h($materiel->numero_inventaire_old) . '</td></tr>';
  399 + echo '</table>';
  400 + echo '</div>';
  401 +}
  402 +?>
  403 +
  404 +
428 405 <h3 id="t_suivis" style="cursor: pointer;">
429 406 <i class="icon-chevron-down" style="font-size: 14px;" id="i_suivis"></i>
430   - <span style="text-decoration: underline;">Suivi(s) du matériel (<?= count($materiel->suivis) ?>)</span>
  407 + <span style="text-decoration: underline;">Suivi(s) du matériel (<?=count($materiel->suivis)?>)</span>
431 408 </h3>
432 409 <div id="suivis" style="margin-bottom: 20px;">
433 410  
434   - <?php if (!empty($materiel->suivis)) { ?>
  411 + <?php
  412 +
  413 +if (! empty($materiel->suivis)) {
  414 + ?>
435 415 <table>
436 416 <tr>
437   - <th class="actions"><?= __('') ?></th>
438   - <th><?= __('N°') ?></th>
439   - <th><?= __('Type d\'intervention') ?></th>
440   - <th><?= __('Intitulé') ?></th>
441   - <th><?= __('Etat metrologique') ?></th>
442   - <th><?= __('Date prochain contrôle') ?></th>
443   - <th><?= __('Statut') ?></th>
444   - </tr>
445   - <?php foreach ($materiel->suivis as $suivis): ?>
  417 + <th class="actions"><?=__('')?></th>
  418 + <th><?=__('N°')?></th>
  419 + <th><?=__('Type d\'intervention')?></th>
  420 + <th><?=__('Intitulé')?></th>
  421 + <th><?=__('Etat metrologique')?></th>
  422 + <th><?=__('Date prochain contrôle')?></th>
  423 + <th><?=__('Statut')?></th>
  424 + </tr>
  425 + <?php
  426 +
  427 +foreach ($materiel->suivis as $suivis) :
  428 + ?>
446 429 <tr>
447   -
  430 +
448 431 <td class="actions" style="padding: 6px 0; text-align: left;">
449 432 <?php
450   - if(($role == 'Utilisateur' && (in_array($username, [$materiel->nom_createur, $materiel->nom_responsable]))) || (in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur']))
451   - || ($role == 'Responsable' &&
452   - ((isset($userConnected->groupes_metier_id) && $userConnected->groupes_metier_id != $idGmNa && $materiel->groupes_metier_id == $userConnected->groupes_metier_id)
453   - ||(isset($userConnected->groupe_thematique_id) && $userConnected->groupe_thematique_id != $idGtNa && $materiel->groupes_thematique_id == $userConnected->groupe_thematique_id)))) {
454   - ?>
455   - <?= $this->Html->link(__('<i class="icon-pencil"></i>'), ['controller' => 'Suivis', 'action' => 'edit', $suivis->id], ['escape' => false, 'style' => 'margin:0'])?>
456   - <?= $this->Form->postLink(__('<i class="icon-trash"></i>'), ['controller' => 'Suivis', 'action' => 'delete', $suivis->id], ['escape' => false, 'style' => 'margin:0', 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $suivis->id)])?>
457   - <?php } ?>
  433 + if (($role == 'Utilisateur' && (in_array($username, [
  434 + $materiel->nom_createur,
  435 + $materiel->nom_responsable
  436 + ]))) || (in_array($role, [
  437 + 'Administration',
  438 + 'Administration Plus',
  439 + 'Super Administrateur'
  440 + ])) || ($role == 'Responsable' && ((isset($userConnected->groupes_metier_id) && $userConnected->groupes_metier_id != $idGmNa && $materiel->groupes_metier_id == $userConnected->groupes_metier_id) || (isset($userConnected->groupe_thematique_id) && $userConnected->groupe_thematique_id != $idGtNa && $materiel->groupes_thematique_id == $userConnected->groupe_thematique_id)))) {
  441 + ?>
  442 + <?=$this->Html->link(__('<i class="icon-pencil"></i>'), ['controller' => 'Suivis','action' => 'edit',$suivis->id], ['escape' => false,'style' => 'margin:0'])?>
  443 + <?=$this->Form->postLink(__('<i class="icon-trash"></i>'), ['controller' => 'Suivis','action' => 'delete',$suivis->id], ['escape' => false,'style' => 'margin:0','confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $suivis->id)])?>
  444 + <?php
  445 +
  446 +}
  447 + ?>
458 448 </td>
459   - <td><?= $this->Html->link('Suivi '.$suivis->id, ['controller' => 'suivis', 'action' => 'view', $suivis->id]) ?></td>
460   - <td><?= $typeSuivis->find()->where(['id =' => h($suivis->type_suivi_id)])->first()['nom']; ?></td>
461   - <td><?= h($suivis->intitule) ?></td>
462   - <td><?= h($suivis->conforme) ?></td>
463   - <td><?= h($suivis->date_prochain_controle) ?></td>
464   - <td><?= h($suivis->statut) ?></td>
  449 + <td><?=$this->Html->link('Suivi ' . $suivis->id, ['controller' => 'suivis','action' => 'view',$suivis->id])?></td>
  450 + <td><?=$typeSuivis->find()->where(['id =' => h($suivis->type_suivi_id)])->first()['nom'];?></td>
  451 + <td><?=h($suivis->intitule)?></td>
  452 + <td><?=h($suivis->conforme)?></td>
  453 + <td><?=h($suivis->date_prochain_controle)?></td>
  454 + <td><?=h($suivis->statut)?></td>
465 455 </tr>
466   - <?php endforeach; ?>
467   - </table>
468   - <?php }else { echo 'Aucun suivi pour ce matériel.'; } ?>
  456 + <?php
  457 +
  458 +endforeach
  459 + ;
  460 + ?>
  461 + </table>
  462 + <?php
  463 +
  464 +} else {
  465 + echo 'Aucun suivi pour ce matériel.';
  466 + }
  467 + ?>
469 468 </div>
470 469  
471 470  
472 471  
473 472 <h3 id="t_emprunts" style="cursor: pointer;">
474 473 <i class="icon-chevron-down" style="font-size: 14px;" id="i_emprunts"></i>
475   - <span style="text-decoration: underline;">Emprunt(s) du matériel (<?= count($materiel->emprunts) ?>)</span>
  474 + <span style="text-decoration: underline;">Emprunt(s) du matériel (<?=count($materiel->emprunts)?>)</span>
476 475 </h3>
477 476 <div id="emprunts" style="margin-bottom: 20px;">
478   -
479   - <?php if (!empty($materiel->emprunts)) { ?>
  477 +
  478 + <?php
  479 +
  480 +if (! empty($materiel->emprunts)) {
  481 + ?>
480 482 <table>
481 483 <tr>
482   - <th class="actions"><?= __('') ?></th>
483   - <th><?= __('N°') ?></th>
484   - <th><?= __('Emprunteur') ?></th>
485   - <th><?= __('Type d\'Emprunt') ?></th>
486   - <th><?= __('Où') ?></th>
487   - <th><?= __('Date de l\'emprunt') ?></th>
488   - <th><?= __('Date de retour') ?></th>
489   - </tr>
  484 + <th class="actions"><?=__('')?></th>
  485 + <th><?=__('N°')?></th>
  486 + <th><?=__('Emprunteur')?></th>
  487 + <th><?=__('Type d\'Emprunt')?></th>
  488 + <th><?=__('Où')?></th>
  489 + <th><?=__('Date de l\'emprunt')?></th>
  490 + <th><?=__('Date de retour')?></th>
  491 + </tr>
490 492 <?php
491   -
492   -foreach ( $materiel->emprunts as $emprunts ) :
493   -
494   - $type = 'Externe';
495   - $lieu = $emprunts ['laboratoire'];
496   - if ($emprunts ['emprunt_interne'] == 1) {
497   - $type = 'Interne';
498   - $lieu = $sites->find ()->where ( [
499   - 'id =' => h ( $emprunts->site_id )
500   - ] )->first () ['nom'] . '-' . h ( $emprunts->e_lieu_detail );
501   - }
502   - ?>
  493 + foreach ($materiel->emprunts as $emprunts) :
  494 + $type = 'Externe';
  495 + $lieu = $emprunts['laboratoire'];
  496 + if ($emprunts['emprunt_interne'] == 1) {
  497 + $type = 'Interne';
  498 + $lieu = $sites->find()
  499 + ->where([
  500 + 'id =' => h($emprunts->site_id)
  501 + ])
  502 + ->first()['nom'] . '-' . h($emprunts->e_lieu_detail);
  503 + }
  504 + ?>
503 505 <tr>
504   -
  506 +
505 507 <td class="actions" style="padding: 6px 0; text-align: left;">
506 508 <?php
507   - if(($role == 'Utilisateur' && (in_array($username, [$materiel->nom_createur, $materiel->nom_responsable]))) || (in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur']))
508   - || ($role == 'Responsable' &&
509   - ((isset($userConnected->groupes_metier_id) && $userConnected->groupes_metier_id != $idGmNa && $materiel->groupes_metier_id == $userConnected->groupes_metier_id)
510   - ||(isset($userConnected->groupe_thematique_id) && $userConnected->groupe_thematique_id != $idGtNa && $materiel->groupes_thematique_id == $userConnected->groupe_thematique_id)))) {
511   - ?>
512   - <?= $this->Html->link(__('<i class="icon-pencil"></i>'), ['controller' => 'Emprunts', 'action' => 'edit', $emprunts->id], ['escape' => false, 'style' => 'margin:0'])?>
513   - <?= $this->Form->postLink(__('<i class="icon-trash"></i>'), ['controller' => 'Emprunts', 'action' => 'delete', $emprunts->id], ['escape' => false, 'style' => 'margin:0', 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $emprunts->id)])?>
514   - <?php } ?>
  509 + if (($role == 'Utilisateur' && (in_array($username, [
  510 + $materiel->nom_createur,
  511 + $materiel->nom_responsable
  512 + ]))) || (in_array($role, [
  513 + 'Administration',
  514 + 'Administration Plus',
  515 + 'Super Administrateur'
  516 + ])) || ($role == 'Responsable' && ((isset($userConnected->groupes_metier_id) && $userConnected->groupes_metier_id != $idGmNa && $materiel->groupes_metier_id == $userConnected->groupes_metier_id) || (isset($userConnected->groupe_thematique_id) && $userConnected->groupe_thematique_id != $idGtNa && $materiel->groupes_thematique_id == $userConnected->groupe_thematique_id)))) {
  517 + ?>
  518 + <?=$this->Html->link(__('<i class="icon-pencil"></i>'), ['controller' => 'Emprunts','action' => 'edit',$emprunts->id], ['escape' => false,'style' => 'margin:0'])?>
  519 + <?=$this->Form->postLink(__('<i class="icon-trash"></i>'), ['controller' => 'Emprunts','action' => 'delete',$emprunts->id], ['escape' => false,'style' => 'margin:0','confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $emprunts->id)])?>
  520 + <?php
  521 +
  522 +}
  523 + ?>
515 524 </td>
516   - <td><?= $this->Html->link('Emprunt '.$emprunts->id, ['controller' => 'emprunts', 'action' => 'view', $emprunts->id]) ?></td>
517   - <td><?= h($emprunts->nom_emprunteur) ?></td>
518   - <td><?= h($type) ?></td>
519   - <td><?= h($lieu) ?></td>
520   - <td><?= h($emprunts->date_emprunt) ?></td>
521   - <td><?= h($emprunts->date_retour_emprunt) ?></td>
  525 + <td><?=$this->Html->link('Emprunt ' . $emprunts->id, ['controller' => 'emprunts','action' => 'view',$emprunts->id])?></td>
  526 + <td><?=h($emprunts->nom_emprunteur)?></td>
  527 + <td><?=h($type)?></td>
  528 + <td><?=h($lieu)?></td>
  529 + <td><?=h($emprunts->date_emprunt)?></td>
  530 + <td><?=h($emprunts->date_retour_emprunt)?></td>
522 531  
523 532 </tr>
524   - <?php endforeach; ?>
525   - </table>
526   - <?php }else { echo 'Aucun emprunt pour ce matériel.'; } ?>
  533 + <?php
  534 +
  535 +endforeach
  536 + ;
  537 + ?>
  538 + </table>
  539 + <?php
  540 +
  541 +} else {
  542 + echo 'Aucun emprunt pour ce matériel.';
  543 + }
  544 + ?>
527 545 </div>
528   -
529   -
  546 +
  547 +
530 548 <?php
531   - $nbFic = count ( $materiel->documents );
532   - ?>
533   -
534   -
  549 + $nbFic = count($materiel->documents);
  550 + ?>
  551 +
  552 +
535 553 <h3 id="t_fichiers" style="cursor: pointer;">
536 554 <i class="icon-chevron-down" style="font-size: 14px;" id="i_fichiers"></i>
537   - <span style="text-decoration: underline;">Fichier(s) lié(s) au matériel (<?= $nbFic ?>)</span>
  555 + <span style="text-decoration: underline;">Fichier(s) lié(s) au matériel (<?=$nbFic?>)</span>
538 556 </h3>
539 557 <div id="fichiers" style="margin-bottom: 20px;">
540 558  
541   - <?php if ($nbFic != 0) { ?>
  559 + <?php
  560 +
  561 +if ($nbFic != 0) {
  562 + ?>
542 563 <table>
543 564 <tr>
544   - <th class="actions"><?= __('') ?></th>
545   - <th><?= __('Nom') ?></th>
546   - <th><?= __('Type') ?></th>
547   - <th><?= __('Miniature') ?></th>
548   - </tr>
  565 + <th class="actions"><?=__('')?></th>
  566 + <th><?=__('Nom')?></th>
  567 + <th><?=__('Type')?></th>
  568 + <th><?=__('Miniature')?></th>
  569 + </tr>
549 570 <?php
550   -
551   -foreach ( $materiel->documents as $documents ) :
552   -
553   - if ($documents->photo) {
554   - $p = 'Oui';
555   - } else {
556   - $p = '';
557   - }
558   - $type = $typeDocuments->find ()->where ( [
559   - 'id =' => h ( $documents->type_document_id )
560   - ] )->first () ['nom'];
561   - ?>
  571 + foreach ($materiel->documents as $documents) :
  572 + if ($documents->photo) {
  573 + $p = 'Oui';
  574 + } else {
  575 + $p = '';
  576 + }
  577 + $type = $typeDocuments->find()
  578 + ->where([
  579 + 'id =' => h($documents->type_document_id)
  580 + ])
  581 + ->first()['nom'];
  582 + ?>
562 583 <tr>
563   -
  584 +
564 585 <td class="actions" style="padding: 6px 0; text-align: left;">
565 586 <?php
566   - if ($documents->photo) {
567   - echo $this->Html->link ( __ ( '<i class="icon-download-alt"></i>' ), '/webroot/img/photos/' . $documents->id . '.' . $documents->type_doc, [
568   - 'title' => 'Télécharger',
569   - 'style' => 'margin:0',
570   - 'escape' => false
571   - ] );
572   - } else {
573   - echo $this->Html->link ( __ ( '<i class="icon-download-alt"></i>' ), '/webroot/files/' . $documents->id . '.' . $documents->type_doc, [
574   - 'title' => 'Télécharger',
575   - 'style' => 'margin:0',
576   - 'escape' => false
577   - ] );
578   - }
579   -
580   - if(($role == 'Utilisateur' && (in_array($username, [$materiel->nom_createur, $materiel->nom_responsable]))) || (in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur']))
581   - || ($role == 'Responsable' &&
582   - ((isset($userConnected->groupes_metier_id) && $userConnected->groupes_metier_id != $idGmNa && $materiel->groupes_metier_id == $userConnected->groupes_metier_id)
583   - ||(isset($userConnected->groupe_thematique_id) && $userConnected->groupe_thematique_id != $idGtNa && $materiel->groupes_thematique_id == $userConnected->groupe_thematique_id)))) {
584   - ?>
585   - <?= $this->Html->link(__('<i class="icon-pencil"></i>'), ['controller' => 'Documents', 'action' => 'edit', $documents->id], ['escape' => false, 'style' => 'margin:0'])?>
586   - <?= $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)])?>
587   - <?php } ?>
  587 + if ($documents->photo) {
  588 + echo $this->Html->link(__('<i class="icon-download-alt"></i>'), '/webroot/img/photos/' . $documents->id . '.' . $documents->type_doc, [
  589 + 'title' => 'Télécharger',
  590 + 'style' => 'margin:0',
  591 + 'escape' => false
  592 + ]);
  593 + } else {
  594 + echo $this->Html->link(__('<i class="icon-download-alt"></i>'), '/webroot/files/' . $documents->id . '.' . $documents->type_doc, [
  595 + 'title' => 'Télécharger',
  596 + 'style' => 'margin:0',
  597 + 'escape' => false
  598 + ]);
  599 + }
  600 + if (($role == 'Utilisateur' && (in_array($username, [
  601 + $materiel->nom_createur,
  602 + $materiel->nom_responsable
  603 + ]))) || (in_array($role, [
  604 + 'Administration',
  605 + 'Administration Plus',
  606 + 'Super Administrateur'
  607 + ])) || ($role == 'Responsable' && ((isset($userConnected->groupes_metier_id) && $userConnected->groupes_metier_id != $idGmNa && $materiel->groupes_metier_id == $userConnected->groupes_metier_id) || (isset($userConnected->groupe_thematique_id) && $userConnected->groupe_thematique_id != $idGtNa && $materiel->groupes_thematique_id == $userConnected->groupe_thematique_id)))) {
  608 + ?>
  609 + <?=$this->Html->link(__('<i class="icon-pencil"></i>'), ['controller' => 'Documents','action' => 'edit',$documents->id], ['escape' => false,'style' => 'margin:0'])?>
  610 + <?=$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)])?>
  611 + <?php
  612 +
  613 +}
  614 + ?>
588 615 </td>
589   - <td><?= $this->Html->link($documents->nom, ['controller' => 'documents', 'action' => 'view', $documents->id]) ?></td>
590   - <td><?= $type ?></td>
591   - <td><?= $p ?></td>
592   -
  616 + <td><?=$this->Html->link($documents->nom, ['controller' => 'documents','action' => 'view',$documents->id])?></td>
  617 + <td><?=$type?></td>
  618 + <td><?=$p?></td>
  619 +
593 620 </tr>
594   - <?php endforeach; ?>
595   - </table>
596   - <?php }else { echo 'Aucun fichier pour ce matériel.'; } ?>
  621 + <?php
  622 +
  623 +endforeach
  624 + ;
  625 + ?>
  626 + </table>
  627 + <?php
  628 +
  629 +} else {
  630 + echo 'Aucun fichier pour ce matériel.';
  631 + }
  632 + ?>
597 633 </div>
598 634  
599 635 </div>
600 636  
601 637  
602 638 <div class="actions">
603   - <?php echo $this->element('menu')?>
604 639 <?php
605   -
606   -echo $this->element ( 'menu_view', [
607   - 'pluralHumanName' => 'Matériels',
608   - 'singularHumanName' => 'Matériel',
609   - 'lien' => $materiel->id
610   - ] )?>
  640 +
  641 +echo $this->element('menu')?>
  642 + <?php
  643 +echo $this->element('menu_view', [
  644 + 'pluralHumanName' => 'Matériels',
  645 + 'singularHumanName' => 'Matériel',
  646 + 'lien' => $materiel->id
  647 +])?>
611 648 </div>
612 649 \ No newline at end of file
... ...
src/Template/Suivis/add.ctp
... ... @@ -8,24 +8,21 @@
8 8 'options' => $materiels,
9 9 'default' => $this->request->params['pass'][0]
10 10 ]);
11   -
12 11 echo $this->Form->input('materiel_numero_laboratoire', [
13 12 'label' => 'N° materiel labo',
14 13 'default' => $materiel['numero_laboratoire'],
15 14 'disabled' => TRUE
16 15 ]);
17   - echo '<div style="display:none">';
  16 +
  17 + echo '<div id="listes" style="display:none">';
18 18 echo $this->Form->input('listeunite', [
19 19 'options' => $unite
20 20 ]);
21 21 echo $this->Form->input('listeformule', [
22 22 'options' => $formule
23 23 ]);
24   -
25 24 echo '</div>';
26   - echo $this->Form->input('listeformules', [
27   - 'options' => $formules
28   - ]);
  25 +
29 26 echo $this->Form->input('type_suivi_id', [
30 27 'label' => 'Type d\'intervention',
31 28 'options' => $typeSuivis,
... ... @@ -38,7 +35,6 @@
38 35 echo $this->Form->input('organisme', [
39 36 'label' => 'Prestataire'
40 37 ]);
41   -
42 38 echo $this->Form->input('groupes_thematique_id', [
43 39 'label' => $configuration->nom_groupe_thematique,
44 40 'options' => $groupesThematiques,
... ... @@ -49,21 +45,17 @@
49 45 'options' => $groupesMetiers,
50 46 'default' => $materiel['groupes_metier_id']
51 47 ]);
52   -
53 48 echo $this->Form->input('intitule', [
54 49 'label' => 'Intitulé',
55 50 'required' => 'required'
56 51 ]);
57   -
58 52 echo '<div id="typedemesure">';
59 53 echo '</div>';
60 54 echo '<div id="metro">';
61 55 echo '</div>';
62   -
63 56 echo $this->Form->input('commentaire', [
64 57 'type' => 'textarea'
65 58 ]);
66   -
67 59 echo $this->Form->hidden('nom_createur', [
68 60 'value' => $username
69 61 ]);
... ... @@ -89,25 +81,24 @@ echo $this-&gt;element(&#39;menu_form&#39;, [
89 81  
90 82 $(document).ready(function () {
91 83 $("#type-suivi-id").bind("change", function (event) {
92   - var domaineId=$("#type-suivi-id :selected").text();
93   -
94   - if (domaineId== "Réparation" || domaineId == "Etalonnage externe" || domaineId== "Etalonnage interne" || domaineId =="Maintenance") {
95   - document.getElementById('metro').innerHTML ="";
96   - document.getElementById('typedemesure').innerHTML = "";
97   - }else {
98   - document.getElementById('typedemesure').innerHTML ="<div class=\"input select required\"><label for=\"typemesure\">Type de mesure</label><select name=\"typemesure\" onchange=\"typedemesure()\" id=\"typemesure\"><option value=\"1\">Direct</option><option value=\"2\">Indirect</option></select></div>";
99   - typedemesure();
100   - }
101   - if( domaineId == "Réparation"){
102   - document.getElementById('frequence').innerHTML = "";
103   - $("#frequence").hide();
104   - }
105   - else{
106   - $("#frequence").show();
107   - document.getElementById('frequence').innerHTML = "<div class=\"input text required\" ><table id=\"tableAlignementFrequence\" ><tbody><tr><td><div class=\"A\"><label for=\"SuiviFrequence\">Fréquence</label><input type=\"text\" name=\"frequence\" id=\"SuiviFrequence\" placeholder=\"\" required=\"required\" maxlength=\"11\"></div></td><td><div class=\"typeFrequence\" ><select name=\"type_frequence\" id=\"type-frequence\"><option value=\"/ Jours\">/ Jours</option><option value=\"/ Semaines\">/ Semaines</option><option value=\"/ Mois\" selected=\"selected\">/ Mois</option><option value=\"/ Ans\">/ Ans</option></select></div></td></tr></tbody></table></div>";
108   -
109   - }
110   -
  84 + var domaineId=$("#type-suivi-id :selected").text();
  85 +
  86 + if (domaineId== "Vérification métrologique") {
  87 + document.getElementById('typedemesure').innerHTML ="<div class=\"input select required\"><label for=\"typemesure\">Type de mesure</label><select name=\"typemesure\" onchange=\"typedemesure()\" id=\"typemesure\"><option value=\"1\">Direct</option><option value=\"2\">Indirect</option></select></div>";
  88 + $('#listes').show();
  89 + typedemesure();
  90 + } else {
  91 + document.getElementById('metro').innerHTML ="";
  92 + document.getElementById('typedemesure').innerHTML = "";
  93 + $('#listes').hide();
  94 + }
  95 + if( domaineId == "Réparation"){
  96 + document.getElementById('frequence').innerHTML = "";
  97 + $("#frequence").hide();
  98 + } else {
  99 + $("#frequence").show();
  100 + document.getElementById('frequence').innerHTML = "<div class=\"input text required\" ><table id=\"tableAlignementFrequence\" ><tbody><tr><td><div class=\"A\"><label for=\"SuiviFrequence\">Fréquence</label><input type=\"text\" name=\"frequence\" id=\"SuiviFrequence\" placeholder=\"\" required=\"required\" maxlength=\"11\"></div></td><td><div class=\"typeFrequence\" ><select name=\"type_frequence\" id=\"type-frequence\"><option value=\"/ Jours\">/ Jours</option><option value=\"/ Semaines\">/ Semaines</option><option value=\"/ Mois\" selected=\"selected\">/ Mois</option><option value=\"/ Ans\">/ Ans</option></select></div></td></tr></tbody></table></div>";
  101 + }
111 102 });
112 103 });
113 104  
... ... @@ -143,9 +134,6 @@ echo $this-&gt;element(&#39;menu_form&#39;, [
143 134 document.getElementById('metro').innerHTML +="<div class=\"input number required\" ><label for=\"valeurref\">Valeur de référence</label><input type=\"number\" name=\"valeurRef\" step=\"any\" id=\"valeurref\"></div><div class=\"input number\" ><label for=\"plage-debut\">Plage de mesure (debut)</label><input type=\"number\" name=\"plage_debut\" step=\"any\" id=\"plage-debut\"></div><div class=\"input number\" ><label for=\"plage-fin\">Plage de mesure (fin)</label><input type=\"number\" name=\"plage_fin\" step=\"any\" id=\"plage-fin\"></div>";
144 135 document.getElementById('metro').innerHTML +="<div class=\"input number required\" ><label for=\"resolution\">Resolution</label><input type=\"number\" name=\"resolution\" step=\"any\" id=\"resolution\"></div><div class=\"input number required\" ><label for=\"tolerance\">Tolerance</label><input type=\"number\" name=\"tolerance\" step=\"any\" id=\"tolerance\"></div><div class=\"input number\" ><label for=\"sensibilite\">Sensibilité</label><input type=\"number\" name=\"sensibilite\" step=\"any\" id=\"sensibilite\"></div>";
145 136 document.getElementById('metro').innerHTML +="<div class=\"input number \" ><label for=\"justesse\">Justesse</label><input type=\"number\" name=\"justesse\" step=\"any\" id=\"justesse\"></div><div class=\"input number \" ><label for=\"fidelite\">Fidelite</label><input type=\"number\" name=\"fidelite\" step=\"any\" id=\"fidelite\"></div><div class=\"input number required\" ><label for=\"emtstandart\">EMT standart</label><input type=\"number\" name=\"emtstandart\" step=\"any\" id=\"emtstandart\"></div>";
146   -
147   -
148   -
149 137 }
150 138  
151 139 function changeformule(){
... ... @@ -155,24 +143,23 @@ function changeformule(){
155 143 var formule;
156 144 var formule_array;
157 145 $('#listeformules option').each(function() {
158   - if(re.test($(this).text())){
159   - formule =$(this).text();
160   - formule= formule.substring(2,formule.length-2);
161   - var reg=new RegExp('[ ,:]+');
162   - formule_array = formule.split(reg);
163   - var regE=new RegExp('[ "]+');
164   - for(var i=0; i< formule_array.length;i++){
165   - if(regE.test(formule_array[i])){
166   - formule_array[i]= formule_array[i].substring(1,formule_array[i].length-1);
167   - }
  146 + if(re.test($(this).text())){
  147 + formule =$(this).text();
  148 + formule= formule.substring(2,formule.length-2);
  149 + var reg=new RegExp('[ ,:]+');
  150 + formule_array = formule.split(reg);
  151 + var regE=new RegExp('[ "]+');
  152 + for(var i=0; i< formule_array.length;i++){
  153 + if(regE.test(formule_array[i])){
  154 + formule_array[i]= formule_array[i].substring(1,formule_array[i].length-1);
  155 + }
168 156 }
169 157 }
170   - });
  158 +});
171 159 document.getElementById("nommesure").value=formule_array[4];
172 160 document.getElementById("symbole").value=formule_array[8];
173 161 document.getElementById("unite").value=formule_array[10];
174 162 var var_array = new Array(<?php
175   -
176 163 $variables?>);
177 164 alert(var_array);
178 165 }
... ...
src/Template/Suivis/edit.ctp
... ... @@ -10,21 +10,17 @@
10 10 'options' => $materiels,
11 11 'default' => $suivi->get('materiel_id')
12 12 ]);
13   -
14 13 echo $this->Form->input('materiel_numero_laboratoire', [
15 14 'label' => 'N° materiel labo',
16 15 'default' => $materiel['numero_laboratoire'],
17 16 'disabled' => TRUE
18 17 ]);
19   -
20 18 echo $this->Form->input('type_suivi_id', [
21 19 'label' => 'Type d\'intervention',
22 20 'options' => $typeSuivis,
23 21 'disabled' => TRUE
24 22 ]);
25   -
26 23 echo '<div id="frequence" style="display:none">';
27   -
28 24 echo '<table id="tableAlignementFrequence"><tr><td>';
29 25 echo $this->Form->input('frequence', [
30 26 'type' => 'text',
... ... @@ -50,9 +46,7 @@
50 46 'default' => '/ Mois'
51 47 ]);
52 48 echo '</td></tr></table>';
53   -
54 49 echo '</div>';
55   -
56 50 echo $this->Form->input('statut', [
57 51 'options' => [
58 52 'En cours' => 'En cours',
... ... @@ -62,7 +56,6 @@
62 56 echo $this->Form->input('organisme', [
63 57 'label' => 'Prestataire'
64 58 ]);
65   -
66 59 echo $this->Form->input('groupes_thematique_id', [
67 60 'label' => $configuration->nom_groupe_thematique,
68 61 'options' => $groupesThematiques,
... ... @@ -73,7 +66,6 @@
73 66 'options' => $groupesMetiers,
74 67 'default' => $materiel['groupes_metier_id']
75 68 ]);
76   -
77 69 echo $this->Form->input('intitule', [
78 70 'label' => 'Intitulé'
79 71 ]);
... ... @@ -90,11 +82,9 @@
90 82 ]);
91 83 echo '</div>';
92 84 echo '<div id="metro" style="display:none">';
93   -
94 85 echo $this->Form->input('nommesure', [
95 86 'label' => 'Nom de la mesure'
96 87 // 'required' => 'required'
97   -
98 88 ]);
99 89 echo $this->Form->input('symbole', [
100 90 'label' => 'Symbole'
... ... @@ -109,48 +99,38 @@
109 99 echo $this->Form->input('valeurRef', [
110 100 'label' => 'Valeur de référence'
111 101 // 'required' => 'required'
112   -
113 102 ]);
114 103 echo $this->Form->input('plage_debut', [
115 104 'label' => 'Plage de mesure (debut)'
116   -
117 105 ]);
118 106 echo $this->Form->input('plage_fin', [
119 107 'label' => 'Plage de mesure (fin)'
120   -
121 108 ]);
122 109 echo $this->Form->input('resolution', [
123 110 'label' => 'Resolution'
124 111 // 'required' => 'required'
125   -
126 112 ]);
127 113 echo $this->Form->input('tolerance', [
128 114 'label' => 'Tolerance'
129 115 // 'required' => 'required'
130   -
131 116 ]);
132 117 echo $this->Form->input('sensibilite', [
133 118 'label' => 'Sensibilité'
134   -
135 119 ]);
136 120 echo $this->Form->input('justesse', [
137 121 'label' => 'Justesse'
138   -
139 122 ]);
140   -
141 123 echo $this->Form->input('fidelite', [
142 124 'label' => 'Fidelite'
143 125 ]);
144 126 echo $this->Form->input('emtstandart', [
145 127 'label' => 'EMT standart'
146 128 // 'required' => 'required'
147   -
148 129 ]);
149 130 echo '</div>';
150 131 echo $this->Form->input('commentaire', [
151 132 'type' => 'textarea'
152 133 ]);
153   -
154 134 echo $this->Form->hidden('nom_modificateur', [
155 135 'value' => $username
156 136 ]);
... ... @@ -175,25 +155,7 @@ $(document).ready(function () {
175 155  
176 156 var domaineId=$("#type-suivi-id :selected").text();
177 157  
178   - if ( domaineId == "Réparation"
179   - || domaineId == "Etalonnage externe"
180   - || domaineId == "Etalonnage interne"
181   - || domaineId == "Maintenance") {
182   -
183   - $("#metro").hide();
184   - $("#nommesure").attr('required',false);
185   - $("#symbole").attr('required',false);
186   - $("#unite_id").attr('required',false);
187   - $("#valeurRef").attr('required',false);
188   - $("#resolution").attr('required',false);
189   - $("#tolerance").attr('required',false);
190   - $("#emtstandart").attr('required',false);
191   -
192   - $("#typedemesure").hide();
193   - $("#typedemesure").attr('required',false);
194   -
195   - }else {
196   -
  158 + if (domaineId == "Vérification métrologique") {
197 159 $("#metro").show();
198 160 $("#nommesure").attr('required',true);
199 161 $("#symbole").attr('required',true);
... ... @@ -202,17 +164,23 @@ $(document).ready(function () {
202 164 $("#resolution").attr('required',true);
203 165 $("#tolerance").attr('required',true);
204 166 $("#emtstandart").attr('required',true);
205   -
206 167 $("#typedemesure").show();
207 168 $("#typedemesure").attr('required',true);
  169 + } else if (<?=$materiel['metrologie']?> == 1) {
  170 + $("#metro").hide();
  171 + $("#nommesure").attr('required',false);
  172 + $("#symbole").attr('required',false);
  173 + $("#unite_id").attr('required',false);
  174 + $("#valeurRef").attr('required',false);
  175 + $("#resolution").attr('required',false);
  176 + $("#tolerance").attr('required',false);
  177 + $("#emtstandart").attr('required',false);
  178 + $("#typedemesure").hide();
  179 + $("#typedemesure").attr('required',false);
208 180 }
209 181  
210   - if( domaineId == "Réparation"){
211   - $("#frequence").hide();
212   - }
213   - else{
214   - $("#frequence").show();
215   - }
  182 + if(domaineId == "Réparation") $("#frequence").hide();
  183 + else $("#frequence").show();
216 184  
217 185 });
218 186  
... ...