UF service en Venta

This commit is contained in:
Juan Pablo Vial
2025-05-05 18:15:48 -04:00
parent 3ced9e40b1
commit aaf2ed7612

View File

@ -31,7 +31,7 @@ class Venta extends Service
protected Venta\BonoPie $bonoPieService, protected Venta\BonoPie $bonoPieService,
protected Venta\Pago $pagoService, protected Venta\Pago $pagoService,
protected Proyecto\Terreno $terrenoService, protected Proyecto\Terreno $terrenoService,
protected Money $moneyService, protected UF $ufService,
protected Valor $valorService protected Valor $valorService
) { ) {
parent::__construct($logger); parent::__construct($logger);
@ -177,6 +177,15 @@ class Venta extends Service
protected function process(Model\Venta $venta): Model\Venta protected function process(Model\Venta $venta): Model\Venta
{ {
if ($venta->uf === 0.0) {
$uf = $this->ufService->get($venta->fecha);
if ($uf > 0.0) {
try {
$venta = $this->ventaRepository->edit($venta, ['uf' => $uf]);
} catch (Implement\Exception\EmptyResult) {}
}
}
$venta->addFactory('formaPago', (new Implement\Repository\Factory()) $venta->addFactory('formaPago', (new Implement\Repository\Factory())
->setCallable([$this->formaPagoService, 'getByVenta']) ->setCallable([$this->formaPagoService, 'getByVenta'])
->setArgs(['venta_id' => $venta->id])); ->setArgs(['venta_id' => $venta->id]));
@ -186,6 +195,7 @@ class Venta extends Service
$venta->addFactory('currentEstado', (new Implement\Repository\Factory()) $venta->addFactory('currentEstado', (new Implement\Repository\Factory())
->setCallable([$this->estadoVentaRepository, 'fetchCurrentByVenta']) ->setCallable([$this->estadoVentaRepository, 'fetchCurrentByVenta'])
->setArgs([$venta->id])); ->setArgs([$venta->id]));
return $venta; return $venta;
} }
@ -207,7 +217,7 @@ class Venta extends Service
public function add(array $data): Model\Venta public function add(array $data): Model\Venta
{ {
$fecha = new DateTimeImmutable($data['fecha_venta']); $fecha = new DateTimeImmutable($data['fecha_venta']);
$data['uf'] = $this->moneyService->getUF($fecha); $data['uf'] = $this->ufService->get($fecha);
$propietario = $this->addPropietario($data); $propietario = $this->addPropietario($data);
$propiedad = $this->addPropiedad($data); $propiedad = $this->addPropiedad($data);
$formaPago = $this->addFormaPago($data); $formaPago = $this->addFormaPago($data);
@ -445,7 +455,7 @@ class Venta extends Service
} catch (DateMalformedStringException) { } catch (DateMalformedStringException) {
$fecha = new DateTimeImmutable(); $fecha = new DateTimeImmutable();
} }
$uf = $this->moneyService->getUF($fecha); $uf = $this->ufService->get($fecha);
$valor = $data['valor_pago_ufs'] !== '' ? $this->valorService->clean($data['valor_pago_ufs']) * $uf : $this->valorService->clean($data['valor_pago_pesos']); $valor = $data['valor_pago_ufs'] !== '' ? $this->valorService->clean($data['valor_pago_ufs']) * $uf : $this->valorService->clean($data['valor_pago_pesos']);
$pagoData = [ $pagoData = [
'valor' => $valor, 'valor' => $valor,
@ -471,7 +481,7 @@ class Venta extends Service
} catch (DateMalformedStringException) { } catch (DateMalformedStringException) {
$fecha = new DateTimeImmutable(); $fecha = new DateTimeImmutable();
} }
$uf = $this->moneyService->getUF($fecha); $uf = $this->ufService->get($fecha);
$subsidioData = [ $subsidioData = [
'fecha_venta' => $fecha->format('Y-m-d'), 'fecha_venta' => $fecha->format('Y-m-d'),
'ahorro' => $this->valorService->clean($data['valor_ahorro']), 'ahorro' => $this->valorService->clean($data['valor_ahorro']),
@ -489,7 +499,7 @@ class Venta extends Service
} catch (DateMalformedStringException) { } catch (DateMalformedStringException) {
$fecha = new DateTimeImmutable(); $fecha = new DateTimeImmutable();
} }
$uf = $this->moneyService->getUF($fecha); $uf = $this->ufService->get($fecha);
$valor = $this->valorService->clean($data['valor_credito']) * $uf; $valor = $this->valorService->clean($data['valor_credito']) * $uf;
if ($venta->formaPago()->credito === null) { if ($venta->formaPago()->credito === null) {
if ($data['valor_credito'] === 0) { if ($data['valor_credito'] === 0) {