save.php 9.08 KB
<?php

	if(!isset($link)) { include('./conecta.php'); }

	include('mail.php');

?>

<!DOCTYPE html>

<html>

<meta name="viewport" content="width=device-width">

<head>

	<title>Turnos</title>

	<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">

	<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">

	<script src="https://kit.fontawesome.com/5fc2169900.js" crossorigin="anonymous"></script>

	<script src="js/html2pdf.bundle.min.js"></script>

	<script>

      function generatePDF(nombre) {

        // Choose the element that our invoice is rendered in.

        const element = document.getElementById("resumenturno");

        // Choose the element and save the PDF for our user.

        html2pdf()

          .from(element)

          .save(nombre);

      }

    </script>

</head>

<body>

	<?php

		include("adicional\keys.php");

		require('fpdf/fpdf.php');

	?>

	<nav class="navbar navbar-light" style="background-image: url('img/fondoheader.png'); background-repeat: no-repeat; background-position: center; background-size: cover;">

		<div class="navbar-brand mx-auto" >

			<img src="img/logo.png" width="350px" height="75%">

		</div>	

	</nav>

	<div class="container">

		<hr style="border-width: 1px; border-style: inset;">

		<br>

		<div class="card" style="border-left-color: #214370; border-right-color: #214370; border-bottom-color: #214370;">

		<div class="card-header text-white text-center" style="background-color: #214370;"><b><h5>Turnos</h5></b></div>

		<div class="card-body text-center">

			<?php

			// verifino si viene la respuesta de recaptcha sino devuelvo un mensaje de error y finalizo la ejecución.
			/*
			$response_recaptcha = $_POST['g-recaptcha-response'];

			if (isset($response_recaptcha) && $response_recaptcha){

					$ip = $_SERVER['REMOTE_ADDR'];

					$validation_server = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=6LeDdewUAAAAANUdlXD4b4Oq2-NpnNexrETW3IJl&response=".$response_recaptcha."&remoteip=".$ip);

					$infocaptcha = json_decode($validation_server, true);

			} else {

				echo "<div class='row'><div class='col-12'><h5><i class='text-danger fas fa-exclamation-circle'></i> Algo ha salido mal. Intente nuevamente.</h5></div></div>";

				echo "<div class='row'><div class='col-12'><a href='https://dgrpi.arca.gob.ar/sitio/' class='btn btn-secondary'>Salir</a>&nbsp;<a href='index.php' class='btn btn-primary'>Intentar de nuevo</a></div></div>";

				exit();

			}
			*/
			// verifico si vienen los datos de dni, hora de turno, fecha de turno y respuesta de recaptcha satisfactoria

			if ($_POST['dni'] && $_POST['turno'] && $_POST['fecha'] && $_POST['nya']){

				$fec = strtr($_POST['fecha'], '/', '-');

				$fecha = date('Y-m-d', strtotime($fec));

				$dni = $_POST['dni'];

				$horarioturno = $_POST['turno'];

				$nya = strtoupper($_POST['nya']);

				$telefono = $_POST['telefono'];

				$email = $_POST['email'];

				$solicitante = $_POST['solicitante'];

				//chequeo si el contribuyente ya tiene un turno asignado en la semana de la fecha seleccionada
				//obtengo la fecha de comienzo y final de la semana
				$lunes = date('w', strtotime($fecha))==1 ? strtotime($fecha) : strtotime("previous monday", strtotime($fecha));
				$viernes = strtotime(date("Y-m-d",$lunes)." +4 days");
				$inicio = date("Y-m-d",$lunes);
				$final = date("Y-m-d",$viernes);

				$sqlverificaturno = "SELECT * FROM turnosv_turnos WHERE (fecha BETWEEN '".$inicio."' AND '".$final."') AND dni='".$dni."'";

				$queryverificaturno = mysqli_query($link, $sqlverificaturno);

				if (mysqli_num_rows($queryverificaturno) > 1) {

					echo "<div class='row'><div class='col-12'><h5><i class='text-danger fas fa-exclamation-circle'></i> Usted ya tiene dos turnos asignados para la semana de la fecha seleccionada.</h5></div></div>";

					echo "<div class='row'><div class='col-12'><a href='https://dgrpi.arca.gob.ar/sitio/' class='btn btn-secondary'>Salir</a>&nbsp;<a href='index.php' class='btn btn-primary'>Intentar de nuevo</a></div></div>";

					exit();

				}



				// consulto los boxes disponibles

				$sqlboxes = "SELECT * FROM turnosv_boxes WHERE estado=1";

				$queryboxes = mysqli_query($link, $sqlboxes);

				$nroboxes = mysqli_num_rows($queryboxes);

				// consulto la cantidad de turnos asignados a la fecha y hora seleccionada

				$sqlturnos = "SELECT id_turno FROM turnosv_turnos WHERE fecha='".$fecha."' AND hora='".$horarioturno."'";

				$queryturnos = mysqli_query($link, $sqlturnos);

				$nroturnos = mysqli_num_rows($queryturnos);



				// verifico que haya boxes disponibles en función de los turnos ya asignados

				if ($nroturnos < $nroboxes){

					//busco el primer id de box disponible

					$sqlboxdisponible = "SELECT b.id_box FROM (select * from turnosv_turnos where fecha='".$fecha."' and hora='".$horarioturno."') t RIGHT JOIN (select * from turnosv_boxes where estado=1) b ON t.id_box=b.id_box WHERE t.id_box IS NULL LIMIT 1";

					$queryboxdisponible = mysqli_query($link, $sqlboxdisponible);

					$resultadoboxdisponible = mysqli_fetch_assoc($queryboxdisponible);

					$boxdisponible = $resultadoboxdisponible['id_box'];

					// codigo de verificacion;

					$codigo_verificacion = '';

 					$pattern = '1234567890abcdefghijklmnopqrstuvwxyz';

 					$max = strlen($pattern)-1;

 					for($i=0;$i < 6;$i++) $codigo_verificacion .= $pattern{mt_rand(0,$max)};

					// hago la reserva del turno

					$sql = "INSERT INTO turnosv_turnos(id_box, id_solicitante, fecha, hora, dni, nombre_apellido, telefono, email, codigo_verificacion, link) VALUES ('$boxdisponible', '$solicitante', '$fecha', '$horarioturno' , '$dni', '$nya', '$telefono', '$email', '$codigo_verificacion', 'link_meet')";

					if (mysqli_query($link, $sql)){

						$idturno = mysqli_insert_id($link);

						$sql = "SELECT * FROM turnosv_turnos t, turnosv_boxes b WHERE t.id_turno=".$idturno." AND t.id_box=b.id_box";

						$query = mysqli_query($link, $sql);

						$resultado = mysqli_fetch_assoc($query);

						enviarMail($idturno, $resultado['email'], date('d-m-Y', strtotime($resultado['fecha'])), substr($resultado['hora'], 0, 5), $resultado['nombre_apellido']);

						$dnicontribuyente = $resultado['dni_contribuyente'];

						echo "<div class='row'><div class='col-12'><h5><i class='text-success fas fa-check-circle'></i> Su turno ha sido registrado correctamente. Ingrese al mail informado para confirmar el mismo.</h5></div></div><br>";

						echo "<div class='row justify-content-center'><div class='col-lg-2 col-md-2 col-sm-12 col-xs-12 text-left'>DNI: ".$resultado['dni']."</div></div>";

						echo "<div class='row justify-content-center'><div class='col-lg-2 col-md-2 col-sm-12 col-xs-12 text-left'>Fecha: ".date("d-m-Y", strtotime($resultado['fecha']))."</div></div>";

						echo "<div class='row justify-content-center'><div class='col-lg-2 col-md-2 col-sm-12 col-xs-12 text-left'>Hora: ".substr($resultado['hora'],0,5)."</div></div>";

						echo "<br>";

						echo "<div class='row'><div class='col-12'><a href='https://dgrpi.arca.gob.ar/sitio/' class='btn btn-secondary'>Salir</a>&nbsp;<a href='index.php' class='btn btn-primary'>Registrar otro turno</a></div></div>";

						echo "<br><div class='alert alert-info' role='alert'>Usted recibirá un e-mail a la casilla que ingresó en el paso anterior, léalo atentamente para confirmar y terminar su solicitud.<br>De no visualizar el correo en su buzón de entrada revise los correos no deseados o remitidos como spam.</div>";

						

	



					} else { // si no se puede reservar el turno muestro un mensaje de error 

						echo "<div class='row'><div class='col-12'><h5><i class='text-danger fas fa-exclamation-circle'></i> Algo ha salido mal. Vuelva a intentarlo.</h5></div></div><br>";

						echo "<div class='row'><div class='col-12'><a href='https://dgrpi.arca.gob.ar/sitio/' class='btn btn-secondary'>Salir</a>&nbsp;<a href='index.php' class='btn btn-primary'>Intentar de nuevo</a></div></div>";

					}

				} else { // muestro un mensaje de error si el turno seleccionado ya fue reservado por otro contribuyente

					echo "<div class='row'><div class='col-12'><h5><i class='text-danger fas fa-exclamation-circle'></i> El turno seleccionado ya no está disponible. Intentelo de nuevo.</h5></div></div><br>";

					echo "<div class='row'><div class='col-12'><a href='https://dgrpi.arca.gob.ar/sitio/' class='btn btn-secondary'>Salir</a>&nbsp;<a href='index.php' class='btn btn-primary'>Intentar de nuevo</a></div></div>";

				}

			}

			?>

		</div>

		</div>

		<br>

		<br>





	</div>



	<!-- Scripts -->

	<script src="https://code.jquery.com/jquery-1.12.4.js"></script>

	<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>

	<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>

</body>

</html>