Skip to content

feat: nueva tabla asientospre_ayudas con ayudas y ejemplos#10

Open
jjae6 wants to merge 2 commits into
FacturaScripts:mainfrom
jjae6:main
Open

feat: nueva tabla asientospre_ayudas con ayudas y ejemplos#10
jjae6 wants to merge 2 commits into
FacturaScripts:mainfrom
jjae6:main

Conversation

@jjae6

@jjae6 jjae6 commented Apr 20, 2026

Copy link
Copy Markdown

Anteción: ver la otra versión:

Ampliación masiva de asientos predefinidos para España + nueva ayuda contable y fiscal

¿Qué aporta este PR?

El plugin original incluía muy pocos asientos predefinidos para España y no ofrecía ninguna orientación al usuario sobre cuándo usar cada asiento ni cómo rellenarlo correctamente.

Este PR aporta dos mejoras independientes pero complementarias:


1. Ampliación del catálogo de asientos para España

Se amplía el archivo Data/Codpais/ESP/asientospre.csv de unos pocos asientos a 185 asientos predefinidos, cubriendo los casos más habituales de la contabilidad española:

  • Nóminas, autónomos y Seguridad Social
  • Modelos fiscales (303, 111, 115, 130, 200…)
  • Compras y ventas con IVA
  • Inmovilizado y amortizaciones
  • Alquileres, suministros, servicios profesionales con retención
  • Préstamos e intereses bancarios
  • Subvenciones, deterioros, seguros
  • Dividendos, regularización de IVA, cierre de ejercicio
  • Devoluciones de compra y venta
  • Y muchos más casos reales del día a día

2. Nueva pestaña de ayuda contable y fiscal en la vista "Generar"

Se añade una nueva tabla asientospre_ayudas que asocia a cada asiento predefinido tres campos de orientación para el usuario:

  • Cuándo usarlo: explica en qué situación contable o fiscal corresponde usar este asiento
  • Ejemplo real: un caso concreto con números para que el usuario entienda el resultado esperado
  • Nota: observaciones adicionales sobre obligaciones fiscales, asientos complementarios, etc.

Esta información aparece en la pestaña Generar del asiento, justo donde el usuario la necesita.

Los 1.383 registros de ayuda para España están incluidos en Data/Codpais/ESP/asientospre_ayudas.csv.


Archivos nuevos

  • Model/AsientoPredefinidoAyuda.php — modelo que comprueba si la tabla existe antes de consultarla, seguro en instalaciones nuevas
  • Table/asientospre_ayudas.xml — definición de la tabla con clave foránea a asientospre con ON DELETE CASCADE
  • Data/Codpais/ESP/asientospre_ayudas.csv — 1.383 registros de ayuda para los asientos de España

