extend('../Layout/BootstrapLayoutSamples/cover'); //$this->extend('../Layout/BootstrapLayoutSamples/dashboard'); //$this->extend('../Layout/BootstrapLayoutSamples/signin'); $entity_name = 'matériel'; //debug($materiel); //debug($users_option_list); //debug($users_login_and_email); //debug($sousCategories); //debug($groupesMetiers->toArray()); //debug($projets->toArray()); //debug($entity); /* * (EP) * Variables passed to this view by the Controller(s) */ // POUR EN VOIR LA LISTE COMPLETE //debug($this->viewVars); // - 1) FROM AppController: $PROFILE_USER = $PROFILE_USER; $PROFILE_ADMIN = $PROFILE_ADMIN; $PROFILE_RESPONSABLE = $PROFILE_RESPONSABLE; //$PROFILE_ADMINPLUS = $PROFILE_ADMINPLUS; $PROFILE_SUPERADMIN = $PROFILE_SUPERADMIN; $allProfiles = $allProfiles; // PAS TOUJOURS //$_serialize = $_serialize; // True or False $sites = $sites; $username = $username; $configuration = $configuration; $D = $D; // = $configuration->mode_debug (raccourci) $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 : $dateProchainControleVerif = $dateProchainControleVerif; // - 2) par le controleur de cette vue (MaterielsController) // add or edit mode ? true=add ; false=edit $IS_ADD = $IS_ADD; $IS_EDIT = !$IS_ADD; $CAN_PRINT_LABEL = $CAN_PRINT_LABEL; $entity = $entity; // @deprecated $materiel = $entity; //debug($entity); $statuses = $statuses; $domaineresp = $domaineresp; //$designations = $designations; //foreach ($designations as $f) debug($f); $fournisseurs = $fournisseurs; //foreach ($fournisseurs as $l) debug($l); //foreach ($fournisseurs as $k=>$v) debug("$k => $v"); $gestionnaires = $gestionnaires; $lieu_detail = $lieu_detail; //foreach ($lieu_detail as $l) debug($l); //foreach ($lieu_detail as $k=>$v) debug("$k => $v"); $users_option_list = $users_option_list; $users_login_and_email = $users_login_and_email; // Listes $surCategories = $surCategories; $categories = $categories; $sousCategories = $sousCategories; $projets = $projets; //foreach($projets as $k=>$p) debug($k); //foreach($surCategories as $k=>$e) debug($k); $readonlyFields = $readonlyFields; // ADD only if ($IS_ADD) { $verb = 'Ajouter'; $icon = 'icon-plus'; $redirect_action = 'index'; } // EDIT only else { $verb = 'Éditer'; $icon = 'icon-edit'; $redirect_action = 'view'; $isReadonlyField = $isReadonlyField; // function //$numMateriel = $numMateriel; if (isset($nom_ancien_responsable)) $nom_ancien_responsable = $nom_ancien_responsable; $IS_CREATED = $IS_CREATED; $IS_VALIDATED = $IS_VALIDATED; $IS_ARCHIVED_OR_TOBE = $IS_ARCHIVED_OR_TOBE; $IS_ARCHIVED = $IS_ARCHIVED; $role = $role; $designation_edit = $designation_edit; $lieu_detail_edit = $lieu_detail_edit; // [12007 => ''] if ($IS_ARCHIVED) $readonlyFields = array('*','status'); } // EDIT only //debug($readonlyFields); $mail_responsable = $mail_responsable; // 3) FUNCTIONS from AppController $mydebug = $mydebug; // $mydebug($D,"message"); $displayElement = $displayElement; $echoActionButton = $echoActionButton; $echoSubmitButtons = $echoSubmitButtons; $mydebug($D, $surCategories); //$mydebug($D, $categories); $mydebug($D, $materiel); //debug($GLOBALS); //$D = $configuration->mode_debug; //$mydebug($D, "mail resp: ".$mail_responsable); /* * DEFINITION DE NOUVELLES VARIABLES POUR CETTE VUE */ // EDIT only $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 ]); */ //TODO: move to controller /* $USER_IS_RESPONSABLE_AND_SAME_GROUP = $USER_IS_RESPONSABLE && ( (isset($priviledgedUser->groupes_metier_id) && $materiel->groupes_metier_id == $priviledgedUser->groupes_metier_id) || (isset($priviledgedUser->groupes_thematique_id) && $materiel->groupes_thematique_id == $priviledgedUser->groupes_thematique_id) ); */ // EDIT only $USER_IS_SAME_GROUP_AS_MATERIEL = ( ( isset($priviledgedUser->groupes_metier_id) && $priviledgedUser->groupes_metier_id != $idGmNa && $materiel->groupes_metier_id == $priviledgedUser->groupes_metier_id ) || ( isset($priviledgedUser->groupes_thematique_id) && $priviledgedUser->groupes_thematique_id != $idGtNa && $materiel->groupes_thematique_id == $priviledgedUser->groupes_thematique_id ) ); $USER_IS_RESPONSABLE_AND_SAME_GROUP_AS_MATERIEL = $USER_IS_RESPONSABLE && $USER_IS_SAME_GROUP_AS_MATERIEL; /* // EDIT only $readonlyFields = array(); if ($IS_EDIT) { $administrationData = array( 'eotp', 'numero_commande', //'code_comptable', 'numero_inventaire_organisme', 'numero_inventaire_old' ); if ($IS_VALIDATED) // can only modify some fields $readonlyFields = 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) $readonlyFields = array('*','status'); else if ($IS_ARCHIVED) $readonlyFields = array('*','status'); /S if ($IS_VALIDATED && $materiel->sous_categorie_id) $readonlyFields = array_merge( array('sous_categorie_id'), $readonlyFields ); if ($IS_VALIDATED && $materiel->numero_serie) $readonlyFields = array_merge( array('numero_serie'), $readonlyFields ); S/ } // EDIT only //debug($readonlyFields); */ // Création des 2 boutons submit du formulaire (Enregistrer et Cancel) /* function echoSubmitButtons($context, $matos_id) { // - Bouton Enregistrer echo '
'; //echo '
'; echo $context->Form->input('Enregistrer', ['type'=>'submit', 'value'=>'Submit', 'class'=>'btn btn-primary']); //echo $context->Form->button(('Annuler'), ['action' => 'view', $matos_id], ['escape' => false,'onclick' => 'return true;','style' => 'margin-right: 10px']); //echo $context->Html->link(__('Annuler'), ['action' => 'view', $matos_id], ['class' => 'btn btn-info ', 'escape' => false]); echo $context->Html->link(__('Annuler'), ['action' => 'view', $matos_id], ['class'=>'btn btn-outline-dark btn-sm', 'style'=>"text-decoration:none;", 'escape'=>false]); echo '
'; /S //echo $this->Form->submit(__('Enregistrer')); echo $context->Form->button('Enregistrer', ['class'=>'btn btn-outline-success', 'type'=>'submit']); // - Bouton Cancel //echo $this->Html->link(__(' Annuler'), ['action' => 'view', $materiel->id], ['escape' => false,'onclick' => 'return true;','style' => 'margin-right: 10px']); echo $context->Form->button(('Annuler'), ['action' => 'view', $matos_id], ['escape' => false,'onclick' => 'return true;','style' => 'margin-right: 10px']); //echo ''; //echo 'Cancel'; S/ } */ /* // COPIE de materiel (on a cliqué sur "Copier ce matériel") if (isset($cpMateriel)) { //debug($cpMateriel); $Designation = $cpMateriel->designation; $Sur_categ_id = $cpMateriel->sur_categorie_id; $Categ_id = $cpMateriel->categorie_id; $Sous_categ_id = $cpMateriel->sous_categorie_id; $Description = $cpMateriel->description; $Organisme_id = $cpMateriel->organisme_id; $Mat_administratif = $cpMateriel->materiel_administratif; $Mat_technique = $cpMateriel->materiel_technique; $Date_acquisition = $cpMateriel->date_acquisition; $Date_reception = $cpMateriel->date_reception; $Fournisseur = $cpMateriel->fournisseur; $Prix_ht = $cpMateriel->prix_ht; $Groupes_thematique_id = $cpMateriel->groupes_thematique_id; $Groupes_metier_id = $cpMateriel->groupes_metier_id; $Lieu_detail = $cpMateriel->lieu_detail; $Site_id = $cpMateriel->site_id; } else { // NOUVEAU matériel (on a cliqué sur "Nouveau matériel") $Designation = NULL; if (!isset($Sur_categ_id)) $Sur_categ_id = NULL; $Categ_id = NULL; $Sous_categ_id = NULL; $Description = NULL; $Organisme_id = NULL; $Mat_administratif = NULL; $Mat_technique = NULL; $Date_acquisition = NULL; $Date_reception = NULL; $Fournisseur = NULL; $Prix_ht = NULL; $Groupes_thematique_id = 1; $Groupes_metier_id = 1; $Lieu_detail = NULL; $Site_id = 9; } */ //debug($Sur_categ_id) ?>

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

