<div class="index col-lg-5 col-md-7 col-sm-9">
	<h2>
		<i class="icon-search"></i> Recherche de matériel
	</h2>
<?php

/* (EP) Variables exportées par MaterielsController pour cette vue (à compléter)

$s_numero_laboratoire => mais n'est plus utilisé car on préfère la recherche plein texte
...

*/

use Cake\I18n\Date;
use Cake\I18n\Time;


$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',
        'search'
    ], [
        'title' => 'Editer le résultat de la recherche',
        'style' => 'margin-right: 15px',
        'escape' => false
    ]);
    echo '</div>';
}
?>
	
	<h3 id="t_filter" class='toggle' 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' => ''
    ];

// FORMULAIRE DE RECHERCHE
echo $this->Form->create();

// -------Bouton recherche Haut---------
//echo $this->Form->submit('Rechercher', [  'style' => 'width: 20%' ]);

// CHAMP DE RECHERCHE GENERIQUE
echo $this->Form->control('s_all', [
'label' => 'TOUS LES CHAMPS'
]);

echo "<br/>OU BIEN, seulement quelques champs spécifiques :<br/><br/>";

// Designation
echo $this->Form->control('s_designation', [
    'label' => 'Désignation'
]);

// Matériel administratif et/ou technique
$typeOptions = [];
echo $this->Form->control('s_matostype', [
    'label' => 'Type',
    'empty' => 'Tous',
    'options' => [
        'A' => 'Administratif',
        'T' => 'Technique',
        'AT' => 'Administratif et Technique',
        'AO' => 'Administratif seulement',
        'TO' => 'Technique seulement'
    ],
    
]);

// DOMAINE
echo $this->Form->control('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 ($this->request->getData('s_sur_categorie_id') !== null && $this->request->getData('s_sur_categorie_id') != '') {
    $categs = $categs->where([
        'sur_categorie_id =' => $this->request->getData('s_sur_categorie_id')
    ]);
}

echo $this->Form->control('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 ($this->request->getData('s_categorie_id') !== null && ($this->request->getData('s_categorie_id') != '')) {
    $souscategs = $s_sous_categories;
    $souscategs = $souscategs->where([
        'categorie_id' => $this->request->getData('s_categorie_id')
    ]);
}

echo $this->Form->control('s_sous_categorie_id', [
    'label' => 'Sous-catégorie',
    'empty' => 'Toutes',
    'style' => 'width: 200px',
    'options' => $souscategs
]);

$options = [
    'CREATED' => 'Créé',
    'VALIDATED' => 'Validé',
    'TOBEARCHIVED' => 'À archiver'
];
if (in_array($role, [
    'Administration',
    'Administration Plus',
    'Super Administrateur'
])) {
    $options['ARCHIVED'] = 'Archivé';
}
// STATUT
echo $this->Form->control('s_status', [
    'label' => 'Statut',
    'empty' => 'Tous',
    $selected,
    'options' => $options,
    'style' => 'width: 200px'
]);

// Groupe metier et thematique
echo $this->Form->control('s_groupes_metier_id', [
    'label' => $configuration->nom_groupe_metier,
    'empty' => 'Tous',
    $selected,
    'options' => $s_groupes_metiers,
    'style' => 'width: 200px'
]);
echo $this->Form->control('s_groupes_thematique_id', [
    'label' => $configuration->nom_groupe_thematique,
    'empty' => 'Tous',
    $selected,
    'options' => $s_groupes_thematiques,
    'style' => 'width: 200px'
]);

// Autres champs
echo $this->Form->control('s_numero_commande', [
    'label' => 'N° BC'
]);

echo $this->Form->control('s_numero_laboratoire', [
    'label' => 'N° interne (labo)',
    'empty' => 'Tous',
    'style' => 'width: 200px',
    //'options' => $s_numero_laboratoire
]);

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

echo $this->Form->control('s_fournisseur_id', [
    'label' => 'Fournisseur',
    'empty' => 'Tous',
    'style' => 'width: 200px',
    'options' => $s_fournisseurs

]);

$salle = $s_salles;
echo $this->Form->control('s_salle', [
    'label' => 'Détail lieu de stockage',
    'empty' => 'Toutes',
    'style' => 'width: 200px',
    'options' => $salle

]);

echo $this->Form->control('s_nom_responsable', [
    'label' => 'Nom du propriétaire',
    'empty' => 'Toutes',
    'options' => $s_nomresp
]);
echo $this->Form->control('s_numero_inventaire_organisme', [
    'label' => 'N° inventaire organisme'
]);

