62 lines
1.6 KiB
PHP
62 lines
1.6 KiB
PHP
<?php
|
|
require_once 'Boleto.php';
|
|
|
|
class Sala {
|
|
private $id;
|
|
private $nombre;
|
|
private $boletos = [];
|
|
|
|
public function __construct($id, $nombre) {
|
|
$this->id = $id;
|
|
$this->nombre = $nombre;
|
|
}
|
|
|
|
public function getId() {
|
|
return $this->id;
|
|
}
|
|
|
|
public function getNombre() {
|
|
return $this->nombre;
|
|
}
|
|
|
|
public function inicializarBoletos($filas, $asientosPorFila, $precio) {
|
|
$this->boletos = [];
|
|
$contador = 1;
|
|
|
|
for ($i = 1; $i <= $filas; $i++) {
|
|
for ($j = 1; $j <= $asientosPorFila; $j++) {
|
|
$this->boletos[] = new Boleto($contador, $i, $j, $precio);
|
|
$contador++;
|
|
}
|
|
}
|
|
}
|
|
|
|
public function obtenerBoletos() {
|
|
return $this->boletos;
|
|
}
|
|
|
|
public function obtenerBoletosPorEstado($estado) {
|
|
return array_filter($this->boletos, function($boleto) use ($estado) {
|
|
return $boleto->getEstado() === $estado;
|
|
});
|
|
}
|
|
|
|
public function obtenerBoletosPorId($ids) {
|
|
return array_filter($this->boletos, function($boleto) use ($ids) {
|
|
return in_array($boleto->getId(), $ids);
|
|
});
|
|
}
|
|
|
|
public function disponibilidadAsientos() {
|
|
$mapa = [];
|
|
foreach ($this->boletos as $boleto) {
|
|
$mapa[$boleto->getFila()][$boleto->getNumero()] = $boleto->getEstado();
|
|
}
|
|
return $mapa;
|
|
}
|
|
|
|
// Setter para asignar boletos desde la base de datos
|
|
public function setBoletos($boletos) {
|
|
$this->boletos = $boletos;
|
|
}
|
|
} |