find.ctp 9.93 KB

<div class="index">
	<h2>
		<i class="icon-search"></i> Recherche de matériel
	</h2>
<?php
$r = isset ($_results);

if ($r) {
	echo '<div class="actions" style="margin-bottom: 20px; width: 100%; float: none; padding: 10px 0;">';
	echo $this->Html->link ( '<i class="icon-file"></i> Exporter la liste', [
			'controller' => 'Materiels',
			'action' => 'export',
			'what' => 'search' 
	], [
			'title' => 'Editer le résultat de la recherche',
			'style' => 'margin-right: 15px',
			'escape' => false 
	]);
	echo '</div>';
}
?>
	
	<h3 id="t_filter" style="cursor: pointer;">
		<i
			class=<?php if ($r) echo '"icon-chevron-up"'; echo '"icon-chevron-down"'; ?>
			style="font-size: 14px;" id="i_filter"></i> <span
			style="text-decoration: underline;">Filtres</span>
	</h3>

	<div id="filter" <?php if ($r) echo 'style="display: none;"'; ?>><?php
	if (isset ( $_results ))
		$selected = [];
	else
		$selected = [
				'selected' => '' 
		];
	function getSortLinkForColumnTitle($label, $fieldName) {
		return "<th>
					<input type='submit' class='sortable-submit-title' value='$label' onclick='url=document.URL; url=url.slice(0, url.lastIndexOf(\"/find\")+5); $(\"form\").attr(\"action\", url+\"/$fieldName/ASC\");'/>
				</th>";
	}
	
	// FORMULAIRE DE RECHERCHE
	echo $this->Form->create();
	
	// -------Bouton recherche Haut---------
	echo $this->Form->submit ( 'Rechercher', ['style' => 'width: 20%']);
	
	// Designation
	echo $this->Form->input ( 's_designation', ['label' => 'Désignation']);
	
	// Matériel administratif et/ou technique
	$typeOptions = [];
	echo $this->Form->input ( 's_matostype', [
			'label' => 'Type',
			'empty' => 'Tous',
			'options' => [
					'A' => 'Administratif',
					'T' => 'Technique',
					'AT' => 'Administratif et Technique',
					'AO' => 'Administratif seulement',
					'TO' => 'Technique seulement' 
			],
			'style' => 'width: 280px' 
	]);
	
	// DOMAINE
	echo $this->Form->input ( 's_sur_categorie_id', [
			'label' => 'Domaine',
			'empty' => 'Tous',
			$selected,
			'options' => $s_sur_categories,
			'style' => 'width: 200px' 
	]);
	
	// CATEGORIES
	// by default, ALL categs
	$categs = $s_categories;
	
	// if a domaine is selected, reduce the categories list to this domaine
	if (isset ( $this->request->data['s_sur_categorie_id'] ) && ($this->request->data['s_sur_categorie_id'] != '')) {
		$categs = $categs->where(['sur_categorie_id =' => $this->request->data['s_sur_categorie_id']]);
	}
	
	echo $this->Form->input ( 's_categorie_id', [
			'label' => 'Catégorie',
			'empty' => 'Toutes',
			'style' => 'width: 200px',
			'options' => $categs 
	]);
	
	// SOUS-CATEGORIES
	// by default, list is empty
	$souscategs = [];
	// if a categ is selected, update sous-categs list for this categ (only)
	if (isset ( $this->request->data['s_categorie_id'] ) && ($this->request->data['s_categorie_id'] != '')) {
		$souscategs = $s_sous_categories;
		$souscategs = $souscategs->where(['categorie_id' => $this->request->data['s_categorie_id']]);
	}
	
	echo $this->Form->input ( 's_sous_categorie_id', [
			'label' => 'Sous-catégorie',
			'empty' => 'Toutes',
			'style' => 'width: 200px',
			'options' => $souscategs 
	]);
	
	
	// STATUT
	echo $this->Form->input ( 's_status', [
			'label' => 'Statut',
			'empty' => 'Tous',
			$selected,
			'options' => [
					'CREATED' => 'Créé',
					'VALIDATED' => 'Validé',
					'TOBEARCHIVED' => 'À archiver',
					'ARCHIVED' => 'Archivé' 
			],
			'style' => 'width: 200px' 
	]);
	
	// Groupe metier et thematique
	echo $this->Form->input ( 's_groupes_metier_id', [
			'label' => 'Groupe Métier',
			'empty' => 'Tous',
			$selected,
			'options' => $s_groupes_metiers,
			'style' => 'width: 200px' 
	]);
	echo $this->Form->input ( 's_groupes_thematique_id', [
			'label' => 'Groupe Thematique',
			'empty' => 'Tous',
			$selected,
			'options' => $s_groupes_thematiques,
			'style' => 'width: 200px' 
	]);
	
	// Autres champs
	echo $this->Form->input ( 's_numero_commande', [
			'label' => 'N° BC' 
	]);
	echo $this->Form->input ( 's_numero_laboratoire', [
			'label' => 'N° interne (labo)' 
	]);

	//ORGANISME
	$orgas = $s_organismes;
	echo $this->Form->input ( 's_organisme_id', [
			'label' => 'Organisme',
			'empty' => 'Toutes',
			'style' => 'width: 200px',
			'options' => $orgas 
	]);

	echo $this->Form->input ( 's_nom_responsable', [
			'label' => 'Responsable' 
	]);
	echo $this->Form->input ( 's_numero_inventaire_organisme', [
			'label' => 'N° inventaire organisme' 
	]);
	echo $this->Form->input ( 's_numero_inventaire_old', [
			'label' => 'N° inventaire (ancien)' 
	]);
	
	// Date acquisition
	echo "<u>DATE d'achat:</u>";
	echo $this->Form->input ( 's_date_acquisition', [
			'placeholder' => 'Cliquez pour selectionner une date',
			'label' => '- Date exacte',
			'class' => 'datepicker' 
	]);
	echo $this->Form->input ( 's_periode_acquisition1', [
			'placeholder' => 'Cliquez pour selectionner une date',
			'label' => '- Date Début',
			'class' => 'datepicker' 
	]);
	echo $this->Form->input ( 's_periode_acquisition2', [
			'placeholder' => 'Cliquez pour selectionner une date',
			'label' => '- Date Fin',
			'class' => 'datepicker' 
	]);
	
	echo "<u>MONTANT :</u>";
	echo $this->Form->input ( 's_prix_ht', ['label' => '- Montant exact']);
	echo $this->Form->input ( 's_prix_ht_sup', ['label' => '- Montant sup. ou égal à']);
	echo $this->Form->input ( 's_prix_ht_inf', ['label' => '- Montant inf. ou égal à']);
	
	// CHAMP DE RECHERCHE GENERIQUE
	echo $this->Form->input ( 's_all', ['label' => 'TOUS LES CHAMPS' ]);
	
	// -------Bouton recherche Bas---------
	echo $this->Form->submit('Rechercher', ['style' => 'width: 20%']);
	echo '<br/><br/><br/>';
	?>
	</div>
	<!--  RESULT DISPLAY -->
	<h3 id="t_result" style="cursor: pointer;">
		<i
			class=<?php if ($r) echo '"icon-chevron-down"'; echo '"icon-chevron-up"'; ?>
			style="font-size: 14px;" id="i_result"></i> <span
			style="text-decoration: underline;">Résultats <?php if ($r) echo '('.sizeof($_results).')'; ?></span>
	</h3>
	<div id="result" <?php if (!$r) echo 'style="display: none;"'; ?>>
		<?php if (isset($_results) && sizeof($_results) != 0) { ?>
		<table cellpadding="0" cellspacing="0">
			<thead>
				<tr>
					<!--Désignation-->
					<?php echo getSortLinkForColumnTitle('Désignation','designation');?>
					
					<!--Numéro IRAP-->
					<?php echo getSortLinkForColumnTitle('Numéro interne (labo)','numero_laboratoire'); ?>
					
					<!--Catégorie-->
					<?php echo getSortLinkForColumnTitle('Catégorie','Categorie.id');?>
	
					<!--Responsable-->
					<?php echo getSortLinkForColumnTitle('Responsable','nom_responsable'); ?>
					
					<!--Statut-->
					<?php echo getSortLinkForColumnTitle('Statut','status'); ?>
	
					<!--Date-->
					<?php echo getSortLinkForColumnTitle('Date','date_acquisition'); ?>
					
					<th style="width: 20px;"></th>
					<th style="width: 20px;"></th>
					<th style="width: 20px;"></th>
				</tr>
			</thead>
			<tbody>
			<!-- Affichage des lignes de données -->
			<?php
			foreach ( $_results as $material ) :
				echo '<tr>';
				
				echo '<td class="smallText">';
				echo $this->Html->link ( h($material->designation), [
						'action' => 'view',
						$material->id
				], ['title' => 'Détails']);
				echo '</td>';
				echo '<td class="smallText">';
				echo $material->numero_laboratoire;
				echo '</td>';
				echo '<td class="smallText">';
				echo $this->Html->link ( $material->nom, [
						'controller' => 'categories',
						'action' => 'view',
						$material->id
				]);
				echo '</td>';
				echo '<td class="smallText">';
				echo $material->nom_responsable;
				echo '</td>';
				echo '<td class="smallText">';
				echo $material->status;
				echo '</td>';
				echo '<td class="smallText">';
				echo date ( "d-m-Y", strtotime ( $material->date_acquisition ));
				echo '</td>';
				
				/*
				 * ACTION 'edit'
				 */
				echo '<td class="actions" style="padding: 6px 0;">';
				
				echo $this->Html->link('<i class="icon-pencil"></i>',
						['action' => 'edit', $material->id],
						['title' => 'Éditer', 'style' => 'margin: 0 2px', 'escape' => false]
						);
				echo '</td>';
				
				echo '<td class="actions" style="padding: 6px 0;">';
				
				if(h($material->status) == 'CREATED') {
					echo $this->Form->postLink('<i class="icon-ok-sign"></i>',
							['action' => 'statusValidated', $material->id],
							['title' => 'Valider', 'style' => 'margin: 0 2px', 'escape' => false,
									'confirm' => __('Êtes-vous sur de vouloir validé # {0}?', $material->designation)]);
				}
				else if ($material->status == 'VALIDATED' && $material->nom_responsable == $username) {
					echo $this->Form->postLink('<i class="icon-inbox"></i>',
							['action' => 'statusToBeArchived', $material->id],
							['title' => 'Demander la sortie de l\'inventaire', 'style' => 'margin: 0 2px', 'escape' => false,
									'confirm' => __('Êtes-vous sur de vouloir faire une demande d\'archive # {0}?', $material->designation)]);
							 
				}
				else if (h($material->status) == 'VALIDATED'){
					echo $this->Form->postLink('<i class="icon-inbox"></i>',
							['action' => 'statusArchived', $material->id],
							['title' => 'Sortir de l\'inventaire', 'style' => 'margin: 0 2px', 'escape' => false,
									'confirm' => __('Êtes-vous sur de vouloir archivé # {0}?', $material->designation)]);
				}
				echo '</td>';
				
				/*
				 * ACTION 'delete'
				 */
				// Seul un materiel CREATED peut être supprimer
				if ($material->status == 'CREATED') {
					echo '<td class="actions" style="padding: 6px 0;">';
					echo $this->Form->postLink(__('<i class="icon-trash"></i>'), 
							['action' => 'delete', $material->id],
							['title' => 'Supprimer', 'style' => 'margin: 0 2px', 'escape' => false, 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $material->id)]
							); 
					echo '</td>';
				}
				
				echo '<tr>';
			endforeach;
			echo '</tbody>';
			echo '</table>';
			
		} else {
			echo 'Aucun résultats pour cette recherche.';
		}
		?>
	</div>
	
	<?php
	echo $this->Form->end();
	?> 
</div>





<div class="actions">
		<?php echo $this->element('menu') ?>
</div>