<?php if (Session::get("tipo_usuario") != "1" and Session::get("tipo_usuario") != "2" or Session::get("usuario_ativo") != "S"){ show_403();} ?>
<?php import_file(DIR_TEMPLATES."header.php", ["title" => "Compras Onlines", "active_page" => "compras"]); ?>
<?php import_file(DIR_MODELS."Model.class.php"); ?>

<h4 class="mb-3">
	<i class="fa-regular fa-shopping-basket"></i> Compras Onlines
</h4>

<div class="content-box">
	<div class="form-row mb-3">
		<div class="col-xl-8 col-lg-8 col-md-6 col-sm-12"></div>
		<div class="col-xl-4 col-lg-4 col-md-6 col-sm-12">
			<form action="" method="get">
				<div class="input-group">
					<input type="text" name="pesquisa" class="form-control" autocomplete="off" value="<?php echo filter_input(INPUT_GET, "pesquisa", FILTER_SANITIZE_STRING); ?>">
					<div class="input-group-append">
						<button class="btn btn-primary">
							<i class="fa-regular fa-search"></i>
						</button>
					</div>
				</div>
			</form>
		</div>
	</div>

	<div class="table-responsive">
		<table class="table table-sm table-hover table-striped">
			<thead class="thead-inverse">
				<tr>
					<?php if (Session::get("tipo_usuario") == "1"): ?>
						<th class="align-middle text-left" style="width: 35%;">Usuário</th>
					<?php endif; ?>
					<th class="align-middle text-left">Produto</th>
					<th class="align-middle text-center">Valor</th>
					<th class="align-middle text-center">Desconto</th>
					<th class="align-middle text-center">Valor Pago</th>
					<th class="align-middle text-center">Cashback</th>
					<th class="align-middle text-center">Forma de Pagamento</th>
					<th class="align-middle text-center">Data da Compra</th>
					<th class="align-middle text-center">Situação</th>
					<?php if (Session::get("tipo_usuario") == "1" or Session::get("tipo_usuario") == "2"): ?>
						<th class="align-middle text-center">Opção</th>
					<?php endif; ?>
				</tr>
			</thead>
			<tbody>
				<?php 

					$model = new Model();

					$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);

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

					if (Session::get("tipo_usuario") == "2") {
						$busca = $model->query("
							SELECT 
								compra.id_produto, 
								nome_produto, 
								valor_produto, 
								valor_compra, 
								porcentagem_empresa_compra, 
								porcentagem_desc_cliente, 
								porcentagem_cashback, 
								datahora_compra, 
								forma_pagamento, 
								id_compra, 
								codigo_transacao, 
								link_pagamento, 
								status_compra 
							FROM compra 
							INNER JOIN produto ON (compra.id_produto = produto.id_produto) 
							INNER JOIN usuario ON (compra.id_usuario = usuario.id_usuario) 
							WHERE 
								compra.id_usuario = :id AND 
								(
									compra.id_produto LIKE :pesquisa OR 
									nome_produto LIKE :pesquisa OR 
									valor_produto LIKE :pesquisa OR 
									porcentagem_empresa_compra LIKE :pesquisa OR 
									datahora_compra LIKE :pesquisa OR 
									porcentagem_desc_cliente LIKE :pesquisa OR 
									porcentagem_cashback LIKE :pesquisa OR 
									valor_compra LIKE :pesquisa OR 
									forma_pagamento LIKE :pesquisa
								) 
							ORDER BY id_compra DESC 
							LIMIT :maximo OFFSET :inicio
						", [
							":id" => Session::get("id_usuario"), 
							":pesquisa" => "%".$pesquisa."%", 
							":maximo" => $maximo, 
							":inicio" => $inicio
						]);
					}
					else{
						$busca = $model->query("
							SELECT 
								compra.id_produto, 
								nome_produto, 
								valor_produto, 
								valor_compra, 
								porcentagem_empresa_compra, 
								porcentagem_desc_cliente, 
								porcentagem_cashback,
								datahora_compra, 
								forma_pagamento, 
								nome_usuario, 
								cpf_usuario, 
								email_usuario, 
								telefone_usuario, 
								id_compra, 
								codigo_transacao, 
								link_pagamento, 
								status_compra 
							FROM compra 
							INNER JOIN produto ON (compra.id_produto = produto.id_produto) 
							INNER JOIN usuario ON (compra.id_usuario = usuario.id_usuario) 
							WHERE 
								(
									compra.id_produto LIKE :pesquisa OR 
									nome_produto LIKE :pesquisa OR 
									valor_produto LIKE :pesquisa OR 
									porcentagem_empresa_compra LIKE :pesquisa OR 
									datahora_compra LIKE :pesquisa OR 
									nome_usuario LIKE :pesquisa OR 
									cpf_usuario LIKE :pesquisa OR 
									telefone_usuario LIKE :pesquisa OR 
									email_usuario LIKE :pesquisa OR 
									porcentagem_desc_cliente LIKE :pesquisa OR 
									porcentagem_cashback LIKE :pesquisa OR 
									valor_compra LIKE :pesquisa OR 
									forma_pagamento LIKE :pesquisa OR 
									email_usuario LIKE :pesquisa
								) 
							ORDER BY id_compra DESC 
							LIMIT :maximo OFFSET :inicio
						", [
							":pesquisa" => "%".$pesquisa."%", 
							":maximo" => $maximo, 
							":inicio" => $inicio
						]);
					}

					$n = ($pagina*$maximo)-$maximo + 1;

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

				?>

					<tr>
						<?php if (Session::get("tipo_usuario") == "1"): ?>
							<td class="align-middle text-left">
								<?php 

									echo "
										{$dados->nome_usuario}<br>
										<small>{$dados->cpf_usuario}</small><br>
										<small>{$dados->email_usuario} | {$dados->telefone_usuario}</small>
									"; 

								?>
							</td>
						<?php endif; ?>
						<td class="align-middle"><?php echo $dados->nome_produto; ?></td>
						<td class="align-middle text-center"><?php echo money_mask_BR($dados->valor_produto); ?></td>
						<td class="align-middle text-center"><?php echo floatval($dados->porcentagem_desc_cliente)."%"; ?></td>
						<td class="align-middle text-center"><?php echo money_mask_BR($dados->valor_compra); ?></td>
						<td class="align-middle text-center">
							<?php 

								echo money_mask_BR(($dados->valor_produto - ($dados->valor_produto * pct($dados->porcentagem_empresa_compra))) * pct($dados->porcentagem_cashback)); 
								
							?>
						</td>
						<td class="align-middle text-center"><?php echo $dados->forma_pagamento; ?></td>
						<td class="align-middle text-center"><?php echo convert_date($dados->datahora_compra); ?></td>
						<td class="align-middle text-center">
							<?php if ($dados->status_compra == "S"): ?>
								<span class="badge badge-success">
									Confirmado
								</span>
							<?php elseif ($dados->status_compra == "N"): ?>
								<span class="badge badge-danger">
									Cancelado
								</span>
							<?php elseif ($dados->status_compra == "E"): ?>
								<span class="badge badge-secondary">
									Aguardando Avaliação
								</span>
							<?php endif; ?>
						</td>
						<?php if (Session::get("tipo_usuario") == "1"): ?>
							<?php if ($dados->status_compra == "S"): ?>
								<td class="align-middle text-center">
									<button class="btn btn-info btn-square btn-ver-mais" data-value="<?php echo encrypt_encode($dados->id_compra); ?>" data-toggle="tooltip" data-placement="bottom" title="Ver Detalhes">
										<i class="fa-regular fa-search-plus"></i>
									</button>
								</td>
							<?php else: ?>
								<td class="align-middle text-center">
									<button class="btn btn-info btn-square" disabled>
										<i class="fa-regular fa-search-plus"></i>
									</button>
								</td>
							<?php endif; ?>
						<?php endif; ?>
						<?php if (Session::get("tipo_usuario") == "2"): ?>
							<?php if ($dados->status_compra == "E" and $dados->forma_pagamento == "PagSeguro"): ?>
								<td class="align-middle text-center">
									<a href="<?php echo $dados->link_pagamento; ?>" class="btn btn-info btn-square" target="_blank" data-toggle="tooltip" data-placement="bottom" title="Link de Pagamento">
										<i class="fa-regular fa-link"></i>
									</a>
								</td>
							<?php else: ?>
								<td class="align-middle text-center">
									<button class="btn btn-info btn-square" disabled>
										<i class="fa-regular fa-link"></i>
									</button>
								</td>
							<?php endif; ?>
						<?php endif; ?>
					</tr>	
				<?php endforeach; ?>
			</tbody>
		</table>
	</div>

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

			if (Session::get("tipo_usuario") == "2") {
				$busca = $model->query("
					SELECT 
						compra.id_produto, 
						nome_produto, 
						valor_produto, 
						valor_compra, 
						porcentagem_empresa_compra, 
						porcentagem_desc_cliente, 
						datahora_compra, 
						forma_pagamento, 
						id_compra, 
						codigo_transacao, 
						link_pagamento, 
						status_compra 
					FROM compra 
					INNER JOIN produto ON (compra.id_produto = produto.id_produto) 
					INNER JOIN usuario ON (compra.id_usuario = usuario.id_usuario) 
					WHERE 
						compra.id_usuario = :id AND 
						(
							compra.id_produto LIKE :pesquisa OR 
							nome_produto LIKE :pesquisa OR 
							valor_produto LIKE :pesquisa OR 
							porcentagem_empresa_compra LIKE :pesquisa OR 
							datahora_compra LIKE :pesquisa OR 
							porcentagem_desc_cliente LIKE :pesquisa OR 
							valor_compra LIKE :pesquisa OR 
							forma_pagamento LIKE :pesquisa
						) 
					ORDER BY id_compra DESC
				", [
					":id" => Session::get("id_usuario"), 
					":pesquisa" => "%".$pesquisa."%"
				]);
			}
			else{
				$busca = $model->query("
					SELECT 
						compra.id_produto, 
						nome_produto, 
						valor_produto, 
						valor_compra, 
						porcentagem_empresa_compra, 
						porcentagem_desc_cliente, 
						datahora_compra, 
						forma_pagamento, 
						nome_usuario, 
						email_usuario, 
						telefone_usuario, 
						id_compra, 
						codigo_transacao, 
						link_pagamento, 
						status_compra 
					FROM compra 
					INNER JOIN produto ON (compra.id_produto = produto.id_produto) 
					INNER JOIN usuario ON (compra.id_usuario = usuario.id_usuario) 
					WHERE 
						(
							compra.id_produto LIKE :pesquisa OR 
							nome_produto LIKE :pesquisa OR 
							valor_produto LIKE :pesquisa OR 
							porcentagem_empresa_compra LIKE :pesquisa OR 
							datahora_compra LIKE :pesquisa OR 
							nome_usuario LIKE :pesquisa OR 
							telefone_usuario LIKE :pesquisa OR 
							email_usuario LIKE :pesquisa OR 
							porcentagem_desc_cliente LIKE :pesquisa OR 
							valor_compra LIKE :pesquisa OR 
							forma_pagamento LIKE :pesquisa OR 
							email_usuario LIKE :pesquisa
						) 
					ORDER BY id_compra DESC
				", [
					":pesquisa" => "%".$pesquisa."%"
				]);
			}

			$total  = $busca->rowCount();

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

