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 @@ -