diff --git a/app/resources/routes/api/contabilidad/cartolas.php b/app/resources/routes/api/contabilidad/cartolas.php
index 9f86632..52cdf3c 100644
--- a/app/resources/routes/api/contabilidad/cartolas.php
+++ b/app/resources/routes/api/contabilidad/cartolas.php
@@ -1,12 +1,13 @@
group('/cartolas', function($app) {
- $app->post('/procesar[/]', [Contabilidad::class, 'procesarCartola']);
+ $app->post('/procesar[/]', [Cartolas::class, 'procesar']);
});
$app->group('/cartola', function($app) {
$app->group('/diaria', function($app) {
- $app->post('/procesar[/]', [Contabilidad::class, 'procesarCartolaDiaria']);
+ $app->post('/ayer[/]', [Cartolas::class, 'ayer']);
+ $app->post('/procesar[/]', [Cartolas::class, 'diaria']);
});
- $app->post('/exportar[/]', [Contabilidad::class, 'exportarCartola']);
+ $app->post('/exportar[/]', [Cartolas::class, 'exportar']);
});
diff --git a/app/resources/routes/contabilidad/cartolas.php b/app/resources/routes/contabilidad/cartolas.php
new file mode 100644
index 0000000..7bd0058
--- /dev/null
+++ b/app/resources/routes/contabilidad/cartolas.php
@@ -0,0 +1,6 @@
+group('/cartolas', function($app) {
+ $app->get('/diaria[/]', [Contabilidad::class, 'diaria']);
+});
diff --git a/app/resources/views/contabilidad/cartolas/diaria.blade.php b/app/resources/views/contabilidad/cartolas/diaria.blade.php
new file mode 100644
index 0000000..26b4d66
--- /dev/null
+++ b/app/resources/views/contabilidad/cartolas/diaria.blade.php
@@ -0,0 +1,323 @@
+@extends('layout.base')
+
+@section('page_content')
+
+
+
+
+
+
+
+ Hoy |
+ Ăšltimo Saldo |
+ Saldo Actual |
+ Diferencia |
+
+
+
+
+
+
+
+
+
+ Fecha |
+ Glosa |
+ Documento |
+ Cargo |
+ Abono |
+ Saldo |
+ Orden |
+
+
+
+
+
+@endsection
+
+@include('layout.head.styles.datatables')
+@include('layout.body.scripts.datatables')
+
+@push('page_scripts')
+
+@endpush
diff --git a/app/setup/setups/services.php b/app/setup/setups/services.php
index fa72cdc..d0e986c 100644
--- a/app/setup/setups/services.php
+++ b/app/setup/setups/services.php
@@ -32,6 +32,7 @@ return [
},
Incoviba\Service\Cartola::class => function(ContainerInterface $container) {
return (new Incoviba\Service\Cartola(
+ $container->get(Psr\Log\LoggerInterface::class),
$container->get(Psr\Http\Message\StreamFactoryInterface::class),
$container->get(Incoviba\Common\Define\Contabilidad\Exporter::class),
$container->get(Incoviba\Repository\Inmobiliaria\Cuenta::class),
diff --git a/app/src/Controller/API/Contabilidad.php b/app/src/Controller/API/Contabilidad.php
index 5f8bc56..c99ce31 100644
--- a/app/src/Controller/API/Contabilidad.php
+++ b/app/src/Controller/API/Contabilidad.php
@@ -13,62 +13,5 @@ class Contabilidad extends Controller
{
use withJson;
- public function procesarCartola(ServerRequestInterface $request, ResponseInterface $response,
- Repository\Inmobiliaria $inmobiliariaRepository,
- Repository\Banco $bancoRepository,
- Service\Cartola $cartolaService): ResponseInterface
- {
- $body = $request->getParsedBody();
- $output = [
- 'input' => $body,
- 'movimientos' => []
- ];
- try {
- $inmobiliaria = $inmobiliariaRepository->fetchById($body['inmobiliaria']);
- $banco = $bancoRepository->fetchById($body['banco']);
- $mes = new DateTimeImmutable($body['mes']);
- $file = $request->getUploadedFiles()['file'];
- $output['movimientos'] = $cartolaService->process($inmobiliaria, $banco, $mes, $file);
- } catch (EmptyResult) {}
- return $this->withJson($response, $output);
- }
- public function exportarCartola(ServerRequestInterface $request, ResponseInterface $response,
- Repository\Inmobiliaria $inmobiliariaRepository,
- Repository\Banco $bancoRepository,
- Service\Cartola $cartolaService): ResponseInterface
- {
- $body = $request->getParsedBody();
- $output = [
- 'input' => $body,
- 'filename' => ''
- ];
- try {
- $inmobiliaria = $inmobiliariaRepository->fetchById($body['inmobiliaria']);
- $banco = $bancoRepository->fetchById($body['banco']);
- $mes = new DateTimeImmutable($body['mes']);
- $output['filename'] = $cartolaService->export($inmobiliaria, $banco, $mes, json_decode($body['movimientos']));
- } catch (EmptyResult) {}
- return $this->withJson($response, $output);
- }
- public function procesarCartolaDiaria(ServerRequestInterface $request, ResponseInterface $response,
- Repository\Inmobiliaria $inmobiliariaRepository,
- Repository\Banco $bancoRepository,
- Service\Cartola $cartolaService): ResponseInterface
- {
- $body = $request->getParsedBody();
- $output = [
- 'input' => $body,
- 'cartola' => []
- ];
- try {
- $inmobiliaria = $inmobiliariaRepository->fetchById($body['inmobiliaria_rut']);
- $banco = $bancoRepository->fetchById($body['banco_id']);
- $fecha = new DateTimeImmutable($body['fecha']);
- $file = $request->getUploadedFiles()['file'];
- $output['cartola'] = $cartolaService->diaria($inmobiliaria, $banco, $fecha, $file);
- } catch (EmptyResult $exception) {
- $this->logger->debug($exception);
- }
- return $this->withJson($response, $output);
- }
+
}
diff --git a/app/src/Controller/API/Contabilidad/Cartolas.php b/app/src/Controller/API/Contabilidad/Cartolas.php
new file mode 100644
index 0000000..299c011
--- /dev/null
+++ b/app/src/Controller/API/Contabilidad/Cartolas.php
@@ -0,0 +1,98 @@
+getParsedBody();
+ $output = [
+ 'input' => $body,
+ 'movimientos' => []
+ ];
+ try {
+ $inmobiliaria = $inmobiliariaRepository->fetchById($body['inmobiliaria']);
+ $banco = $bancoRepository->fetchById($body['banco']);
+ $mes = new DateTimeImmutable($body['mes']);
+ $file = $request->getUploadedFiles()['file'];
+ $output['movimientos'] = $cartolaService->process($inmobiliaria, $banco, $mes, $file);
+ } catch (EmptyResult) {}
+ return $this->withJson($response, $output);
+ }
+ public function exportar(ServerRequestInterface $request, ResponseInterface $response,
+ Repository\Inmobiliaria $inmobiliariaRepository,
+ Repository\Banco $bancoRepository,
+ Service\Cartola $cartolaService): ResponseInterface
+ {
+ $body = $request->getParsedBody();
+ $output = [
+ 'input' => $body,
+ 'filename' => ''
+ ];
+ try {
+ $inmobiliaria = $inmobiliariaRepository->fetchById($body['inmobiliaria']);
+ $banco = $bancoRepository->fetchById($body['banco']);
+ $mes = new DateTimeImmutable($body['mes']);
+ $output['filename'] = $cartolaService->export($inmobiliaria, $banco, $mes, json_decode($body['movimientos']));
+ } catch (EmptyResult) {}
+ return $this->withJson($response, $output);
+ }
+ public function diaria(ServerRequestInterface $request, ResponseInterface $response,
+ Repository\Inmobiliaria $inmobiliariaRepository,
+ Repository\Banco $bancoRepository,
+ Service\Cartola $cartolaService): ResponseInterface
+ {
+ $body = $request->getParsedBody();
+ $output = [
+ 'input' => $body,
+ 'cartola' => []
+ ];
+ try {
+ $inmobiliaria = $inmobiliariaRepository->fetchById($body['inmobiliaria_rut']);
+ $banco = $bancoRepository->fetchById($body['banco_id']);
+ $fecha = new DateTimeImmutable($body['fecha']);
+ $file = $request->getUploadedFiles()['file'];
+ $output['cartola'] = $cartolaService->diaria($inmobiliaria, $banco, $fecha, $file);
+ } catch (EmptyResult $exception) {
+ $this->logger->debug($exception);
+ }
+ return $this->withJson($response, $output);
+ }
+ public function ayer(ServerRequestInterface $request, ResponseInterface $response,
+ Repository\Inmobiliaria $inmobiliariaRepository,
+ Repository\Banco $bancoRepository,
+ Repository\Inmobiliaria\Cuenta $cuentaRepository,
+ Repository\Cartola $cartolaRepository): ResponseInterface
+ {
+ $body = $request->getParsedBody();
+ $output = [
+ 'input' => $body,
+ 'cartola' => []
+ ];
+ try {
+ $inmobiliaria = $inmobiliariaRepository->fetchById($body['inmobiliaria_rut']);
+ $banco = $bancoRepository->fetchById($body['banco_id']);
+ $cuenta = $cuentaRepository->fetchByInmobiliariaAndBanco($inmobiliaria->rut, $banco->id);
+ $fecha = new DateTimeImmutable($body['fecha']);
+ $output['cartola'] = $cartolaRepository->fetchByCuentaAndFecha($cuenta->id, $fecha);
+ } catch (EmptyResult $exception) {
+ $this->logger->critical($exception);
+ }
+ return $this->withJson($response, $output);
+ }
+}
diff --git a/app/src/Controller/Contabilidad.php b/app/src/Controller/Contabilidad.php
new file mode 100644
index 0000000..8653d8c
--- /dev/null
+++ b/app/src/Controller/Contabilidad.php
@@ -0,0 +1,31 @@
+fetchRedis($redisService, $redisKey);
+ } catch (EmptyRedis) {
+ try {
+ $inmobiliarias = $inmobiliariaRepository->fetchAll();
+ $this->saveRedis($redisService, $redisKey, $inmobiliarias, 30 * 24 * 60 * 60);
+ } catch (EmptyResult) {}
+ }
+ return $view->render($response, 'contabilidad.cartolas.diaria', compact('inmobiliarias'));
+ }
+}
diff --git a/app/src/Service/Cartola.php b/app/src/Service/Cartola.php
index e870f53..ae7f927 100644
--- a/app/src/Service/Cartola.php
+++ b/app/src/Service/Cartola.php
@@ -5,18 +5,23 @@ use DateTimeInterface;
use DateTimeImmutable;
use Psr\Http\Message\StreamFactoryInterface;
use Psr\Http\Message\UploadedFileInterface;
+use Psr\Log\LoggerInterface;
+use Incoviba\Common\Ideal\Service;
use Incoviba\Common\Define\Cartola\Banco;
use Incoviba\Common\Define\Contabilidad\Exporter;
use Incoviba\Common\Implement\Exception;
use Incoviba\Model;
use Incoviba\Repository;
-class Cartola
+class Cartola extends Service
{
- public function __construct(protected StreamFactoryInterface $streamFactory, protected Exporter $exporter,
+ public function __construct(LoggerInterface $logger,
+ protected StreamFactoryInterface $streamFactory, protected Exporter $exporter,
protected Repository\Inmobiliaria\Cuenta $cuentaRepository,
protected Repository\Movimiento $movimientoRepository,
- protected Repository\Cartola $cartolaRepository) {}
+ protected Repository\Cartola $cartolaRepository) {
+ parent::__construct($logger);
+ }
protected array $bancos;
public function register(string $name, Banco $banco): Cartola
@@ -46,9 +51,9 @@ class Cartola
$movimientos = [];
foreach ($ms as $m) {
$movimiento = $this->buildMovimiento($cuenta, $m);
- $movimientos []= $movimiento;
- if ($movimiento->fecha === $fecha) {
+ if ($movimiento->fecha->getTimestamp() === $fecha->getTimestamp()) {
+ $movimientos []= $movimiento;
$cartolaData['cargos'] += $movimiento->cargo;
$cartolaData['abonos'] += $movimiento->abono;
}
@@ -61,7 +66,7 @@ class Cartola
protected function getMovimientosDiarios(Model\Banco $banco, UploadedFileInterface $file): array
{
$movimientos = $this->bancos[strtolower($banco->nombre)]->process($file);
- switch ($banco->nombre) {
+ switch (strtolower($banco->nombre)) {
case 'security':
$movimientos = $this->processMovimientosDiariosSecurity($movimientos);
break;