Implemented repository mapper, and venta show

This commit is contained in:
Juan Pablo Vial
2023-08-08 23:53:49 -04:00
parent ef30ae67d2
commit 59825259b6
111 changed files with 2766 additions and 612 deletions

View File

@ -6,19 +6,62 @@ use JsonSerializable;
class FormaPago implements JsonSerializable
{
public ?Pie $pie;
public ?BonoPie $bonoPie;
public ?Credito $credito;
public ?Escritura $escritura;
public ?BonoPie $bonoPie;
public ?Subsidio $subsidio;
public ?Credito $credito;
public ?Pago $devolucion;
public function anticipo(string $moneda = Pago::UF): float
{
$sum = 0;
if ($this->pie !== null) {
$sum += $this->pie->pagado($moneda);
if (isset($this->pie->reajuste) and $this->pie->reajuste !== null) {
$sum += $this->pie->reajuste->valor($moneda);
}
}
if ($this->escritura !== null) {
$sum += $this->escritura->pago->valor($moneda);
}
return $sum;
}
public function total(string $moneda = Pago::UF): float
{
$sum = $this->anticipo($moneda);
if (isset($this->bonoPie)) {
$sum += $this->bonoPie->pago->valor($moneda);
}
if (isset($this->subsidio)) {
$sum += $this->subsidio->ahorro->valor($moneda);
$sum += $this->subsidio->subsidio->valor($moneda);
}
if (isset($this->credito)) {
$sum += $this->credito->pago->valor($moneda);
}
return $sum;
}
public function ids(): array
{
return [
'pie_id' => $this->pie?->id,
'escritura_id' => $this->escritura?->id,
'bono_pie_id' => $this->bonoPie?->id,
'credito_id' => $this->credito?->id,
'subsidio_id' => $this->subsidio?->id,
'devolucion_id' => $this->devolucion?->id
];
}
public function jsonSerialize(): mixed
{
return [
'pie' => $this->pie ?? null,
'bono_pie' => $this->bonoPie ?? null,
'credito' => $this->credito ?? null,
'escritura' => $this->escritura ?? null,
'subsidio' => $this->subsidio ?? null
'bono_pie' => $this->bonoPie ?? null,
'subsidio' => $this->subsidio ?? null,
'credito' => $this->credito ?? null,
'devolucion' => $this->devolucion ?? null
];
}
}