'; }*/ ?> id); ?>
notEmpty('nom-du-champ'); * Ces champs sont automatiquement affichés avec un asterisque rouge sur la droite du label * (fallait deviner...) * */ // - designation echo $this->Form->control('designation', [ //'type' => 'text', 'label' => 'Désignation', //'default' => $Designation, // ADD only /////'default' => $materiel->designation, //'default' => $designations, //'default' => $designations->toArray(), // EDIT only 'disabled' => $IS_ADD ? false : $isReadonlyField('designation', $readonlyFields) ]); /* $value = $IS_EDIT ? array_shift($designation_edit) : ''; ?>
"; ?>
*/ // will_stay echo $this->Form->control('will_stay', [ 'label' => 'Ce matériel restera au laboratoire', // Inutile, défini via controller //'default' => 1, ]); // - Description echo $this->Form->control('description', [ 'label' => 'Description', // ADD only //'default' => $Description /////'default' => $materiel->description, // EDIT only 'disabled' => $IS_ADD ? false : $isReadonlyField('description', $readonlyFields) ]); // - materiel HS ? if ($IS_EDIT && ( $USER_IS_ADMIN_OR_MORE || $USER_IS_UTILISATEUR_AND_CREATOR_OR_OWNER || $USER_IS_RESPONSABLE_AND_SAME_GROUP_AS_MATERIEL ) ) echo $this->Form->control('hors_service', ['label' => 'hors service']); /* * 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->groupes_thematique_id))) { */ ?>
Domaine, catégorie, et sous-catégorie : Form->control('sur_categorie_id', [ 'label' => 'Domaine', //'style' => 'width: 260px', // inutile car automatique si le nom de la variable passée par le controleur respecte la norme //'options' => $surCategories, 'empty' => 'Choisir un domaine', //'default' => $Sur_categ_id // ADD only //////'default' => $materiel->sur_categorie_id, // EDIT only //'readonly' => $IS_ADD ? false : $isReadonlyField('sur_categorie_id', $readonlyFields), 'disabled' => $IS_ADD ? false : $isReadonlyField('sur_categorie_id', $readonlyFields) ]); // - CATEGORIE //$categs = $categories; /* // if a domain is selected, reduce the categories list to this domain //debug($categories); if ($this->request->getData('sur_categorie_id') !== null && ($this->request->getData('sur_categorie_id') != '')) { $categs = $categs->where([ 'sur_categorie_id =' => $this->request->getData('sur_categorie_id') ]); } //$categs = []; */ echo $this->Form->control('categorie_id', [ 'label' => 'Catégorie', //'style' => 'width: 380px', // inutile car automatique si le nom de la variable passée par le controleur respecte la norme //'options' => $categories, //'options' => $categs, 'empty' => 'Choisir une catégorie', //'default' => $Categ_id // ADD only //////'default' => $materiel->categorie_id, // EDIT only 'disabled' => $IS_ADD ? false : $isReadonlyField('categorie_id', $readonlyFields) ]); // - SOUS-CATEGORIE (by default, list is empty) //$souscategs = $sousCategories; /* $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' => $this->request->getData('categorie_id') ]); } */ echo $this->Form->control('sous_categorie_id', [ 'label' => 'Sous-catégorie', //'style' => 'width: 380px', // inutile car automatique si le nom de la variable passée par le controleur respecte la norme //'options' => $sousCategories, //'options' => $souscategs, 'empty' => 'Choisir une sous-catégorie', // ADD only //'default' => $Sous_categ_id /////////'default' => $materiel->sous_categorie_id, // EDIT only 'disabled' => $IS_ADD ? false : $isReadonlyField('sous_categorie_id', $readonlyFields) ]); echo "
"; // 'domaine_categ_souscateg' /* GROUPES MÉTIER ET THÉMATIQUE */ $nom_groupe_thematique = $configuration->nom_groupe_thematique; $nom_groupe_metier = $configuration->nom_groupe_metier; echo "
"; echo "Le matériel peut-il être rattaché à un ".lcfirst($nom_groupe_thematique)." ou/et un ".lcfirst($nom_groupe_metier)." ?"; // - Groupe thématique echo $this->Form->control('groupes_thematique_id', [ 'label' => $nom_groupe_thematique, 'empty' => 'N/A', // inutile car automatique si le nom de la variable passée par le controleur respecte la norme //'options' => $groupesThematiques, //'default' => $Groupes_thematique_id //'default' => $IS_ADD ? $materiel->groupes_thematique_id : 1, // EDIT only 'disabled' => $IS_ADD ? false : $isReadonlyField('groupes_thematique_id', $readonlyFields), ]); // - Groupe métier echo $this->Form->control('groupes_metier_id', [ 'label' => $nom_groupe_metier, 'empty' => 'N/A', // inutile car automatique si le nom de la variable passée par le controleur respecte la norme //'options' => $groupesMetiers, //'default' => $Groupes_metier_id //'default' => $IS_ADD ? $materiel->groupes_metier_id : 1, // EDIT only 'disabled' => $IS_ADD ? false : $isReadonlyField('groupes_metier_id', $readonlyFields), ]); echo "
"; // 'domaine_categ_souscateg' ?>
Le matériel peut-il être rattaché à un projet ? Form->control('projet_id', [ 'label' => 'Projet', 'empty' => 'N/A', //'empty' => '(seulement si ce matériel est associé à un projet)', //'style' => 'width: 380px', // inutile car automatique si le nom de la variable passée par le controleur respecte la norme //'options' => $projets, // ADD only //'default' => $Sous_categ_id //'default' => $materiel->projet_id, ]); echo "
"; // 'domaine_categ_souscateg' // - Technique et/ou Inventoriable ? echo $this->Form->control('materiel_technique', [ 'label' => "Technique (pas pour l'inventaire officiel)", // ADD only //'default' => $Mat_technique /////////'default' => $materiel->materiel_technique, // EDIT only 'disabled' => $IS_ADD ? false : $isReadonlyField('materiel_technique', $readonlyFields) ]); echo "\n"; /* echo $this->Form->control('materiel_administratif', [ 'label' => 'Inventoriable (>' . $configuration->prix_inventaire_administratif . '€)', // ADD only //'default' => $Mat_administratif 'default' => $materiel->materiel_administratif, // EDIT only 'disabled' => $IS_ADD ? false : $isReadonlyField('materiel_administratif', $readonlyFields) ]); */ // - Metrologie //if ($configuration->metrologie == '1') { if ($configuration->metrologie) { echo "\n"; echo "
"; echo $this->Form->control('metrologie', [ 'label' => 'Suivi en métrologie', // ADD only 'default' => false ]); echo "
"; } // - Etiquette posée ? if ($CAN_PRINT_LABEL && $USER_IS_RESPONSABLE_OR_MORE) { /* * } * if (in_array($role, [ * 'Responsable', * 'Administration', * 'Administration Plus', * 'Super Administrateur' * ])) { */ echo $this->Form->control('etiquette', [ 'label' => 'Etiquette posée', // EDIT only 'disabled' => $IS_ADD ? false : $isReadonlyField('etiquette', $readonlyFields) ]); } // - Site echo $this->Form->control('site_id', [ // inutile car automatique si le nom de la variable passée par le controleur respecte la norme //'options' => $sites, //'style' => 'width: 380px', //'default' => $Site_id //'default' => ($IS_ADD ? $materiel->site_id : 9), //////////'default' => ($IS_ADD ? $materiel->site_id : null), 'empty' => 'N/A', // EDIT only 'disabled' => $IS_ADD ? false : $isReadonlyField('site_id', $readonlyFields) ]); // - Detail lieu stockage (avec affichage auto des lieux déjà saisis) /* OLD echo $this->Form->input('lieu_detail', [ 'label' => 'Détail lieu de stockage', 'disabled' => $isReadonlyField('lieu_detail', $readonlyFields) ]); */ // (old) EDIT only : //echo '
'; // (old) ADD only : //echo '
'; //debug($lieu_detail_edit); // [12007 => 'bureau 13'] $value = $IS_EDIT ? array_shift($lieu_detail_edit) : ''; //debug($value); // bureau 13 //debug($lieu_detail); // liste des lieux déjà saisis //
?>
"; ?>
Form->control('date_acquisition', [ //echo $this->Form->date('date_acquisition', [ 'type' => 'text', 'label' => 'Date commande (BC)', 'class' => 'datepicker', 'placeholder' => $comment, // ADD only //'default' => $Date_acquisition //'default' => $materiel->date_acquisition, // (EP 20201125 date achat n'est plus obligatoire, mais c'est bien d'en mettre une par défaut quand même...) 'default' => date("d/m/Y"), // A CAUSE DE CE FICHU PHP5 ET VIEUX MYSQL !!!, INUTILE EN PHP7 !! // Affichage dd/mm/yy //'value' => $materiel->date_acquisition->format('d/m/y'), // Affichage dd/mm/yyyy 'value' => $IS_ADD ? null : ($materiel->date_acquisition ? $materiel->date_acquisition->format('d/m/Y') : null), // EDIT only 'disabled' => $IS_ADD ? false : $isReadonlyField('date_acquisition', $readonlyFields) ]); // - Date réception $value_edit = null; if ($IS_EDIT && $materiel->date_reception) $value_edit = $materiel->date_reception->format('d/m/Y'); echo $this->Form->control('date_reception', [ 'type' => 'text', 'label' => 'Date de livraison', 'class' => 'datepicker', 'placeholder' => $comment, 'empty' => true, // ADD only //'default' => $Date_reception ////////'default' => $materiel->date_reception, // php5... 'value' => $IS_ADD ? null : $value_edit, // EDIT only 'disabled' => $IS_ADD ? false : $isReadonlyField('date_reception', $readonlyFields) ]); // - Durée garantie echo ''; echo ''; echo ''; echo '
'; echo $this->Form->control('duree_garantie', [ 'type' => 'text', 'label' => 'Durée garantie', //'style' => 'width: 100px', 'templates' => [ 'inputContainer' => '
{{content}}
' ], 'placeholder' => '' ]); echo '
'; echo $this->Form->control('unite_duree_garantie', [ 'label' => false, 'style' => 'width: 100px', 'templates' => [ //'inputContainer' => '
{{content}}
' 'inputContainer' => '
{{content}}
' ], 'options' => [ 'Mois' => 'Mois', 'Ans' => 'Ans' ], 'default' => 'Ans' ]); echo '
'; // - Date fin garantie echo $this->Form->control('date_fin_garantie', [ 'type' => 'text', 'label' => 'Date fin de garantie', 'placeholder' => $comment, 'class' => 'datepicker', /////////'default' => null, // php5... //'value' => $IS_ADD ? null : $materiel->date_fin_garantie->format('d/m/Y'), ]); // EDIT only // - Statut //if ($IS_EDIT && $USER_IS_ADMINPLUS_OR_MORE) { if ($IS_EDIT && $USER_IS_SUPERADMIN) { /* * if (in_array($role, [ * 'Administration Plus', * 'Super Administrateur' * ])) { */ echo $this->Form->control('status', [ 'label' => 'Statut', // inutile car automatique si le nom de la variable passée par le controleur respecte la norme //'options' => $statuses, /* 'options' => [ 'CREATED' => 'CREATED', 'VALIDATED' => 'VALIDATED', 'TOBEARCHIVED' => 'TOBEARCHIVED', 'ARCHIVED' => 'ARCHIVED' ] */ ]); } // - Num série $f = 'numero_serie'; echo $this->Form->control($f, [ 'label' => 'Numéro de série', // EDIT only //'disabled' => $IS_ADD ? false : $isReadonlyField($f, $readonlyFields) 'disabled' => $IS_ADD ? false : $isReadonlyField($f, $readonlyFields) ]); // - Nom utilisateur (ou destination du matériel) //$readonly = $USER_IS_UTILISATEUR ? TRUE : FALSE; echo $this->Form->control('nom_user', [ 'label' => "Nom de l'Utilisateur (ou destination du bien)", //'empty' => 'Choisir une personne', /////'empty' => $username, //'default' => $username, //'options' => $utilisateurs //'options' => $users_option_list, //'readonly' => $IS_EDIT ? false : $readonly, ]); // - Nom Acheteur (responsable du matériel) /* $fieldType = $USER_IS_UTILISATEUR ? 'hidden' : 'input'; echo $this->Form->$fieldType('nom_responsable', [ */ $f = 'nom_responsable'; $readonly = $USER_IS_UTILISATEUR ? TRUE : FALSE; echo $this->Form->control($f, [ 'label' => "Nom de l'Acheteur", //'empty' => 'Choisir une personne', //'empty' => $entity->nom_responsable, //'default' => $entity->nom_responsable, //'default' => $username, 'options' => $users_option_list, //'options' => $utilisateurs //'readonly' => $IS_EDIT ? false : $readonly, //'readonly' => $readonly, 'disabled' => $readonly || ( $IS_ADD ? false : $isReadonlyField($f, $readonlyFields) ), ]); // EDIT only // - Nom ancien responsable (acheteur) if ($IS_EDIT) { if (isset($nom_ancien_responsable)) { echo $this->Form->control('nom_ancien_responsable', [ 'label' => 'Nom ancien responsable (acheteur)', 'readonly' => true, 'default' => $nom_ancien_responsable ]); } } // - Email utilisateur echo $this->Form->control('email_responsable', [ 'label' => "Email de l'Acheteur", 'readonly' => true, // ADD only (Quand je crée une fiche, la personne responsable par défaut, c'est moi...) 'default' => $mail_responsable ]); // - Nom Responsable du crédit $f = 'resp_credit'; echo $this->Form->control($f, [ //'label' => "Responsable du crédit (si différent de l'acheteur)", 'label' => "Responsable du crédit (par défaut l'acheteur)", 'disabled' => $IS_ADD ? false : $isReadonlyField($f, $readonlyFields) ]); // (EP) Attention, était désactivé (commenté) pour ADD mais pas pour EDIT // (EP) TODO: Pour Javascript only (bidouille sale à éviter...) // Ssi le user courant est un gestionnaire, on récupère tous ses attributs // pour pouvoir le mettre comme gestionnaire par défaut de ce matériel $gestionnaire = TableRegistry::getTableLocator()->get('Users') ->find() ->where([ 'username' => $username, 'role' => 'Administration' ]) ->first(); /* $administrateurs = TableRegistry::get('Users')->find('list', [ 'keyField' => 'id', 'valueField' => 'nom' ]) ->where([ 'role =' => 'Administration' ]) ->toArray(); */ // - Nom du gestionnaire de ref $f = 'gestionnaire_id'; echo $this->Form->control($f, [ // inutile car automatique si le nom de la variable passée par le controleur respecte la norme //'options' => $gestionnaires, //'options' => $administrateurs, 'label' => 'Nom gestionnaire de référence', //'empty' => 'Choisir un gestionnaire', 'empty' => 'Je ne sais pas qui choisir', // TODO: pas joli ! // ADD only 'default' => $_SESSION['Auth']['User']['sn'][0], 'disabled' => $IS_ADD ? false : $isReadonlyField($f, $readonlyFields) ]); /* * - Fournisseur (+ ajout possible) */ $f = 'fournisseur_id'; //nouveau champ de saisie de Fournisseur, il ne se saisissait pas à l'ajout //echo '
'; //echo $this->Form->control('fournisseur_id', [ /* Cette ligne... echo $this->Form->control('fournisseur.name'); // ... produit ce résultat :
*/ $fournisseurs = $fournisseurs->toArray(); /* debug($entity->fournisseur_orig); debug($entity->fournisseur_id); debug($entity->fournisseur); //debug($entity); //debug($value); */ $value_old = $entity->$f ? $fournisseurs[$entity->$f] : ''; if (isset($entity->fournisseur->name) && $entity->fournisseur->name!='') // nouveau fournisseur $value = $entity->fournisseur->name; else // ancien fournisseur $value = $value_old; //debug($value); $values = array_values($fournisseurs); // Sauvegarde de la valeur d'origine (pour voir plus tard si elle a été modifiée ou pas) //echo $this->Form->hidden('fournisseur_orig', ['value' => $value]); echo $this->Form->hidden('fournisseur_orig', ['value' => $value_old]); //debug($values); /* field is disabled ? - $disabled = 'disabled'; // disabled - $disabled = ''; // enabled */ $disabled = ''; // enabled if ( $IS_EDIT && $isReadonlyField($f, $readonlyFields) ) $disabled = 'disabled'; ?>
value="" list="fournisseurs" placeholder="choisir/ajouter un fournisseur" autocomplete="off"> "; ?> '.$this->Html->link('Gérer les Fournisseurs', [ 'controller' => 'Fournisseurs', 'action' => 'index' ]); echo "
(CTRL-click pour ouvrir dans un nouvel onglet)"; } ?>
Form->control('fournisseur_id'); /* echo $this->Form->control('fournisseur_id', [ //echo $this->Form->control('fournisseur.name', [ 'label' => 'Fournisseur', 'options' => $fournisseurs, //'style' => 'width: 380px', 'empty' => 'Choisir un fournisseur', // EDIT only 'disabled' => $IS_ADD ? false : $USER_IS_UTILISATEUR /S in_array($role, [ 'Utilisateur' ]) S/ ]); */ /* echo $this->Html->link("Ajouter un fournisseur", [ 'controller' => 'Fournisseurs', 'action' => 'add', ]); */ // Ajouter un nouveau fournisseur /* echo $this->Html->link(__(' Ajouter un fournisseur'), [ 'controller' => 'Fournisseurs', 'action' => 'add', $IS_ADD ? 'NEW' : $materiel->id ], [ 'escape' => false, 'onclick' => 'return true;' ]); echo '
'; */ // - Organisme echo $this->Form->control('organisme_id', [ // inutile car automatique si le nom de la variable passée par le controleur respecte la norme //'options' => $organismes, //'style' => 'width: 380px', 'empty' => 'Choisir un organisme', // ADD only //'default' => $Organisme_id ///////'default' => $materiel->organisme_id, // EDIT only 'disabled' => $IS_ADD ? false : $isReadonlyField('organisme_id', $readonlyFields) ]); // - Prix HT $f = 'prix_ht'; echo $this->Form->control($f, [ 'label' => 'Prix HT (€)', // ADD only //'default' => $Prix_ht ///////'default' => $materiel->prix_ht, // EDIT only 'disabled' => $IS_ADD ? false : $isReadonlyField($f, $readonlyFields), ]); $f = 'budgets'; echo $this->Form->control($f, [ 'label' => 'Sur quel(s) budget(s) ?', // EDIT only 'placeholder' => 'Si plusieurs, séparer avec virgule', 'disabled' => $IS_ADD ? false : $isReadonlyField($f, $readonlyFields), ]); /* * ************************************************************************************ * PARTIE ADMINISTRATIVE (tout le monde peut la voir, mais seul un ADMIN peut l'éditer) * ************************************************************************************ */ if ($IS_EDIT || ($IS_ADD && $USER_IS_ADMIN_OR_MORE)) { //$DISABLED = $IS_ADD ? false : !$USER_IS_ADMIN_OR_MORE; echo '
Partie administrative'; //(EDIT only) /* (EP) A quoi ca sert ce truc ??? echo $this->Form->checkbox('adminEdit', [ 'label' => 'Editer la partie administrative', 'onchange' => 'changeAdminEdit();', 'default' => false ]); */ // - Centre financier (eotp) /* * if (in_array($role, [ * 'Administration', * 'Administration Plus', * 'Super Administrateur' * ])) { */ $f = 'eotp'; echo $this->Form->control($f, [ 'label' => 'Entité(s) dépensière(s) (voir champ Budgets juste au-dessus)', //'label' => 'Entité(s) dépensière(s) (i.e. sur quel(s) budget(s) ?)', //'label' => 'Centre(s) financier(s) / EOTP', // EDIT only //'disabled' => $DISABLED, 'disabled' => $IS_ADD ? false : $isReadonlyField($f, $readonlyFields), 'placeholder' => 'Si plusieurs, séparer avec virgule' ]); // - Numéro BC // On peut entrer le numero bon commande si le materiel est technique et qu'on est responsable du groupe $fname = 'numero_commande'; //$BC_DISABLED = $DISABLED; $BC_DISABLED = $IS_ADD ? false : $isReadonlyField($fname, $readonlyFields); if ($IS_EDIT && $USER_IS_RESPONSABLE_AND_SAME_GROUP_AS_MATERIEL && $materiel->materiel_administratif==0) $BC_DISABLED = False; echo $this->Form->control($fname, [ 'label' => 'Numéro BC', // EDIT only 'disabled' => $BC_DISABLED ]); /* Champ désormais inutile // - Code comptable echo $this->Form->control('code_comptable', [ 'label' => 'Code comptable', // EDIT only 'disabled' => $DISABLED ]); */ // - Numéro labo //(EP) NON, on ne doit pas pouvoir modifier ce numéro, non mais !!! if ($IS_EDIT) echo $this->Form->control('numero_laboratoire', [ 'label' => 'N° inventaire labo', 'id' => 'num_labo', 'disabled' => true ]); // Num inventaire organisme echo $this->Form->control('numero_inventaire_organisme', [ 'label' => 'N° inventaire comptable/tutelles', // EDIT only //'disabled' => $DISABLED ]); // Num inventaire (ancien) echo $this->Form->control('numero_inventaire_old', [ 'label' => 'Ancien N° inventaire', // EDIT only //'disabled' => $DISABLED ]); echo '
'; } /* * ************************************************************************************ * (EDIT ONLY) PARTIE ADMINISTRATIVE AVANCÉE (superadmin only) * ************************************************************************************ */ // if ($role == 'Super Administrateur') { if ($IS_EDIT && $USER_IS_SUPERADMIN) { /*
*/ echo '
Partie administrative avancée'; /*echo $this->Form->checkbox('adminEditPlus', [ 'label' => 'Editer la partie administrative avancée', 'onchange' => 'changeAdminPlus();', 'default' => false ]);*/ // - Nom créateur de la fiche echo $this->Form->control('nom_createur', [ 'label' => 'Nom créateur de cette fiche', 'disabled' => true, //'options' => $utilisateurs 'options' => $users_option_list ]); // - Date création echo $this->Form->control('created', [ 'type' => 'text', 'label' => 'Date de création', //'class' => 'datepicker', //'placeholder' => 'Cliquez pour sélectionner une date', //'disabled' => $isReadonlyField('date_acquisition', $readonlyFields) 'disabled' => true ]); // - Nom modificateur echo $this->Form->control('nom_modificateur', [ 'label' => 'Nom du modificateur', 'default' => $username, 'disabled' => true ]); // - Date modif echo $this->Form->control('modified', [ 'type' => 'text', 'label' => 'Date de modification', //'class' => 'datepicker', 'disabled' => true ]); echo '
'; //
} // if superadmin // (hidden) nom du créateur (ADD) ou du modificateur (EDIT) (sert à quoi ?) $f = $IS_ADD ? 'nom_createur' : 'nom_modificateur'; echo $this->Form->hidden($f, [ 'value' => $username ]); ?>
id);?> Form->end()?>
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... //echo $this->Html->script('jquery-1.8.12'); //echo $this->Html->script('script'); //echo $this->Html->script('DatepickerConfig'); echo $this->Html->script('Verifications_dates_materiels.js'); ?>