Reservation fixes

This commit is contained in:
Juan Pablo Vial
2025-09-09 20:16:04 -03:00
parent 1caa0c954e
commit feb61db660
5 changed files with 47 additions and 25 deletions

View File

@ -140,17 +140,7 @@ class Reservation extends Ideal\Service\API
$buyerData[substr($key, strlen('buyer_'))] = $value;
}
$this->personaService->add($buyerData);
if (array_key_exists('broker_rut', $data)) {
if (empty($data['broker_rut'])) {
unset($data['broker_rut']);
} else {
try {
$this->brokerService->get($data['broker_rut']);
} catch (ServiceAction\Read) {
unset($data['broker_rut']);
}
}
}
$data['date'] = $date->format('Y-m-d');
try {
$reservationData = $this->reservationRepository->filterData($data);
@ -177,7 +167,11 @@ class Reservation extends Ideal\Service\API
$units = array_combine($data['units'], $data['units_value']);
$this->addUnits($reservation, $units);
if (isset($data['promotions'])) {
if (array_key_exists('broker_rut', $data) and !empty($data['broker_rut'])) {
$this->addBroker($reservation, $data['broker_rut']);
}
if (array_key_exists('promotions', $data)) {
$this->addPromotions($reservation, $data['promotions']);
}
@ -224,6 +218,14 @@ class Reservation extends Ideal\Service\API
}
$this->reservationRepository->save($reservation);
}
protected function addBroker(Model\Venta\Reservation $reservation, int $broker_rut): void
{
try {
$broker = $this->brokerService->get($broker_rut);
$reservation->broker = $broker;
$this->reservationRepository->save($reservation);
} catch (ServiceAction\Read) {}
}
protected function addPromotions(Model\Venta\Reservation $reservation, array $promotions): void
{
foreach ($promotions as $promotion_id) {