echo $this->Form->control('s_numero_inventaire_old', [
    'label' => 'N° inventaire (ancien)'
]);

if (in_array($role, [
    'Responsable',
    'Administration',
    'Administration Plus',
    'Super Administrateur'
])) {
    // Date acquisition
    echo "<u>DATE d'achat:</u>";
    echo $this->Form->control('s_date_acquisition', [
        'placeholder' => 'Cliquez pour selectionner une date',
        'label' => '- Date exacte',
        'class' => 'datepicker'
    ]);
    echo $this->Form->control('s_periode_acquisition1', [
        'placeholder' => 'Cliquez pour selectionner une date',
        'label' => '- Date Début',
        'class' => 'datepicker'
    ]);
    echo $this->Form->control('s_periode_acquisition2', [
        'placeholder' => 'Cliquez pour selectionner une date',
        'label' => '- Date Fin',
        'class' => 'datepicker'
    ]);
    
    echo "<u>MONTANT :</u>";
    echo $this->Form->control('s_prix_ht', [
        'label' => '- Montant exact'
    ]);
    echo $this->Form->control('s_prix_ht_sup', [
        'label' => '- Montant sup. ou égal à'
    ]);
    echo $this->Form->control('s_prix_ht_inf', [
        'label' => '- Montant inf. ou égal à'
    ]);
}
/*
// CHAMP DE RECHERCHE GENERIQUE
echo $this->Form->control('s_all', [
'label' => 'TOUS LES CHAMPS'
]);
*/

// -------Bouton recherche Bas---------
//echo $this->Form->submit('Rechercher', [ 'style' => 'width: 20%']);
echo $this->Form->button('Rechercher', ['class'=>'btn btn-outline-success', 'type'=>'submit', 'style' => 'margin: 0px;']);


