diff --git a/app/resources/routes/api/contabilidad/movimientos.php b/app/resources/routes/api/contabilidad/movimientos.php
index 2500465..397b528 100644
--- a/app/resources/routes/api/contabilidad/movimientos.php
+++ b/app/resources/routes/api/contabilidad/movimientos.php
@@ -9,4 +9,5 @@ $app->group('/movimientos', function($app) {
});
$app->group('/movimiento/{movimiento_id}', function($app) {
$app->post('/detalles[/]', [Movimientos::class, 'detalles']);
+ $app->delete('[/]', [Movimientos::class, 'remove']);
});
diff --git a/app/resources/views/contabilidad/movimientos.blade.php b/app/resources/views/contabilidad/movimientos.blade.php
index 0e70110..2d204f1 100644
--- a/app/resources/views/contabilidad/movimientos.blade.php
+++ b/app/resources/views/contabilidad/movimientos.blade.php
@@ -50,7 +50,7 @@
-
+
-
+ @include('contabilidad.movimientos.edit_modal')
@endsection
@include('layout.body.scripts.datatables')
@@ -158,557 +93,29 @@
@endpush
@push('page_scripts')
+ @include('contabilidad.movimientos.scripts.event_handler')
+ @include('contabilidad.movimientos.scripts.loading_handler')
+ @include('contabilidad.movimientos.scripts.control_form')
+ @include('contabilidad.movimientos.scripts.movimientos_table')
+ @include('contabilidad.movimientos.scripts.edit_modal')
+ @include('contabilidad.movimientos.scripts.edit_form')
+ @include('contabilidad.movimientos.scripts.movimientos_handler')
+ @include('contabilidad.movimientos.scripts.results_handler')
diff --git a/app/resources/views/contabilidad/movimientos/scripts/edit_form.blade.php b/app/resources/views/contabilidad/movimientos/scripts/edit_form.blade.php
new file mode 100644
index 0000000..1a4894d
--- /dev/null
+++ b/app/resources/views/contabilidad/movimientos/scripts/edit_form.blade.php
@@ -0,0 +1,98 @@
+
diff --git a/app/resources/views/contabilidad/movimientos/scripts/edit_modal.blade.php b/app/resources/views/contabilidad/movimientos/scripts/edit_modal.blade.php
new file mode 100644
index 0000000..2661d78
--- /dev/null
+++ b/app/resources/views/contabilidad/movimientos/scripts/edit_modal.blade.php
@@ -0,0 +1,74 @@
+
diff --git a/app/resources/views/contabilidad/movimientos/scripts/event_handler.blade.php b/app/resources/views/contabilidad/movimientos/scripts/event_handler.blade.php
new file mode 100644
index 0000000..cf87ca2
--- /dev/null
+++ b/app/resources/views/contabilidad/movimientos/scripts/event_handler.blade.php
@@ -0,0 +1,54 @@
+
diff --git a/app/resources/views/contabilidad/movimientos/scripts/loading_handler.blade.php b/app/resources/views/contabilidad/movimientos/scripts/loading_handler.blade.php
new file mode 100644
index 0000000..a58aa82
--- /dev/null
+++ b/app/resources/views/contabilidad/movimientos/scripts/loading_handler.blade.php
@@ -0,0 +1,16 @@
+
diff --git a/app/resources/views/contabilidad/movimientos/scripts/movimientos_handler.blade.php b/app/resources/views/contabilidad/movimientos/scripts/movimientos_handler.blade.php
new file mode 100644
index 0000000..273f31c
--- /dev/null
+++ b/app/resources/views/contabilidad/movimientos/scripts/movimientos_handler.blade.php
@@ -0,0 +1,86 @@
+
diff --git a/app/resources/views/contabilidad/movimientos/scripts/movimientos_table.blade.php b/app/resources/views/contabilidad/movimientos/scripts/movimientos_table.blade.php
new file mode 100644
index 0000000..cd14817
--- /dev/null
+++ b/app/resources/views/contabilidad/movimientos/scripts/movimientos_table.blade.php
@@ -0,0 +1,228 @@
+
diff --git a/app/resources/views/contabilidad/movimientos/scripts/results_handler.blade.php b/app/resources/views/contabilidad/movimientos/scripts/results_handler.blade.php
new file mode 100644
index 0000000..df7d63a
--- /dev/null
+++ b/app/resources/views/contabilidad/movimientos/scripts/results_handler.blade.php
@@ -0,0 +1,37 @@
+
diff --git a/app/src/Controller/API/Contabilidad/Movimientos.php b/app/src/Controller/API/Contabilidad/Movimientos.php
index 2cda653..6a65d1f 100644
--- a/app/src/Controller/API/Contabilidad/Movimientos.php
+++ b/app/src/Controller/API/Contabilidad/Movimientos.php
@@ -16,7 +16,8 @@ class Movimientos extends Ideal\Controller
public function detalles(ServerRequestInterface $request, ResponseInterface $response,
Service\Contabilidad\Movimiento $movimientoService,
- Repository\Contabilidad\CentroCosto $centroCostoRepository, int $movimiento_id): ResponseInterface
+ Repository\Contabilidad\CentroCosto $centroCostoRepository,
+ int $movimiento_id): ResponseInterface
{
$body = $request->getParsedBody();
$output = [
@@ -50,7 +51,8 @@ class Movimientos extends Ideal\Controller
} catch (EmptyResult) {}
return $this->withJson($response, $output);
}
- public function __invoke(ServerRequestInterface $request, ResponseInterface $response, Service\Contabilidad\Movimiento $movimientoService): ResponseInterface
+ public function __invoke(ServerRequestInterface $request, ResponseInterface $response,
+ Service\Contabilidad\Movimiento $movimientoService): ResponseInterface
{
$output = [
'movimientos' => []
@@ -92,6 +94,38 @@ class Movimientos extends Ideal\Controller
}
return $this->withJson($response, $output);
}
+ public function edit(ServerRequestInterface $request, ResponseInterface $response,
+ Service\Contabilidad\Movimiento $movimientoService): ResponseInterface
+ {
+ $body = $request->getParsedBody();
+ $output = [
+ 'input' => $body,
+ 'status' => false,
+ 'movimiento' => null
+ ];
+ try {
+ $movimiento = $movimientoService->getById($body['id']);
+ $output['movimiento'] = $movimientoService->edit($movimiento, $body);
+ $output['status'] = true;
+ } catch (EmptyResult) {}
+ return $this->withJson($response, $output);
+ }
+ public function remove(ServerRequestInterface $request, ResponseInterface $response,
+ Service\Contabilidad\Movimiento $movimientoService, int $movimiento_id): ResponseInterface
+ {
+ $output = [
+ 'movimiento_id' => $movimiento_id,
+ 'movimiento' => null,
+ 'status' => false
+ ];
+ try {
+ $movimiento = $movimientoService->getById($movimiento_id);
+ $movimientoService->remove($movimiento);
+ $output['movimiento'] = $movimiento;
+ $output['status'] = true;
+ } catch (EmptyResult) {}
+ return $this->withJson($response, $output);
+ }
protected function movimientosToArray(array $movimientos): array
{
diff --git a/app/src/Repository/Contabilidad/Movimiento/Detalle.php b/app/src/Repository/Contabilidad/Movimiento/Detalle.php
index ba526c2..c7a298a 100644
--- a/app/src/Repository/Contabilidad/Movimiento/Detalle.php
+++ b/app/src/Repository/Contabilidad/Movimiento/Detalle.php
@@ -45,6 +45,20 @@ class Detalle extends Ideal\Repository
{
return $this->update($model, ['movimiento_id', 'centro_costo_id', 'rut', 'digito', 'nombres', 'categoria', 'detalle', 'identificador'], $new_data);
}
+ public function filterData(array $data): array
+ {
+ $map = [
+ 'costo_id' => 'centro_costo_id',
+ 'nombre' => 'nombres',
+ ];
+ foreach ($map as $source => $dest) {
+ if (key_exists($source, $data)) {
+ $data[$dest] = $data[$source];
+ unset($data[$source]);
+ }
+ }
+ return $data;
+ }
public function fetchByMovimiento(int $movimiento_id): Model\Contabilidad\Movimiento\Detalle
{
diff --git a/app/src/Service/Contabilidad/Movimiento.php b/app/src/Service/Contabilidad/Movimiento.php
index 604e14d..ea86519 100644
--- a/app/src/Service/Contabilidad/Movimiento.php
+++ b/app/src/Service/Contabilidad/Movimiento.php
@@ -62,6 +62,19 @@ class Movimiento extends Service
}
return $movimiento;
}
+ public function edit(Model\Contabilidad\Movimiento $movimiento, array $data): Model\Contabilidad\Movimiento
+ {
+ try {
+ $detalles = $this->detalleRepository->fetchByMovimiento($movimiento->id);
+ $mappedData = $this->detalleRepository->filterData($data);
+ $this->detalleRepository->edit($detalles, $mappedData);
+ } catch (Implement\Exception\EmptyResult) {}
+ return $this->process($movimiento);
+ }
+ public function remove(Model\Contabilidad\Movimiento $movimiento): void
+ {
+ $this->movimientoRepository->remove($movimiento);
+ }
public function process(Model\Contabilidad\Movimiento $movimiento): Model\Contabilidad\Movimiento
{