<?php

	require_once('Connections/nosotros_connection.php');
	require_once('nosotros.php');

	$array = array_merge(array(), $_POST);

	$array["documento"] = trim( $array["documento"] );
	$array["apellido"] = trim( $array["apellido"] );
	$array["nombre"] = trim( $array["nombre"] );
	$array["domicilio"] = trim( $array["domicilio"] );
	$array["fecha_reserva"] = trim( $array["fecha_reserva"] );
	$id_persona=$array["id_persona"];
	$id_tipo_doc=$array["id_tipo_doc"];
	$documento=$array["documento"];
	$id_viaje=$array["id_viaje"];

	if( $documento=="")
	{
		echo AJAX_ERROR("El n&uacute;mero de documento no puede estar vac&iacute;o");
		return;
	}

	if( $array["nombre"]=="")
	{
		echo AJAX_ERROR("El nombre no puede estar vac&iacute;o");
		return;
	}

	if( $array["apellido"]=="")
	{
		echo AJAX_ERROR("El apellido no puede estar vac&iacute;o");
		return;
	}

	if( $array["domicilio"]=="")
	{
		echo AJAX_ERROR("El domicilio no puede estar vac&iacute;o");
		return;
	}


	//Si la persona no existe
	if( $id_persona==-1 )
	{
		//Verifico que no tenga el mismo tipo y número de documento que otro pasajero
		//Puede darse el caso que haya dos tipos y numeros de documentos para la misma persona 
		//fisica... se verá
		$sql ="SELECT * FROM `persona` WHERE id_tipo_doc=$id_tipo_doc AND documento='$documento'";
		$resultado = mysqli_query($odonto_connection,$sql);
		if($resultado)
		{
			if( ($fila = mysqli_fetch_assoc($resultado)) )
			{
				echo AJAX_ERROR("Ya existe una persona con ese tipo y n&uacute;mero de documento");
				return;
			}
		}
	}
	else
	{
		//Si la persona existe...

		//Controlo que no tenga otra reserva
		$sql ="SELECT * FROM `reserva` WHERE id_viaje=$id_viaje AND id_persona=$id_persona";
		$resultado = mysqli_query($odonto_connection,$sql);
		if($resultado)
		{
			if( ($fila = mysqli_fetch_assoc($resultado)) )
			{
				echo AJAX_ERROR("El titular ya tiene una reserva en este viaje");
				return;
			}
		}
		else
		{
			echo AJAX_ERROR( mysqli_error($odonto_connection) . " " . $sql );
			return;
		}

		//Controlo que no sea pasajero ya cargado
		$sql ="SELECT * FROM `reserva` r, `persona_reserva` p ";
		$sql.=" WHERE r.id_viaje=$id_viaje AND p.id_reserva=r.id_reserva AND p.id_persona=$id_persona";
		$resultado = mysqli_query($odonto_connection,$sql);
		if($resultado)
		{
			if( ($fila = mysqli_fetch_assoc($resultado)) )
			{
				echo AJAX_ERROR("La persona indicada ya es un pasajero en este viaje");
				return;
			}
		}
		else
		{
			echo AJAX_ERROR( mysqli_error($odonto_connection) ." " . $sql );
			return;
		}
		
	}

	if( $array["fecha_reserva"]=="")
	{
		echo AJAX_ERROR("La fecha de reserva no puede estar vac&iacute;a");
		return;
	}

	if( $id_persona==-1 )
		$id_persona = $array["id_persona"] = Insert($odonto_connection, "persona", $array);
	else
		Update($odonto_connection, "persona", $array);

	$id_reserva=-1;

	if( $id_persona!=-1 )
		$id_reserva = $array["id_reserva"] = Insert($odonto_connection, "reserva", $array);

	if( $id_reserva!=-1 )
		$id_persona_reserva = $array["id_persona_reserva"] = Insert($odonto_connection, "persona_reserva", $array);
	
	
	if($id_persona!=-1 && $id_reserva!=-1)
		echo AJAX_OK();
	else
		echo AJAX_ERROR("No se pudo guardar la reserva por un error en la base de datos");

/*

CREATE TRIGGER calcular_reservas_insert AFTER INSERT ON `reserva`
FOR EACH ROW UPDATE viajes SET cant_reservas = (SELECT COUNT(*) FROM `reserva` WHERE id_viaje=NEW.id_viaje) WHERE id_viaje=NEW.id_viaje

CREATE TRIGGER calcular_reservas_delete AFTER DELETE ON `reserva`
FOR EACH ROW UPDATE viajes SET cant_reservas = (SELECT COUNT(*) FROM `reserva` WHERE id_viaje=OLD.id_viaje) WHERE id_viaje=OLD.id_viaje


CREATE TRIGGER calcular_personas_update AFTER UPDATE ON `reserva`
FOR EACH ROW UPDATE viajes SET cant_pasajeros = (SELECT SUM(cant_pasaj) FROM `reserva` WHERE id_viaje=OLD.id_viaje) WHERE id_viaje=OLD.id_viaje

CREATE TRIGGER calcular_personas_insert AFTER INSERT ON `persona_reserva`
FOR EACH ROW UPDATE reserva SET cant_pasaj = (SELECT COUNT(*) FROM `persona_reserva` WHERE id_reserva=NEW.id_reserva) WHERE id_reserva=NEW.id_reserva;

CREATE TRIGGER calcular_personas_delete AFTER DELETE ON `persona_reserva`
FOR EACH ROW UPDATE reserva SET cant_pasaj = (SELECT COUNT(*) FROM `persona_reserva` WHERE id_reserva=OLD.id_reserva) WHERE id_reserva=OLD.id_reserva;

*/
?>
