link( __(" $title"), [ 'controller' => $controller, 'action' => $action, $id, $mat, $photo ], [ 'title' => $tip, 'escape' => false, 'onclick' => 'return true;', 'style' => 'margin-right: 10px' ] ); } */ //$PDF_ENGINE = "FPDF"; //$PDF_ENGINE = "DOMPDF"; // EP // Set some useful global variables for this view /* * EP => moved to Controller * // 1) Materiel settings * * const CREATED = 1; * const VALIDATED = 2; * const TOBEARCHIVED = 3; * const ARCHIVED = 4; * $allStatus = [ * 'CREATED' => CREATED, * 'VALIDATED' => VALIDATED, * 'TOBEARCHIVED' => TOBEARCHIVED, * 'ARCHIVED' => ARCHIVED, * ]; * $IS_CREATED = ( $entity->status == 'CREATED' ); * $IS_VALIDATED = ( $entity->status == 'VALIDATED' ); * $IS_TOBEARCHIVED = ( $entity->status == 'TOBEARCHIVED' ); * $IS_ARCHIVED = ( $entity->status == 'ARCHIVED' ); * $status = $allStatus[$entity->status]; * * // 2) User settings * const PROFILE_USER = 1; * const PROFILE_RESPONSABLE = 2; * const PROFILE_ADMIN = 3; * const PROFILE_ADMINPLUS = 4; * const PROFILE_SUPERADMIN = 5; * $allProfiles = [ * 'Utilisateur' => PROFILE_USER, * 'Responsable' => PROFILE_RESPONSABLE, * 'Administration' => PROFILE_ADMIN, * 'Administration Plus' => PROFILE_ADMINPLUS, * 'Super Administrateur' => PROFILE_SUPERADMIN * ]; * * $profile = $allProfiles["$role"]; * // echo $profile; * * $USER_IS_UTILISATEUR = ($profile == $PROFILE_USER); * $USER_IS_RESPONSABLE = ($profile == $PROFILE_RESPONSABLE); * $USER_IS_ADMIN = ($profile == $PROFILE_ADMIN); * $USER_IS_ADMINPLUS = ($profile == $PROFILE_ADMINPLUS); * $USER_IS_SUPERADMIN = ($profile == $PROFILE_SUPERADMIN); * * $USER_IS_ADMIN_OR_MORE = $profile >= $PROFILE_ADMIN; */ // $dateProchainControleVerif = function($t) { // $time = Time::now(); // On récupère la date et l'heure actuelles // $today = new DateTime((new date("$time->year-$time->month-$time->day"))->format('Y-m-d')); // $time1 = new time($t); // $dateTime1 = new DateTime((new date("$time1->year-$time1->month-$time1->day"))->format('y-m-d')); // $interval = ($today->diff($dateTime1)); // $strInterval = $interval->format('%a'); // return (int) $strInterval; // }; // debug("user=".$priviledgedUser); // debug("user name = ".$username); /* $USER_IS_UTILISATEUR_AND_CREATOR_OR_OWNER = $USER_IS_UTILISATEUR && in_array($username, [ $entity->nom_createur, $entity->nom_responsable ]); $USER_IS_RESPONSABLE_AND_CREATOR_OR_OWNER = $USER_IS_RESPONSABLE && in_array($username, [ $entity->nom_createur, $entity->nom_responsable ]); $USER_IS_RESPONSABLE_AND_SAME_GROUP = $USER_IS_RESPONSABLE && ((isset($priviledgedUser->groupes_metier_id) && $priviledgedUser->groupes_metier_id != $idGmNa && $entity->groupes_metier_id == $priviledgedUser->groupes_metier_id) || (isset($priviledgedUser->groupes_thematique_id) && $priviledgedUser->groupes_thematique_id != $idGtNa && $entity->groupes_thematique_id == $priviledgedUser->groupes_thematique_id)); */ /* (EP) Moved this to controller:view() $CAN_EDIT = $IS_CREATED && ($USER_IS_ADMIN_OR_MORE || $USER_IS_UTILISATEUR_AND_CREATOR_OR_OWNER || $USER_IS_RESPONSABLE_AND_SAME_GROUP || $USER_IS_RESPONSABLE_AND_CREATOR_OR_OWNER); $CAN_ATTACH_A_DOC = $USER_IS_ADMIN_OR_MORE || $USER_IS_UTILISATEUR_AND_CREATOR_OR_OWNER || $USER_IS_RESPONSABLE_AND_SAME_GROUP || $USER_IS_RESPONSABLE_AND_CREATOR_OR_OWNER; $CAN_COPY = $IS_CREATED and ($USER_IS_ADMIN_OR_MORE || $USER_IS_UTILISATEUR_AND_CREATOR_OR_OWNER); $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN_OR_MORE; */ ?>