Archivos modificados

  • Init.php — crea la tabla al actualizar e importa los CSVs con REPLACE INTO (los datos siempre quedan actualizados al reinstalar)
  • View/AsientoPredefinidoGenerar.html.twig — muestra la nueva sección de ayuda en la vista de generación
  • Translation/*.json — claves help-example y real-example añadidas a todos los idiomas
  • Data/Codpais/ESP/asientospre*.csv — catálogo ampliado y revisado
  • facturascripts.ini — versión 3.5

Notas técnicas

  • La tabla usa UNIQUE (idasientopre) — una sola ayuda por asiento
  • La importación se hace en lotes de 50 filas para no saturar la base de datos
  • Compatible con FacturaScripts 2025.9+ sobre MySQL/MariaDB
imagen imagen

@NeoRazorX

Copy link
Copy Markdown
Member

Muchísimas gracias por el aporte 👏

Me gustan mucho los cambios que propones. Salvo lo de meter la ayuda en un modelo nuevo. Se puede simplificar mucho todo el código. Lo integraremos poco a poco 👍

…por asiento + protección de personalizaciones + edición de ayuda.

Catálogo ampliado para España + ayuda contable + sistema de protección de personalizaciones
¿Qué aporta este PR?
Tres mejoras independientes pero complementarias sobre el plugin base:
1. Catálogo ampliado para España
Se amplía el archivo Data/Codpais/ESP/asientospre.csv a 185 asientos predefinidos con 481 líneas y 484 variables, cubriendo los casos más habituales de la contabilidad española: nóminas, autónomos y Seguridad Social, modelos fiscales (111, 115, 130, 200, 303…), compras y ventas con IVA, inmovilizado y amortizaciones, alquileres, suministros y servicios profesionales con retención, préstamos e intereses bancarios, subvenciones, deterioros, seguros, dividendos, regularización de IVA, cierre de ejercicio, devoluciones, tributos municipales y muchos más.
2. Ayuda contable y fiscal por asiento
Nueva tabla asientospre_ayudas con 185 registros que asocia a cada asiento tres campos de orientación: cuándo usarlo, ejemplo real con números y nota fiscal. La ayuda aparece en la pestaña Generar y es editable por el usuario desde la pestaña Ayuda y ejemplo.
3. Sistema de protección de personalizaciones
Permite modificar cualquier asiento del plugin sin perder los cambios al actualizar. Campo personalizado en asientospre que controla si el asiento está protegido. Se marca automáticamente al guardar cualquier cambio en líneas, variables, descripción o ayuda. Los asientos creados por el usuario reciben id ≥ 10000 para evitar colisiones con los ids del CSV. El botón Restaurar original borra y reimporta líneas, variables y ayuda desde el CSV inmediatamente. Los asientos protegidos se saltan completamente en el Init.php al actualizar.
Archivos nuevos

Model/AsientoPredefinidoAyuda.php
Table/asientospre_ayudas.xml
Assets/JS/EditAsientoPredefinido.js
Data/Codpais/ESP/asientospre_ayudas.csv
View/AsientoPredefinidoAyuda.html.twig

Archivos modificados

Init.php — UPSERT con protección por personalizado, importación de ayudas respetando asientos protegidos
Model/AsientoPredefinido.php — id ≥ 10000 para asientos nuevos, personalizado=1 automático al crear
Controller/EditAsientoPredefinido.php — acciones restore-asiento, save-ayuda, marcarPersonalizado()
XMLView/EditAsientoPredefinido.xml — checkbox personalizado + botón Restaurar via row actions
XMLView/ListAsientoPredefinido.xml — columna personalizado + fila amarilla + ordenación
Extension/Controller/ListAsiento.php — addOrderBy por personalizado
View/AsientoPredefinidoGenerar.html.twig — ayuda colapsable + form oculto para restore
Translation/*.json — nuevas claves en 25 idiomas
facturascripts.ini — versión actualizada

Notas técnicas

Compatible con FacturaScripts 2025.9+ sobre MySQL 8 / MariaDB
INSERT ON DUPLICATE KEY UPDATE con IF(personalizado=0, ...) — nunca sobreescribe asientos protegidos
ensureColumn() añade las columnas nuevas en instalaciones existentes sin romper datos
Importación en lotes de 50 filas
@jjae6

jjae6 commented Apr 23, 2026

Copy link
Copy Markdown
Author

Hola, mientras estaba haciendo la otra versión... os he subido una nueva versión que os puede servir como una idea general Ahora la ayuda de los asientos se pueden editar y personalizar y proteger a nivel de asiento. Esto permite que tras actualizaciones de plugins con nuevos asientos se respete lo editado por el usuario.

Esto también es válido por si cambia la reglamentación o hay algún asiento predefinido incorrecto por defecto, el usuario lo edita y se protege ante cambios de actualizaciones si quiere.
Si el usuario crea un nuevo asiento con sus variables y ayuda se genera en >10000 id para proteger y que no se machaquen estos.

imagen imagen

La idea es guiar un poco al usuario novel con la ayuda contable, fiscal y consejos adaptados a modelos o a diferentes empresas. Esto le dará a facturascripts la parte que le falta.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants