Html->image('qrcodes/' . $this->request->getSession()->read("filename"), [
'alt' => 'QrCode : ' . $entity->numero_laboratoire,
//'style' => 'float:none;'
//'style' => 'float:right;'
]);
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
?>
Description :
=$this->Text->autoParagraph(h($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 '
';
}
$bStyle = 'margin:0';
?>
Suivi(s) du matériel (=count($entity->suivis)?>)
suivis))
echo 'Aucun suivi pour ce matériel.';
else {
?>
=__('')?> |
=__('Intitulé')?> |
=__('Type')?> |
=__('Date début / Fréquence')?> |
=__('Date fin / Répétition')?> |
=__('Statut')?> |
suivis as $suivi) :?>
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)
]);
}
?>
|
=$this->Html->link(h($suivi->intitule).' (suivi '. $suivi->id.')', ['controller' => 'suivis','action' => 'view',$suivi->id])?> |
=$suivi->type_suivi->nom?> |
type_suivi_id]['is_regular'] ) {?>
type_suivi->is_regular ) {?>
=h($suivi->frequence)?> |
=h($suivi->type_frequence)?> |
=h($suivi->date_controle)?> |
=h($suivi->date_prochain_controle)?> |
=h($suivi->statut)?> |
Emprunt(s) du matériel (=count($entity->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 à :
/*
=__('')?> |
=__('N°')?> |
=__('Emprunteur')?> |
=__('Statut')?> |
=__('Type')?> |
=__('Lieu')?> |
=__('Date emprunt')?> |
=__('Date retour')?> |
*/
?>
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 à :
/*
|
=$this->Html->link('Emprunt ' . $emprunt->id, ['controller' => 'emprunts','action' => 'view',$emprunt->id])?> |
=h($emprunt->nom_emprunteur)?> |
>=h($status)?> |
=h($type)?> |
=h($lieu)?> |
=h($emprunt->date_emprunt)?> |
=h($emprunt->date_retour_emprunt)?> |
*/
?>
documents); ?>
Fichier(s) lié(s) au matériel (=$nbFic?>)
=__('')?> |
=__('Nom')?> |
=__('Type')?> |
=__('Miniature')?> |
documents as $document) :
?>
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 ? ')
]);
}
?>
|
=$this->Html->link($document->nom, ['controller' => 'documents','action' => 'view',$document->id])?> |
type_document_id ? $typeDocuments->get(h($document->type_document_id))['nom'] : '';
/*
$type = $typeDocuments->find()
->where([
'id =' => h($document->type_document_id)
])->first()['nom'];
*/
?>
=$type?> |
type_document_id==4;
$is_doc_photo = in_array($document->type_doc, $photo_formats);
?>
=($document->photo || $is_doc_photo) ? 'Oui' : ''?> |