Cantidad <input type="number" name="cantidad"required="required"> Pagado <input type="number" name="pagado" step="0.10" required="required"> <input type="submit" value="Comprar"> </form> <hr> <h2>Administrador</h2> <h3>Crear Zona</h3> <form method="post" action="addZona.php"> Tipo de zona <input type="text" name="tipo"required="required" > Aforo maximo <input type="number" name="aforo" step="1"required="required"> Precio entrada <input type="number" name="precio" step="0.10" required="required"> <input type="submit" value="AƱadir"> </form> <p>GANANCIAS: <?php echo Zona::getGanancias(); ?> euros.</p> <p>NUM. ZONAS: <?php echo Zona::getCantZonas(); ?> .</p> <?php ?> </body> </html>
include_once 'Zona.php'; require_once 'functions_Objects.php'; // Si no existe la sesion con los objetos, crearla. if (!isset($_SESSION['zonas'])) { $_SESSION['zonas'] = serialize(array(new Zona("Sala-Principal", 1000, 15), new Zona("Compra-venta", 200, 5), new Zona("Vip", 25, 25))); // Guarda la cantidad en sesion $_SESSION['cantZonas'] = Zona::getCantZonas(); $_SESSION['ganancias'] = Zona::getGanancias(); } // Exportar objetos al array y ganancias. $zonas = unserialize($_SESSION['zonas']); Zona::setGanancias($_SESSION['ganancias']); Zona::setCantZonas($_SESSION['cantZonas']); if (isset($_POST['zona'])) { // Recoger datos de formulario $zona = $_POST['zona']; $cantidad = $_POST['cantidad']; $pagado = $_POST['pagado']; // Buscar coincidencias en array de objetos. $zonaElegida = findObject($zonas, "getTipo", $zona); if (!$zonaElegida->actionVende($cantidad)) { echo "<script type='text/javascript'>alert('No hay tantas entradas disponibles');</script>"; } else { $mensaje = $zonaElegida->actionPagar($pagado, $cantidad); echo "<script type='text/javascript'>alert('" . $mensaje . "');</script>"; } // Guardar array de objetos en sesion $_SESSION['zonas'] = serialize($zonas); $_SESSION['ganancias'] = Zona::getGanancias(); }
public function actionPagar($pagado, $cantidadEntradas) { $mensaje = ""; if ($this->getPrecio() * $cantidadEntradas == $pagado) { $mensaje = "Muchas gracias."; Zona::setGanancias(Zona::getGanancias() + $pagado); } if ($this->getPrecio() * $cantidadEntradas < $pagado) { Zona::setGanancias(Zona::getGanancias() + $this->getPrecio() * $cantidadEntradas); $cambio = $pagado - $this->getPrecio() * $cantidadEntradas; $mensaje = "Su cambio es " . $cambio . " euros. Muchas gracias."; } if ($this->getPrecio() * $cantidadEntradas > $pagado) { $resto = $this->getPrecio() * $cantidadEntradas; $mensaje = "No es suficiente, debe pagar al menos " . $resto . " euros. Muchas gracias."; } return $mensaje; }