status) == 'ARCHIVED') echo ' '; if ($IS_ARCHIVED) echo ' '; $panne = h($entity->hors_service) ? ' (HORS SERVICE)' : ''; ?> designation) . $panne?> numero_laboratoire)?>

status) { case 'CREATED': $statut = 'A commander'; break; case 'VALIDATED': $action = "Livré"; break; case 'TOBEARCHIVED': $action = "A archiver"; break; case 'ARCHIVED': $action = "Archivé"; } */ //echo "($status_display)"; $nice_status = $entity->getNiceStatus(); echo "($nice_status)"; ?>

Html->link("Voir tous les matériels (liste)", ['action'=>'index']) ?>

request->env('HTTP_REFERER')); // 'http://labinvent.test/materiels' //debug($this->request); // - a) Création //$proto = $this->request->env('REQUEST_SCHEME'); //$proto = $this->request->env('HTTP_REFERER'); $proto = $this->request->getEnv('HTTP_REFERER'); //debug("proto"); debug($proto); $proto = $proto ? substr($proto, 0,strpos($proto,'://')) : ''; // 'http' ou 'https' //debug("proto"); debug($proto); //$qrCodeUrl = $proto.'://' . $this->request->env('SERVER_NAME') . $this->request->env('REQUEST_URI'); // 'http://labinvent.devv/materiels/view/11126' $qrCodeUrl = $proto.'://' . $this->request->getEnv('SERVER_NAME') . $this->request->getEnv('REQUEST_URI'); // 'http://labinvent.devv/materiels/view/11126' //debug("qrCodeUrl"); debug($qrCodeUrl); $this->request->getSession()->write("qrUrl", $qrCodeUrl); // (EP) TODO: bugfix ; cette instruction efface la variable de session 'Auth' !!! // Il faut normalement remplacer requestAction par un view Cell $this->requestAction('/QrCodes/creer/'); // - b) Affichage //echo '
'; ?>
Html->image('qrcodes/' . $this->request->getSession()->read("filename"), [ 'alt' => 'QrCode : ' . $entity->numero_laboratoire, //'style' => 'float:none;' //'style' => 'float:right;' ]); echo "\n"; ?>
documents as $document) { //debug($document); // Toute image : $is_doc_photo = in_array($document->type_doc, ['png','jpg','jpeg','gif']); // Seulement les photos : //$is_doc_photo = ($document->type_document_id==4); //$is_doc_photo = $document->type_document->nom == 'Photo'; // et si le document est la photo liée, on l'affiche, pour cela //if($document->photo) { if ($document->photo || $is_doc_photo) { //on récupère le doc $photo = $document; //on reconstitue le nom a partir des paramètres (idmat_nom_id.extension) $nomPhoto = $photo->materiel_id . "_" . $photo->nom . "_" . $photo->id . "." .$photo->type_doc; //$style = 'max-width:300px; text-align:center; float:none;'; //$style = 'max-width:300px; vertical-align: bottom;'; $style = 'max-width:300px; vertical-align: top;'; //Et si la photo n'est pas vide on l'affiche //if(!empty($photo)) { //if ($document->photo) { $img = $this->Html->image('photos/'.$nomPhoto, [ //si il y a une erreur sur le nom affiche le texte alternatif 'alt' => 'Photo du matériel', 'style' => $style ]); //} /* // $is_doc_photo else $img = "Image"; */ echo $img; //echo $this->Html->link($img, ['controller'=>'documents', 'action'=>'view', $document->id]); //echo '
'; //} } } // foreach echo "\n"; ?>

Html, 'icon-pencil', $bStyle, ' Éditer', 'materiels', 'edit', $entity->id); // Bouton Supprimer if ($CAN_DELETE) //$echoActionButton($this->Html, 'icon-trash', $bStyle, ' Supprimer', 'materiels', 'delete', $entity->id); echo $this->Form->postLink(__(' Supprimer'), [ 'action' => 'delete', $entity->id ], [ 'style' => 'margin-left: 10px', 'escape' => false, 'confirm' => __('Êtes-vous sur de vouloir supprimer ce matériel ?') //'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $suivi->id) ]); // if ($entity->status == 'VALIDATED') { //if ($IS_VALIDATED) { // BOUTON "NOUVEAU SUIVI" if ($CAN_DO_SUIVI) $echoActionButton($this->Html, 'icon-plus', $bStyle, ' Nouv. Suivi', 'suivis', 'add', $entity->id, [], 'Faire un nouveau suivi'); /* echo $this->Html->link(' Nouv. Suivi', [ 'controller' => 'suivis', 'action' => 'add', $entity->id ], [ 'title' => 'Faire un nouveau suivi de ce matériel', 'style' => 'margin-right: 10px', 'escape' => false ]); // End link */ // On peut prêter ce matos // BOUTON "NOUVEL EMPRUNT" if ($CAN_LEND) $echoActionButton($this->Html, 'icon-plus', $bStyle, ' Nouv. Prêt', 'emprunts', 'add', $entity->id, [], 'Faire un nouvel emprunt de ce matériel'); // BOUTONS "Lier un Doc" et "Remplacer/Lier photo" if ($CAN_ATTACH_A_DOC) { $echoActionButton($this->Html, 'icon-file', $bStyle, ' Lier un Doc. (doc, devis, photo)', 'documents', 'add', $entity->id, ['mat'], 'Attacher un document, un devis, ou une photo à ce matériel'); /* // BOUTON "photo" if ($entity->photo_id != null) $echoActionButton($this->Html, 'icon-file', $bStyle, ' Remplacer la photo.', 'documents', 'add', $entity->id, ['mat', 'photo'], 'Remplacer la photo de ce matériel'); else $echoActionButton($this->Html, 'icon-file', $bStyle, ' Lier une photo.', 'documents', 'add', $entity->id, ['mat', 'photo'], 'Attacher une photo à ce matériel'); */ } // BOUTONS Doc admission et sortie (admin+) //if ($USER_IS_ADMIN_OR_MORE) { // Doc admission if ($CAN_EDIT_DOC_ADMISSION) { //if ($IS_CREATED || $IS_VALIDATED) { if ($PDF_ENGINE == "FPDF") { // FPDF $action = 'admission'; ///$data = $entity->numero_laboratoire; $id = $entity->id; } else { // DOMPDF $action = 'admission_pdf'; // Il faut ajouter '.pdf' à la suite de l'argument pour que le template // soit cherché dans Documents/pdf/ et non pas Documents/ !!! ///$data = $entity->numero_laboratoire . ".pdf"; $id = $entity->id . '.pdf'; } // if (($entity->status == 'VALIDATED') || ($entity->status == 'CREATED')) { //$echoActionButton($this->Html, 'icon-file', $bStyle, ' Doc. admission', 'documents', $action, $data, [], "Voir le document d'admission"); $echoActionButton($this->Html, 'icon-file', $bStyle, ' Doc. admission', 'documents', $action, $id, [], "Voir le document d'admission"); //} } // doc sortie //if (true) { if ($CAN_EDIT_DOC_SORTIE) { // Doc sortie (admin only) //else if ($IS_ARCHIVED || $IS_TOBEARCHIVED) { if ($PDF_ENGINE == "FPDF") { // FPDF $action = 'sortie'; $id = $entity->id; //$data = $entity->numero_laboratoire; } else { // DOMPDF $action = 'sortie_pdf'; $id = $entity->id . '.pdf'; //$data = $entity->numero_laboratoire . ".pdf"; } // else if (($entity->status == 'ARCHIVED') || ($entity->status == 'TOBEARCHIVED')) { $echoActionButton($this->Html, 'icon-file', $bStyle, ' Doc. sortie', 'documents', $action, $id, [], "Voir le document de sortie"); //$echoActionButton($this->Html, 'icon-file', $bStyle, ' Doc. sortie', 'documents', $action, $data, [], "Voir le document de sortie"); //} } // Doc sortie // --- (2) BOUTONS 2nd row --- echo "
"; // (EP) Change bouton style pour que la 2ème ligne de boutons ne chevauche pas la 1ère // En pratique, il suffit que un seul bouton de cette ligne aie ce style (pas nécessaire pour les autres) // Mais bon, c'est difficile de savoir lequel sera toujours présent... // Donc, on applique ce style à TOUS les boutons de cette 2e ligne $bStyle2 = $bStyle.'; margin-top:10px; display:inline-block'; $bStyle2Red = $bStyle2 . '; color:red'; $bStyle2Green = $bStyle2 . '; color:green'; $bStyle2Blue = $bStyle2 . '; color:blue'; // BOUTONS de changement de statut : Valider, Invalider, Demander archivage, ou Archiver /* (EP) Moved this to controller:view() $CAN_VALIDATE_OR_INVALIDATE = $USER_IS_ADMIN_OR_MORE || ( ($entity->materiel_administratif == 0) && $USER_IS_RESPONSABLE && $USER_IS_SAME_GROUP_AS_MATERIEL ); $CAN_VALIDATE = $IS_CREATED && $CAN_VALIDATE_OR_INVALIDATE; $CAN_INVALIDATE = !$IS_CREATED && $CAN_VALIDATE_OR_INVALIDATE; $CAN_TBA = $IS_VALIDATED && ($USER_IS_ADMIN_OR_MORE || $USER_IS_CREATOR_OR_OWNER || ($USER_IS_RESPONSABLE && $USER_IS_SAME_GROUP_AS_MATERIEL)); $CAN_ARCHIVE = $IS_TOBEARCHIVED && $CAN_VALIDATE_OR_INVALIDATE; */ // - CREATED : // Bouton COMMANDER if ($HAS_ORDER_BUTTON && $CAN_ORDER) $echoActionButton($this->Html, 'icon-ok-sign', $bStyle2Green, ' Commander', '', 'statusTobeordered', $entity->id, ['view'], "Demander la commande de ce matériel)"); // Bouton VALIDER if ($CAN_VALIDATE) $echoActionButton($this->Html, 'icon-ok-sign', $bStyle2Green, ' Valider (=livré)', '', 'statusValidated', $entity->id, ['view'], "Valider ce matériel (le déclarer comme étant livré)"); // - VALIDATED or more : // Bouton TBA if ($CAN_TBA) $echoActionButton( $this->Html, 'icon-ok-sign', $bStyle2Blue, ' Demander sortie', '', 'statusTobearchived', $entity->id, ['view'], "Demander la sortie de l'inventaire" ); // Bouton ARCHIVER if ($CAN_ARCHIVE) $echoActionButton( $this->Html, 'icon-ok-sign', $bStyle2Blue, ' Sortie inventaire', '', 'statusArchived', $entity->id, ['view'], "Sortir définitivement de l'inventaire", "Êtes-vous sur de bien vouloir archiver $entity->designation ?" ); // Bouton INVALIDER (Dévalider) //$help = "dé-valider le matériel (le repasser au statut Créé, il faudra le re-valider ensuite)"; $help = "dé-valider le matériel "; if ($entity->status == 'ARCHIVED') { $b_label = "Désarchiver"; $new_status = "(le désarchiver, et repasser au statut 'A SORTIR')"; } elseif ($entity->status == 'TOBEARCHIVED') { $b_label = "Annuler demande sortie"; $new_status = "(annuler la demande d'archivage, et repasser au statut 'VALIDÉ')"; } elseif ($entity->status == 'VALIDATED') { $b_label = "Invalider"; $new_status = "(annuler la validation de la livraison, dé-valider et repasser au statut 'CRÉÉ')"; } elseif ($entity->status == 'TOBEORDERED') { $b_label = "Annuler Commande"; $new_status = "(annuler la demande d'achat, et repasser au statut 'CRÉÉ')"; } // Par défaut => CREATED (VALIDATED ou TOBEORDERED => CREATED) else { $b_label = "Invalider"; $new_status = "(repasser au statut 'CRÉÉ')"; } $help .= $new_status; if ($CAN_INVALIDATE) $echoActionButton( $this->Html, 'icon-remove-sign', $bStyle2Red, ' '.$b_label, '', 'statusCreated', $entity->id, ['view'], $help ); /* if ($USER_IS_ADMIN_OR_MORE || ($USER_IS_RESPONSABLE && $USER_IS_SAME_GROUP_AS_MATERIEL)) { // CREATED if ($IS_CREATED) // Bouton VALIDER $echoActionButton($this->Html, 'icon-ok-sign', $bStyle2Red, ' Valider', '', 'statusValidated', $entity->id, [], "Valider ce matériel"); // VALIDATED or more else { // Bouton Invalider if ($USER_IS_ADMIN_OR_MORE) $echoActionButton($this->Html, 'icon-remove-sign', $bStyle2Red, ' Invalider', '', 'statusCreated', $entity->id, [], "dé-valider le matériel (le repasser au statut Créé, il faudra le re-valider ensuite)" ); // Bouton TBA if ($IS_VALIDATED) $echoActionButton($this->Html, 'icon-ok-sign', $bStyle2Red, ' Demander sortie', '', 'statusToBeArchived', $entity->id, [], "Demander la sortie de l'inventaire" ); // Bouton ARCHIVER //if ($IS_TOBEARCHIVED && $role!='Responsable') $echoActionButton( if ($IS_TOBEARCHIVED && $USER_IS_ADMIN_OR_MORE) $echoActionButton( $this->Html, 'icon-ok-sign', $bStyle2Red, ' Sortie inventaire', '', 'statusArchived', $entity->id, [], "Sortir définitivement de l'inventaire", "Êtes-vous sur de bien vouloir archiver $entity->designation ?" ); } } */ // BOUTON Copier (seulement pour les materiels qui sont CREATED et pour les ADMINet+ ou USER owner) if ($CAN_COPY) $echoActionButton($this->Html, 'icon-plus', $bStyle2, ' Copier', '', 'add', $entity->id, [], "Copier ce matériel"); // BOUTON ETIQUETTE (si imprimante disponible) if ($CAN_PRINT_LABEL) { // - Bouton "Imprimer étiquette" $echoActionButton($this->Html, 'icon-print', $bStyle, ' Etiquette', '', 'printLabelRuban', h($entity->id), [], "Imprimer une étiquette"); // - Bouton "Etiquette [non] collée" //$echoActionButton($this->Html, 'icon-file', $bStyle.'; background: red; color: white', $echoActionButton($this->Html, 'icon-file', $bStyle, $entity->etiquette ? " Etiquette NON collée" : " Etiquette collée", 'materiels', $entity->etiquette ? 'setLabelIsNotPlaced' : 'setLabelIsPlaced', h($entity->id), ['view'], $entity->etiquette ? "En cliquant sur ce bouton, vous déclarez que l'étiquette n'a PAS été collée sur le matériel" : "En cliquant sur ce bouton, vous certifiez que l'étiquette a bien été collée sur le matériel" ); //'style' => 'margin-left: 0px; margin-right: 10px', } // BOUTON "Voir fiche matériel" $bStyleGreen = $bStyle.'; background: green; color: white'; echo "
"; echo "
"; // echo '
'; if ($PDF_ENGINE == "FPDF") { // FPDF $action = 'ficheMateriel'; $id = $entity->id; //$data = $entity->numero_laboratoire; } else { // DOMPDF $action = 'fiche_materiel_pdf'; //$action = 'createDocFicheMaterielPdf'; $id = $entity->id . '.pdf'; //$data = $entity->numero_laboratoire.'.pdf'; } //$echoActionButton($this->Html, 'icon-file', $bStyleGreen, ' Fiche PDF du matériel', 'documents', $action, $data, [], //$echoActionButton($this->Html, 'icon-file', $bStyleGreen, ' Fiche PDF du matériel', '', $action, $id, [], $echoActionButton($this->Html, 'icon-file', $bStyleGreen, ' Fiche PDF du matériel', 'documents', $action, $id, [], "Voir la fiche du materiel" ); // FIN DIV BOUTONS ?>

