Show one month at a time, and change month with calendar and buttons
This commit is contained in:
@ -1,7 +1,9 @@
|
||||
<?php
|
||||
namespace Contabilidad;
|
||||
|
||||
use DateTimeInterface;
|
||||
use Carbon\Carbon;
|
||||
use PhpParser\Node\Expr\AssignOp\Mod;
|
||||
use ProVM\Common\Alias\Model;
|
||||
use Contabilidad\Common\Service\TiposCambios as Service;
|
||||
|
||||
@ -54,7 +56,6 @@ class Cuenta extends Model {
|
||||
}
|
||||
protected $transacciones;
|
||||
public function transacciones($limit = null, $start = 0) {
|
||||
if ($this->transacciones === null) {
|
||||
$transacciones = Model::factory(Transaccion::class)
|
||||
->select('transacciones.*')
|
||||
->join('cuentas', 'cuentas.id = transacciones.debito_id OR cuentas.id = transacciones.credito_id')
|
||||
@ -64,15 +65,52 @@ class Cuenta extends Model {
|
||||
$transacciones = $transacciones->limit($limit)
|
||||
->offset($start);
|
||||
}
|
||||
$this->transacciones = $transacciones->findMany();
|
||||
foreach ($this->transacciones as &$transaccion) {
|
||||
$transacciones = $transacciones->findMany();
|
||||
foreach ($transacciones as &$transaccion) {
|
||||
$transaccion->setFactory($this->factory);
|
||||
if ($transaccion->desde_id === $this->id) {
|
||||
if ($transaccion->debito_id === $this->id) {
|
||||
$transaccion->valor = - $transaccion->valor;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $this->transacciones;
|
||||
return $transacciones;
|
||||
}
|
||||
public function transaccionesMonth(Carbon $month) {
|
||||
$start = $month->copy()->startOfMonth();
|
||||
$end = $month->copy()->endOfMonth();
|
||||
|
||||
$transacciones = Model::factory(Transaccion::class)
|
||||
->select('transacciones.*')
|
||||
->join('cuentas', 'cuentas.id = transacciones.debito_id OR cuentas.id = transacciones.credito_id')
|
||||
->whereEqual('cuentas.id', $this->id)
|
||||
->whereRaw("transacciones.fecha BETWEEN '{$start->format('Y-m-d')}' AND '{$end->format('Y-m-d')}'")
|
||||
->orderByAsc('transacciones.fecha');
|
||||
$transacciones = $transacciones->findMany();
|
||||
|
||||
foreach ($transacciones as &$transaccion) {
|
||||
$transaccion->setFactory($this->factory);
|
||||
if ($transaccion->desde_id === $this->id) {
|
||||
$transaccion->valor = - $transaccion->valor;
|
||||
}
|
||||
}
|
||||
|
||||
return $transacciones;
|
||||
}
|
||||
public function acumulacion(Carbon $date) {
|
||||
$abonos = Model::factory(Transaccion::class)
|
||||
->whereEqual('credito_id', $this->id)
|
||||
->whereLt('fecha', $date->format('Y-m-d'))
|
||||
->groupBy('credito_id')
|
||||
->sum('valor');
|
||||
$cargos = Model::factory(Transaccion::class)
|
||||
->whereEqual('debito_id', $this->id)
|
||||
->whereLt('fecha', $date->format('Y-m-d'))
|
||||
->groupBy('debito_id')
|
||||
->sum('valor');
|
||||
|
||||
if (in_array($this->tipo()->descripcion, ['activo', 'banco', 'perdida'])) {
|
||||
return $abonos - $cargos;
|
||||
}
|
||||
return $cargos - $abonos;
|
||||
}
|
||||
protected $saldo;
|
||||
public function saldo(Service $service = null, $in_clp = false) {
|
||||
|
Reference in New Issue
Block a user