<?php if (Session::get("tipo_usuario") != "1"){ show_403();} ?>
<?php import_file(DIR_TEMPLATES."header.php", ["title" => "Usuários", "active_page" => "usuarios"]); ?>
<?php import_file(DIR_MODELS."Model.class.php"); ?>
<?php import_file(DIR_LIBRARIES."functions.php"); ?>

<?php 

	$model = new Model();

 ?>

<div class="row align-items-center mb-3">
	<div class="col-6">
		<h4 class="mb-0">
			<i class="fa-regular fa-users"></i> Usuários
		</h4>
	</div>
	<div class="col-6 text-right">
		<a href="<?php echo show_link("/cadastro-usuario-interno/"); ?>" class="btn btn-primary">
			<i class="fa-regular fa-plus"></i> Adicionar
		</a>
	</div>
</div>

<div class="content-box">
	<div class="text-right mb-3">
		<div class="btn-group">
			<button id="box-filter" type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
				<i class="fa-regular fa-file-export"></i> Exportar 
			</button>
			<div class="dropdown-menu dropdown-menu-right" aria-labelledby="box-filter">
				<a class="dropdown-item" id="exportar-pdf" target="_blank">PDF</a>
				<div class="dropdown-divider"></div>
				<a class="dropdown-item" id="exportar-excel" target="_blank">Excel</a>
			</div>
		</div>
	</div>

	<form action="" method="get" autocomplete="off">
		<div class="form-group">
			<label for="pesquisa">Pesquisa Livre</label>
			<input type="text" name="pesquisa" id="pesquisa" class="form-control" value="<?php echo $_GET["pesquisa"]; ?>">
		</div>

		<div class="form-row">
			<div class="col-md-4">
				<div class="form-group">
					<label for="tipo-usuario">Tipo</label>
					<select name="tipo_usuario" id="tipo-usuario" class="form-control">
						<option value="">Todos</option>
						<?php

							$result = $model->query("
								SELECT * FROM tipo_usuario 
								WHERE 
									status_tipo_usuario = 'S' 
								ORDER BY 
									tipo_usuario ASC
							");

							foreach ($result->fetchAll() as $i):

						?>
							<option value="<?php echo $i->id_tipo_usuario; ?>"><?php echo $i->tipo_usuario; ?></option>
						<?php endforeach; ?>
					</select>
					<script>
						$(function(){
							$("#tipo-usuario").val("<?php echo $_GET["tipo_usuario"]; ?>");
						});
					</script>
				</div>
			</div>

			<div class="col-md-4">
				<div class="form-group">
					<label for="estado">Estado</label>
					<select name="estado" id="estado" class="form-control">
						<option value="">Todos</option>

						<?php 

							$estados = $model->query("SELECT * FROM estado ORDER BY nome_estado ASC");

							foreach ($estados->fetchAll() as $i):

						?>
							<option value="<?php echo $i->id_estado; ?>"><?php echo $i->nome_estado; ?></option>
						<?php endforeach; ?>
					</select>
					<script>
						$(function(){
							$("#estado").val("<?php echo $_GET["estado"]; ?>");
						});
					</script>
				</div>
			</div>

			<div class="col-md-4">
				<div class="form-group">
					<label for="cidade">Cidade</label>
					<select name="cidade" id="cidade" class="form-control">
						<option value="">Todas</option>

						<?php if (!empty($_GET["estado"])): ?>
							<?php 

								$cidades = $model->query("
									SELECT * FROM cidade 
									WHERE
										id_estado = :id
									ORDER BY 
										nome_cidade ASC
								", [
									":id" => intval($_GET["estado"])
								]);

								foreach ($cidades->fetchAll() as $i):

							?>
								<option value="<?php echo $i->id_cidade; ?>" class="option-cidade"><?php echo $i->nome_cidade; ?></option>
							<?php endforeach; ?>
						<?php endif ?>
					</select>
					<script>
						$(function(){
							$("#cidade").val("<?php echo $_GET["cidade"]; ?>");
						});
					</script>
				</div>
			</div>
		</div>

		<button class="btn btn-primary">
			<i class="fa-regular fa-search"></i> Pesquisar
		</button>

		<a href="<?php echo show_link(""); ?>" class="btn btn-secondary">
			<i class="fa-regular fa-eraser"></i> Limpar
		</a>
	</form>

	<hr>

	<div class="table-responsive">
		<table class="table table-sm table-hover table-striped">
			<thead class="thead-inverse">
				<tr>
					<th class="align-middle text-center" style="width: 5%;">ID</th>
					<th class="align-middle text-left" style="width: 20%;">Nome</th>
					<th class="align-middle text-left" style="width: 18%;">Contato</th>
					<th class="align-middle text-left" style="width: 15%;">Documento</th>
					<th class="align-middle text-left" style="width: 12%;">Local</th>
					<th class="align-middle text-center" style="width: 10%;">Tipo</th>
					<th class="align-middle text-center" style="width: 10%;">Situação</th>
					<th class="align-middle text-center" style="width: 10%;">Opções</th>
				</tr>
			</thead>
			<tbody>
				<?php 

					$maximo = 15;

					if (isset($_GET["pag"])) {
						$pagina = filter_input(INPUT_GET, "pag", FILTER_SANITIZE_NUMBER_INT);
					}
					else{
						$pagina = 1;
					}

					$pesquisa = filter_input(INPUT_GET, "pesquisa", FILTER_SANITIZE_STRING);

					$id_tipo_usuario = (int) filter_input(INPUT_GET, "tipo_usuario", FILTER_SANITIZE_NUMBER_INT);
					$id_estado = (int) filter_input(INPUT_GET, "estado", FILTER_SANITIZE_NUMBER_INT);
					$id_cidade = (int) filter_input(INPUT_GET, "cidade", FILTER_SANITIZE_NUMBER_INT);

					$query = "";

					if (!empty($id_tipo_usuario)) {
						$query .= " AND usuario.id_tipo_usuario = ".anti_injection($id_tipo_usuario);
					}

					if (!empty($id_estado)) {
						$query .= " AND usuario.id_estado = ".anti_injection($id_estado);
					}

					if (!empty($id_cidade)) {
						$query .= " AND usuario.id_cidade = ".anti_injection($id_cidade);
					}

					$inicio = (($maximo*$pagina)-$maximo);

					$result = $model->query("
						SELECT * FROM usuario 
						INNER JOIN tipo_usuario ON (usuario.id_tipo_usuario = tipo_usuario.id_tipo_usuario) 
						LEFT JOIN estado ON (usuario.id_estado = estado.id_estado)
						LEFT JOIN cidade ON (usuario.id_cidade = cidade.id_cidade)
						WHERE 
							status_usuario = 'S' AND 
							usuario_ativo = 'S' AND 
							(
								nome_usuario LIKE :pesquisa OR 
								email_usuario LIKE :pesquisa OR 
								cpf_usuario LIKE :pesquisa OR 
								tipo_usuario LIKE :pesquisa
							)  
							{$query}
						ORDER BY 
							id_usuario DESC 
						LIMIT 
							:maximo OFFSET :inicio
					", [
						":pesquisa" => "%".$pesquisa."%", 
						":maximo" => $maximo, 
						":inicio" => $inicio
					]);

					foreach ($result->fetchAll() as $dados):

				?>

					<tr>
						<td class="align-middle text-center"><?php echo $dados->id_usuario; ?></td>
						<td class="align-middle text-left"><?php echo $dados->nome_usuario; ?></td>
						<td class="align-middle text-left">
							<?php 

								echo "
									{$dados->email_usuario}<br>
									{$dados->telefone_usuario}
								";

							?>
						</td>
						<td class="align-middle text-left"><?php echo $dados->cpf_usuario; ?></td>
						<td class="align-middle text-left">
							<?php echo "{$dados->nome_cidade}, {$dados->nome_estado}"; ?>
						</td>
						<td class="align-middle text-center"><?php echo $dados->tipo_usuario; ?></td>
						<td class="align-middle text-center">
							<?php

								if ($dados->tipo_usuario == "Cliente" or $dados->tipo_usuario == "Administrador") {
									if (qualificado($dados->id_usuario)) {
										echo "<span class='badge badge-success'>Qualificado</span>";
									}
									else{
										echo "<span class='badge badge-danger'>Não Qualificado</span>";
									}
								}
								else{
									echo "<span class='badge badge-secondary'>Sem Situação</span>";
								}

							?>
						</td>
						<?php if ($dados->id_tipo_usuario == "2"): ?>
							<td class="align-middle text-center">
								<div class="d-inline-flex">
									<?php if (Session::get("id_usuario") != $dados->id_usuario): ?>
										<div class="mx-auto">
											<form action="<?php echo show_link("/logar-usuario/"); ?>" method="post">
												<input type="hidden" name="id_usuario" value="<?php echo encrypt_encode($dados->id_usuario); ?>">
												<button type="submit" class="btn btn-info btn-square" data-toggle="tooltip" data-placement="bottom" title="Logar">
													<i class="fa-regular fa-sign-in-alt"></i>
												</button>
											</form>
										</div>

										<div class="mx-2">
											<form action="<?php echo show_link("/edita-usuario/"); ?>" method="post">
												<input type="hidden" name="id_usuario" value="<?php echo encrypt_encode($dados->id_usuario); ?>">
												<button type="submit" class="btn btn-warning btn-square" data-toggle="tooltip" data-placement="bottom" title="Editar">
													<i class="fa-regular fa-pencil-alt"></i>
												</button>
											</form>
										</div>
									<?php else: ?>
										<div class="mx-auto">
											<button type="button" class="btn btn-info btn-square" disabled>
												<i class="fa-regular fa-sign-in-alt"></i>
											</button>
										</div>

										<div class="mx-2">
											<button type="button" class="btn btn-warning btn-square" disabled>
												<i class="fa-regular fa-pencil-alt"></i>
											</button>
										</div>
									<?php endif; ?>

									<div class="mx-auto">
										<button type="button" class="btn btn-danger btn-square" disabled>
											<i class="fa-regular fa-trash-alt"></i>
										</button>
									</div>
								</div>
							</td>
						<?php else: ?>
							<td class="align-middle text-center">
								<div class="d-inline-flex">
									<?php if (Session::get("id_usuario") != $dados->id_usuario): ?>
										<div class="mx-auto">
											<form action="<?php echo show_link("/logar-usuario/"); ?>" method="post">
												<input type="hidden" name="id_usuario" value="<?php echo encrypt_encode($dados->id_usuario); ?>">
												<button type="submit" class="btn btn-info btn-square" data-toggle="tooltip" data-placement="bottom" title="Logar">
													<i class="fa-regular fa-sign-in-alt"></i>
												</button>
											</form>
										</div>

										<div class="mx-2">
											<form action="<?php echo show_link("/edita-usuario/"); ?>" method="post">
												<input type="hidden" name="id_usuario" value="<?php echo encrypt_encode($dados->id_usuario); ?>">
												<button type="submit" class="btn btn-warning btn-square" data-toggle="tooltip" data-placement="bottom" title="Editar">
													<i class="fa-regular fa-pencil-alt"></i>
												</button>
											</form>
										</div>
									<?php else: ?>
										<div class="mx-auto">
											<button type="button" class="btn btn-info btn-square" disabled>
												<i class="fa-regular fa-sign-in-alt"></i>
											</button>
										</div>

										<div class="mx-2">
											<button type="button" class="btn btn-warning btn-square" disabled>
												<i class="fa-regular fa-pencil-alt"></i>
											</button>
										</div>
									<?php endif; ?>

									<div class="mx-auto">
										<?php if (Session::get("id_usuario") != $dados->id_usuario): ?>
											<button type="button" class="btn btn-danger btn-square btn-excluir" data-value="<?php echo encrypt_encode($dados->id_usuario); ?>" data-toggle="tooltip" data-placement="bottom" title="Excluir">
												<i class="fa-regular fa-trash-alt"></i>
											</button>
										<?php else: ?>
											<button type="button" class="btn btn-danger btn-square" disabled>
												<i class="fa-regular fa-trash-alt"></i>
											</button>
										<?php endif; ?>
									</div>
								</div>
							</td>
						<?php endif; ?>
					</tr>
				<?php endforeach; ?>
			</tbody>
		</table>

		<?php 

			$result = $model->query("
				SELECT * FROM usuario 
				INNER JOIN tipo_usuario ON (usuario.id_tipo_usuario = tipo_usuario.id_tipo_usuario) 
				LEFT JOIN estado ON (usuario.id_estado = estado.id_estado)
				LEFT JOIN cidade ON (usuario.id_cidade = cidade.id_cidade)
				WHERE 
					status_usuario = 'S' AND 
					usuario_ativo = 'S' AND 
					(
						nome_usuario LIKE :pesquisa OR 
						email_usuario LIKE :pesquisa OR 
						cpf_usuario LIKE :pesquisa OR 
						tipo_usuario LIKE :pesquisa
					) 
					{$query}
				ORDER BY 
					id_usuario DESC
			", [
				":pesquisa" => "%".$pesquisa."%"
			]);

			$sql_exportar = urlencode(encrypt_encode($model->lastQuery()));

			$total_usuarios  = $result->rowCount();

		?>

	</div>

	<p class="mb-2 text-center">Total de Usuários encontrados: <?php echo $total_usuarios; ?></p>

	<ul class="pagination justify-content-center" style="margin-bottom: -15px;">
		<?php

			$total = $result->rowCount();

			$total_paginas = ceil($total/$maximo);
						   
			if ($pagina <= $total_paginas and $pagina > 1) {
 				echo '<li class="page-item"><a href="?'.(!empty($pesquisa) ? "pesquisa=".$pesquisa."&" : "").(!empty($filtro) ? "filtro=".$filtro."&" : "").'pag='.($pagina-1).'" class="page-link"><span aria-hidden="true">&laquo;</span></a> </li>';
			}

			echo ' <li class="page-item active"><p class="page-link">'.$pagina.'</p></li> ';

			if ($pagina < $total_paginas) {	
				echo '<li class="page-item"><a href="?'.(!empty($pesquisa) ? "pesquisa=".$pesquisa."&" : "").(!empty($filtro) ? "filtro=".$filtro."&" : "").'pag='.($pagina+1).'" class="page-link"><span aria-hidden="true">&raquo;</span></a></li> ';
			}
			
		?>
	</ul>
