diff --git a/api/common/Controller/Cuentas.php b/api/common/Controller/Cuentas.php
index 0100df3..b27fe66 100644
--- a/api/common/Controller/Cuentas.php
+++ b/api/common/Controller/Cuentas.php
@@ -82,6 +82,15 @@ class Cuentas {
];
return $this->withJson($response, $output);
}
+ public function categoria(Request $request, Response $response, Factory $factory, $cuenta_id): Response {
+ $cuenta = $factory->find(Cuenta::class)->one($cuenta_id);
+ $output = [
+ 'input' => $cuenta_id,
+ 'cuenta' => $cuenta?->toArray(),
+ 'categoria' => $cuenta?->categoria()->toArray()
+ ];
+ return $this->withJson($response, $output);
+ }
public function entradas(Request $request, Response $response, Factory $factory, $cuenta_id): Response {
$cuenta = $factory->find(Cuenta::class)->one($cuenta_id);
$entradas = null;
@@ -120,6 +129,8 @@ class Cuentas {
$arr['valorFormateado'] = $cuenta->moneda()->format($arr['valor']);
}
}
+ $arr['debito']['categoria'] = $transaccion->debito()->categoria()->toArray();
+ $arr['credito']['categoria'] = $transaccion->credito()->categoria()->toArray();
$transaccion = $arr;
}
}
diff --git a/api/resources/routes/cuentas.php b/api/resources/routes/cuentas.php
index 06ea592..c1df50c 100644
--- a/api/resources/routes/cuentas.php
+++ b/api/resources/routes/cuentas.php
@@ -11,6 +11,7 @@ $app->group('/cuenta/{cuenta_id}', function($app) {
$app->get('/amount', [Cuentas::class, 'transaccionesAmount']);
$app->get('[/{limit:[0-9]+}[/{start:[0-9]+}]]', [Cuentas::class, 'transacciones']);
});
+ $app->get('/categoria', [Cuentas::class, 'categoria']);
$app->put('/edit', [Cuentas::class, 'edit']);
$app->delete('/delete', [Cuentas::class, 'delete']);
$app->get('[/]', [Cuentas::class, 'show']);
diff --git a/ui/public/assets/scripts/cuentas.show.js b/ui/public/assets/scripts/cuentas.show.js
index c4f03c6..cc551ab 100644
--- a/ui/public/assets/scripts/cuentas.show.js
+++ b/ui/public/assets/scripts/cuentas.show.js
@@ -96,40 +96,44 @@ const transacciones = {
return
}
this.cuenta = data.cuenta
- this.saldo = this.cuenta.saldo
- $('#cuenta').html(this.cuenta.nombre + ' (' + this.cuenta.categoria.nombre + ')').append(
- $('').attr('class', 'square full icon').css('color', '#' + this.cuenta.tipo.color)
- )
- const amount = data.transacciones
- const step = 50
- for (let i = 0; i < amount; i += step) {
- promises.push(
- sendGet(_urls.api + '/cuenta/' + this.cuenta_id + '/transacciones/' + step + '/' + i)
+ sendGet(_urls.api + '/cuenta/' + this.cuenta_id + '/categoria').then((resp) => {
+ this.cuenta.categoria = resp.categoria
+ }).then(() => {
+ this.saldo = this.cuenta.saldo
+ $('#cuenta').html(this.cuenta.nombre + ' (' + this.cuenta.categoria.nombre + ')').append(
+ $('').attr('class', 'square full icon').css('color', '#' + this.cuenta.tipo.color)
)
- }
- if (promises.length > 0) {
- Promise.all(promises).then((data_arr) => {
- this.transacciones = []
- data_arr.forEach(data => {
- if (data.transacciones === null || data.transacciones.length === 0) {
- return
- }
- $.each(data.transacciones, (i, el) => {
- const tr = new Transaccion(el)
- tr.setCuenta(this.cuenta)
- tr.setModal(this.modal)
- this.transacciones.push(tr)
+ const amount = data.transacciones
+ const step = 50
+ for (let i = 0; i < amount; i += step) {
+ promises.push(
+ sendGet(_urls.api + '/cuenta/' + this.cuenta_id + '/transacciones/' + step + '/' + i)
+ )
+ }
+ if (promises.length > 0) {
+ Promise.all(promises).then((data_arr) => {
+ this.transacciones = []
+ data_arr.forEach(data => {
+ if (data.transacciones === null || data.transacciones.length === 0) {
+ return
+ }
+ $.each(data.transacciones, (i, el) => {
+ const tr = new Transaccion(el)
+ tr.setCuenta(this.cuenta)
+ tr.setModal(this.modal)
+ this.transacciones.push(tr)
+ })
})
+ this.transacciones.sort((a, b) => {
+ return (new Date(b.fecha)) - (new Date(a.fecha))
+ })
+ }).then(() => {
+ this.draw()
})
- this.transacciones.sort((a, b) => {
- return (new Date(b.fecha)) - (new Date(a.fecha))
- })
- }).then(() => {
+ } else {
this.draw()
- })
- } else {
- this.draw()
- }
+ }
+ })
})
},
cuentas: () => {
@@ -141,11 +145,18 @@ const transacciones = {
}).then(() => {
const select = this.modal.find("[name='cuenta']")
$.each(this.cuentas, (i, el) => {
- select.append(
- $('').attr('value', el.id).html(el.nombre + ' (' + el.categoria.nombre + ')')
- )
+ this.get().categoria(i).then(() => {
+ select.append(
+ $('').attr('value', el.id).html(el.nombre + ' (' + el.categoria.nombre + ')')
+ )
+ })
})
})
+ },
+ categoria: (idx) => {
+ return sendGet(_urls.api + '/cuenta/' + this.cuentas[idx].id + '/categoria').then((data) => {
+ this.cuentas[idx].categoria = data.categoria
+ })
}
}
},
@@ -172,7 +183,7 @@ const transacciones = {
fecha: fecha,
valor: $("[name='cambio']").val()
})
- sendPut(_urls.api + '/tipos/cambios/add', data1)
+ sendPost(_urls.api + '/tipos/cambios/add', data1)
const valor = $("[name='valor']").val()
const cuenta = $("[name='cuenta']").val()