<!-- Modal Ver Mais Compra -->
<div class="modal fade" id="modal-ver-mais-compra" tabindex="-1" role="dialog" aria-hidden="true">
	<div class="modal-dialog modal-xl" role="document">
		<div class="modal-content">
			<div class="modal-header">
				<h5 class="modal-title">
					<i class="fa-regular fa-search-plus"></i> Detalhes
				</h5>
			</div>
			<div class="modal-body" id="modal-content">
				
			</div>
			<div class="modal-footer">
				<button type="button" class="btn btn-white" data-dismiss="modal">
					<i class="fa-regular fa-times"></i> Fechar
				</button>
			</div>
		</div>
	</div>
</div>

<script>
	function mascaraDinheiro(valor){
		return "R$ "+Number(valor).toLocaleString("pt-BR", {minimumFractionDigits: 2});
	}

	$(".btn-ver-mais").click(function(){
		var id = $(this).attr("data-value");

		$.ajax({
			type: "POST",
			data: "id_compra="+id,
			url: "<?php echo show_link("/obter-compra/"); ?>",
			async: true
		}).then(function(response){
			var result = $.parseJSON(response);

			if (result.status == true) {
				var html = "";
				var data = result.data[0];

				html += '<div class="table-responsive">';
				html += '<table class="table table-sm table-bordered table-striped">';
				html += '<tr>';
				html += '<th class="align-middle" colspan="2">Produto</th>';
				html += '<th class="align-middle" colspan="2">Referência</th>';
				html += '</tr>';
				html += '<tr>';
				html += '<td class="align-middle" colspan="2">'+data.nome_produto+'</td>';
				html += '<td class="align-middle" colspan="2">C'+data.id_compra+'</td>';
				html += '</tr>';
				html += '<tr>';
				html += '<th class="align-middle w-25">Valor do Produto</th>';
				html += '<th class="align-middle w-25">Valor Repassado</th>';
				html += '<th class="align-middle w-25">Valor Vendido</th>';
				html += '<th class="align-middle w-25">Cashback</th>';
				html += '</tr>';
				html += '<tr>';
				html += '<td class="align-middle w-25">'+mascaraDinheiro(data.valor_produto)+'</td>';
				html += '<td class="align-middle w-25">'+mascaraDinheiro(data.valor_produto - (data.valor_produto * (data.porcentagem_desc_empresa/100)))+'</td>';
				html += '<td class="align-middle w-25">'+mascaraDinheiro(data.valor_produto - (data.valor_produto * (data.porcentagem_desc_cliente/100)))+'</td>';
				html += '<td class="align-middle w-25">'+mascaraDinheiro(data.valor_cashback)+'</td>';
				html += '</tr>';	
				html += '<tr>';
				html += '<th class="align-middle w-25">Valor da Rede</th>';
				html += '<th class="align-middle w-25">Valor de Comissão</th>';
				html += '<th class="align-middle w-25">Taxas de Pagamento</th>';
				html += '<th class="align-middle w-25">Lucro da Empresa</th>';
				html += '</tr>';
				html += '<tr>';
				html += '<td class="align-middle w-25">'+mascaraDinheiro(data.valor_rede)+'</td>';
				html += '<td class="align-middle w-25">'+mascaraDinheiro(data.comissao_produto)+'</td>';
				html += '<td class="align-middle w-25">'+mascaraDinheiro(data.taxa_pagamento)+'</td>';
				html += '<td class="align-middle w-25">'+mascaraDinheiro(data.lucro_empresa)+'</td>';
				html += '</tr>';
				html += '<tr>';
				html += '<th class="align-middle w-25">Forma de Pagamento</th>';
				html += '<th class="align-middle w-25">Código da Transação</th>';
				html += '<th class="align-middle w-25">Link de Pagamento</th>';
				html += '<th class="align-middle w-25">Data da Compra</th>';
				html += '</tr>';
				html += '<tr>';
				html += '<td class="align-middle w-25">'+data.forma_pagamento+'</td>';
				html += '<td class="align-middle w-25">'+((data.codigo_transacao != "" && data.codigo_transacao != null) ? data.codigo_transacao : "-")+'</td>';
				html += '<td class="align-middle w-25">'+((data.link_pagamento != "" && data.link_pagamento != null) ? '<a href="'+data.link_pagamento+'" target="_blank">Link de Pagamento</a>' : "-")+'</td>';
				html += '<td class="align-middle w-25">'+convertDate(data.datahora_compra)+'</td>';
				html += '</tr>';
				html += '<tr>';
				html += '<th class="align-middle w-25">ID do Comprador</th>';
				html += '<th class="align-middle w-25">Nome do Comprador</th>';
				html += '<th class="align-middle w-25">E-mail do Comprador</th>';
				html += '<th class="align-middle w-25">Telefone do Comprador</th>';
				html += '</tr>';
				html += '<tr>';
				html += '<td class="align-middle w-25">'+data.id_usuario+'</td>';
				html += '<td class="align-middle w-25">'+data.nome_usuario+'</td>';
				html += '<td class="align-middle w-25">'+data.email_usuario+'</td>';
				html += '<td class="align-middle w-25">'+data.telefone_usuario+'</td>';
				html += '</tr>';
				html += '</table>';
				html +=	'</div>';

				$("#modal-content").html(html);

				$("#modal-ver-mais-compra").modal("show");
			}
			else{
				$.toast({
					heading: "Aviso",
					text: "Erro ao obter as informações da compra!",
					icon: "error",
					loader: true
				});
			}
		}, function(error){
			console.log("Erro: "+error);
		});
	});
</script>

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