Cartola diaria adds all cartolas
This commit is contained in:
@ -44,31 +44,28 @@ class Cartola extends Service
|
|||||||
{
|
{
|
||||||
$ms = $this->getMovimientosDiarios($cuenta->banco, $file);
|
$ms = $this->getMovimientosDiarios($cuenta->banco, $file);
|
||||||
|
|
||||||
$cartolaData = [
|
|
||||||
'cargos' => 0,
|
|
||||||
'abonos' => 0,
|
|
||||||
'saldo' => 0
|
|
||||||
];
|
|
||||||
$movimientos = [];
|
$movimientos = [];
|
||||||
$ultimo = null;
|
|
||||||
foreach ($ms as $m) {
|
foreach ($ms as $m) {
|
||||||
$movimiento = $this->buildMovimiento($cuenta, $m);
|
$movimiento = $this->buildMovimiento($cuenta, $m);
|
||||||
$movimiento = $this->movimientoService->process($movimiento);
|
$movimiento = $this->movimientoService->process($movimiento);
|
||||||
if ($ultimo === null) {
|
$this->groupMovimientoByDay($movimiento);
|
||||||
$ultimo = $movimiento;
|
|
||||||
}
|
|
||||||
if ($ultimo->fecha < $movimiento->fecha and $movimiento->fecha <= $fecha) {
|
|
||||||
$ultimo = $movimiento;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($movimiento->fecha->getTimestamp() === $fecha->getTimestamp()) {
|
if ($movimiento->fecha->getTimestamp() === $fecha->getTimestamp()) {
|
||||||
$movimientos []= $movimiento;
|
$movimientos []= $movimiento;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach ($this->groupedMovimientos as $timestamp => $movimientos) {
|
||||||
|
$cartolaData = [
|
||||||
|
'cargos' => 0,
|
||||||
|
'abonos' => 0,
|
||||||
|
'saldo' => end($movimientos)->saldo
|
||||||
|
];
|
||||||
|
foreach ($movimientos as $movimiento) {
|
||||||
$cartolaData['cargos'] += $movimiento->cargo;
|
$cartolaData['cargos'] += $movimiento->cargo;
|
||||||
$cartolaData['abonos'] += $movimiento->abono;
|
$cartolaData['abonos'] += $movimiento->abono;
|
||||||
}
|
}
|
||||||
|
$this->buildCartola($cuenta, end($movimientos)->fecha, $cartolaData);
|
||||||
}
|
}
|
||||||
$cartolaData['saldo'] = $ultimo->saldo;
|
$cartola = $this->cartolaRepository->fetchByCuentaAndFecha($cuenta->id, $fecha);
|
||||||
$cartola = $this->buildCartola($cuenta, $fecha, $cartolaData);
|
|
||||||
return compact('cartola', 'movimientos');
|
return compact('cartola', 'movimientos');
|
||||||
}
|
}
|
||||||
public function diariaManual(Model\Inmobiliaria\Cuenta $cuenta, DateTimeInterface $fecha, array $data): array
|
public function diariaManual(Model\Inmobiliaria\Cuenta $cuenta, DateTimeInterface $fecha, array $data): array
|
||||||
@ -100,6 +97,15 @@ class Cartola extends Service
|
|||||||
$movimientos = $this->bancos[strtolower($banco->nombre)]->process($file);
|
$movimientos = $this->bancos[strtolower($banco->nombre)]->process($file);
|
||||||
return $this->bancos[strtolower($banco->nombre)]->processMovimientosDiarios($movimientos);
|
return $this->bancos[strtolower($banco->nombre)]->processMovimientosDiarios($movimientos);
|
||||||
}
|
}
|
||||||
|
protected array $groupedMovimientos = [];
|
||||||
|
protected function groupMovimientoByDay(Model\Movimiento $movimiento): Cartola
|
||||||
|
{
|
||||||
|
if (!isset($this->groupedMovimientos[$movimiento->fecha->getTimestamp()])) {
|
||||||
|
$this->groupedMovimientos[$movimiento->fecha->getTimestamp()] = [];
|
||||||
|
}
|
||||||
|
$this->groupedMovimientos[$movimiento->fecha->getTimestamp()] []= $movimiento;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
protected function buildCartola(Model\Inmobiliaria\Cuenta $cuenta, DateTimeInterface $fecha, array $data): Model\Cartola
|
protected function buildCartola(Model\Inmobiliaria\Cuenta $cuenta, DateTimeInterface $fecha, array $data): Model\Cartola
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
|
@ -71,8 +71,7 @@ class BCI extends Banco
|
|||||||
|
|
||||||
$data []= $rowData;
|
$data []= $rowData;
|
||||||
}
|
}
|
||||||
|
return array_reverse($data);
|
||||||
return $data;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getRowData(PhpSpreadsheet\Worksheet\Row $row): array
|
protected function getRowData(PhpSpreadsheet\Worksheet\Row $row): array
|
||||||
|
@ -89,7 +89,7 @@ class Santander extends Banco
|
|||||||
$data []= $rowData;
|
$data []= $rowData;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $data;
|
return array_reverse($data);
|
||||||
}
|
}
|
||||||
protected function parseHtml(string $filename): array
|
protected function parseHtml(string $filename): array
|
||||||
{
|
{
|
||||||
@ -120,7 +120,7 @@ class Santander extends Banco
|
|||||||
$data []= $row;
|
$data []= $row;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $data;
|
return array_reverse($data);
|
||||||
}
|
}
|
||||||
protected function parseHtmlRow(array $lines, int &$rowIndex): array
|
protected function parseHtmlRow(array $lines, int &$rowIndex): array
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user