Informations

Description : Text->autoParagraph(h($entity->description));?>
materiel_administratif) == 1 && h($entity->materiel_technique) == 1) $type = 'Administratif et technique'; else if (h($entity->materiel_administratif) == 1) $type = 'Administratif'; else if (h($entity->materiel_technique) == 1) $type = 'Technique'; */ //echo ''; // La variable-fonction $displayElement est définie dans le fichier src/Controller/AppController.php //On va utiliser $displayElement pour l'affichage de tout les champs pour mettre une norme en place //$displayElement(__('Nom du materiel'),$entity->designation); //$displayElement(__('Description'),$entity->description); //$displayElement(__('Materiel inventorié'), $type); $this->MyHelper->displayElement('Nom du materiel', $entity->designation); //$entity->will_stay = false; $this->MyHelper->displayElement('Ce matériel restera au laboratoire', $entity->will_stay, $entity->will_stay ? $style_black:$style_red ); // (EP202010) Deplacé tout en haut du tableau et affiché avec Text->autoParagraph() //$this->MyButton->displayElement('Description',$entity->description); //$this->MyHelper->displayElement('Materiel inventorié',$type); $displayElement(__('Domaine'), $entity->has('sur_category') ? h($entity->sur_category->nom) : ''); $displayElement(__('Catégorie'), $entity->has('category') ? h($entity->category->nom) : ''); $displayElement(__('Sous-Catégorie'), $entity->has('sous_category') ? h($entity->sous_category->nom) : ''); $displayElement(__($configuration->nom_groupe_thematique), $entity->has('groupes_thematique') ? $this->Html->link($entity->groupes_thematique->nom, [ 'controller' => 'GroupesThematiques', 'action' => 'view', $entity->groupes_thematique->id ]) : ''); $displayElement(__($configuration->nom_groupe_metier), !$entity->has('groupes_metier') ? '' : $this->Html->link($entity->groupes_metier->nom, [ 'controller' => 'GroupesMetiers', 'action' => 'view', $entity->groupes_metier->id ]) ); //$displayElement(__('Projet'), $entity->has('projet_id') ? h($entity->projet->nom) : ''); //$displayElement(__('Projet'), $entity->has('projet') ? h($entity->projet->nom) : ''); $displayElement(__('Projet'), !$entity->has('projet') ? '' : $this->Html->link($entity->projet->nom, [ 'controller' => 'Projets', 'action' => 'view', $entity->projet_id ]) ); $displayElement(__('Organisme'), $entity->has('organisme') ? h($entity->organisme->nom) : ''); $etiq = (h($entity->etiquette) == 0) ? "Non" : "Oui"; if ($CAN_PRINT_LABEL) $displayElement(__('Étiquette placée'), $etiq, $etiq=="Oui"?$style_green:$style_red); $displayElement(__('N° de série'), $entity->numero_serie); if ($configuration->metrologie == 1) { $metro = (h($entity->metrologie) == 0) ? "Non" : "Oui"; if (h($entity->metrologie) == 0) $displayElement(__('Métrologie'), $metro); } $displayElement(__("Date d'achat"), h($entity->date_acquisition)); $displayElement(__('Date de livraison'), h($entity->date_reception)); if (! empty(h($entity->duree_garntie))) { $displayElement(__('Duree garantie'), h($entity->duree_garantie) . ' ' . h($entity->unite_duree_garantie)); } // - Date fin garantie : passée ? // Pour changer la couleur de la date de garantie si elle est passée $date_fin_gar = $entity->date_fin_garantie; $style_color = ''; $comment = ''; if ($date_fin_gar !== NULL) { $today = new FrozenDate(); $next_year_same_day = new FrozenDate('+1 year'); //debug($next_year_same_day); /* $time = Time::now(); // On récupère la date et l'heure actuelles $today = new date("$time->year-$time->month-$time->day"); // On extrait la date pour la vérification de fin de garantie $today = $today->format('Ymd'); // On formatte la date initialement en 31-12-2000 en un format qui pourra etre comparé : 20001231 */ // expirée ? if ($date_fin_gar <= $today) { $style_color = $style_red; $comment = ' (expirée)'; } // dans moins d'1 an ? elseif ($date_fin_gar <= $next_year_same_day) { $style_color = $style_orange; $comment = " (dans moins d'1 an)"; } /* $timeFin = new time($entity->date_fin_garantie); $dateFin = new date("$timeFin->year-$timeFin->month-$timeFin->day"); $dateFin = $dateFin->format('Ymd'); */ } $displayElement(__('Date fin de garantie'), h($entity->date_fin_garantie).$comment, $style_color); //$displayElement(__('Statut'), h($entity->status)); $displayElement(__('Statut'), h($entity->getNiceStatus($entity->status))); $displayElement(__('Date de création'), h($entity->created)); if ($entity->status == 'VALIDATED') { //debug("coucou"); /** TODO assert($entity->has('date_validated')); assert($entity->date_validated != null); */ //$a = $entity->toArray(); //debug($a); //assert($a['date_validated']); } $displayElement(__("Date de validation"), h($entity->date_validated)); //$displayElement(__("Date de validation"), h($entity->get('date_validated'))); //if ($entity->status == 'ARCHIVED') $displayElement(__("Date d'archivage"), h($entity->date_archived)); //assert($entity->has('date_archived')); $displayElement(__("Date d'archivage"), h($entity->date_archived)); if ($entity->status == 'ARCHIVED') { //$entity->date_archived=5; /** TODO assert($entity->has('date_archived')); assert($entity->date_archived != null); */ } $displayElement(__('Prix (HT)'), h($entity->prix_ht) . ' €'); $displayElement(__('Budgets'), h($entity->budgets)); // Fournisseur (lien) //$displayElement(__('Fournisseur'), $entity->has('fournisseur') ? $entity->fournisseur->nom : ''); if ($entity->fournisseur_id) $displayElement(__('Fournisseur'), $this->Html->link( h($entity->fournisseur->nom), ['controller'=>'Fournisseurs', 'action'=>'view', $entity->fournisseur->id] ) ); // Site et lieu de stockage if ($entity->has('site')) { $site_lieu = h($entity->site->nom); if ($entity->lieu_detail) $site_lieu .= ' - '.h($entity->lieu_detail); if ($entity->is_site_only) $site_lieu .= ' (réservé au site)'; $displayElement(__('Site - lieu de stockage'), $site_lieu); /* $displayElement(__('Lieu de stockage (site)'), $entity->has('site') ? h($entity->site->nom) : ''); $displayElement(__('Détail lieu de stockage'), h($entity->lieu_detail)); */ } // - Acheteur (lien mailto) $displayElement(__("Nom de l'acheteur"), $this->Html->link( h($entity->nom_responsable), // Mailto 'mailto:' . h($entity->email_responsable) //['controller'=>'Users', 'action'=>'view', 'id'=>$entity->id] ) ); // - Resp. crédit $displayElement(__('Responsable crédit'), h($entity->resp_credit)); // - Utilisateur $displayElement(__("Nom de l'utilisateur (destination du bien)"), h($entity->nom_user)); $displayElement(__('N. interne (labo)'), h($entity->numero_laboratoire)); // - Gestionnaire $entity->user && $displayElement(__('Gestionnaire de référence'), h($entity->user->nom)); /* if ($entity->gestionnaire_id) { $gestionnaire = TableRegistry::getTableLocator()->get('Users')->get($entity->gestionnaire_id); $displayElement(__('Gestionnaire de référence'), h($gestionnaire->nom)); } */ /* $gestionnaire = TableRegistry::get('Users')->find()->where([ 'id =' => $entity->gestionnaire_id ]); $displayElement(__('Gestionnaire de référence'), h($gestionnaire->first()['nom'])); */ // - Créateur et modificateur de la fiche if ($role == 'Super Administrateur') { //$displayElement(__('Date création'), h($entity->created)); $displayElement(__('Nom du créateur'), h($entity->nom_createur)); $displayElement(__('Date modification'), h($entity->modified)); $displayElement(__('Nom du modificateur'), h($entity->nom_modificateur)); } ?>
' . __('Description') . ' ' . nl2br($entity->description) . '
'; echo ''; echo ' Informations administratives'; echo ''; /* Nouvel ordre proposé par CF (nov 2020) : 1/ Entité(s) dépensière(s) / obligatoire champ texte libre 2/ N° BC / obligatoire champ texte libre 3/ Date BC /pas obligatoire champ date 4/ Date livraison / obligatoire champ date 5/ N° inv. comptable/tutelles / pas obligatoire champ texte libre */ echo '
'; echo ''; echo ''; //echo ''; echo ''; echo ''; // Champ désormais inutile //echo ''; echo ''; echo ''; echo '
' . __('Centre(s) Financier(s) / EOTP') . ' ' . h($entity->eotp) . '
' . __('Entité(s) dépensière(s)') . ' ' . h($entity->eotp) . '
' . __('N° BC') . ' ' . h($entity->numero_commande) . '
' . __('Code comptable') . ' ' . h($entity->code_comptable) . '
' . __('N° inv. comptable/tutelles') . ' ' . h($entity->numero_inventaire_organisme) . '
' . __('N° inventaire (ancien)') . ' ' . h($entity->numero_inventaire_old) . '
'; echo '
'; } $bStyle = 'margin:0'; ?>

Suivi(s) du matériel (suivis)?>)

suivis)) echo 'Aucun suivi pour ce matériel.'; else { ?> suivis as $suivi) :?> type_suivi_id]['is_regular'] ) {?> type_suivi->is_regular ) {?>
Html, 'icon-pencil', $bStyle, '', 'Suivis', 'edit', $suivi->id); /* echo $this->Html->link(__(''), [ 'controller' => 'Suivis', 'action' => 'edit', $suivi->id ], [ 'escape' => false, 'style' => 'margin:0' ]); */ // - Delete Suivis //$echoActionButton($this->Html, 'icon-trash', $bStyle, '', 'Suivis', 'delete', $suivi->id, [], "", ""); echo ' '.$this->Form->postLink(__(''), [ 'controller' => 'Suivis', 'action' => 'delete', $suivi->id ], [ 'escape' => false, 'style' => 'margin:0', 'confirm' => __('Êtes-vous sur de vouloir annuler ce suivi #{0} ?', $suivi->id) ]); } ?> Html->link(h($suivi->intitule).' (suivi '. $suivi->id.')', ['controller' => 'suivis','action' => 'view',$suivi->id])?> type_suivi->nom?> frequence)?> type_frequence)?> date_controle)?> date_prochain_controle)?> statut)?>

