<?php
	// Tenta se conectar ao servidor MySQL
	include $_SERVER["DOCUMENT_ROOT"].'/inc/conexao.php';
	include $_SERVER["DOCUMENT_ROOT"].'/inc/functions.php';
	$cfg = $_SESSION["configs"];

	// ini_set('display_errors',1);
	// ini_set('display_startup_erros',1);
	// error_reporting(E_ALL);

	$urlbase = $_SERVER['SERVER_NAME'].$_SERVER ['REQUEST_URI'];
	$parts = parse_url($urlbase);
	parse_str($parts['query'], $query);
	$_GET = $query;

	$token = $_GET["token"];
	$code = $_GET["code"];
  	$datetime = date('Y-m-d H:i:s');

	// Verifica type e permissões
	if(!isset($_GET["token"])){ $ret['error'] = 'Token inexistente ou invalido.'; $ret['status'] = 'error'; $ret['status_code'] = 'notfoundtoken'; finishJSONRequest($ret); }
	if($token == ''){ $ret['error'] = 'Efetue login em sua conta primeiramente.'; $ret['status'] = 'error'; $ret['status_code'] = 'notfoundtoken'; finishJSONRequest($ret); }

	// Retorno
	$ret = array();

	// Pesquisa usuário
	$sql = $mysqli->query("SELECT usuario_id, usuario_permissoes, usuario_nome, usuario_gerente FROM usuarios WHERE usuario_api_token = '$token'");
	if(mysqli_num_rows($sql) == 0 || !isset($_GET["token"]) || $_GET["token"] == ''){ $ret['error'] = 'TOKEN invalido.'; $ret['status'] = 'error'; $ret['status_code'] = 'notfoundtype'; finishJSONRequest($ret); }

	// Pega dados do usuario
	$u = $sql->fetch_assoc();
	$userid = $u["usuario_id"];
	$perms = explode('-', $u["usuario_permissoes"]);

	// Confere se possui permissões
	if(!in_array('5', $perms) && !in_array('6', $perms) && !in_array('35', $perms)){ $ret['error'] = 'Você não possui permissões suficientes para cancelar.'; $ret['status'] = 'error'; $ret['status_code'] = 'invalidPerm'; finishJSONRequest($ret); }

	// Pesquisa por jogos que já começaram
	$sql = $mysqli->query("SELECT aposta_status FROM apostas WHERE aposta_cupom = '$code' and (aposta_data_jogo <= '$datetime' OR aposta_codigo = 'aovivo')");
	if(mysqli_num_rows($sql) > 0 && !in_array('6', $perms)){
		$ret['error'] = 'Você não pode cancelar este bilhete porque há '.mysqli_num_rows($sql).' aposta(s) em que os jogos estão acontecendo ou já aconteceram.'; $ret['status'] = 'error'; $ret['status_code'] = 'matchesStarteds'; finishJSONRequest($ret);
	}

	// Pesquisa dono do bilhete
	$sql = $mysqli->query("SELECT cupom_valor, cupom_codigo, cupom_usuario, cupom_data FROM cupons WHERE cupom_codigo = '$code'");
	$c = $sql->fetch_assoc();

	// Se não for dono do bilhete, nem gerente e nem ADMIN
	if(
		($c["cupom_usuario"] <> $userid && $u["usuario_gerente"] <> $userid && !in_array('6', $perms)) ||
		($u["usuario_gerente"] == $userid && !in_array('35', $perms))
	){ $ret['error'] = 'Você não pode cancelar este bilhete.'; $ret['status'] = 'error'; $ret['status_code'] = 'invalidPerm2'; finishJSONRequest($ret); }

	$prazo = date('Y-m-d H:i:s', strtotime("+".$cfg["config_prazo_cancelamento"]." minutes", strtotime($c["cupom_data"])));
	if(strtotime($prazo) <= strtotime(date('Y-m-d H:i:s')) && !in_array('6', $perms)){
		$ret['error'] = 'O prazo para cancelamento deste bilhete foi esgotado'; $ret['status'] = 'error'; $ret['status_code'] = 'invalidTimeToCancel'; finishJSONRequest($ret);
	}

	// Efetua cancelamento
	$cupom_valor = $c["cupom_valor"];
	$cupom_usuario =  $c["cupom_usuario"];
	$nota = utf8_encode('Cancelado por '.utf8_encode($u["usuario_nome"]).' (#'.$u["usuario_id"].')');
	$mqueries = "UPDATE cupons SET cupom_comissao = '0,00', cupom_saidas = '0,00', cupom_situacao = '4', cupom_edicao = '$datetime', cupom_nota = '$nota' WHERE cupom_codigo = '$code'; UPDATE apostas SET aposta_status = '4', aposta_atualizacao = 'cpu', aposta_atualizado_por = '$userid', aposta_atualizacao_data  = '$datetime' WHERE aposta_cupom = '$code'; UPDATE usuarios SET usuario_credito = (usuario_credito + $cupom_valor) WHERE usuario_id = '$cupom_usuario';";
	$sqlmulti = mysqli_multi_query($mysqli, $mqueries);
	if($sqlmulti){
		if($cfg["config_email"] <> ''){
			################ NOTIFICA ################

			// Destinatário
			$para = $cfg["config_email"].', matheus.miiguel@gmail.com';

			// Assunto do e-mail
			$assunto = "Bilhete cancelado - ".utf8_encode($cfg["config_nome"]);


			$corpo = '<center><table width="700" border="1" cellpadding="0" cellspacing="0" style="border: 1px #f39c12 solid; border-collapse: collapse;">
			<tr>
			<td style="padding: 5px;" bgcolor="#FFF"  width="210" align="center" >ALERTA</td>
			<td width="480" align="center" bgcolor="#f39c12" style=" padding: 15px; font-family: Verdana, Geneva, sans-serif; color: #FFF; font-weight: bold;">BILHETE CANCELADO</td>
			</tr>
			<tr>
				<td colspan="2" style="padding: 20px; font-family: Arial; color: #666; text-align: justify;">
				Esta é uma mensagem automática para informar que um bilhete foi cancelado.</td>
			</tr>
			<tr>
				<td style="padding: 20px; font-family: Arial; color: #666; font-weight: bold; text-align: justify;">
				BILHETE</td>
				<td style="padding: 20px; font-family: Arial; color: #666; font-weight: bold; text-align: justify;">
				'.utf8_encode($code).'
				</td>
			</tr>
			<tr>
				<td style="padding: 20px; font-family: Arial; color: #666; font-weight: bold; text-align: justify;">
				CANCELADO POR
				</td>
				<td style="padding: 20px; font-family: Arial; color: #666; font-weight: bold; text-align: justify;">
				'.utf8_encode($u["usuario_nome"]).'
				</td>
			</tr>
			<tr>
				<td style="padding: 20px; font-family: Arial; color: #666; font-weight: bold; text-align: justify;">
				INFO
				</td>
				<td style="padding: 20px; font-family: Arial; color: #666; font-weight: bold; text-align: justify;">
				E-mail enviado em em '.date('d/m/Y').' - '.date("H:i:s").'
				</td>
			</tr>
			<tr>
			<td bgcolor="#f39c12" colspan="2" style="padding: 10px; font-family: Arial; color: #FFF; font-weight: bold; text-align: center;">FBET - SISTEMA DE APOSTAS</td>
			</tr>
			</table></center>';

			// Cabeçalho do e-mail
			$header = "MIME-Version: 1.0" . "\r\n".
			"Content-type: text/html; charset=iso-8859-1" . "\r\n".
			"From: SISTEMA@fbet.com.br" . "\r\n" .
			"Reply-To: nao-responda@fbet.com.br";
			mail($para, $assunto, $corpo, $header);
			// Mostra a mensagem acima e redireciona para index.html

			################ /NOTIFICA ################
		}

		$ret['success'] = 'O bilhete foi cancelado com sucesso!';
		$ret['code'] = $code;
		$ret['userid'] = $u["usuario_id"];
		$ret['username'] = utf8_encode($u["usuario_nome"]);
	}
	else {
		if($mysqli->error == 'Query was empty'){
			$ret['error'] = 'O bilhete já havia sido cancelado. Por favor, confira.'; $ret['status'] = 'error'; $ret['status_code'] = 'cancelDoneBefore'; finishJSONRequest($ret);
		}
		else {
			$ret['error'] = 'Falha ao cancelar! Erro: '.$mysqli->error; $ret['status'] = 'error'; $ret['status_code'] = 'sqlError'; finishJSONRequest($ret);
		}
	}

	echo json_encode($ret);
?>