viewVars); // 1) FROM AppController: $PROFILE_USER = $PROFILE_USER; $PROFILE_ADMIN = $PROFILE_USER; $PROFILE_RESPONSABLE = $PROFILE_RESPONSABLE; $PROFILE_ADMINPLUS = $PROFILE_ADMINPLUS; $PROFILE_SUPERADMIN = $PROFILE_SUPERADMIN; $allProfiles = $allProfiles; // PAS TOUJOURS //$_serialize = $_serialize; // True or False $username = $username; $configuration = $configuration; $priviledgedUser = $priviledgedUser; // ATTENTION, $priviledgedUser = NULL si l'utilisateur courant n'est pas un utilisateur privilégié (pas dans la table "utilisateurs") $role = $role; $profile = $profile; $USER_IS_UTILISATEUR = $USER_IS_UTILISATEUR; $USER_IS_RESPONSABLE = $USER_IS_RESPONSABLE; $USER_IS_ADMIN = $USER_IS_ADMIN; $USER_IS_ADMINPLUS = $USER_IS_ADMINPLUS; $USER_IS_SUPERADMIN = $USER_IS_SUPERADMIN; $USER_IS_RESPONSABLE_OR_MORE = $USER_IS_RESPONSABLE_OR_MORE; $USER_IS_ADMIN_OR_MORE = $USER_IS_ADMIN_OR_MORE; $USER_IS_ADMINPLUS_OR_MORE = $USER_IS_ADMINPLUS_OR_MORE; $hiddenFields = $hiddenFields; $mandatoryFields = $mandatoryFields; $readOnlyFields = $readOnlyFields; $haveDefaultValueFields = $haveDefaultValueFields; // Metrologie $idGmNa = $idGmNa; $idGtNa = $idGtNa; // ET AUSSI QUELQUES FONCTIONS : // $displayElement() // $dateProchainControleVerif() // 2) FROM my own controller (MaterielController): $mail_responsable = $mail_responsable; $users_option_list = $users_option_list; $users_login_and_email = $users_login_and_email; $materiel = $materiel; $surCategories = $surCategories; $categories = $categories; $sousCategories = $sousCategories; // TODO: yena d'autres... il faut les lister toutes ici, pour plus de clarté /* * DEFINITION DE NOUVELLES VARIABLES POUR CETTE VUE */ $USER_IS_UTILISATEUR_AND_CREATOR_OR_OWNER = $USER_IS_UTILISATEUR && in_array($username, [ $materiel->nom_createur, $materiel->nom_responsable ]); $USER_IS_RESPONSABLE_AND_CREATOR_OR_OWNER = $USER_IS_RESPONSABLE && in_array($username, [ $materiel->nom_createur, $materiel->nom_responsable ]); $USER_IS_RESPONSABLE_AND_SAME_GROUP = $USER_IS_RESPONSABLE && ((isset($priviledgedUser->groupes_metier_id) && $materiel->groupes_metier_id == $priviledgedUser->groupes_metier_id) || (isset($priviledgedUser->groupe_thematique_id) && $materiel->groupes_thematique_id == $priviledgedUser->groupe_thematique_id)); $administrationData = array( 'eotp', 'numero_commande', 'code_comptable', 'numero_inventaire_organisme', 'numero_inventaire_old' ); $myReadonlyFields = array(); if ($IS_VALIDATED) // can only modify some fields $myReadonlyFields = array_merge(array( 'sur_categorie_id', 'categorie_id', 'materiel_administratif', 'materiel_technique', 'site_id', 'date_acquisition', 'date_reception', 'organisme_id', 'prix_ht', 'gestionnaire_id' ), $administrationData); else if ($IS_ARCHIVED_OR_TOBE) { $myReadonlyFields = array( '*', 'status' ); } if ($IS_VALIDATED && $materiel->sous_categorie_id) $myReadonlyFields = array_merge(array( 'sous_categorie_id' ), $myReadonlyFields); if ($IS_VALIDATED && $materiel->numero_serie) $myReadonlyFields = array_merge(array( 'numero_serie' ), $myReadonlyFields); ?>
Form->create($materiel)?>

Editer un Matériel

Html->link('Aller au formulaire d\'édition avancée', [ 'action' => 'administrer', $materiel->id ]); echo '

'; }*/ ?>
Form->submit(__('Enregistrer'))?> Html->link(__(' Annuler'), ['action' => 'view', $materiel->id], ['escape' => false,'onclick' => 'return true;','style' => 'margin-right: 10px'])?>
Form->control('designation', [ 'label' => 'Désignation', 'disabled' => $isReadonlyField('designation', $myReadonlyFields) ]); if ($USER_IS_ADMIN_OR_MORE || $USER_IS_UTILISATEUR_AND_CREATOR_OR_OWNER || $USER_IS_RESPONSABLE_AND_SAME_GROUP) { /* * if (in_array($role, [ * 'Administration', * 'Administration Plus', * 'Super Administrateur' * ]) || ($role == 'Utilisateur' && (in_array($username, [ * $materiel->nom_createur, * $materiel->nom_responsable * ]))) || ($role == 'Responsable' && ($materiel->groupes_metier_id == $priviledgedUser->groupes_metier_id || * $materiel->groupes_thematique_id == $priviledgedUser->groupe_thematique_id))) { */ echo $this->Form->control('hors_service', [ 'label' => 'Appareil hors_service' ]); } // DOMAINES echo $this->Form->control('sur_categorie_id', [ 'label' => 'Domaine', 'options' => $surCategories, 'empty' => 'Choisir un domaine', 'style' => 'width: 260px', 'readonly' => $isReadonlyField('sur_categorie_id', $myReadonlyFields), 'disabled' => $isReadonlyField('sur_categorie_id', $myReadonlyFields) ]); // CATEGORIES $categs = $categories; /* // if a domain is selected, reduce the categories list to this domain //if ($this->request->getData('sur_categorie_id') !== null && ($this->request->getData('sur_categorie_id') != '')) if ($materiel->sur_categorie_id !== null && $materiel->sur_categorie_id != '') $categs = $categs->where([ 'sur_categorie_id =' => $materiel->sur_categorie_id ]); */ echo $this->Form->control('categorie_id', [ 'label' => 'Catégorie', 'style' => 'width: 380px', 'options' => $categs, 'empty' => 'Choisir une catégorie', 'disabled' => $isReadonlyField('categorie_id', $myReadonlyFields) ]); // SOUS-CATEGORIES $souscategs = $sousCategories; /* // by default, list is empty $souscategs = []; // if a categ is selected, update sous-categs list for this categ (only) //if ($this->request->getData('categorie_id') !== null && ($this->request->getData('categorie_id') != '')) { if ($materiel->categorie_id !== null && $materiel->categorie_id != '') { $souscategs = $sousCategories; $souscategs = $souscategs->where([ //'categorie_id' => $this->request->getData('categorie_id') 'categorie_id' => $materiel->categorie_id ]); } */ echo $this->Form->control('sous_categorie_id', [ 'label' => 'Sous-catégorie', 'style' => 'width: 380px', 'options' => $souscategs, 'empty' => 'Choisir une sous-catégorie', 'disabled' => $isReadonlyField('sous_categorie_id', $myReadonlyFields) ]); echo $this->Form->control('materiel_technique', [ 'label' => 'Technique', 'disabled' => $isReadonlyField('materiel_technique', $myReadonlyFields) ]); echo $this->Form->control('materiel_administratif', [ 'label' => 'Inventoriable (>' . $configuration->prix_inventaire_administratif . '€)', 'disabled' => $isReadonlyField('materiel_administratif', $myReadonlyFields) ]); if ($configuration->metrologie == '1') { echo "
"; echo $this->Form->control('metrologie', [ 'label' => 'Suivi en métrologie' ]); echo "
"; } echo $this->Form->control('description', [ 'label' => 'Description', 'disabled' => $isReadonlyField('description', $myReadonlyFields) ]); if ($USER_IS_RESPONSABLE_OR_MORE) { /* * if (in_array($role, [ * 'Responsable', * 'Administration', * 'Administration Plus', * 'Super Administrateur' * ])) { */ echo $this->Form->control('etiquette', [ 'label' => 'Etiquette posée', 'disabled' => $isReadonlyField('etiquette', $myReadonlyFields) ]); } echo $this->Form->control('site_id', [ 'options' => $sites, 'style' => 'width: 380px', 'default' => 9, 'disabled' => $isReadonlyField('site_id', $myReadonlyFields) ]); echo '
'; foreach ($lieu_detail as $e) { echo "
'; echo $this->Form->control('date_acquisition', [ 'type' => 'text', 'label' => 'Date de la commande', 'class' => 'datepicker', 'placeholder' => 'Cliquez pour sélectionner une date', 'disabled' => $isReadonlyField('date_acquisition', $myReadonlyFields) ]); echo $this->Form->control('date_reception', [ 'type' => 'text', 'label' => 'Date de réception', 'class' => 'datepicker', 'placeholder' => 'A éditer lors de la réception uniquement.', 'disabled' => $isReadonlyField('date_reception', $myReadonlyFields), 'empty' => true ]); echo '
'; echo $this->Form->control('duree_garantie', [ 'type' => 'text', 'style' => 'width: 100px', 'label' => 'Durée garantie', 'templates' => [ 'inputContainer' => '
{{content}}
' ], 'placeholder' => '' ]); echo '
'; echo $this->Form->control('unite_duree_garantie', [ 'label' => false, 'templates' => [ 'inputContainer' => '
{{content}}
' ], 'options' => [ 'Mois' => 'Mois', 'Ans' => 'Ans' ], 'default' => 'Ans' ]); echo '
'; echo $this->Form->control('date_fin_garantie', [ 'type' => 'text', 'label' => 'Date fin de garantie', 'placeholder' => 'Cliquez pour selectionner une date', 'class' => 'datepicker', 'default' => NULL ]); if ($USER_IS_ADMINPLUS_OR_MORE) { /* * if (in_array($role, [ * 'Administration Plus', * 'Super Administrateur' * ])) { */ echo $this->Form->control('status', [ 'label' => 'Statut', 'options' => [ 'CREATED' => 'CREATED', 'VALIDATED' => 'VALIDATED', 'TOBEARCHIVED' => 'TOBEARCHIVED', 'ARCHIVED' => 'ARCHIVED' ] ]); } echo $this->Form->control('numero_serie', [ 'label' => 'Numéro de série', 'disabled' => $isReadonlyField('numero_serie', $myReadonlyFields) ]); echo $this->Form->control('groupes_thematique_id', [ 'label' => $configuration->nom_groupe_thematique, 'disabled' => $isReadonlyField('groupes_thematique_id', $myReadonlyFields), 'options' => $groupesThematiques, 'default' => 1 ]); echo $this->Form->control('groupes_metier_id', [ 'label' => $configuration->nom_groupe_metier, 'disabled' => $isReadonlyField('groupes_metier_id', $myReadonlyFields), 'options' => $groupesMetiers, 'default' => 1 ]); echo $this->Form->control('nom_responsable', [ 'label' => 'Nom de l\'utilisateur', 'empty' => 'Choisir un utilisateur', 'default' => $username, //'options' => $utilisateurs 'options' => $users_option_list ]); if (isset($nom_ancien_responsable)) { echo $this->Form->control('nom_ancien_responsable', [ 'label' => 'Nom ancien utilisateur', 'readonly' => true, 'default' => $nom_ancien_responsable ]); } echo $this->Form->control('email_responsable', [ 'label' => 'Email de l\'utilisateur', 'readonly' => true, 'default' => $mail_responsable ]); // (EP) TODO: Pour Javascript only (bidouille sale à éviter...) $res = TableRegistry::get('Users')->find() ->where([ 'username' => $username, 'role' => 'Administration' ]) ->first(); /* $administrateurs = TableRegistry::get('Users')->find('list', [ 'keyField' => 'nom', 'valueField' => 'nom' ]) ->where([ 'role =' => 'Administration' ]) ->toArray(); */ echo $this->Form->control('gestionnaire_id', [ 'label' => 'Nom du gestionnaire de référence du matériel', 'empty' => 'Choisir un gestionnaire', 'default' => $_SESSION['Auth']['User']['sn'][0], 'options' => $administrateurs ]); echo $this->Form->control('fournisseur_id', [ 'label' => 'Fournisseur', 'options' => $fournisseurs, 'style' => 'width: 380px', 'empty' => 'choisir un fournisseur', 'disabled' => $USER_IS_UTILISATEUR /* in_array($role, [ 'Utilisateur' ]) */ ]); echo $this->Form->control('organisme_id', [ 'options' => $organismes, 'style' => 'width: 380px', 'disabled' => $isReadonlyField('organisme_id', $myReadonlyFields), 'empty' => 'Choisir un organisme' ]); echo $this->Form->control('prix_ht', [ 'label' => 'Prix HT (€)', 'disabled' => $isReadonlyField('prix_ht', $myReadonlyFields) ]); if ($USER_IS_ADMIN_OR_MORE) { /* * if (in_array($role, [ * 'Administration', * 'Administration Plus', * 'Super Administrateur' * ])) { */ echo '
Partie administrative'; echo $this->Form->checkbox('adminEdit', [ 'label' => 'Editer la partie administrative', 'onchange' => 'changeAdminEdit();', 'default' => false ]); echo $this->Form->control('eotp', [ 'label' => 'Centre financier/EOTP', 'disabled' => true ]); echo $this->Form->control('numero_commande', [ 'label' => 'Numéro de commande', 'disabled' => true ]); echo $this->Form->control('code_comptable', [ 'label' => 'Code comptable', 'disabled' => true ]); echo $this->Form->control('numero_laboratoire', [ 'label' => 'Numéro de laboratoire', 'id' => 'num_labo', 'disabled' => true ]); echo $this->Form->control('numero_inventaire_organisme', [ 'label' => 'N° inventaire organisme', 'disabled' => true ]); echo $this->Form->control('numero_inventaire_old', [ 'label' => 'Ancien N° inventaire', 'disabled' => true ]); echo '
'; } // if ($role == 'Super Administrateur') { if ($USER_IS_SUPERADMIN) { echo '
Partie administrative avancée'; /*echo $this->Form->checkbox('adminEditPlus', [ 'label' => 'Editer la partie administrative avancée', 'onchange' => 'changeAdminPlus();', 'default' => false ]);*/ echo $this->Form->control('nom_createur', [ 'label' => 'Nom du créateur', 'disabled' => true, //'options' => $utilisateurs 'options' => $users_option_list ]); echo $this->Form->control('created', [ 'label' => 'Date de création', 'disabled' => true ]); echo $this->Form->control('nom_modificateur', [ 'label' => 'Nom du modificateur', 'default' => $username, 'disabled' => true ]); echo $this->Form->control('modified', [ 'label' => 'Date de modification', 'disabled' => true ]); echo '
'; } echo $this->Form->hidden('nom_modificateur', [ 'value' => $username ]); ?>
Form->submit(__('Enregistrer'))?> Form->end()?>
element('menu'); echo $this->element('menu_form', [ 'pluralHumanName' => 'Matériels' ]); ?>
value = TOUS, select = "choisir" (ADD) ou data (EDIT) * - categ ==> value = TOUTES (ADD) ou from domaine (EDIT), select = "choisir" (ADD) ou data (EDIT) * - scateg ==> value = Aucune (ADD) ou from categ (EDIT), select = "choisir" (ADD) ou data (EDIT) * Event domaine change : * - si select <> "choisir" ==> categ value = from domaine (select="choisir"), et vider scateg * - si select = "choisir" ==> categ value = TOUTES (select="choisir"), et vider scateg * Event categ change : * - si select <> "choisir" ==> domaine select = from categ, et scateg values = from categ * - si select = "choisir" ==> vider scateg * Event scateg change : RIEN A FAIRE */ ?> du site ... Et bien entendu c'est pas pris en compte ici .... Halleluja bordel (#JeremyFerrary) ?> Html->script('jquery-1.8.12')?> Html->script('script')?> Html->script('DatepickerConfig')?> Html->script('Verifications_dates_materiels.js')?>