Proyecto_venta_boletos/Proyecto/modelo/Venta.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;
}
}