diff --git a/panel_manager/includes/formHall.php b/panel_manager/includes/formHall.php
index 7c33f54..8e12789 100644
--- a/panel_manager/includes/formHall.php
+++ b/panel_manager/includes/formHall.php
@@ -1,50 +1,97 @@
option = $option;
+ $options = array("action" => "./?state=".$option);
+ parent::__construct('formHall',$options);
}
- public static function generaCampoFormulario($data, $errores = array()){
-
- $number = $data['number'] ?? '';
- $rows = $data['rows'] ?? '14';
- $cols = $data['cols'] ?? '8';
- $seats = $data['seats'] ?? '';
+ protected function generaCamposFormulario($data, $errores = array()){
+ //Prepare the data
+ if($this->option == "new_hall"){
+ $number = $data['number'] ?? "";
+ $rows = $data['rows'] ?? '12';
+ $cols = $data['cols'] ?? '8';
+ }else {
+ $number = $data['number'] ?? $_POST["number"];
+ $rows = $data['rows'] ?? $_POST["rows"];
+ $cols = $data['cols'] ?? $_POST["cols"];
+ }
+ $og_number = $data['og_number'] ?? $number;
- $htmlform .= '
-
-
-
-
+ $htmlErroresGlobales = self::generaListaErroresGlobales($errores);
+ $errorNumber = self::createMensajeError($errores, 'number', 'span', array('class' => 'error'));
+ $errorSeats = self::createMensajeError($errores, 'seats', 'span', array('class' => 'error'));
+
+ $html = '
+ '.$htmlErroresGlobales.'
+ '.$errorSeats.'
+
+
+ '.$errorNumber.'
+
+ ';
+ if($this->option == "new_hall")
+ $html .='';
+ if($this->option == "edit_hall"){
+ $html .='
+
+ ';
+ }
+ $html .='
';
- return $htmlform;
+
+ return $html;
}
+
//Methods:
//Process form:
- public static function processesForm($data){
- if($data["option"] == "new_hall"){
- $_SESSION['msg'] = Hall::create_hall($data);
- header( "Location: ../?state=success" );
- }else if($data["option"] == "edit_hall"){
- $_SESSION['msg'] = Hall::edit_hall($data);
- header( "Location: ../?state=success" );
+ protected function procesaFormulario($datos){
+ $result = array();
+
+ $rows = $datos['rows'];
+ $cols = $datos['cols'];
+ $og_number = $datos["og_number"];
+
+ //Prepare the seat_map
+ $seats_map = array();
+ $seats = 0;
+ for($i = 1;$i <= $rows; $i++){
+ for($j = 1; $j <= $cols; $j++){
+ if(isset($datos["checkbox".$i.$j])){
+ $seats_map[$i][$j] = $datos["checkbox".$i.$j];
+ $seats++;
+ if($seats_map[$i][$j] == "-1"){
+ $seats_map[$i][$j] = "0";
+ }
+ }else{
+ $seats_map[$i][$j] = "-1";
+ }
+ }
}
- else if($data["option"] == "delete_hall") {
- $_SESSION['msg'] = Hall::delete_hall($data);
- header( "Location: ../?state=success" );
- }
+
+ if ($seats == 0 && isset($datos["sumbit"]) ) {
+ $result['seats'] = " No puede haber 0 asientos disponibles.
";
+ }
+
+ $number = $datos['number'] ?? null;
+ if (empty($number) && isset($datos["sumbit"])) {
+ $result['number'] = " El numero de sala tiene que ser mayor que 0.
";
+ }
+
+ if (count($result) === 0 && isset($datos["sumbit"]) ) {
+ if($this->option == "new_hall"){
+ $_SESSION['msg'] = Hall::create_hall($number, $_SESSION["cinema"], $rows, $cols, $seats, $seats_map);
+ $result = './?state=success';
+ }
+ if($this->option == "edit_hall"){
+ $_SESSION['msg'] = Hall::edit_hall($number, $_SESSION["cinema"], $rows, $cols, $seats, $seats_map, $og_number);
+ $result = './?state=success';
+ }
+ }
+
+ if (!isset($result['number']) && isset($datos["delete"]) ) {
+ if($this->option == "edit_hall"){
+ $_SESSION['msg'] = Hall::delete_hall($number, $_SESSION["cinema"], $rows, $cols, $seats, $seats_map, $og_number);
+ $result = './?state=success';
+ }
+ }
+
+
+ return $result;
}
}
diff --git a/panel_manager/index.php b/panel_manager/index.php
index 0d6b56b..010818a 100644
--- a/panel_manager/index.php
+++ b/panel_manager/index.php
@@ -1,16 +1,16 @@
+ static function manage_halls(){
+
+ $panel = '
+ ';
+ $listhall = Hall::getListHalls($_SESSION["cinema"]);
+ if(!$listhall){
+ $panel .= "
No hay ninguna sala en este cine";
+ }else{
+ $panel .= '
+
-
-
-';
+ ';
+ }
+ $panel.='
+
+
+ ';
return $panel;
}
static function new_hall(){
- $data = array("option" => "new_hall", "cols" => $_POST["cols"], "rows" => $_POST["rows"]);
- $panel = 'Crear una sala.
- '. FormHall::generaCampoFormulario($data, null);
-
+
+ $formHall = new FormHall("new_hall");
+
+ $panel = 'Crear una sala.
'
+ .$formHall->gestiona();
return $panel;
}
static function edit_hall(){
- $data = array("option" => "edit_hall", "number" => $_POST["number"],"cols" => $_POST["cols"], "rows" => $_POST["rows"], "seats" => $_POST["seats"]);
- $panel = 'Editar una sala.
- '. FormHall::generaCampoFormulario($data, null);
-
+ $formHall = new FormHall("edit_hall");
+
+ $panel = 'Editar una sala.
'
+ .$formHall->gestiona();
return $panel;
}