From b78bd3ecdd2c13c46a50392032f482641eb23051 Mon Sep 17 00:00:00 2001 From: Ricardo Monla Date: Fri, 10 Jul 2026 13:41:00 -0300 Subject: [PATCH] =?UTF-8?q?Refactor:=20categor=C3=ADas=20server-side=20en?= =?UTF-8?q?=20add.php,=20elimina=20fetch=20async=20en=20add.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - pagos/add.php: nueva página que renderiza el formulario de alta con las categorías ya cargadas desde PHP/SQLite, sin depender de un fetch asíncrono a api/categorias.php tras cargar la página. - pagos/js/add.js: quita cargarCategorias() y la llamada a apiFetch, ya innecesarias con el nuevo flujo server-side. - CLAUDE.md: documentar remote real (Gitea, no GitHub), stack técnico y estructura del proyecto. --- CLAUDE.md | 29 ++++++++ pagos/add.php | 190 ++++++++++++++++++++++++++++++++++++++++++++++++ pagos/js/add.js | 22 +----- 3 files changed, 220 insertions(+), 21 deletions(-) create mode 100644 CLAUDE.md create mode 100644 pagos/add.php diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..1d62fde --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,29 @@ +# rm-PAGOs — Sistema de Gestión de Gastos y Pagos + +## Repositorio Git + +**Remote actual:** Gitea DIIAA — `http://10.0.10.205:3000/rmonla/rm-PAGOs.git` + +> ⚠️ La carpeta local está en `~/Documentos/GitHub/rm-PAGOs/` por convención de nombre de directorio, +> pero el repositorio **ya fue migrado a Gitea** y NO apunta a GitHub. +> Verificar siempre con `git remote -v` antes de operar. + +## Stack Técnico + +| Capa | Tecnología | +| :--- | :--- | +| **Frontend** | HTML + CSS Vainilla + JS (diseño Lumina Finance / Quiet Wealth) | +| **Backend** | PHP 8.2 | +| **Base de Datos** | SQLite3 | +| **Despliegue** | LXC `srvv-nginx-rm` (Debian 12, NGINX 1.22.1, HTTPS) | + +## Estructura + +``` +pagos/ → Aplicación desplegable (index.html, css/, api/, db/) +docs/plan/ → Plan de desarrollo (00_PLAN.md) +``` + +## Plan de Desarrollo + +Ver [`docs/plan/00_PLAN.md`](docs/plan/00_PLAN.md) — fases: Frontend estático → Backend PHP/SQLite → Integración → Despliegue. diff --git a/pagos/add.php b/pagos/add.php new file mode 100644 index 0000000..0e87e11 --- /dev/null +++ b/pagos/add.php @@ -0,0 +1,190 @@ +query("SELECT id, nombre FROM categorias ORDER BY nombre")->fetchAll(PDO::FETCH_ASSOC); +?> + + + + + +Nuevo Movimiento — Quiet Wealth + + + + + + + + + + + + +
+ +
+ +

Nuevo Movimiento

+
+ +
+
+ + +
+ + +
+ + +
+ + +
+ +
+ $ + 0 +
+
+ + +
+ +
+ + expand_more +
+
+ + +
+
+ +
+ calendar_today + +
+
+
+ +
+ edit_note + +
+
+
+ + + +
+ + +
+ + +
+ + + +
+
+ +
+
+ + +
+ +
+ +
+ + + + + diff --git a/pagos/js/add.js b/pagos/js/add.js index 0d51807..7615524 100644 --- a/pagos/js/add.js +++ b/pagos/js/add.js @@ -13,27 +13,7 @@ document.addEventListener('DOMContentLoaded', () => { // Default a hoy iptFecha.valueAsDate = new Date(); - // Cargar categorías - cargarCategorias(); - - async function cargarCategorias() { - const sel = document.getElementById('ui-categoria'); - try { - const r = await apiFetch('api/categorias.php'); - if (!r) return; // redirigió a login - const data = await r.json(); - if (!data.categorias?.length) { - sel.innerHTML = ''; - return; - } - sel.innerHTML = data.categorias.map(c => - `` - ).join(''); - } catch (e) { - console.error('Error cargando categorías:', e); - sel.innerHTML = ''; - } - } + // Categorías ya vienen renderizadas por PHP (add.php) // Tipo selector const updateTipoUI = () => {