From 390e79ad6d9d1b47b8c21ce61a61cc67a211b71f Mon Sep 17 00:00:00 2001 From: Juan Pablo Vial Date: Tue, 18 Jun 2024 22:41:03 -0400 Subject: [PATCH] 2024-06-18 --- api.compose.yml | 9 + app/common/Ideal/Repository.php | 7 + .../Implement/Exception/HttpResponse.php | 12 +- app/resources/routes/02_inmobiliarias.php | 10 + .../routes/api/contabilidad/nubox.php | 2 +- app/resources/routes/api/inmobiliarias.php | 2 +- .../routes/api/inmobiliarias/proveedores.php | 4 +- .../routes/api/inmobiliarias/sociedades.php | 7 + app/resources/routes/api/sociedades.php | 17 + app/resources/routes/api/ventas/facturas.php | 6 + .../routes/contabilidad/cuadratura.php | 4 + .../routes/inmobiliarias/proveedores.php | 6 + .../views/contabilidad/cuadratura.blade.php | 225 +++++ .../views/contabilidad/movimientos.blade.php | 791 ++++++++++++++++-- .../views/inmobiliarias/proveedores.blade.php | 330 ++++++++ .../views/layout/body/scripts.blade.php | 5 + .../views/layout/body/scripts/rut.blade.php | 26 + .../ventas/facturacion/emitidas.blade.php | 0 .../views/ventas/facturacion/show.blade.php | 153 +++- app/src/Controller/API/Contabilidad/Nubox.php | 18 + app/src/Controller/API/Inmobiliarias.php | 22 +- .../API/Inmobiliarias/Sociedades.php | 35 + app/src/Controller/API/Sociedades.php | 132 +++ app/src/Controller/API/Ventas/Facturas.php | 32 + app/src/Controller/Contabilidad.php | 6 + .../Controller/Inmobiliarias/Proveedores.php | 27 + app/src/Controller/Ventas/Facturacion.php | 10 +- app/src/Model/Contabilidad/Movimiento.php | 20 +- .../Contabilidad/Movimiento/Auxiliar.php | 36 + .../Movimiento/Auxiliar/Detalle.php | 39 + .../Model/Contabilidad/Movimiento/Detalle.php | 39 + app/src/Model/DatosPersona.php | 32 + app/src/Model/Inmobiliaria/Proveedor.php | 29 + app/src/Model/Movimiento/Detalle.php | 21 - app/src/Model/Persona.php | 46 + app/src/Model/Sociedad.php | 33 + app/src/Model/Venta/Factura.php | 86 ++ app/src/Model/Venta/Factura/Estado.php | 22 + app/src/Model/Venta/Factura/Estado/Tipo.php | 7 + .../Contabilidad/Movimiento/Auxiliar.php | 62 ++ .../Movimiento/Auxiliar/Detalle.php | 72 ++ .../{ => Contabilidad}/Movimiento/Detalle.php | 17 +- app/src/Repository/DatosPersona.php | 86 ++ .../Repository/Inmobiliaria/AgenteTipo.php | 1 + app/src/Repository/Inmobiliaria/Proveedor.php | 61 ++ app/src/Repository/Persona.php | 49 ++ app/src/Repository/Sociedad.php | 55 ++ app/src/Repository/Venta/Factura.php | 129 +++ app/src/Repository/Venta/Factura/Estado.php | 60 ++ .../Repository/Venta/Factura/Estado/Tipo.php | 17 + app/src/Repository/Venta/Propietario.php | 2 +- .../Service/Contabilidad/Informe/Semanal.php | 36 + app/src/Service/Contabilidad/Movimiento.php | 26 +- .../Contabilidad/Movimiento/Auxiliar.php | 42 + app/src/Service/Contabilidad/Nubox.php | 42 +- app/src/Service/Persona.php | 56 ++ app/src/Service/Sociedad.php | 85 ++ app/src/Service/Venta/Factura.php | 95 +++ app/src/Service/Venta/Propietario.php | 2 +- redisinsight.compose.yml | 14 + 60 files changed, 3162 insertions(+), 155 deletions(-) create mode 100644 api.compose.yml create mode 100644 app/resources/routes/api/inmobiliarias/sociedades.php create mode 100644 app/resources/routes/api/sociedades.php create mode 100644 app/resources/routes/api/ventas/facturas.php create mode 100644 app/resources/routes/contabilidad/cuadratura.php create mode 100644 app/resources/routes/inmobiliarias/proveedores.php create mode 100644 app/resources/views/contabilidad/cuadratura.blade.php create mode 100644 app/resources/views/inmobiliarias/proveedores.blade.php create mode 100644 app/resources/views/layout/body/scripts/rut.blade.php create mode 100644 app/resources/views/ventas/facturacion/emitidas.blade.php create mode 100644 app/src/Controller/API/Inmobiliarias/Sociedades.php create mode 100644 app/src/Controller/API/Sociedades.php create mode 100644 app/src/Controller/API/Ventas/Facturas.php create mode 100644 app/src/Controller/Inmobiliarias/Proveedores.php create mode 100644 app/src/Model/Contabilidad/Movimiento/Auxiliar.php create mode 100644 app/src/Model/Contabilidad/Movimiento/Auxiliar/Detalle.php create mode 100644 app/src/Model/Contabilidad/Movimiento/Detalle.php create mode 100644 app/src/Model/DatosPersona.php create mode 100644 app/src/Model/Inmobiliaria/Proveedor.php delete mode 100644 app/src/Model/Movimiento/Detalle.php create mode 100644 app/src/Model/Persona.php create mode 100644 app/src/Model/Sociedad.php create mode 100644 app/src/Model/Venta/Factura.php create mode 100644 app/src/Model/Venta/Factura/Estado.php create mode 100644 app/src/Model/Venta/Factura/Estado/Tipo.php create mode 100644 app/src/Repository/Contabilidad/Movimiento/Auxiliar.php create mode 100644 app/src/Repository/Contabilidad/Movimiento/Auxiliar/Detalle.php rename app/src/Repository/{ => Contabilidad}/Movimiento/Detalle.php (75%) create mode 100644 app/src/Repository/DatosPersona.php create mode 100644 app/src/Repository/Inmobiliaria/Proveedor.php create mode 100644 app/src/Repository/Persona.php create mode 100644 app/src/Repository/Sociedad.php create mode 100644 app/src/Repository/Venta/Factura.php create mode 100644 app/src/Repository/Venta/Factura/Estado.php create mode 100644 app/src/Repository/Venta/Factura/Estado/Tipo.php create mode 100644 app/src/Service/Contabilidad/Informe/Semanal.php create mode 100644 app/src/Service/Contabilidad/Movimiento/Auxiliar.php create mode 100644 app/src/Service/Persona.php create mode 100644 app/src/Service/Sociedad.php create mode 100644 app/src/Service/Venta/Factura.php create mode 100644 redisinsight.compose.yml diff --git a/api.compose.yml b/api.compose.yml new file mode 100644 index 0000000..e6cd59b --- /dev/null +++ b/api.compose.yml @@ -0,0 +1,9 @@ +services: + httpclient: + profiles: + - testing + container_name: incoviba_client + image: flawiddsouza/restfox + restart: unless-stopped + ports: + - "${HTTPCLIENT_PORT:-4004}:4004" diff --git a/app/common/Ideal/Repository.php b/app/common/Ideal/Repository.php index 527c6ae..af67721 100644 --- a/app/common/Ideal/Repository.php +++ b/app/common/Ideal/Repository.php @@ -37,6 +37,9 @@ abstract class Repository implements Define\Repository $this->connection->execute($query, [$model->id]); } + /** + * @throws EmptyResult + */ public function fetchById(int $id): Define\Model { $query = $this->connection->getQueryBuilder() @@ -45,6 +48,10 @@ abstract class Repository implements Define\Repository ->where("{$this->getKey()} = ?"); return $this->fetchOne($query, [$id]); } + + /** + * @throws EmptyResult + */ public function fetchAll(null|string|array $ordering = null): array { $query = $this->connection->getQueryBuilder() diff --git a/app/common/Implement/Exception/HttpResponse.php b/app/common/Implement/Exception/HttpResponse.php index 249c7d8..542984a 100644 --- a/app/common/Implement/Exception/HttpResponse.php +++ b/app/common/Implement/Exception/HttpResponse.php @@ -2,12 +2,18 @@ namespace Incoviba\Common\Implement\Exception; use Throwable; -use HttpResponseException; +use Exception; -class HttpResponse extends HttpResponseException +class HttpResponse extends Exception { - public function __construct($message = "", $code = 0, Throwable $previous = null) + public function __construct($reason = "", $message = "", $code = 0, Throwable $previous = null) { + $this->reason = "HTTP Reason: {$reason}"; parent::__construct($message, $code, $previous); } + protected string $reason; + public function getReason(): string + { + return $this->reason; + } } diff --git a/app/resources/routes/02_inmobiliarias.php b/app/resources/routes/02_inmobiliarias.php index 8991df7..ed79667 100644 --- a/app/resources/routes/02_inmobiliarias.php +++ b/app/resources/routes/02_inmobiliarias.php @@ -2,5 +2,15 @@ use Incoviba\Controller\Inmobiliarias; $app->group('/inmobiliarias', function($app) { + $folder = implode(DIRECTORY_SEPARATOR, [__DIR__, 'inmobiliarias']); + if (file_exists($folder)) { + $files = new FilesystemIterator($folder); + foreach ($files as $file) { + if ($file->isDir()) { + continue; + } + include_once $file->getRealPath(); + } + } $app->get('[/]', Inmobiliarias::class); })->add($app->getContainer()->get(Incoviba\Middleware\Authentication::class)); diff --git a/app/resources/routes/api/contabilidad/nubox.php b/app/resources/routes/api/contabilidad/nubox.php index 98a2836..b367ae8 100644 --- a/app/resources/routes/api/contabilidad/nubox.php +++ b/app/resources/routes/api/contabilidad/nubox.php @@ -1,5 +1,4 @@ group('/nubox/{inmobiliaria_rut}', function($app) { @@ -10,5 +9,6 @@ $app->group('/nubox/{inmobiliaria_rut}', function($app) { $app->post('/mayor[/]', [Nubox::class, 'libroMayor']); $app->post('/diario[/]', [Nubox::class, 'libroDiario']); }); + $app->get('/facturas/{dia}[/]', [Nubox::class, 'facturas']); $app->post('/cuenta', [Nubox::class, 'cuenta']); }); diff --git a/app/resources/routes/api/inmobiliarias.php b/app/resources/routes/api/inmobiliarias.php index e751cbb..ae2e1de 100644 --- a/app/resources/routes/api/inmobiliarias.php +++ b/app/resources/routes/api/inmobiliarias.php @@ -15,7 +15,7 @@ $app->group('/inmobiliarias', function($app) { $app->get('[/]', Inmobiliarias::class); }); $app->group('/inmobiliaria/{inmobiliaria_rut}', function($app) { - $app->post('/agentes', [Inmobiliarias::class, 'agentes']); + $app->post('/proveedores', [Inmobiliarias::class, 'proveedores']); $app->get('/cuentas[/]', [Inmobiliarias::class, 'cuentas']); $app->get('/proyectos[/]', [Inmobiliarias::class, 'proyectos']); }); diff --git a/app/resources/routes/api/inmobiliarias/proveedores.php b/app/resources/routes/api/inmobiliarias/proveedores.php index 9e4efef..df5ab4b 100644 --- a/app/resources/routes/api/inmobiliarias/proveedores.php +++ b/app/resources/routes/api/inmobiliarias/proveedores.php @@ -1,11 +1,11 @@ group('/agentes', function($app) { +$app->group('/proveedores', function($app) { $app->post('/add[/]', [Agentes::class, 'add']); $app->post('/register[/]', [Agentes::class, 'register']); $app->get('[/]', Agentes::class); }); -$app->group('/agente/{agente_id}', function($app) { +$app->group('/proveedor/{agente_id}', function($app) { $app->post('/edit[/]', [Agentes::class, 'edit']); }); diff --git a/app/resources/routes/api/inmobiliarias/sociedades.php b/app/resources/routes/api/inmobiliarias/sociedades.php new file mode 100644 index 0000000..5ce542d --- /dev/null +++ b/app/resources/routes/api/inmobiliarias/sociedades.php @@ -0,0 +1,7 @@ +group('/sociedades', function($app) { + $app->post('/add[/]', [Sociedades::class, 'add']); + $app->get('[/]', Sociedades::class); +}); diff --git a/app/resources/routes/api/sociedades.php b/app/resources/routes/api/sociedades.php new file mode 100644 index 0000000..7d51925 --- /dev/null +++ b/app/resources/routes/api/sociedades.php @@ -0,0 +1,17 @@ +group('/sociedades', function($app) { + $app->group('/add', function($app) { + $app->post('/one[/]', Sociedades::class . ':add'); + $app->post('[/]', Sociedades::class . ':addMany'); + }); + $app->post('/get[/]', [Sociedades::class, 'getMany']); + $app->post('/edit[/]', [Sociedades::class, 'edit']); + $app->post('/delete[/]', [Sociedades::class, 'delete']); + $app->post('/asisgnar[/]', [Sociedades::class, 'asignar']); + $app->get('[/]', Sociedades::class); +}); +$app->group('/sociedad/{sociedad_rut}', function($app) { + $app->get('[/]', Sociedades::class . ':get'); +}); diff --git a/app/resources/routes/api/ventas/facturas.php b/app/resources/routes/api/ventas/facturas.php new file mode 100644 index 0000000..697f1b0 --- /dev/null +++ b/app/resources/routes/api/ventas/facturas.php @@ -0,0 +1,6 @@ +group('/facturas', function($app) { + $app->post('/add[/]', [Facturas::class, 'add']); +}); diff --git a/app/resources/routes/contabilidad/cuadratura.php b/app/resources/routes/contabilidad/cuadratura.php new file mode 100644 index 0000000..9572b80 --- /dev/null +++ b/app/resources/routes/contabilidad/cuadratura.php @@ -0,0 +1,4 @@ +get('/cuadratura[/]', [Contabilidad::class, 'cuadratura']); diff --git a/app/resources/routes/inmobiliarias/proveedores.php b/app/resources/routes/inmobiliarias/proveedores.php new file mode 100644 index 0000000..37c6a52 --- /dev/null +++ b/app/resources/routes/inmobiliarias/proveedores.php @@ -0,0 +1,6 @@ +group('/proveedores', function($app) { + $app->get('[/]', Proveedores::class); +}); diff --git a/app/resources/views/contabilidad/cuadratura.blade.php b/app/resources/views/contabilidad/cuadratura.blade.php new file mode 100644 index 0000000..e833686 --- /dev/null +++ b/app/resources/views/contabilidad/cuadratura.blade.php @@ -0,0 +1,225 @@ +@extends('layout.base') + +@section('page_content') +
+

+ Cuadratura de Cartola Mensual +

+
+
+
+
+
+ + +
+
+ + +
+
+ +
+
+ + +
+
+
+
+ + + +
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+@endsection + +@include('layout.head.styles.datatables') +@include('layout.body.scripts.datatables') + +@push('page_scripts') + +@endpush diff --git a/app/resources/views/contabilidad/movimientos.blade.php b/app/resources/views/contabilidad/movimientos.blade.php index 5e7713c..9ff85f1 100644 --- a/app/resources/views/contabilidad/movimientos.blade.php +++ b/app/resources/views/contabilidad/movimientos.blade.php @@ -71,7 +71,7 @@ -