Emprunt(s) du matériel (emprunts)?>)

emprunts)) echo 'Aucun emprunt pour ce matériel.'; else { ?> Html->tableHeaders( ['Date', 'Title','Active'], ['class' => 'status'], // pour le TR ['class' => 'product_table'] // pour tous les TH ); */ echo $this->Html->tableHeaders([ ['' => ['class' => 'actions']], __('Intitulé'), __('Emprunteur'), __('Statut'), 'Type', 'Lieu', 'Date emprunt', 'Date retour' ]); // equivalent à : /* */ ?> emprunts as $emprunt) : //debug($emprunt); $type = 'Externe'; $lieu = $emprunt['laboratoire']; if ($emprunt['emprunt_interne'] == 1) { $type = 'Interne'; $lieu = $sites->find() ->where([ 'id =' => h($emprunt->site_id) ])->first()['nom'] . '-' . h($emprunt->e_lieu_detail); } $bEdit = $bDelete = ''; //if ($USER_IS_ADMIN_OR_MORE || $USER_IS_UTILISATEUR_AND_CREATOR_OR_OWNER || $USER_IS_RESPONSABLE_AND_SAME_GROUP || $USER_IS_RESPONSABLE_AND_CREATOR_OR_OWNER ) { if ($CAN_MANAGE_EMPRUNTS) { // - Edit Emprunt $bEdit = $this->MyHelper->getActionButton('icon-pencil', $bStyle, '', 'Emprunts', 'edit', $emprunt->id); //$bEdit = $getActionButton($this->Html, 'icon-pencil', $bStyle, '', 'Emprunts', 'edit', $emprunt->id); //echo $bEdit; /* echo $this->Html->link(__(''), [ 'controller' => 'Emprunts', 'action' => 'edit', $emprunt->id ], [ 'escape' => false, 'style' => 'margin:0' ]); */ // - Delete Emprunt $bDelete = $this->Form->postLink(__(''), [ 'controller' => 'Emprunts', 'action' => 'delete', $emprunt->id ], [ 'escape' => false, 'style' => 'margin:0', 'confirm' => __('Êtes-vous sur de vouloir annuler cet emprunt #{0}?', $emprunt->id) ] ); } // champ virtuel (calculé) statut $style_red = 'style="color: red"'; $status = $emprunt->status_from_dates[0]; echo $this->Html->tableCells([ /* ['Jul 7th, 2007', 'Best Brownies', 'Yes'], ['Jun 21st, 2007', 'Smart Cookies', 'Yes'], ['Aug 1st, 2006', 'Anti-Java Cake', 'No'], */ [ [ $bEdit.' '.$bDelete, ['class'=>"actions", 'style'=>"padding: 6px 0; text-align: left;"] ], $this->Html->link($emprunt->nom." (emprunt $emprunt->id)", ['controller' => 'emprunts','action' => 'view',$emprunt->id]), h($emprunt->nom_emprunteur), [h($status), ['style' => 'color:'.($status=="EN COURS"?'red':'')]], h($type), h($lieu), h($emprunt->date_emprunt), h($emprunt->date_retour_emprunt), ], ]); // equivalent à : /* */ ?>
Html->link('Emprunt ' . $emprunt->id, ['controller' => 'emprunts','action' => 'view',$emprunt->id])?> nom_emprunteur)?> > date_emprunt)?> date_retour_emprunt)?>
documents); ?>