echo '<br/><br/><br/>';
?>
	</div>
	<!--  RESULT DISPLAY -->
	<h3 id="t_result" class='toggle' 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) {
    
    $this->request->getSession()->write("resultTri", $_results);
    
    ?>
		<table style="border-collapse: separate; border-spacing: 0;">
			<thead>
				<tr>
					<th class="actions"><?= __('') ?></th>
					<th><?= $this->Paginator->sort('designation','Désignation') ?></th>
					<th><?= $this->Paginator->sort('numero_laboratoire', 'N° interne (labo)') ?></th>
					<th><?= $this->Paginator->sort('hors_service', 'HS') ?></th>
					<th><?= $this->Paginator->sort('categorie_id', 'Catégorie') ?></th>
					<th><?= $this->Paginator->sort('nom_responsable', $configuration->nom_responsable) ?></th>
					<th><?= $this->Paginator->sort('status', 'Statut') ?></th>
					<th><?= $this->Paginator->sort('date_acquisition', 'Date') ?></th>
					<th><?= $this->Paginator->sort('prix_ht', 'Prix (HT)') ?></th>
					<th><?= $this->Paginator->sort('fournisseur', 'Fournisseur') ?></th>
					<th><?= $this->Paginator->sort('lieu_detail', 'Salle') ?></th>
				</tr>
			</thead>
			<tbody>
				<!-- Affichage des lignes de données -->
			<?php
    
    // Pour changer la couleur de la date de garantie si elle est passée - Ajout par Thibault Ajas le 02/05/2017
    $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
    
    foreach ($_results as $materiel) :
        
        if ($materiel->date_fin_garantie !== NULL) {
            $timeFin = new time($materiel->date_fin_garantie);
            $dateFin = new date("$timeFin->year-$timeFin->month-$timeFin->day");
            $dateFin = $dateFin->format('Ymd');
        }
        if (isset($materiel->date_fin_garantie))
            $styleLien = ($today >= $dateFin) ? 'style="color: #FF0000"' : '';
        else
            $styleLien = '';
        ?>
				<tr>
					<td class="actions" style="padding: 6px 0; text-align: left;">
				
				<?php
        /*
         * ACTION 'edit'
         */
        if (in_array($materiel->status, [
            'CREATED',
            'VALIDATED'
        ])) {
            if (($role == 'Utilisateur' && (in_array($username, [
                $materiel->nom_createur,
                $materiel->nom_responsable
            ]))) || (in_array($role, [
                'Administration',
                'Administration Plus',
                'Super Administrateur'
            ])) || ($role == 'Responsable' && ((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)))) {
                echo $this->Html->link('<i class="icon-pencil"></i>', [
                    'action' => 'edit',
                    $materiel->id
                ], [
                    'title' => 'Éditer',
                    'style' => 'margin: 0 2px',
                    'escape' => false
                ]);
            }
        } else {
            if (in_array($role, [
                'Administration Plus',
                'Super Administrateur'
            ])) {
                
                echo $this->Html->link('<i class="icon-pencil"></i>', [
                    'action' => 'edit',
                    $materiel->id
                ], [
                    'title' => 'Éditer',
                    'style' => 'margin: 0 2px',
                    'escape' => false
                ]);
            }
        }
        
        if (in_array($role, [
            'Administration',
            'Administration Plus',
            'Super Administrateur'
        ]) || ($role == 'Responsable' && ((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)))) {
            if (h($materiel->status) == 'CREATED') {
                echo $this->Html->link('<i class="icon-ok-sign"></i>', [
                    'action' => 'statusValidated',
                    $materiel->id
                ], [
                    'title' => 'Valider',
                    'style' => 'margin: 0 2px',
                    'escape' => false,
                    'confirm' => 'Êtes-vous sur de vouloir valider ' . $materiel->designation . ' ?'
                ]);
            } else if (h($materiel->status) == 'VALIDATED') {
                echo $this->Html->link('<i class="icon-inbox"></i>', [
                    'action' => 'statusTobearchived',
                    $materiel->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 ' . $materiel->designation . ' ?'
                ]);
            } else if (h($materiel->status) == 'TOBEARCHIVED' && $role != 'Responsable' && $role != 'Super Administrateur') {
                echo $this->Html->link('<i class="icon-inbox"></i>', [
                    'action' => 'statusArchived',
                    $materiel->id
                ], [
                    'title' => 'Sortir de l\'inventaire',
                    'style' => 'margin: 0 2px',
                    'escape' => false,
                    'confirm' => 'Êtes-vous sur de vouloir archivé ' . $materiel->designation . ' ?'
                ]);
            }
        }
        /*
         * ACTION 'delete'
         */
        // Seul un materiel CREATED peut être supprimer
        if ($materiel->status == 'CREATED') {
            if (($role != 'Utilisateur' && $role != 'Responsable') || in_array($username, [
                $materiel->nom_createur,
                $materiel->nom_responsable
            ]) || ($role == 'Responsable' && ((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)))) {
                echo $this->Html->link(__('<i class="icon-trash"></i>'), [
                    'action' => 'delete',
                    $materiel->id
                ], [
                    'title' => 'Supprimer',
                    'style' => 'margin: 0 2px',
                    'escape' => false,
                    'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $materiel->designation)
                ]);
            }
        }
        /*
         * echo '</td>';
         *
         * echo '<td class="smallText">';
         * echo $this->Html->link ( h($materiel->designation), [
         * 'action' => 'view',
         * $materiel->id
         * ], ['title' => 'Détails']);
         * echo '</td>';
         * echo '<td class="smallText">';
         * echo $materiel->numero_laboratoire;
         * echo '</td>';
         *
         * echo '<td class="smallText">';
         * echo ($materiel->hors_service) ? 'HS' : '';
         * echo'</td>';
         *
         * $cat = $categories->find()->where(['id =' => $materiel->categorie_id])->first();
         * echo '<td class="smallText">';
         * echo $this->Html->link ( $cat['nom'], [
         * 'controller' => 'categories',
         * 'action' => 'view',
         * $cat['id']
         * ]);
         * echo '</td>';
         * echo '<td class="smallText">';
         * echo $materiel->nom_responsable;
         * echo '</td>';
         * echo '<td class="smallText">';
         * echo $materiel->status;
         * echo '</td>';
         * echo '<td class="smallText">';
         * echo $materiel->date_acquisition;
         * echo '</td>';
         * echo '<td class="smallText">';
         * echo $materiel->fournisseur;
         * echo '</td>';
         * echo '<td class="smallText">';
         * echo $materiel->lieu_detail;
         * echo '</td>';
         */
        
        // Le code au-dessous est presque le même code mais en plus joli et plus compact
        //debug($materiel);
        ?>
        
				
                </td>
					<td class="smallText"><?= $materiel->has('designation') ? $this->Html->link($materiel->designation, ['controller' => 'Materiels', 'action' => 'view', $materiel->id]) : '' ?></td>
					<td class="smallText"><?= h($materiel->numero_laboratoire) ?></td>
					<td class="smallText" style="color: red"><strong><?= ($materiel->hors_service) ? 'HS' : '' ?></strong></td>
					<td class="smallText"><?= $materiel->has('category') ? h($materiel->category->nom) : '' ?></td>
					<?php //echo '<td class="smallText">'. ($materiel->has('organisme') ? h($materiel->organisme->nom) : '') .'</td>' ?>
					<?php //echo '<td class="smallText">'. ($materiel->has('numero_inventaire_organisme') ? h($materiel->organisme->nom) : '') .'</td>' ?>
					<td class="smallText"><?= h($materiel->nom_responsable) ?></td>
					<?php 
					echo '<td class="smallText">'. ($materiel->has('status') ? h($materiel->status) : '') .'</td>'; 
					echo '<td class="smallText">'. ($materiel->has('date_acquisition') ? h($materiel->date_acquisition) : '') .'</td>';
					echo '<td class="smallText">'. ($materiel->has('prix_ht') ? number_format(h($materiel->prix_ht),2,'.',',').'€' : '') .'</td>';
					//echo '<td class="smallText">'. ($materiel->has('prix_ht') ? sprintf("%09.2f", h($materiel->prix_ht)).'€' : '') .'</td>';
					
					//echo '<td class="smallText">'. ($materiel->has('prix_ht') ? money_format('%.2n', h($materiel->prix_ht)) : '') .'</td>';
					//echo '<td class="smallText">'. ($materiel->has('prix_ht') ? money_format('%= (#6.2n', h($materiel->prix_ht)).'€' : '') .'</td>';
					?>
					<td class="smallText"><?= $materiel->has('fournisseur') ? h($materiel->fournisseur->nom) : ''?></td>
					<td class="smallText"><?= $materiel->has('lieu_detail') ? h($materiel->lieu_detail) : ''?></td>
				
				
				<tr>
			<?php endforeach; ?>
			
			
			</tbody>
		</table>

		<?php
} else {
    echo 'Aucun résultats pour cette recherche.';
}
?>
	</div>
	
	
	<?php
