69 lines
1.7 KiB
PHP
69 lines
1.7 KiB
PHP
<?php
|
|
require_once 'Boleto.php';
|
|
|
|
class Venta {
|
|
private $id;
|
|
private $fecha;
|
|
private $boletos = [];
|
|
private $total;
|
|
private $nombreCliente;
|
|
|
|
public function __construct($nombreCliente) {
|
|
$this->id = bin2hex(random_bytes(8));
|
|
date_default_timezone_set('America/Mexico_City');
|
|
$this->fecha = date('Y-m-d H:i:s');
|
|
$this->nombreCliente = $nombreCliente;
|
|
$this->total = 0;
|
|
}
|
|
|
|
public function getId() {
|
|
return $this->id;
|
|
}
|
|
|
|
public function getFecha() {
|
|
return $this->fecha;
|
|
}
|
|
|
|
public function getNombreCliente() {
|
|
return $this->nombreCliente;
|
|
}
|
|
|
|
public function agregarBoletos($boletos) {
|
|
foreach ($boletos as $boleto) {
|
|
if ($boleto->estaDisponible()) {
|
|
$this->boletos[] = $boleto;
|
|
$this->total += $boleto->getPrecio();
|
|
$boleto->marcarComoVendido();
|
|
}
|
|
}
|
|
}
|
|
|
|
public function generarComprobante() {
|
|
$comprobante = [
|
|
'id_venta' => $this->id,
|
|
'fecha' => $this->fecha,
|
|
'cliente' => $this->nombreCliente,
|
|
'boletos' => [],
|
|
'total' => $this->total
|
|
];
|
|
|
|
foreach ($this->boletos as $boleto) {
|
|
$comprobante['boletos'][] = [
|
|
'id' => $boleto->getId(),
|
|
'fila' => $boleto->getFila(),
|
|
'numero' => $boleto->getNumero(),
|
|
'precio' => $boleto->getPrecio()
|
|
];
|
|
}
|
|
|
|
return $comprobante;
|
|
}
|
|
|
|
public function getTotal() {
|
|
return $this->total;
|
|
}
|
|
|
|
public function getBoletos() {
|
|
return $this->boletos;
|
|
}
|
|
} |