Restructura contabilidad

This commit is contained in:
Juan Pablo Vial
2024-03-26 09:38:20 -03:00
parent 4b3397dd63
commit 5f56022109
57 changed files with 311 additions and 291 deletions

View File

@ -6,5 +6,5 @@ use Incoviba\Model;
interface Exporter
{
public function export(Model\Inmobiliaria $inmobiliaria, Model\Banco $banco, DateTimeInterface $mes, array $movimientos): string;
public function export(Model\Inmobiliaria $inmobiliaria, Model\Contabilidad\Banco $banco, DateTimeInterface $mes, array $movimientos): string;
}

View File

@ -1,5 +1,6 @@
<?php
use Incoviba\Controller\API\CentrosCostos;
use Incoviba\Controller\API\Contabilidad\CentrosCostos;
$app->group('/centros_costos', function($app) {
$app->post('/add[/]', [CentrosCostos::class, 'add']);

View File

@ -1,5 +1,6 @@
<?php
use Incoviba\Controller\API\Nubox;
use Incoviba\Controller\API\Contabilidad\Nubox;
$app->group('/nubox/{inmobiliaria_rut}', function($app) {
$app->get('/token[/]', [Nubox::class, 'token']);

View File

@ -1,5 +1,6 @@
<?php
use Incoviba\Controller\CentrosCostos;
use Incoviba\Controller\Contabilidad\CentrosCostos;
$app->group('/centros_costos', function($app) {
$app->get('/asignar[/]', [CentrosCostos::class, 'asignar']);

View File

@ -15,7 +15,8 @@
<div class="default text">Inmobiliaria</div>
<div class="menu">
@foreach ($inmobiliarias as $inmobiliaria)
<div class="item" data-value="{{$inmobiliaria->rut}}">{{$inmobiliaria->razon}}</div>
<div class="item"
data-value="{{$inmobiliaria->rut}}">{{$inmobiliaria->razon}}</div>
@endforeach
</div>
</div>
@ -119,20 +120,20 @@
mes: '',
movimientos: [],
centrosCostos: {
ingresos: JSON.parse('{!! json_encode(array_values(array_map(function(\Incoviba\Model\CentroCosto $centroCosto) {
ingresos: JSON.parse('{!! json_encode(array_values(array_map(function(\Incoviba\Model\Contabilidad\CentroCosto $centroCosto) {
return [
'id' => $centroCosto->id,
'descripcion' => $centroCosto->descripcion
];
}, array_filter($centrosCostos, function(\Incoviba\Model\CentroCosto $centroCosto) {
}, array_filter($centrosCostos, function(\Incoviba\Model\Contabilidad\CentroCosto $centroCosto) {
return $centroCosto->tipoCentro->descripcion === 'Ingreso';
})))) !!}'),
egresos: JSON.parse('{!! json_encode(array_values(array_map(function(\Incoviba\Model\CentroCosto $centroCosto) {
egresos: JSON.parse('{!! json_encode(array_values(array_map(function(\Incoviba\Model\Contabilidad\CentroCosto $centroCosto) {
return [
'id' => $centroCosto->id,
'descripcion' => $centroCosto->descripcion
];
}, array_filter($centrosCostos, function(\Incoviba\Model\CentroCosto $centroCosto) {
}, array_filter($centrosCostos, function(\Incoviba\Model\Contabilidad\CentroCosto $centroCosto) {
return $centroCosto->tipoCentro->descripcion === 'Egreso';
})))) !!}'),
}
@ -170,7 +171,11 @@
return
}
$(this.ids.form.banco).dropdown('change values', json.cuentas.map(cuenta => {
return {value: cuenta.banco.id, text: cuenta.banco.nombre, name: cuenta.banco.nombre}
return {
value: cuenta.banco.id,
text: cuenta.banco.nombre,
name: cuenta.banco.nombre
}
})).dropdown('refresh')
})
})
@ -294,7 +299,10 @@
month: 'numeric',
day: 'numeric'
})
const numberFormatter = new Intl.NumberFormat('es-CL', {minimumFractionDigits: 0, maximumFractionDigits: 0})
const numberFormatter = new Intl.NumberFormat('es-CL', {
minimumFractionDigits: 0,
maximumFractionDigits: 0
})
this.data.movimientos.forEach((row, idx) => {
tbody.append(
$('<tr></tr>').append(

View File

@ -33,33 +33,33 @@ return [
'port' => $container->get('REDIS_PORT')
]);
},
Incoviba\Service\Cartola::class => function(ContainerInterface $container) {
return (new Incoviba\Service\Cartola(
\Incoviba\Service\Contabilidad\Cartola::class => function(ContainerInterface $container) {
return (new \Incoviba\Service\Contabilidad\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::class),
$container->get(Incoviba\Repository\Inmobiliaria\Cuenta::class),
$container->get(Incoviba\Repository\Movimiento::class),
$container->get(Incoviba\Service\Movimiento::class),
$container->get(Incoviba\Repository\Cartola::class)
$container->get(\Incoviba\Repository\Contabilidad\Movimiento::class),
$container->get(\Incoviba\Service\Contabilidad\Movimiento::class),
$container->get(\Incoviba\Repository\Contabilidad\Cartola::class)
))
->register('security', $container->get(Incoviba\Service\Cartola\Security::class))
->register('itau', $container->get(Incoviba\Service\Cartola\Itau::class))
->register('santander', $container->get(Incoviba\Service\Cartola\Santander::class))
->register('bci', $container->get(Incoviba\Service\Cartola\BCI::class));
->register('security', $container->get(\Incoviba\Service\Contabilidad\Cartola\Security::class))
->register('itau', $container->get(\Incoviba\Service\Contabilidad\Cartola\Itau::class))
->register('santander', $container->get(\Incoviba\Service\Contabilidad\Cartola\Santander::class))
->register('bci', $container->get(\Incoviba\Service\Contabilidad\Cartola\BCI::class));
},
Incoviba\Common\Define\Contabilidad\Exporter::class => function(ContainerInterface $container) {
return $container->get(Incoviba\Service\Contabilidad\Exporter\Nubox::class);
},
Incoviba\Service\Contabilidad\Exporter\Nubox::class => function(ContainerInterface $container) {
return new Incoviba\Service\Contabilidad\Exporter\Nubox($container->get(Incoviba\Repository\CentroCosto::class),
return new Incoviba\Service\Contabilidad\Exporter\Nubox($container->get(\Incoviba\Repository\Contabilidad\CentroCosto::class),
$container->get('folders')->get('uploads'));
},
Incoviba\Service\Contabilidad\Nubox::class => function(ContainerInterface $container) {
return new Incoviba\Service\Contabilidad\Nubox(
$container->get(Psr\Log\LoggerInterface::class),
$container->get(Incoviba\Repository\Nubox::class),
$container->get(\Incoviba\Repository\Contabilidad\Nubox::class),
$container->get(Incoviba\Service\Redis::class),
new GuzzleHttp\Client(),
$container->get(Psr\Http\Message\RequestFactoryInterface::class),

View File

@ -1,15 +1,14 @@
<?php
namespace Incoviba\Controller\API\Contabilidad;
use DateTimeInterface;
use DateTimeImmutable;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Message\ResponseInterface;
use Incoviba\Common\Ideal\Controller;
use Incoviba\Common\Implement\Exception\EmptyResult;
use Incoviba\Controller\API\withJson;
use Incoviba\Repository;
use Incoviba\Service;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
class Cartolas extends Controller
{
@ -17,8 +16,8 @@ class Cartolas extends Controller
public function procesar(ServerRequestInterface $request, ResponseInterface $response,
Repository\Inmobiliaria $inmobiliariaRepository,
Repository\Banco $bancoRepository,
Service\Cartola $cartolaService): ResponseInterface
Repository\Contabilidad\Banco $bancoRepository,
Service\Contabilidad\Cartola $cartolaService): ResponseInterface
{
$body = $request->getParsedBody();
$output = [
@ -36,8 +35,8 @@ class Cartolas extends Controller
}
public function exportar(ServerRequestInterface $request, ResponseInterface $response,
Repository\Inmobiliaria $inmobiliariaRepository,
Repository\Banco $bancoRepository,
Service\Cartola $cartolaService): ResponseInterface
Repository\Contabilidad\Banco $bancoRepository,
Service\Contabilidad\Cartola $cartolaService): ResponseInterface
{
$body = $request->getParsedBody();
$output = [
@ -54,7 +53,7 @@ class Cartolas extends Controller
}
public function diaria(ServerRequestInterface $request, ResponseInterface $response,
Repository\Inmobiliaria\Cuenta $cuentaRepository,
Service\Cartola $cartolaService): ResponseInterface
Service\Contabilidad\Cartola $cartolaService): ResponseInterface
{
$body = $request->getParsedBody();
$output = [
@ -82,7 +81,7 @@ class Cartolas extends Controller
}
public function ayer(ServerRequestInterface $request, ResponseInterface $response,
Repository\Inmobiliaria\Cuenta $cuentaRepository,
Repository\Cartola $cartolaRepository): ResponseInterface
Repository\Contabilidad\Cartola $cartolaRepository): ResponseInterface
{
$body = $request->getParsedBody();
$output = [

View File

@ -1,17 +1,18 @@
<?php
namespace Incoviba\Controller\API;
namespace Incoviba\Controller\API\Contabilidad;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Message\ResponseInterface;
use Incoviba\Common\Implement\Exception\EmptyResult;
use Incoviba\Controller\API\withJson;
use Incoviba\Repository;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
class CentrosCostos
{
use withJson;
public function add(ServerRequestInterface $request, ResponseInterface $response,
Repository\CentroCosto $centroCostoRepository): ResponseInterface
Repository\Contabilidad\CentroCosto $centroCostoRepository): ResponseInterface
{
$body = $request->getParsedBody();
$output = [
@ -27,7 +28,7 @@ class CentrosCostos
return $this->withJson($response, $output);
}
public function edit(ServerRequestInterface $request, ResponseInterface $response,
Repository\CentroCosto $centroCostoRepository, int $centro_costo_id): ResponseInterface
Repository\Contabilidad\CentroCosto $centroCostoRepository, int $centro_costo_id): ResponseInterface
{
$body = $request->getParsedBody();
$output = [
@ -46,7 +47,7 @@ class CentrosCostos
return $this->withJson($response, $output);
}
public function remove(ServerRequestInterface $request, ResponseInterface $response,
Repository\CentroCosto $centroCostoRepository, int $centro_costo_id): ResponseInterface
Repository\Contabilidad\CentroCosto $centroCostoRepository, int $centro_costo_id): ResponseInterface
{
$output = [
'centro_costo_id' => $centro_costo_id,

View File

@ -2,12 +2,12 @@
namespace Incoviba\Controller\API\Contabilidad;
use DateTimeImmutable;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Message\ResponseInterface;
use Incoviba\Common\Ideal;
use Incoviba\Common\Implement;
use Incoviba\Controller\API\withJson;
use Incoviba\Repository;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
class Depositos extends Ideal\Controller
{
@ -15,9 +15,9 @@ class Depositos extends Ideal\Controller
public function inmobiliaria(ServerRequestInterface $request, ResponseInterface $response,
Repository\Inmobiliaria $inmobiliariaRepository,
Repository\Banco $bancoRepository,
Repository\Contabilidad\Banco $bancoRepository,
Repository\Inmobiliaria\Cuenta $cuentaRepository,
Repository\Deposito $dapRepository,
Repository\Contabilidad\Deposito $dapRepository,
int $inmobiliaria_rut): ResponseInterface
{
$output = [
@ -34,9 +34,9 @@ class Depositos extends Ideal\Controller
return $this->withJson($response, $output);
}
public function add(ServerRequestInterface $request, ResponseInterface $response,
Repository\Inmobiliaria $inmobiliariaRepository, Repository\Banco $bancoRepository,
Repository\Inmobiliaria $inmobiliariaRepository, Repository\Contabilidad\Banco $bancoRepository,
Repository\Inmobiliaria\Cuenta $cuentaRepository,
Repository\Deposito $dapRepository): ResponseInterface
Repository\Contabilidad\Deposito $dapRepository): ResponseInterface
{
$body = $request->getParsedBody();
$output = [

View File

@ -1,21 +1,21 @@
<?php
namespace Incoviba\Controller\API\Contabilidad;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Incoviba\Common\Ideal;
use Incoviba\Common\Implement\Exception\EmptyResult;
use Incoviba\Controller\API\withJson;
use Incoviba\Common\Ideal;
use Incoviba\Repository;
use Incoviba\Service;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
class Movimientos extends Ideal\Controller
{
use withJson;
public function detalles(ServerRequestInterface $request, ResponseInterface $response,
Service\Movimiento $movimientoService,
Repository\CentroCosto $centroCostoRepository, int $movimiento_id): ResponseInterface
Service\Contabilidad\Movimiento $movimientoService,
Repository\Contabilidad\CentroCosto $centroCostoRepository, int $movimiento_id): ResponseInterface
{
$body = $request->getParsedBody();
$output = [

View File

@ -1,11 +1,12 @@
<?php
namespace Incoviba\Controller\API;
namespace Incoviba\Controller\API\Contabilidad;
use DateTimeImmutable;
use Incoviba\Common\Implement\Exception\HttpResponse;
use Incoviba\Controller\API\withJson;
use Incoviba\Service;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Incoviba\Common\Implement\Exception\HttpResponse;
use Incoviba\Service;
class Nubox
{

View File

@ -1,32 +0,0 @@
<?php
namespace Incoviba\Controller;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Incoviba\Repository;
use Incoviba\Common\Alias\View;
class CentrosCostos
{
public function __invoke(ServerRequestInterface $request, ResponseInterface $response, View $view,
Repository\CentroCosto $centroCostoRepository,
Repository\TipoCentro $tipoCentroRepository,
Repository\CategoriaCentro $categoriaCentroRepository,
Repository\TipoCuenta $tipoCuentaRepository): ResponseInterface
{
$centrosCostos = $centroCostoRepository->fetchAll();
$tiposCentros = $tipoCentroRepository->fetchAll();
$categorias = $categoriaCentroRepository->fetchAll('descripcion');
$tiposCuentas = $tipoCuentaRepository->fetchAll();
return $view->render($response, 'contabilidad.centros_costos', compact('centrosCostos',
'tiposCentros', 'categorias', 'tiposCuentas'));
}
public function asignar(ServerRequestInterface $request, ResponseInterface $response, View $view,
Repository\CentroCosto $centroCostoRepository,
Repository\Inmobiliaria $inmobiliariaRepository): ResponseInterface
{
$centrosCostos = $centroCostoRepository->fetchAll();
$inmobiliarias = $inmobiliariaRepository->fetchAllActive('razon');
return $view->render($response, 'contabilidad.centros_costos.asignar', compact('centrosCostos', 'inmobiliarias'));
}
}

View File

@ -1,16 +1,16 @@
<?php
namespace Incoviba\Controller;
use DateTimeImmutable;
use DateInterval;
use Incoviba\Common\Ideal\Controller;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use DateTimeImmutable;
use Incoviba\Common\Alias\View;
use Incoviba\Common\Implement\Exception\{EmptyResult, EmptyRedis};
use Incoviba\Common\Ideal\Controller;
use Incoviba\Common\Implement\Exception\{EmptyRedis, EmptyResult};
use Incoviba\Model;
use Incoviba\Repository;
use Incoviba\Service;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
class Contabilidad extends Controller
{
@ -19,7 +19,7 @@ class Contabilidad extends Controller
public function diaria(ServerRequestInterface $request, ResponseInterface $response, View $view,
Service\Redis $redisService,
Repository\Inmobiliaria $inmobiliariaRepository,
Repository\CentroCosto $centroCostoRepository): ResponseInterface
Repository\Contabilidad\CentroCosto $centroCostoRepository): ResponseInterface
{
$redisKey = 'inmobiliarias';
$inmobiliarias = [];
@ -37,7 +37,7 @@ class Contabilidad extends Controller
public function depositos(ServerRequestInterface $request, ResponseInterface $response, View $view,
Service\Redis $redisService,
Repository\Inmobiliaria $inmobiliariaRepository,
Repository\Deposito $dapRepository): ResponseInterface
Repository\Contabilidad\Deposito $dapRepository): ResponseInterface
{
$redisKey = 'inmobiliarias';
$inmobiliarias = [];
@ -54,11 +54,11 @@ class Contabilidad extends Controller
$depositos = $dapRepository->fetchAll();
} catch (EmptyResult) {}
$fecha = new DateTimeImmutable('today');
$activos = array_filter($depositos, function(Model\Deposito $deposito) use ($fecha) {
$activos = array_filter($depositos, function(Model\Contabilidad\Deposito $deposito) use ($fecha) {
return $deposito->termino >= $fecha;
});
$mes = $fecha->sub(new DateInterval('P1M'));
$vencidos = array_filter($depositos, function(Model\Deposito $deposito) use ($fecha, $mes) {
$vencidos = array_filter($depositos, function(Model\Contabilidad\Deposito $deposito) use ($fecha, $mes) {
return $deposito->termino < $fecha and $deposito->termino >= $mes;
});
return $view->render($response, 'contabilidad.depositos', compact('inmobiliarias', 'activos', 'vencidos'));

View File

@ -0,0 +1,32 @@
<?php
namespace Incoviba\Controller\Contabilidad;
use Incoviba\Common\Alias\View;
use Incoviba\Repository;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
class CentrosCostos
{
public function __invoke(ServerRequestInterface $request, ResponseInterface $response, View $view,
Repository\Contabilidad\CentroCosto $centroCostoRepository,
Repository\Contabilidad\TipoCentro $tipoCentroRepository,
Repository\Contabilidad\CategoriaCentro $categoriaCentroRepository,
Repository\TipoCuenta $tipoCuentaRepository): ResponseInterface
{
$centrosCostos = $centroCostoRepository->fetchAll();
$tiposCentros = $tipoCentroRepository->fetchAll();
$categorias = $categoriaCentroRepository->fetchAll('descripcion');
$tiposCuentas = $tipoCuentaRepository->fetchAll();
return $view->render($response, 'contabilidad.centros_costos', compact('centrosCostos',
'tiposCentros', 'categorias', 'tiposCuentas'));
}
public function asignar(ServerRequestInterface $request, ResponseInterface $response, View $view,
Repository\Contabilidad\CentroCosto $centroCostoRepository,
Repository\Inmobiliaria $inmobiliariaRepository): ResponseInterface
{
$centrosCostos = $centroCostoRepository->fetchAll();
$inmobiliarias = $inmobiliariaRepository->fetchAllActive('razon');
return $view->render($response, 'contabilidad.centros_costos.asignar', compact('centrosCostos', 'inmobiliarias'));
}
}

View File

@ -1,14 +1,14 @@
<?php
namespace Incoviba\Controller;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Incoviba\Common\Alias\View;
use Incoviba\Common\Implement\Exception\EmptyResult;
use Incoviba\Common\Implement\Exception\EmptyRedis;
use Incoviba\Common\Implement\Exception\EmptyResult;
use Incoviba\Model;
use Incoviba\Repository;
use Incoviba\Service;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
class Ventas
{
@ -104,11 +104,11 @@ class Ventas
return $view->render($response, 'ventas.pies.cuotas', compact('venta'));
}
public function escriturar(ServerRequestInterface $request, ResponseInterface $response, Service\Venta $ventaService,
Repository\Banco $bancoRepository, View $view, int $venta_id): ResponseInterface
Repository\Contabilidad\Banco $bancoRepository, View $view, int $venta_id): ResponseInterface
{
$venta = $ventaService->getById($venta_id);
$bancos = $bancoRepository->fetchAll();
usort($bancos, function(Model\Banco $a, Model\Banco $b) {
usort($bancos, function(Model\Contabilidad\Banco $a, Model\Contabilidad\Banco $b) {
return strcmp($a->nombre, $b->nombre);
});
return $view->render($response, 'ventas.escriturar', compact('venta', 'bancos'));

View File

@ -1,17 +1,17 @@
<?php
namespace Incoviba\Controller\Ventas;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Incoviba\Common\Alias\View;
use Incoviba\Common\Ideal\Controller;
use Incoviba\Repository;
use Incoviba\Service;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
class Creditos extends Controller
{
public function show(ServerRequestInterface $request, ResponseInterface $response, View $view,
Service\Venta $ventaService, Repository\Banco $bancoRepository,
Service\Venta $ventaService, Repository\Contabilidad\Banco $bancoRepository,
int $venta_id): ResponseInterface
{
$venta = $ventaService->getById($venta_id);

View File

@ -2,13 +2,13 @@
namespace Incoviba\Controller\Ventas;
use DateTimeImmutable;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Incoviba\Common\Implement\Exception\EmptyResult;
use Incoviba\Common\Alias\View;
use Incoviba\Common\Implement\Exception\EmptyResult;
use Incoviba\Model;
use Incoviba\Repository;
use Incoviba\Service;
use Incoviba\Model;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
class Cuotas
{
@ -73,12 +73,12 @@ class Cuotas
$response->getBody()->write(json_encode($output));
return $response->withHeader('Content-Type', 'application/json');
}
public function add(ServerRequestInterface $request, ResponseInterface $response, Service\Venta\Pie $pieService, Repository\Venta $ventaRepository, Repository\Banco $bancoRepository, View $view, int $pie_id): ResponseInterface
public function add(ServerRequestInterface $request, ResponseInterface $response, Service\Venta\Pie $pieService, Repository\Venta $ventaRepository, Repository\Contabilidad\Banco $bancoRepository, View $view, int $pie_id): ResponseInterface
{
$pie = $pieService->getById($pie_id);
$venta = $ventaRepository->fetchByPie($pie_id);
$bancos = $bancoRepository->fetchAll();
usort($bancos, function(Model\Banco $a, Model\Banco $b) {
usort($bancos, function(Model\Contabilidad\Banco $a, Model\Contabilidad\Banco $b) {
return strcmp($a->nombre, $b->nombre);
});
return $view->render($response, 'ventas.pies.cuotas.add', compact('pie', 'venta', 'bancos'));

View File

@ -1,11 +1,11 @@
<?php
namespace Incoviba\Controller\Ventas;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Incoviba\Common\Alias\View;
use Incoviba\Repository;
use Incoviba\Service;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
class Escrituras
{
@ -22,7 +22,7 @@ class Escrituras
return $view->render($response, 'ventas.escrituras.informe', compact('venta'));
}
public function add(ServerRequestInterface $request, ResponseInterface $response, View $view,
Service\Venta $ventaService, Repository\Banco $bancoRepository,
Service\Venta $ventaService, Repository\Contabilidad\Banco $bancoRepository,
int $venta_id): ResponseInterface
{
$venta = $ventaService->getById($venta_id);

View File

@ -1,21 +1,21 @@
<?php
namespace Incoviba\Controller\Ventas;
use Incoviba\Common\Alias\View;
use Incoviba\Model;
use Incoviba\Repository;
use Incoviba\Service;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Incoviba\Common\Alias\View;
use Incoviba\Service;
use Incoviba\Repository;
use Incoviba\Model;
class Pies
{
public function cuotas(ServerRequestInterface $request, ResponseInterface $response, Service\Venta\Pie $pieService, Repository\Venta $ventaRepository, Repository\Banco $bancoRepository, View $view, int $pie_id): ResponseInterface
public function cuotas(ServerRequestInterface $request, ResponseInterface $response, Service\Venta\Pie $pieService, Repository\Venta $ventaRepository, Repository\Contabilidad\Banco $bancoRepository, View $view, int $pie_id): ResponseInterface
{
$pie = $pieService->getById($pie_id);
$venta = $ventaRepository->fetchByPie($pie_id);
$bancos = $bancoRepository->fetchAll();
usort($bancos, function(Model\Banco $a, Model\Banco $b) {
usort($bancos, function(Model\Contabilidad\Banco $a, Model\Contabilidad\Banco $b) {
return strcmp($a->nombre, $b->nombre);
});
return $view->render($response, 'ventas.pies.cuotas', compact('pie', 'venta', 'bancos'));

View File

@ -1,5 +0,0 @@
<?php
namespace Incoviba\Model;
class CategoriaCentro extends Tipo
{}

View File

@ -1,5 +1,5 @@
<?php
namespace Incoviba\Model;
namespace Incoviba\Model\Contabilidad;
use Incoviba\Common\Ideal\Model;

View File

@ -1,8 +1,9 @@
<?php
namespace Incoviba\Model;
namespace Incoviba\Model\Contabilidad;
use DateTimeInterface;
use Incoviba\Common\Ideal;
use Incoviba\Model\Inmobiliaria;
class Cartola extends Ideal\Model
{

View File

@ -0,0 +1,7 @@
<?php
namespace Incoviba\Model\Contabilidad;
use Incoviba\Model\Tipo;
class CategoriaCentro extends Tipo
{}

View File

@ -1,7 +1,8 @@
<?php
namespace Incoviba\Model;
namespace Incoviba\Model\Contabilidad;
use Incoviba\Common\Ideal;
use Incoviba\Model\TipoCuenta;
class CentroCosto extends Ideal\Model
{

View File

@ -1,8 +1,9 @@
<?php
namespace Incoviba\Model;
namespace Incoviba\Model\Contabilidad;
use DateTimeInterface;
use Incoviba\Common\Ideal;
use Incoviba\Model\Inmobiliaria;
class Deposito extends Ideal\Model
{

View File

@ -1,9 +1,10 @@
<?php
namespace Incoviba\Model;
namespace Incoviba\Model\Contabilidad;
use DateTimeInterface;
use Incoviba\Common\Ideal;
use Incoviba\Common\Implement\Exception\EmptyResult;
use Incoviba\Model\Inmobiliaria;
use Incoviba\Model\Movimiento\Detalle;
class Movimiento extends Ideal\Model

View File

@ -1,8 +1,8 @@
<?php
namespace Incoviba\Model;
namespace Incoviba\Model\Contabilidad;
use Incoviba\Common\Define;
use Incoviba\Common\Ideal;
use Incoviba\Model\Inmobiliaria;
class Nubox extends Ideal\Model
{

View File

@ -1,7 +1,8 @@
<?php
namespace Incoviba\Model;
namespace Incoviba\Model\Contabilidad;
use Incoviba\Common\Ideal;
use Incoviba\Model\Venta;
class PagoCentroCosto extends Ideal\Model
{

View File

@ -0,0 +1,7 @@
<?php
namespace Incoviba\Model\Contabilidad;
use Incoviba\Model\Tipo;
class TipoCentro extends Tipo
{}

View File

@ -8,7 +8,7 @@ use Incoviba\Model;
class Cuenta extends Ideal\Model
{
public Model\Inmobiliaria $inmobiliaria;
public Model\Banco $banco;
public Model\Contabilidad\Banco $banco;
public string $cuenta;
protected array $estados;

View File

@ -6,8 +6,8 @@ use Incoviba\Model;
class Detalle extends Ideal\Model
{
public Model\Movimiento $movimiento;
public ?Model\CentroCosto $centroCosto;
public Model\Contabilidad\Movimiento $movimiento;
public ?Model\Contabilidad\CentroCosto $centroCosto;
public ?string $detalle;
public function jsonSerialize(): mixed

View File

@ -1,5 +0,0 @@
<?php
namespace Incoviba\Model;
class TipoCentro extends Tipo
{}

View File

@ -3,7 +3,7 @@ namespace Incoviba\Model\Venta;
use DateTimeInterface;
use Incoviba\Common\Ideal\Model;
use Incoviba\Model\Banco;
use Incoviba\Model\Contabilidad\Banco;
class Cuota extends Model
{

View File

@ -3,7 +3,7 @@ namespace Incoviba\Model\Venta;
use DateTimeInterface;
use Incoviba\Common\Ideal\Model;
use Incoviba\Model\Banco;
use Incoviba\Model\Contabilidad\Banco;
class Pago extends Model
{

View File

@ -1,5 +1,5 @@
<?php
namespace Incoviba\Repository;
namespace Incoviba\Repository\Contabilidad;
use Incoviba\Common\Define;
use Incoviba\Common\Ideal;
@ -17,7 +17,7 @@ class Banco extends Ideal\Repository
public function create(?array $data = null): Define\Model
{
$map = new Implement\Repository\MapperParser(['nombre']);
return $this->parseData(new Model\Banco(), $data, $map);
return $this->parseData(new Model\Contabilidad\Banco(), $data, $map);
}
public function save(Define\Model $model): Define\Model
{

View File

@ -1,5 +1,5 @@
<?php
namespace Incoviba\Repository;
namespace Incoviba\Repository\Contabilidad;
use DateTimeInterface;
use Incoviba\Common\Define;
@ -16,7 +16,7 @@ class Cartola extends Ideal\Repository
$this->setTable('cartolas');
}
public function create(?array $data = null): Model\Cartola
public function create(?array $data = null): Model\Contabilidad\Cartola
{
$map = (new Implement\Repository\MapperParser(['cargos', 'abonos', 'saldo']))
->register('fecha', new Implement\Repository\Mapper\DateTime('fecha'))
@ -25,9 +25,9 @@ class Cartola extends Ideal\Repository
->setFunction(function($data) {
return $this->cuentaRepository->fetchById($data['cuenta_id']);
}));
return $this->parseData(new Model\Cartola(), $data, $map);
return $this->parseData(new Model\Contabilidad\Cartola(), $data, $map);
}
public function save(Define\Model $model): Model\Cartola
public function save(Define\Model $model): Model\Contabilidad\Cartola
{
$model->id = $this->saveNew([
'cuenta_id',
@ -44,7 +44,7 @@ class Cartola extends Ideal\Repository
]);
return $model;
}
public function edit(Define\Model $model, array $new_data): Model\Cartola
public function edit(Define\Model $model, array $new_data): Model\Contabilidad\Cartola
{
return $this->update($model, ['cuenta_id', 'fecha', 'cargos', 'abonos', 'saldo'], $new_data);
}
@ -57,7 +57,7 @@ class Cartola extends Ideal\Repository
->where('fecha = ?');
return $this->fetchMany($query, [$fecha->format('Y-m-d')]);
}
public function fetchByCuentaAndFecha(int $cuenta_id, DateTimeInterface $fecha): Model\Cartola
public function fetchByCuentaAndFecha(int $cuenta_id, DateTimeInterface $fecha): Model\Contabilidad\Cartola
{
$query = $this->connection->getQueryBuilder()
->select()
@ -65,7 +65,7 @@ class Cartola extends Ideal\Repository
->where('cuenta_id = ? AND fecha = ?');
return $this->fetchOne($query, [$cuenta_id, $fecha->format('Y-m-d')]);
}
public function fetchLastByCuentaAndFecha(int $cuenta_id, DateTimeInterface $fecha): Model\Cartola
public function fetchLastByCuentaAndFecha(int $cuenta_id, DateTimeInterface $fecha): Model\Contabilidad\Cartola
{
$query = $this->connection->getQueryBuilder()
->select()

View File

@ -1,8 +1,9 @@
<?php
namespace Incoviba\Repository;
namespace Incoviba\Repository\Contabilidad;
use Incoviba\Common\Define;
use Incoviba\Model;
use Incoviba\Repository\Tipo;
class CategoriaCentro extends Tipo
{
@ -14,6 +15,6 @@ class CategoriaCentro extends Tipo
protected function getBlank(): Define\Model
{
return new Model\CategoriaCentro();
return new Model\Contabilidad\CategoriaCentro();
}
}

View File

@ -1,12 +1,12 @@
<?php
namespace Incoviba\Repository;
namespace Incoviba\Repository\Contabilidad;
use Incoviba\Common\Define;
use Incoviba\Common\Ideal;
use Incoviba\Common\Implement\Repository\Mapper;
use Incoviba\Common\Implement\Repository\MapperParser;
use Incoviba\Repository;
use Incoviba\Model;
use Incoviba\Repository\TipoCuenta;
class CentroCosto extends Ideal\Repository
{
@ -18,7 +18,7 @@ class CentroCosto extends Ideal\Repository
$this->setTable('centros_costos');
}
public function create(?array $data = null): Model\CentroCosto
public function create(?array $data = null): Model\Contabilidad\CentroCosto
{
$map = (new MapperParser(['descripcion']))
->register('tipo_centro_id', (new Mapper())
@ -39,9 +39,9 @@ class CentroCosto extends Ideal\Repository
->setDefault(null))
->register('cuenta_contable', (new Mapper())
->setProperty('cuentaContable'));
return $this->parseData(new Model\CentroCosto(), $data, $map);
return $this->parseData(new Model\Contabilidad\CentroCosto(), $data, $map);
}
public function save(Define\Model $model): Model\CentroCosto
public function save(Define\Model $model): Model\Contabilidad\CentroCosto
{
$this->saveNew(
['id', 'tipo_centro_id', 'categoria_id', 'tipo_cuenta_id', 'cuenta_contable', 'descripcion'],
@ -49,12 +49,12 @@ class CentroCosto extends Ideal\Repository
);
return $model;
}
public function edit(Define\Model $model, array $new_data): Model\CentroCosto
public function edit(Define\Model $model, array $new_data): Model\Contabilidad\CentroCosto
{
return $this->update($model, ['tipo_centro_id', 'categoria_id', 'tipo_cuenta_id', 'cuenta_contable', 'descripcion'], $new_data);
}
public function fetchByDescripcion(string $descripcion): Model\CentroCosto
public function fetchByDescripcion(string $descripcion): Model\Contabilidad\CentroCosto
{
$query = $this->connection->getQueryBuilder()
->select()

View File

@ -1,12 +1,12 @@
<?php
namespace Incoviba\Repository;
namespace Incoviba\Repository\Contabilidad;
use DateTimeImmutable;
use Incoviba\Common\Define;
use Incoviba\Common\Ideal;
use Incoviba\Common\Implement;
use Incoviba\Repository;
use Incoviba\Model;
use Incoviba\Repository;
class Deposito extends Ideal\Repository
{
@ -16,7 +16,7 @@ class Deposito extends Ideal\Repository
$this->setTable('depositos');
}
public function create(?array $data = null): Model\Deposito
public function create(?array $data = null): Model\Contabilidad\Deposito
{
$map = (new Implement\Repository\MapperParser(['id', 'capital', 'futuro']))
->register('cuenta_id', (new Implement\Repository\Mapper())
@ -26,9 +26,9 @@ class Deposito extends Ideal\Repository
}))
->register('inicio', new Implement\Repository\Mapper\DateTime('inicio'))
->register('termino', new Implement\Repository\Mapper\DateTime('termino'));
return $this->parseData(new Model\Deposito(), $data, $map);
return $this->parseData(new Model\Contabilidad\Deposito(), $data, $map);
}
public function save(Define\Model $model): Model\Deposito
public function save(Define\Model $model): Model\Contabilidad\Deposito
{
$this->saveNew([
'id', 'cuenta_id', 'capital', 'futuro', 'inicio', 'termino'
@ -39,7 +39,7 @@ class Deposito extends Ideal\Repository
return $model;
}
public function edit(Define\Model $model, array $new_data): Model\Deposito
public function edit(Define\Model $model, array $new_data): Model\Contabilidad\Deposito
{
return $this->update($model, ['cuenta_id', 'capital', 'futuro', 'inicio', 'termino'], $new_data);
}

View File

@ -1,11 +1,12 @@
<?php
namespace Incoviba\Repository;
namespace Incoviba\Repository\Contabilidad;
use DateTimeInterface;
use Incoviba\Common\Define;
use Incoviba\Common\Ideal;
use Incoviba\Common\Implement;
use Incoviba\Model;
use Incoviba\Repository\Inmobiliaria;
class Movimiento extends Ideal\Repository
{
@ -15,7 +16,7 @@ class Movimiento extends Ideal\Repository
$this->setTable('movimientos');
}
public function create(?array $data = null): Model\Movimiento
public function create(?array $data = null): Model\Contabilidad\Movimiento
{
$map = (new Implement\Repository\MapperParser(['cargo', 'abono', 'saldo', 'glosa', 'documento']))
->register('fecha', new Implement\Repository\Mapper\DateTime('fecha'))
@ -25,9 +26,9 @@ class Movimiento extends Ideal\Repository
return $this->cuentaRepository->fetchById($data['cuenta_id']);
})
);
return $this->parseData(new Model\Movimiento(), $data, $map);
return $this->parseData(new Model\Contabilidad\Movimiento(), $data, $map);
}
public function save(Define\Model $model): Model\Movimiento
public function save(Define\Model $model): Model\Contabilidad\Movimiento
{
$model->id = $this->saveNew([
'cuenta_id',
@ -48,7 +49,7 @@ class Movimiento extends Ideal\Repository
]);
return $model;
}
public function edit(Define\Model $model, array $new_data): Model\Movimiento
public function edit(Define\Model $model, array $new_data): Model\Contabilidad\Movimiento
{
return $this->update($model, ['cuenta_id', 'fecha', 'glosa', 'documento', 'cargo', 'abono', 'saldo'], $new_data);
}
@ -61,7 +62,7 @@ class Movimiento extends Ideal\Repository
->where('cuenta_id = ? AND fecha = ?');
return $this->fetchMany($query, [$cuenta_id, $fecha->format('Y-m-d')]);
}
public function fetchByCuentaAndFechaAndCargoAndAbonoAndSaldo(int $cuenta_id, DateTimeInterface $fecha, int $cargo, int $abono, int $saldo): Model\Movimiento
public function fetchByCuentaAndFechaAndCargoAndAbonoAndSaldo(int $cuenta_id, DateTimeInterface $fecha, int $cargo, int $abono, int $saldo): Model\Contabilidad\Movimiento
{
$query = $this->connection->getQueryBuilder()
->select()

View File

@ -1,10 +1,11 @@
<?php
namespace Incoviba\Repository;
namespace Incoviba\Repository\Contabilidad;
use Incoviba\Common\Define;
use Incoviba\Common\Ideal;
use Incoviba\Common\Implement;
use Incoviba\Model;
use Incoviba\Repository\Inmobiliaria;
class Nubox extends Ideal\Repository
{
@ -14,7 +15,7 @@ class Nubox extends Ideal\Repository
$this->setTable('inmobiliarias_nubox');
}
public function create(?array $data = null): Model\Nubox
public function create(?array $data = null): Model\Contabilidad\Nubox
{
$map = (new Implement\Repository\MapperParser(['usuario', 'alias']))
->register('inmobiliaria_rut', (new Implement\Repository\Mapper())
@ -24,9 +25,9 @@ class Nubox extends Ideal\Repository
}))
->register('contraseña', (new Implement\Repository\Mapper())
->setProperty('password'));
return $this->parseData(new Model\Nubox(), $data, $map);
return $this->parseData(new Model\Contabilidad\Nubox(), $data, $map);
}
public function save(Define\Model $model): Model\Nubox
public function save(Define\Model $model): Model\Contabilidad\Nubox
{
$this->saveNew(
['inmobiliaria_rut', 'alias', 'usuario', 'contraseña'],
@ -34,12 +35,12 @@ class Nubox extends Ideal\Repository
);
return $model;
}
public function edit(Define\Model $model, array $new_data): Model\Nubox
public function edit(Define\Model $model, array $new_data): Model\Contabilidad\Nubox
{
return $this->update($model, ['inmobiliaria_rut', 'alias', 'usuario', 'contraseña'], $new_data);
}
public function fetchByInmobiliaria(int $inmobiliaria_rut): Model\Nubox
public function fetchByInmobiliaria(int $inmobiliaria_rut): Model\Contabilidad\Nubox
{
$query = $this->connection->getQueryBuilder()
->select()

View File

@ -1,5 +1,5 @@
<?php
namespace Incoviba\Repository;
namespace Incoviba\Repository\Contabilidad;
use Incoviba\Common\Define;
use Incoviba\Common\Ideal;
@ -15,7 +15,7 @@ class PagoCentroCosto extends Ideal\Repository
$this->setTable('pagos_centros_costos');
}
public function create(?array $data = null): Model\PagoCentroCosto
public function create(?array $data = null): Model\Contabilidad\PagoCentroCosto
{
$map = (new Implement\Repository\MapperParser())
->register('pago_id', (new Implement\Repository\Mapper())
@ -28,14 +28,14 @@ class PagoCentroCosto extends Ideal\Repository
->setFunction(function(array $data) {
return $this->centroCostoRepository->fetchById($data['centro_costo_id']);
}));
return $this->parseData(new Model\PagoCentroCosto(), $data, $map);
return $this->parseData(new Model\Contabilidad\PagoCentroCosto(), $data, $map);
}
public function save(Define\Model $model): Model\PagoCentroCosto
public function save(Define\Model $model): Model\Contabilidad\PagoCentroCosto
{
$model->id = $this->saveNew(['pago_id', 'centro_costo_id'], [$model->pago->id, $model->centroCosto->id]);
return $model;
}
public function edit(Define\Model $model, array $new_data): Model\PagoCentroCosto
public function edit(Define\Model $model, array $new_data): Model\Contabilidad\PagoCentroCosto
{
return $this->update($model, ['pago_id', 'centro_costo_id'], $new_data);
}

View File

@ -1,8 +1,9 @@
<?php
namespace Incoviba\Repository;
namespace Incoviba\Repository\Contabilidad;
use Incoviba\Common\Define;
use Incoviba\Model;
use Incoviba\Repository\Tipo;
class TipoCentro extends Tipo
{
@ -14,6 +15,6 @@ class TipoCentro extends Tipo
protected function getBlank(): Define\Model
{
return new Model\TipoCentro();
return new Model\Contabilidad\TipoCentro();
}
}

View File

@ -9,7 +9,7 @@ use Incoviba\Repository;
class Inmobiliaria extends Ideal\Repository
{
public function __construct(Define\Connection $connection, protected Repository\Banco $bancoRepository, protected Repository\Inmobiliaria\TipoSociedad $tipoSociedadRepository)
public function __construct(Define\Connection $connection, protected Contabilidad\Banco $bancoRepository, protected Repository\Inmobiliaria\TipoSociedad $tipoSociedadRepository)
{
parent::__construct($connection);
$this->setTable('inmobiliaria');

View File

@ -3,16 +3,15 @@ namespace Incoviba\Repository\Inmobiliaria;
use Incoviba\Common\Define;
use Incoviba\Common\Ideal;
use Incoviba\Repository;
use Incoviba\Model;
use Incoviba\Common\Implement;
use PhpParser\Node\Expr\BinaryOp\Mod;
use Incoviba\Model;
use Incoviba\Repository;
class Cuenta extends Ideal\Repository
{
public function __construct(Define\Connection $connection,
protected Repository\Inmobiliaria $inmobiliariaRepository,
protected Repository\Banco $bancoRepository)
protected Repository\Contabilidad\Banco $bancoRepository)
{
parent::__construct($connection);
$this->setTable('cuenta');

View File

@ -9,8 +9,8 @@ use Incoviba\Repository;
class Detalle extends Ideal\Repository
{
public function __construct(Define\Connection $connection, protected Repository\Movimiento $movimientoRepository,
protected Repository\CentroCosto $centroCostoRepository)
public function __construct(Define\Connection $connection, protected Repository\Contabilidad\Movimiento $movimientoRepository,
protected Repository\Contabilidad\CentroCosto $centroCostoRepository)
{
parent::__construct($connection);
$this->setTable('movimientos_detalles');

View File

@ -1,8 +1,6 @@
<?php
namespace Incoviba\Repository\Venta;
use PDO;
use DateTimeImmutable;
use Incoviba\Common\Define;
use Incoviba\Common\Ideal;
use Incoviba\Common\Implement;
@ -15,7 +13,7 @@ class Cuota extends Ideal\Repository
public function __construct(
Define\Connection $connection,
protected Pie $pieRepository,
protected Repository\Banco $bancoRepository,
protected Repository\Contabilidad\Banco $bancoRepository,
protected Service\Venta\Pago $pagoService
)
{

View File

@ -11,7 +11,7 @@ class Pago extends Ideal\Repository
{
public function __construct(
Define\Connection $connection,
protected Repository\Banco $bancoRepository,
protected Repository\Contabilidad\Banco $bancoRepository,
protected TipoPago $tipoPagoRepository
)
{

View File

@ -1,18 +1,17 @@
<?php
namespace Incoviba\Service;
namespace Incoviba\Service\Contabilidad;
use DateTimeInterface;
use DateTimeImmutable;
use DateInterval;
use Psr\Http\Message\StreamFactoryInterface;
use Psr\Http\Message\UploadedFileInterface;
use Psr\Log\LoggerInterface;
use Incoviba\Common\Ideal\Service;
use DateTimeInterface;
use Incoviba\Common\Define\Cartola\Banco;
use Incoviba\Common\Define\Contabilidad\Exporter;
use Incoviba\Common\Ideal\Service;
use Incoviba\Common\Implement\Exception;
use Incoviba\Model;
use Incoviba\Repository;
use Psr\Http\Message\StreamFactoryInterface;
use Psr\Http\Message\UploadedFileInterface;
use Psr\Log\LoggerInterface;
class Cartola extends Service
{
@ -20,9 +19,9 @@ class Cartola extends Service
protected StreamFactoryInterface $streamFactory, protected Exporter $exporter,
protected Repository\Inmobiliaria $inmobiliariaRepository,
protected Repository\Inmobiliaria\Cuenta $cuentaRepository,
protected Repository\Movimiento $movimientoRepository,
protected Repository\Contabilidad\Movimiento $movimientoRepository,
protected Movimiento $movimientoService,
protected Repository\Cartola $cartolaRepository) {
protected Repository\Contabilidad\Cartola $cartolaRepository) {
parent::__construct($logger);
}
@ -32,11 +31,11 @@ class Cartola extends Service
$this->bancos[$name] = $banco;
return $this;
}
public function process(Model\Inmobiliaria $inmobiliaria, Model\Banco $banco, DateTimeInterface $mes, UploadedFileInterface $file): array
public function process(Model\Inmobiliaria $inmobiliaria, Model\Contabilidad\Banco $banco, DateTimeInterface $mes, UploadedFileInterface $file): array
{
return $this->bancos[strtolower($banco->nombre)]->process($file);
}
public function export(Model\Inmobiliaria $inmobiliaria, Model\Banco $banco, DateTimeInterface $mes, array $movimientos): string
public function export(Model\Inmobiliaria $inmobiliaria, Model\Contabilidad\Banco $banco, DateTimeInterface $mes, array $movimientos): string
{
return $this->exporter->export($inmobiliaria, $banco, $mes, $movimientos);
}
@ -93,13 +92,13 @@ class Cartola extends Service
return compact('cartola', 'movimientos');
}
protected function getMovimientosDiarios(Model\Banco $banco, UploadedFileInterface $file): array
protected function getMovimientosDiarios(Model\Contabilidad\Banco $banco, UploadedFileInterface $file): array
{
$movimientos = $this->bancos[strtolower($banco->nombre)]->process($file);
return $this->bancos[strtolower($banco->nombre)]->processMovimientosDiarios($movimientos);
}
protected array $groupedMovimientos = [];
protected function groupMovimientoByDay(Model\Movimiento $movimiento): Cartola
protected function groupMovimientoByDay(Model\Contabilidad\Movimiento $movimiento): Cartola
{
if (!isset($this->groupedMovimientos[$movimiento->fecha->getTimestamp()])) {
$this->groupedMovimientos[$movimiento->fecha->getTimestamp()] = [];
@ -107,7 +106,7 @@ class Cartola extends Service
$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\Contabilidad\Cartola
{
try {
return $this->cartolaRepository->fetchByCuentaAndFecha($cuenta->id, $fecha);
@ -118,7 +117,7 @@ class Cartola extends Service
return $this->cartolaRepository->save($cartola);
}
}
protected function buildMovimiento(Model\Inmobiliaria\Cuenta $cuenta, array $data): Model\Movimiento
protected function buildMovimiento(Model\Inmobiliaria\Cuenta $cuenta, array $data): Model\Contabilidad\Movimiento
{
try {
return $this->movimientoRepository

View File

@ -1,9 +1,9 @@
<?php
namespace Incoviba\Service\Cartola;
namespace Incoviba\Service\Contabilidad\Cartola;
use Psr\Http\Message\UploadedFileInterface;
use PhpOffice\PhpSpreadsheet;
use Incoviba\Common\Ideal\Cartola\Banco;
use PhpOffice\PhpSpreadsheet;
use Psr\Http\Message\UploadedFileInterface;
class BCI extends Banco
{

View File

@ -1,10 +1,10 @@
<?php
namespace Incoviba\Service\Cartola;
namespace Incoviba\Service\Contabilidad\Cartola;
use DateTimeImmutable;
use Psr\Http\Message\UploadedFileInterface;
use PhpOffice\PhpSpreadsheet;
use Incoviba\Common\Ideal\Cartola\Banco;
use PhpOffice\PhpSpreadsheet;
use Psr\Http\Message\UploadedFileInterface;
class Itau extends Banco
{

View File

@ -1,10 +1,9 @@
<?php
namespace Incoviba\Service\Cartola;
namespace Incoviba\Service\Contabilidad\Cartola;
use DateTimeImmutable;
use Psr\Http\Message\UploadedFileInterface;
use PhpOffice\PhpSpreadsheet;
use Incoviba\Common\Ideal\Cartola\Banco;
use PhpOffice\PhpSpreadsheet;
use Psr\Http\Message\UploadedFileInterface;
class Santander extends Banco
{

View File

@ -1,11 +1,11 @@
<?php
namespace Incoviba\Service\Cartola;
namespace Incoviba\Service\Contabilidad\Cartola;
use DOMDocument;
use DateTimeImmutable;
use Psr\Http\Message\UploadedFileInterface;
use PhpOffice\PhpSpreadsheet;
use DOMDocument;
use Incoviba\Common\Ideal\Cartola\Banco;
use PhpOffice\PhpSpreadsheet;
use Psr\Http\Message\UploadedFileInterface;
class Security extends Banco
{

View File

@ -10,9 +10,9 @@ use PhpOffice\PhpSpreadsheet;
class Nubox implements Exporter
{
public function __construct(protected Repository\CentroCosto $centroCostoRepository, protected string $uploadFolder) {}
public function __construct(protected Repository\Contabilidad\CentroCosto $centroCostoRepository, protected string $uploadFolder) {}
public function export(Model\Inmobiliaria $inmobiliaria, Model\Banco $banco, DateTimeInterface $mes, array $movimientos): string
public function export(Model\Inmobiliaria $inmobiliaria, Model\Contabilidad\Banco $banco, DateTimeInterface $mes, array $movimientos): string
{
PhpSpreadsheet\Settings::setLocale('es-CL');
$workbook = new PhpSpreadsheet\Spreadsheet();

View File

@ -1,23 +1,23 @@
<?php
namespace Incoviba\Service\Contabilidad\Informe;
use DateTimeInterface;
use DateInterval;
use Psr\Log\LoggerInterface;
use DateTimeInterface;
use Incoviba\Common\Ideal;
use Incoviba\Common\Implement;
use Incoviba\Model;
use Incoviba\Repository;
use Incoviba\Service;
use Psr\Log\LoggerInterface;
class Tesoreria extends Ideal\Service
{
public function __construct(LoggerInterface $logger,
protected Repository\Inmobiliaria $inmobiliariaRepository,
protected Service\Inmobiliaria\Cuenta $cuentaService,
protected Repository\Deposito $depositoRepository,
protected Repository\Cartola $cartolaRepository,
protected Repository\Movimiento $movimientoRepository,
protected Repository\Contabilidad\Deposito $depositoRepository,
protected Repository\Contabilidad\Cartola $cartolaRepository,
protected Repository\Contabilidad\Movimiento $movimientoRepository,
protected Service\Contabilidad\Informe\Tesoreria\Excel $excelService,
protected Service\Contabilidad\Informe\Tesoreria\PDF $pdfService)
{
@ -241,11 +241,11 @@ class Tesoreria extends Ideal\Service
try {
$movimientos = $this->movimientoRepository->fetchByCuentaAndFecha($cuenta->id, $fecha);
$this->addMovimientos(self::INGRESOS,
array_filter($movimientos, function(Model\Movimiento $movimiento) {
array_filter($movimientos, function(Model\Contabilidad\Movimiento $movimiento) {
return $movimiento->abono > 0;
}));
$this->addMovimientos(self::EGRESOS,
array_filter($movimientos, function(Model\Movimiento $movimiento) {
array_filter($movimientos, function(Model\Contabilidad\Movimiento $movimiento) {
return $movimiento->cargo > 0;
}));
} catch (Implement\Exception\EmptyResult) {}

View File

@ -1,26 +1,26 @@
<?php
namespace Incoviba\Service;
namespace Incoviba\Service\Contabilidad;
use DateTimeInterface;
use Psr\Log\LoggerInterface;
use Incoviba\Common\Ideal\Service;
use Incoviba\Common\Implement;
use Incoviba\Repository;
use Incoviba\Model;
use Incoviba\Repository;
use Psr\Log\LoggerInterface;
class Movimiento extends Service
{
public function __construct(LoggerInterface $logger, protected Repository\Movimiento $movimientoRepository,
public function __construct(LoggerInterface $logger,
protected Repository\Contabilidad\Movimiento $movimientoRepository,
protected Repository\Movimiento\Detalle $detalleRepository)
{
parent::__construct($logger);
}
public function getById(int $movimiento_id): Model\Movimiento
public function getById(int $movimiento_id): Model\Contabilidad\Movimiento
{
return $this->process($this->movimientoRepository->fetchById($movimiento_id));
}
public function setDetalles(Model\Movimiento $movimiento, array $data): Model\Movimiento
public function setDetalles(Model\Contabilidad\Movimiento $movimiento, array $data): Model\Contabilidad\Movimiento
{
try {
$detalles = $this->detalleRepository->fetchByMovimiento($movimiento->id);
@ -33,7 +33,7 @@ class Movimiento extends Service
return $movimiento;
}
public function process(Model\Movimiento $movimiento): Model\Movimiento
public function process(Model\Contabilidad\Movimiento $movimiento): Model\Contabilidad\Movimiento
{
$movimiento->addFactory('detalles', (new Implement\Repository\Factory())->setCallable(function(int $movimiento_id) {
return $this->detalleRepository->fetchByMovimiento($movimiento_id);

View File

@ -2,20 +2,20 @@
namespace Incoviba\Service\Contabilidad;
use DateTimeInterface;
use Incoviba\Common\Ideal;
use Incoviba\Common\Implement\Exception;
use Incoviba\Repository;
use Incoviba\Service;
use Psr\Http\Client\ClientInterface;
use Psr\Http\Message\RequestFactoryInterface;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\StreamInterface;
use Psr\Log\LoggerInterface;
use Incoviba\Common\Implement\Exception;
use Incoviba\Repository;
use Incoviba\Service;
use Incoviba\Common\Ideal;
class Nubox extends Ideal\Service
{
public function __construct(protected LoggerInterface $logger,
protected Repository\Nubox $nuboxRepository,
protected Repository\Contabilidad\Nubox $nuboxRepository,
protected Service\Redis $redisService,
protected ClientInterface $client,
protected RequestFactoryInterface $requestFactory,