Fichier(s) lié(s) au matériel ()

documents as $document) : ?> type_document_id ? $typeDocuments->get(h($document->type_document_id))['nom'] : ''; /* $type = $typeDocuments->find() ->where([ 'id =' => h($document->type_document_id) ])->first()['nom']; */ ?> type_document_id==4; $is_doc_photo = in_array($document->type_doc, $photo_formats); ?>
photo) { // - photo from img/photos/ if (in_array($document->type_doc, $photo_formats)) { // TODO: $echoActionButton() //echo $this->Html->link(__(''), '/webroot/img/photos/' . $document->materiel_id .'_' . $document->nom.'_'. $document->id . '.' . $document->type_doc, [ echo $this->Html->link(__(''), '/img/photos/' . $document->materiel_id .'_' . $document->nom.'_'. $document->id . '.' . $document->type_doc, [ 'title' => 'Télécharger', 'style' => 'margin:0', 'escape' => false ]); // - autre doc (pdf...) from files/ } else { //echo $this->Html->link(__(''), '/webroot/files/' . $document->materiel_id .'_' . $document->nom.'_'. $document->id . '.' . $document->type_doc, [ echo $this->Html->link(__(''), '/files/' . $document->materiel_id .'_' . $document->nom.'_'. $document->id . '.' . $document->type_doc, [ 'title' => 'Télécharger', 'style' => 'margin:0', 'escape' => false ]); } //if ($USER_IS_ADMIN_OR_MORE || $USER_IS_UTILISATEUR_AND_CREATOR_OR_OWNER || $USER_IS_RESPONSABLE_AND_SAME_GROUP || $USER_IS_RESPONSABLE_AND_CREATOR_OR_OWNER) { if ($CAN_MANAGE_FILES) { // 2 - icone EDIT $echoActionButton($this->Html, 'icon-pencil', $bStyle, '', 'Documents', 'edit', $document->id); /* echo $this->Html->link(__(''), [ 'controller' => 'Documents', 'action' => 'edit', $document->id ], [ 'escape' => false, 'style' => 'margin:0' ]); */ // 3 - icone DELETE echo $this->Form->postLink(__(''), [ 'controller' => 'Documents', 'action' => 'delete', $document->id ], [ 'escape' => false, 'style' => 'margin:0', 'confirm' => __('Êtes-vous sur de vouloir supprimer le doc #{0}?', $document->id) ]); // 4 - icone Envoyer devis par mail (envoyer des mails avec les documents en pj) echo $this->Form->postLink(__(''), [ 'controller' => 'Documents', 'action' => __('mailDevis' ,$document->id), $document->id ], [ 'escape' => false, 'style' => 'margin:0', 'confirm' => __(' Voulez vous envoyer le document par mail ? ') ]); } ?> Html->link($document->nom, ['controller' => 'documents','action' => 'view',$document->id])?> photo || $is_doc_photo) ? 'Oui' : ''?>