echo $this->Form->end();
?> 
</div>




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

<?php

/**
 * GESTION DES EVENEMENTS SUR LES DOMAINES/CATEGORIES/SOUS-CATEGORIES (avec javascript Jquery)
 *
 * Phase initialisation (1ère ouverture de la page) :
 * - domaine ==> value = TOUS
 * - categ ==> value = TOUTES
 * - scateg ==> value = Aucune
 *
 * Event domaine change :
 * - si select <> "Tous" ==> categ value = from domaine (select="Toutes")
 * - si select = "Tous" ==> categ value = TOUTES (select="Toutes")
 * - dans tous les cas, vider scateg (select="Toutes")
 *
 * Event categ change :
 * - si select <> "Toutes" ==> domaine select = from categ, et scateg values = from categ (select="Toutes")
 * - si select = "Toutes" ==> vider scateg (select="Toutes")
 *
 * Event scateg change : RIEN A FAIRE
 */
?>
<script type="text/javascript">
/** 
 * Event DOMAINE change
 * 
 * Sur sélection d'un DOMAINE ==> update CATEGORIES + empty SOUS-CATEGORIES
 * 
 * Dans le détail :
 * - si select <> "Tous" ==> categ value = from domaine (select="Toutes")
 * - si select = "Tous" ==> categ value = TOUTES (select="Toutes")
 * - dans les 2 cas, vider scateg (select="Toutes")
 * 
 */
$(document).ready(function () {
	$("#s-sur-categorie-id").bind("change", function (event) {
			var domaineId=$("#s-sur-categorie-id :selected").val();
			if (domaineId=="") 
				updateSelectOptionsFromAnother("#s-categorie-id", "#s-sur-categorie-id", "Categories/getAll", "Toutes");
			else 
				updateSelectOptionsFromAnother("#s-categorie-id", "#s-sur-categorie-id", "Categories/getBySurCategorie", "Toutes");
			emptySelectOptions("#s-sous-categorie-id","Toutes");
			return false;
	});
});

/**
 * Event CATEGORIE change
 * - si select <> "Toutes" ==> domaine select = from categ, et scateg values = from categ (select="Toutes")
 * - si select = "Toutes" ==> empty scateg (select="Toutes")
 */
$(document).ready(function () {
	$("#s-categorie-id").bind("change", function (event) {
		var categId=$("#s-categorie-id :selected").val();
		var categLabel=$("#s-categorie-id :selected").text();
		if (categId=="") emptySelectOptions("#s-sous-categorie-id","Toutes");
		else {
			// 1) update sous-categories from selected categorie
			updateSelectOptionsFromAnother("#s-sous-categorie-id", "#s-categorie-id", "SousCategories/getByCategorie", "Toutes");
			// 2) select new domaine = the selected categorie one
			updateSelectOptionsFromAnother("#s-sur-categorie-id", "#s-categorie-id", "SurCategories/getFromCategorie", "");
		}
		return false;
	});
});
</script>