Implementacion agregar abono a escritura
This commit is contained in:
@ -26,6 +26,17 @@ class FormaPago implements JsonSerializable
|
||||
}
|
||||
return $sum;
|
||||
}
|
||||
public function prometido(string $moneda = Pago::UF): float
|
||||
{
|
||||
$sum = 0;
|
||||
if (isset($this->pie)) {
|
||||
$sum += $this->pie->valor($moneda);
|
||||
}
|
||||
if (isset($this->escritura)) {
|
||||
$sum += $this->escritura->pago->valor($moneda);
|
||||
}
|
||||
return $sum;
|
||||
}
|
||||
public function total(string $moneda = Pago::UF): float
|
||||
{
|
||||
$sum = $this->anticipo($moneda);
|
||||
|
@ -33,14 +33,19 @@ class Pie extends Model
|
||||
});
|
||||
}
|
||||
|
||||
public function valor(string $moneda = Pago::UF): float
|
||||
{
|
||||
$proporcion = $this->proporcion();
|
||||
if ($this->asociado !== null) {
|
||||
return $this->asociado->valor($moneda) * $proporcion;
|
||||
}
|
||||
return array_reduce($this->cuotas(), function(float $sum, Cuota $cuota) use ($moneda) {
|
||||
return $sum + $cuota->pago->valor($moneda);
|
||||
}, 0) * $proporcion;
|
||||
}
|
||||
public function pagado(string $moneda = Pago::UF): float
|
||||
{
|
||||
$proporcion = 1;
|
||||
if (count($this->asociados()) > 0) {
|
||||
$proporcion = $this->valor / ((($this->asociado) ? $this->asociado->valor : $this->valor) + array_reduce($this->asociados(), function(float $sum, Pie $pie) {
|
||||
return $sum + $pie->valor;
|
||||
}, 0));
|
||||
}
|
||||
$proporcion = $this->proporcion();
|
||||
if ($this->asociado !== null) {
|
||||
return $this->asociado->pagado($moneda) * $proporcion;
|
||||
}
|
||||
@ -49,6 +54,17 @@ class Pie extends Model
|
||||
return $sum + $cuota->pago->valor($moneda);
|
||||
}, 0) * $proporcion;
|
||||
}
|
||||
protected function proporcion(): float
|
||||
{
|
||||
$proporcion = 1;
|
||||
if (count($this->asociados()) > 0) {
|
||||
$proporcion = $this->valor / ((($this->asociado) ? $this->asociado->valor : $this->valor) + array_reduce($this->asociados(), function(float $sum, Pie $pie) {
|
||||
return $sum + $pie->valor;
|
||||
}, 0));
|
||||
}
|
||||
return $proporcion;
|
||||
}
|
||||
|
||||
public ?array $asociados;
|
||||
public function asociados(): array
|
||||
{
|
||||
|
Reference in New Issue
Block a user