</div>

<!-- Modal Excluir Usuário -->
<div class="modal fade" id="modal-excluir-usuario" tabindex="-1" role="dialog" aria-hidden="true">
	<div class="modal-dialog" role="document">
		<div class="modal-content">
			<div class="modal-header">
				<h5 class="modal-title"><i class="fa-regular fa-exclamation-triangle"></i> Aviso</h5>
			</div>
			<div class="modal-body">
				<p id="modal-text">Tem certeza que deseja <strong class="text-danger">EXCLUIR</strong> esse Usuário?</p>
			</div>
			<div class="modal-footer">
				<form action="<?php echo show_link("/excluir-usuario/"); ?>" method="post">
					<input type="hidden" name="id_usuario" id="input-usuario-id" class="d-none" required>
					<button type="submit" class="btn btn-white"><i class="fa-regular fa-check"></i> Sim</button>
					<button type="button" class="btn btn-white" data-dismiss="modal"><i class="fa-regular fa-times"></i> Não</button>
				</form>
			</div>
		</div>
	</div>
</div>

<script>
	$(".btn-excluir").click(function(){
		var id = $(this).attr("data-value");

		$("#input-usuario-id").val(id);
		$("#modal-excluir-usuario").modal("show");
	});

	$(function(){
		$("#exportar-excel").attr("href", "<?php echo show_link("/exportar-usuario-excel/?busca=".$sql_exportar); ?>");
		$("#exportar-pdf").attr("href", "<?php echo show_link("/exportar-usuario-pdf/?busca=".$sql_exportar); ?>");
	});

	$("#estado").change(function(){
		var id = $(this).val();

		$(".option-cidade").remove();

		if ($(this).val() != "") {
			$.ajax({
				type: "POST",
				data: {id_estado: id},
				url: "<?php echo show_link("/obter-cidades/"); ?>",
				async: true
			}).then(function(response){
				var result = $.parseJSON(response);

				if (result.status == true) {
					var html = "";

					$.each(result.dados, function(i, data){
						html += '<option value="'+data.id_cidade+'" class="option-cidade">'+data.nome_cidade+'</option>';
						console.log(data);
					});

					$("#cidade").append(html);
				}
			}, function(error){
				console.log("Erro: "+error);
			});
		}
	});
</script>

<?php import_file(DIR_TEMPLATES."footer.php"); ?>