<?php

    class AdminPanel {
        private $state;
        private $login;
        private $prefix;

        function __construct(){}


        function getTemplate(){
            return $this->template;
        }

        static function panel(){
            include_once('../assets/php/includes/user.php');

            $name = strtoupper(unserialize($_SESSION['user'])->getName());
            $email = unserialize($_SESSION['user'])->getEmail();
            $userPic = USER_PICS.strtolower($name).".jpg";

            return $reply=  '<div class="code info">
            <h1>Bienvenido al Panel de Administrador.</h1>
            <hr />
            <img src='.$userPic.' alt="user_profile_picture"/>
            <h3>'.strftime("%A %e de %B de %Y | %H:%M").'</h3>
            <p>Administrador: '.$name.'</p>
            <p>Email empresarial: '.$email.'</p>
            </div>'."\n"; 
        }

        //Functions FILMS
        static function addFilm(){
            include_once('./includes/formAddFilm.php');
            $formAF = new formAddFilm();
            $htmlAForm = $formAF->gestiona();
            return $reply=   '<!-- Add film -->
            <div class="column side"></div>
                    <div class="column middle">
                    '.$htmlAForm."\n";
        }
    
        static function deleteFilm() {
            include_once('./includes/formDeleteFilm.php');
            $formDF = new formDeleteFilm();
            $htmlDForm = $formDF->gestiona();
            return $reply=   '<!-- Add film -->
            <div class="column side"></div>
                    <div class="column middle">
                    '.$htmlDForm.'
                    </div>'."\n";
        }

        static function editFilm() {
            include_once('./includes/formEditFilm.php');
            $formEF = new formEditFilm();
            $htmlDForm = $formEF->gestiona();
            return $reply=  '<!-- Add film -->
            <div class="column side"></div>
                    <div class="column middle">
                    '.$htmlDForm.'
                    </div>'."\n";
        }

         //Functions Cinemas
         static function addCinema(){
            include_once('./includes/formAddCinema.php');
            $formAC = new formAddCinema();
            $htmlAForm = $formAC->gestiona();
            return $reply=   '<!-- Add cinema -->
            <div class="column side"></div>
                    <div class="column middle">
                    '.$htmlAForm.'
                    </div>'."\n";
        }
    
        static function deleteCinema() {
            include_once('./includes/formDeleteCinema.php');
            $formDC = new formDeleteCinema();
            $htmlDForm = $formDC->gestiona();
            return $reply=  '<!-- Delete cinema -->
            <div class="column side"></div>
                    <div class="column middle">
                    '.$htmlDForm.'
                    </div>'."\n";
        }

        static function editCinema() {
            include_once('./includes/formEditCinema.php');
            $formEC = new formEditCinema();
            $htmlDForm = $formEC->gestiona();
            return $reply=  '<!-- Edit cinema -->
            <div class="column side"></div>
                    <div class="column middle">
                    '.$htmlDForm.'
                    </div>'."\n";
        }

        static function showHalls($idCinema) {
            include_once('../assets/php/includes/hall.php');
            include_once('../assets/php/includes/hall_dao.php');
			$panel = '<div class="column side"></div>
                <div class="column middle">';
            $listhall = Hall::getListHalls($idCinema);
            if(!$listhall){
                $panel .= "<h2> No hay ninguna sala en este cine";
            }else{
            $panel .= '
                <div class="row">
                <ul class="tablelist col3">
                    <li class="title"> Sala </li>
                    <li class="title"> Asientos </li>
                    <li class="title"> Sesión </li>
                            '; 
            $parity = "odd";
            foreach($listhall as $hall){ 
                $panel .='<div class="'.$parity.'">
                                <li> '. $hall->getNumber().'</li>
                                <li> '.$hall->getTotalSeats().' </li>
                            </a>
                            <a  href="?state=mc&cinema='.$idCinema.'&number=1">
                                <li> Sesiones </li>
                            </a>
                        </div>
                        ';
                $parity = ($parity == "odd") ? "even" : "odd";
                }
            $panel.='
                </ul>';
            }
            $panel.='
                </div>
                <div class="column side"></div>';			
            return $panel;

        }

        static function showSessions($idCinema){
            include_once('../assets/php/includes/hall.php');
            include_once('../assets/php/includes/hall_dao.php');
            include_once('../assets/php/includes/session_dao.php');
            include_once('../assets/php/includes/session.php');
			//Base filtering values
			$date = $_POST['date'] ?? $_GET['date'] ?? date("Y-m-d");
			$hall = $_POST['hall'] ?? $_GET['hall'] ?? "1";
			
			//Session filter
			$panel='<div class = "column left">
					<form method="post" id="filter" action="?state=mc&cinema=1&number=1">
						<input type="date" name="date" value="'.$date.'" min="2021-01-01" max="2031-12-31">
							<select name="hall" class="button large">';
						
			foreach(Hall::getListHalls($idCinema) as $hll){
				if($hll->getNumber() == $hall){
					$panel.= '
								<option value="'. $hll->getNumber() .'"selected> Sala '. $hll->getNumber() .'</option> ';
				}else{ 
					$panel.= '
								<option value="'. $hll->getNumber() .'"> Sala '. $hll->getNumber() .'</option>';
				}
			}
			$panel.='
							</select>
						<input type="submit" name="filter" value="Filtrar" class="button large"/>
					</form>
				</div>
			';
			//Session list
			$panel .='	<div class = "column right">';
			$sessions = Session::getListSessions($hall,$idCinema,$date);
			
			if($sessions) {
				$panel .='
					<form method="post" action="./?state=edit_session">
						<table class="alt">
							<thead>
								<tr>
									<th>Hora</th>
									<th>Pelicula</th>
									<th>Formato</th>
									<th>Precio</th>
								</tr>
							</thead>
							<tbody>'; 
				
				
				foreach($sessions as $session){ 
					$film = Session::getThisSessionFilm($session->getIdfilm());
					$panel .='
								<tr>
									<td> '.date("H:i", strtotime( $session->getStartTime())).' </td>
									<td> '. str_replace('_', ' ', $film["tittle"]) .' </td>
									<td> '.$session->getFormat().' </td>
									<td> '.$session->getSeatPrice().' </td>
								</tr>';
					}
				$panel.='
							</tbody>
						</table>
					</form>';
			} else {
				$panel.=' <h3> No hay ninguna sesion </h3>';
			}
			$panel.='</div>';
			
			return $panel;
        }


        //Functions MANAGERS
        static function print_managers(){
            include_once('../assets/php/includes/manager_dao.php');
            include_once('../assets/php/includes/manager.php');
            $manager = new Manager_DAO("complucine");
            $managers = $manager->allManagersData();
            $ids = array();
            $idscinemas = array();
            $usernames = array();
            $email = array();
            $rol = array();
            if(!is_array($managers)){ 
            $reply = "<h2> No hay ningun manager</h2>";
            }
            else{
                foreach($managers as $key => $value){
                    $ids[$key] = $value->getId();
                    $idscinemas[$key] = $value->getIdcinema();
                    $usernames[$key] = $value->getUsername();
                    $email[$key] = $value->getEmail();
                    $rol[$key] = $value->getRoll();
                }
            
            $reply= "<div class='row'>
                        <ul class ='tablelist col7'>
                            <li class='title'>Id</li>
                            <li class='title'>IdCinema</li>
                            <li class='title'>Nombre</li>
                            <li class='title'>Email</li>
                            <li class='title'>Rol</li>
                            <li class='title'>Editar</li>
                            <li class='title'>Eliminar</li>
                        "; 
                    $parity = "odd";   
                for($i = 0; $i < count($managers); $i++){
                    $reply.= '
                            <div class="'.$parity.'">
                            <li>'. $ids[$i] .'</li>
                            <li>'. $idscinemas[$i] .'</li>
                            <li>'. $usernames[$i] .'</li>
                            <li>'. $email[$i] .'</li>
                            <li>'. $rol[$i] .'</li>
                            <li>
                                <form method="post" action="index.php?state=mg">
                                    <input  name="id" type="hidden" value="'.$ids[$i].'">
                                    <input  name="idcinema" type="hidden" value="'.$idscinemas[$i].'">
                                    <input type="submit" id="submit" value="Editar" name="edit_manager" class="primary" />
                                </form> 
                            </li> 
                            <li> 
                                <form method="post" action="index.php?state=mg">
                                    <input  name="id" type="hidden" value="'.$ids[$i].'">
                                    <input  name="idcinema" type="hidden" value="'.$idscinemas[$i].'">
                                    <input  name="username" type="hidden" value="'.$usernames[$i].'">
                                    <input  name="email" type="hidden" value="'.$email[$i].'">
                                    <input  name="rol" type="hidden" value="'.$rol[$i].'">
                                    <input type="submit" id="submit" value="Eliminar" name="delete_manager" class="primary" />
                                </form> 
                            </li> 
                            </div>
                        '; 
                        $parity = ($parity == "odd") ? "even" : "odd";
                } 
            
            $reply.='</ul>
                </div>
            ';
            }
            return $reply;
        }
        static function showAddBotton() {
            return $reply = '<div class="column side"></div>
                    <div class="column middle">
                        <h2>Añadir gerente</h2>
                        <form method="post" action="index.php?state=mg">
                            <div class="actions"> 
                                <input type="submit" id="submit" value="Añadir gerente" name="add_manager" class="primary" />      
                            </div>
                        </form>
                    </div>
                <div class="column side"></div>
            </div>
                ';
        }
        static function addManager(){
            include_once('./includes/formAddManager.php');
            $formAM = new formAddManager();
            $htmlAForm = $formAM->gestiona();
            return $reply=   '<!-- ADD MANAGER -->
                <div class="column side"></div>
                <div class="column middle">
                    <h3>AÑADIR GERENTE</h3>
                    '.$htmlAForm.'
                </div>
                <div class="column side"></div>'."\n";
        }
        static function editManager(){
            include_once('./includes/formEditManager.php');
            $formEM = new formEditManager();
            $htmlEForm = $formEM->gestiona();
            return $reply=   '<!-- EDIT MANAGER -->

                <div class="column side"></div>
                <div class="column middle">
                    '.$htmlEForm.'
                </div>';
        }

        static function deleteManager(){
            include_once('./includes/formDeleteManager.php');
            $formDM = new formDeleteManager();
            $htmlDForm = $formDM->gestiona();
            return $reply=  '<!-- DELETE MANAGER -->
                <div class="column side"></div>
                <div class="column middle">
                    <h3>ELIMINAR GERENTE</h3>
                    '.$htmlDForm.'
                </div>
                <div class="column side"></div>'."\n";
        }


        //Functions PROMOTIONS
        static function addPromotion(){
            include_once('./includes/formAddPromotion.php');
            $formAP = new formAddPromotion();
            $htmlAForm = $formAP->gestiona();
            return $reply=   '<!-- ADD PROMOTION -->
                <div class="column side"></div>
                <div class="column middle">
                    <h3>AÑADIR PROMOCIÓN</h3>
                    '.$htmlAForm.'
                </div>';
        }

         static function editPromotion(){
            include_once('./includes/formEditPromotion.php');
            $formEP = new formEditPromotion();
            $htmlEForm = $formEP->gestiona();
            return $reply=  '<!-- EDIT MANAGER -->
                <div class="column side"></div>
                <div class="column middle">
                    <h3>EDITAR PROMOCIÓN</h3>
                    '.$htmlEForm.'
                </div>
                <div class="column side"></div>'."\n";
        }

        static function deletePromotion(){
            include_once('./includes/formDeletePromotion.php');
            $formDP = new formDeletePromotion();
            $htmlDForm = $formDP->gestiona();
            return $reply=  '<!-- DELETE MANAGER -->
            <div class="column side"></div>
                    <div class="column middle">
                    <h3>ELIMINAR PROMOCIÓN</h3>
                    '.$htmlDForm.'
                    </div>'."\n";
        }
        
        static function print_promotions(){
            $promo = new Promotion_DAO("complucine");
            $promos = $promo->allPromotionData();
            $ids = array();
            $tittles = array();
            $descriptions = array();
            $codes = array();
            $actives = array();
    
            if(!is_array($promos)){ 
             $reply = "<h2> No hay promociones </h2>";
            }
            else{
                foreach($promos as $key => $value){
                    $ids[$key] = $value->getId();
                    $tittles[$key] = $value->getTittle();
                    $descriptions[$key] = $value->getDescription();
                    $codes[$key] = $value->getCode();
                    if ($value->getActive() == 0) {
                        $actives[$key] = "si";
                    }
                    else{
                        $actives[$key] = "no";
                    }
                }
            
             $reply= "<div class='row'>
                        <ul class='tablelist col7'>   
                                <li class='title'>Id</li>
                                <li class='title'>Título</li>
                                <li class='title'>Descripcion</li>
                                <li class='title'>Código</li>
                                <li class='title'>Activo</li>
                                <li class='title'>Editar</li>
                                <li class='title'>Eliminar</li>
                            "; 
                $parity ="odd";
            for($i = 0; $i < count($promos); $i++){
                $reply.= '
                            <div class="'.$parity.'">
                            <li>'. $ids[$i] .'</li>
                            <li>'. $tittles[$i] .'</li>
                            <li>'. $descriptions[$i] .'</li>
                            <li>'. $codes[$i] .'</li>
                            <li>'. $actives[$i] .'</li>
                            <li>
                                <form method="post" action="index.php?state=mp">
                                    <input  name="id" type="hidden" value="'.$ids[$i].'">
                                    <input  name="tittle" type="hidden" value="'.$tittles[$i].'">
                                    <input  name="description" type="hidden" value="'.$descriptions[$i].'">
                                    <input  name="code" type="hidden" value="'.$codes[$i].'">
                                    <input  name="active" type="hidden" value="'.$actives[$i].'">
                                    <input type="submit" id="submit" value="Editar" name="edit_promotion" class="primary" />
                                </form> 
                           
                            <li> 
                                <form method="post" action="index.php?state=mp">
                                    <input  name="id" type="hidden" value="'.$ids[$i].'">
                                    <input  name="tittle" type="hidden" value="'.$tittles[$i].'">
                                    <input  name="description" type="hidden" value="'.$descriptions[$i].'">
                                    <input  name="code" type="hidden" value="'.$codes[$i].'">
                                    <input  name="active" type="hidden" value="'.$actives[$i].'">
                                    <input type="submit" id="submit" value="Eliminar" name="delete_promotion" class="primary" />
                                </form> 
                            </li> 
                        </li>
                        </div>
                    '; 
                    $parity = ($parity=="odd")? "even":"odd";
            } 
                    
             $reply.='</ul>
                        
                    </div> 
            ';
            }
              return  $reply ;
        }

        static function see_like_user(){
            $_SESSION["lastRol"] = $_SESSION["rol"];
            //unset($_SESSION["rol"]);
            $_SESSION["rol"] = null;
            //header("Location: {$_SERVER['PHP_SELF']}");
            return $reply = "<div class=''>
                                    <div class='column side'></div>
                                    <div class='column middle'>
                                        <div class='code info'>
                                            <h1> ¡ATENCIÓN! </h1><hr />
                                            <p>Está viendo la web como un Usuario NO Registrado.</p>
                                            <a href='../../'><button>Cerrar Mensaje</button></a>
                                        </div>
                                    </div>
                                    <div class='column side'></div>
                                </div>
                                ";
        }
        static function see_like_registed_user(){
            $_SESSION["lastRol"] = $_SESSION["rol"];
            $_SESSION["rol"] = "user";
            //header("Location: {$_SERVER['PHP_SELF']}");
            return $reply = "<div class='row'>
                                     <div class='column side'></div>
                                      <div class='column middle'>
                                             <div class='code info'>
                                                <h1> ¡ATENCIÓN! </h1><hr />
                                                 <p>Está viendo la web como un Usuario Registrado.</p>
                                                 <a href='../../panel_user'><button>Cerrar Mensaje</button></a>
                                             </div>
                                     </div>
                                     <div class='column side'></div>
                                    </div>
                                    ";
            }
        static function see_like_manager(){
            $_SESSION["lastRol"] = $_SESSION["rol"];
            $_SESSION["rol"] = "manager";
            //header("Location: {$_SERVER['PHP_SELF']}");
            return $reply = "<div class='row'>
                                      <div class='column side'></div>
                                       <div class='column middle'>
                                                 <div class='code info'>
                                                    <h1> ¡ATENCIÓN! </h1><hr />
                                                    <p>Está viendo la web como un Gerente.</p>
                                                    <a href='../../panel_manager'><button>Cerrar Mensaje</button></a>
                                                  </div>
                                        </div>
                                        <div class='column side'></div>
                                    </div>
                                    ";
            }
    }
   
?>