<?php
include_once('session_dao.php');
include_once('../assets/php/form.php');

class FormSession extends Form {

    //Atributes:
    private $correct;  // Indicates if the session is correct.
    private $reply; // Validation response
	private $option;
	private $sessions;
	
    //Constructor:
    public function __construct() {
        parent::__construct('formSession');
        $this->reply = array();
    }

    //Methods:

    //Returns validation response:
    public function getReply() {
		//Habria que comprobar si realmente se ha validado la respuesta antes de escribir una respuesta correcta
		if($this->correct){
			if($this->option == "new"){
				$this->reply = "<h1> Operacion realizada con exito </h1><hr />
						<p> Se ha aƱadido la sesion correctamente en la base de datos.</p>
						<a href='../panel_manager/index.php'><button>Panel Gerente</button></a>";
			}else if($this->option == "edit"){
								$this->reply = "<h1> Operacion realizada con exito </h1><hr />
						<p> Se ha editado la sesion correctamente en la base de datos.</p>
						<a href='../panel_manager/index.php'><button>Panel Gerente</button></a>";
			}else if($this->option == "del"){
								$this->reply = "<h1> Operacion realizada con exito </h1><hr />
						<p> Se ha eliminado la sesion correctamente en la base de datos.</p>
						<a href='../panel_manager/index.php'><button>Panel Gerente</button></a>";
			}else if($this->option == "list"){
								$this->reply = $this->sessions;
			}
		} else {
			$this->reply = "<h1> ERROR  </h1><hr />
						<p> Ha habido un error en la operacion. Revisa los datos introducidos o ponte en contacto con el administrador de la base de datos.</p>
						<a href='../panel_manager/index.php'><button>Panel Gerente</button></a>";
		}
        return $this->reply;
    }

    //Process form:
    public function processesForm($id, $film, $hall, $cinema, $date, $start, $price, $format, $repeat, $option) {
		$this->option = $option;
		$this->correct = true;
		$bd = new sessionDAO('complucine');
		
		$date = date('Y-m-d', strtotime( $date ) ); 
		
		if($bd ){
			if($option == "list"){
				$this->sessions = $bd->getAllSessionsFromDateHallAndCinema($cinema, $hall, $date);
			}else {
				
				$start = date('H:i:s', strtotime( $start ) );
				
				if($option == "new"){
					
					$selectSession = $bd->selectSession($cinema, $hall, $start, $date);
					if($selectSession && $selectSession->num_rows >= 1)	{
						$this->correct = false;
					} else{	
						$bd->createSession(null, $film, $hall,$cinema, $date, $start, $price, $format);
					}
					
				mysqli_free_result($selectSession);
				
				} else if ($option == "del"){
					$bd->deleteSession($id);
					
				} else if ($option == "edit"){
					$bd->editSession($id, $film, $hall, $cinema, $date, $start, $price, $format);
				}
				
				if($repeat > "0"){
					$repeat--;
					$date = date('Y-m-d', strtotime( $date. ' +1 day') );
					$this->processesForm($film, $hall, $cinema, $date, $start, $price, $format, $repeat);
				}		
			}		
			
		} else {$this->correct = false;}	
    }
}

?>