Valor de PU cuando unidad no tiene valor

This commit is contained in:
Juan Pablo Vial
2025-04-29 13:01:57 -04:00
parent 86b8d6b3c7
commit e6892ee085

View File

@ -4,14 +4,15 @@ namespace Incoviba\Service\Venta;
use PDOException; use PDOException;
use Incoviba\Common\Implement\Exception\EmptyResult; use Incoviba\Common\Implement\Exception\EmptyResult;
use Incoviba\Exception\ServiceAction\{Create, Read, Update}; use Incoviba\Exception\ServiceAction\{Create, Read, Update};
use Incoviba\Repository;
use Incoviba\Model; use Incoviba\Model;
use Incoviba\Repository;
use Incoviba\Service;
class PropiedadUnidad class PropiedadUnidad
{ {
public function __construct(protected Repository\Venta\PropiedadUnidad $propiedadUnidadRepository, public function __construct(protected Repository\Venta\PropiedadUnidad $propiedadUnidadRepository,
protected Repository\Venta\Unidad $unidadRepository, protected Repository\Venta\Unidad $unidadRepository,
protected Precio $precioService) {} protected Precio $precioService, protected Service\Valor $valorService) {}
/** /**
* @param int $unidad_id * @param int $unidad_id
@ -93,7 +94,11 @@ class PropiedadUnidad
public function edit(Model\Venta\PropiedadUnidad $propiedadUnidad, array $data): Model\Venta\PropiedadUnidad public function edit(Model\Venta\PropiedadUnidad $propiedadUnidad, array $data): Model\Venta\PropiedadUnidad
{ {
try { try {
return $this->process($this->propiedadUnidadRepository->edit($propiedadUnidad, $data)); $filteredData = $this->propiedadUnidadRepository->filterData($data);
if (array_key_exists('valor', $filteredData)) {
$filteredData['valor'] = $this->valorService->clean($filteredData['valor']);
}
return $this->process($this->propiedadUnidadRepository->edit($propiedadUnidad, $filteredData));
} catch (PDOException $exception) { } catch (PDOException $exception) {
throw new Update(__CLASS__, $exception); throw new Update(__CLASS__, $exception);
} }
@ -104,7 +109,9 @@ class PropiedadUnidad
try { try {
$unidad->precios = $this->precioService->getByUnidad($unidad->id); $unidad->precios = $this->precioService->getByUnidad($unidad->id);
$unidad->currentPrecio = $this->precioService->getVigenteByUnidad($unidad->id); $unidad->currentPrecio = $this->precioService->getVigenteByUnidad($unidad->id);
$unidad->valor = $unidad->currentPrecio->valor; if ($unidad->valor === null) {
$unidad->valor = $unidad->currentPrecio->valor;
}
} catch (Read) {} } catch (Read) {}
return $unidad; return $unidad;
} }