Tarea #1217 Completado

Fecha de creación: 04-07-2022 19:29:26 CORE v2023
PRO
neorazorx_1

Autor / Asignado


Hay que reemplazar la clase que actualiza las tablas de la base de datos por una nueva.

Objetivos

  • Comprobar las tablas una sola vez, y solamente después de haber instalado o actualizado.
  • Tener esta clase con sus tests unitarios correspondientes.

Estado actual

Ahora mismo todos los modelos heredan de ModelClass que a su vez heredan de ModelCore. Es en ModelCore donde, en el constructor, se llama a la función checkTable() que llama a la clase DataBaseTool para actualizar la tabla correspondiente. Una vez comprobada se añade a la lista de tablas comprobadas y se guarda en caché. La caché se borra cada hora y media, por lo que pasado este tiempo se vuelve a comprobar, innecesariamente.

Nueva implementación

  • Mover y renombrar la clase Core/Base/DataBase/DataBaseTool a Core/DatabaseUpdater.
  • Modificar ModelCore para que llame directamente a DatabaseUpdater. En concreto a una función check($tableName).
  • DatabaseUpdater debe comprobar la estructura de la tabla dada, hacer los cambios pertinentes y añadirla a la lista de tablas comprobadas, que no se debe guardar en caché, sino en el archivo MyFiles/DatabaseUpdater.json
  • Modificar la función deploy() de la clase Plugins para llamar a DatabaseUpdater y que elimine la lista de tablas actualizadas, de forma que las compruebe de nuevo conforme se instancien los modelos.
  • Añadir un test unitario para la clase DatabaseUpdater.
PRO
neorazorx_1

Completada por neorazorx_1

España, 12 años, nivel 100

4 Comentarios

elguitarraverde_19045

14-06-2023 16:38:22 elguitarraverde_19045

ENVIADA - https://github.com/NeoRazorX/facturascripts/pull/1376
elguitarraverde_19045

09-10-2023 20:31:46 elguitarraverde_19045

ENVIADA - https://github.com/NeoRazorX/facturascripts/pull/1438
elguitarraverde_19045

09-10-2023 20:32:04 elguitarraverde_19045

nueva PR enviada
PRO
neorazorx_1

22-06-2024 12:28:28 neorazorx_1

ENVIADA - https://github.com/NeoRazorX/facturascripts/commit/2efc5bcc010ce0b51a9dd43f6093cae999f49468
Ya no se pueden hacer más comentarios.

Tarea #3596

En ocasiones tenemos trabajos en segundo plano que pueden tardar varios segundos y es mejor que los procese el cron (el cron ejecuta hasta 1000 eventos de la cola de trabajos), pero no queremos un cronjob porque no se va a ejecutar todos los días, solamente cuando se dispare...

CORE - Pendiente 03-10-2024
Tarea #3597

En ocasiones necesitamos procesar un trabajo rápido, pero dentro de un par de minutos. La cola de trabajo no nos sirve porque procesa los trabajos conforme se crean, sin esperar. Pero podemos hacer que la cola de trabajo pueda gestionar trabajos futuros. Solución Al...

CORE - Pendiente 03-10-2024
Tarea #3571

Añadir bootstrap icons y combinar todo el CSS en un único archivo. AssetManager El AssetManager permite ahora combinar todo el CSS en un único archivo. Para ello simplemente hay que reemplazar la carga de archivos CSS en la plantilla twig de esto: {% block css %} ...

CORE - Pendiente 01-10-2024
Tarea #3569

Eliminación de clases obsoletas: Core/App/AppSettings.php Core/Base/CronClass.php Core/Base/DivisaTools.php Core/Base/InitClass.php Core/Base/NumberTools.php Core/Base/ToolBox.php Core/Base/Translator.php

CORE - Pendiente 01-10-2024
Tarea #3566

Hay que mover la generación de tokens a la clase Session. Ahora mismo la generación de tokens se realiza en Core/Lib/MultiRequestProtection. Pero debería realizarse en la case Core/Session, que es la que tiene la información del usuario que está ejecutando la petición....

CORE - Pendiente 01-10-2024
Tarea #3568

Hay que crear la nueva clase Controller, que será la base de los nuevos controladores. Su ubicación será Core/Template/Controller. Abandono de privateCore() y publicCore() Esta nueva clase debe abandonar el enfoque de tener un método para cuando el usuario ha iniciado...

CORE - Pendiente 01-10-2024
Tarea #3542

Añadir a las facturas la fecha de vencimiento. Este campo corresponde realmente a los recibos, pero podemos copiarlo a las facturas simplemente para poder verla en los listados y filtrar. Objetivo Poder ver desde el listado las fechas de vencimiento de las facturas....

CORE - Pendiente 25-09-2024
Tarea #3552

Hay que rediseñar la clase que maneja la base de datos para implementarla con PDO, soportar SQLite y permitir conectar a varias bases de datos. Implementación La nueva clase debe ser Core/DB y debe crear el objeto PDO para conectar a la base de datos y disponer de una serie...

CORE - Pendiente 27-09-2024
Tarea #3448

Al cambiar el estado de un documento, cuando ese nuevo estado genera otro documento (por ejemplo al marcar un albarán como facturado), debería mostrar un modal donde poder seleccionar la fecha del nuevo documento. De esta forma al aprobar un albarán de compra podemos...

CORE - Pendiente 03-07-2024
Tarea #3499

Modificar el widget select para ponerle un color warning o alguna advertencia cuando el valor guardado no está en la lista.

CORE - Pendiente 10-09-2024
Tarea #3425

Necesitamos poder filtrar por país, provincia y ciudad en los listados de venta (facturas, albaranes, pedidos y presupuestos). Para ello hay que añadir esos filtros: Selector de país. Autocomplete de provincia. Autocomplete de ciudad.

CORE - Pendiente 19-06-2024
Tarea #3447

(BUG) cuando tenemos una factura impagada y emitida, es decir, bloqueada. Si la marcamos como pagada nos aparece el modal donde seleccionar forma de pago y fecha, pero los campos aparecen bloqueados. Nunca deben estar bloqueados. Implementación Originalmente se usó...

CORE - Pendiente 03-07-2024
Tarea #3363

Tenemos textos traducibles para facturas, albaranes, pedidos y presupuestos, pero no para el resto. El controlador SendMail debería crear textos predeterminados para cualquier modelo, así los podemos personalizar.

CORE - Pendiente 08-05-2024
Tarea #3059

Modificar el instalador para poder leer los datos de configuración de variables de entorno. Issue relacionada https://github.com/truecharts/charts/issues/16824

CORE - Pendiente 20-01-2024
Tarea #3000

Necesitamos poder marcar una factura como pagada desde la API. Ahora mismo si desde la API modificamos el campo pagada a true, lo vuelve a dejar a false, ya que ese campo se actualiza al guardar, comprobando que los recibos de la factura estén pagados. Hay que añadir un...

CORE - Pendiente 11-01-2024
Tarea #2962

Al enviar un email con la clase NewMail no se vacían las listas de direcciones de correos, por lo que si queremos enviar el mismo correo a miles de emails, nos toca hacerlo varias veces. Si añadimos funciones para vaciar las direcciones de correo, podemos reducir código....

CORE - Pendiente 19-12-2023
Tarea #2940

Añadir un cron para generar cada diario y almacenarlo en MyFiles. Así ver el diario, si tenemos este archivo ya generado, podemos descargar este archivo en lugar de generarlo al momento.

CORE - Pendiente 05-12-2023
Tarea #2933

(Posible bug) Parece que se puede hacer una devolución de la misma línea varias veces, es decir, tienes una línea con cantidad 1, haces la rectificativa de eso y vuelves a hacerla igual. Te deja.

CORE - Pendiente 28-11-2023
Tarea #2493

Añadir el régimen especial para agricultores a la lista de regímenes de IVA. Y modificar el Calculator para soportar este nuevo régimen. Test Añadir el correspondiente test unitario.

CORE - Pendiente 18-05-2023
Tarea #1893

Hay que definir claramente en los modelos de documentos de compras y ventas qué campos son realmente no editables, para que no se permita modificar esos, peri el resto.

CORE - Pendiente 13-12-2022
Tarea #1334

Rediseñar la clase Model para reemplazar a ModelClass. La nueva versión que se colocaría en la carpeta Template, de acuerdo a la nueva estructura de carpetas del Core. La versión original permanecería en Core/Model/Base para mantener compatibilidad durante unos meses....

CORE - Pendiente 22-07-2022
Tarea #3601

Añadir el método getLogo() al modelo Empresa, para que devuelva el AttachedFile del logotipo vinculado en el campo idlogo.

CORE - Pendiente 04-10-2024
Tarea #3399

(BUG) al aprobar documentos de compra, no debería copiar el campo numproveedor al siguiente documento, ya que si apruebas el albarán 123, puede que la factura no sea la 123.

CORE - Pendiente 28-05-2024
Tarea #3558

(API) Necesitamos poder obtener los tokens para los archivos de myfiles. Hay que añadir un endpoint a la API para obtener rápidamente el token y la url completa, con token incluído, para un archivo de MyFiles. Ejemplo de uso En ocasiones leemos la lista de producto de la...

CORE - Pendiente 30-09-2024
Tarea #3559

(API) al igual que podemos crear facturas de cliente con una sola llamada, hay que poder crear también albaranes, pedidos y presupuestos. Tanto de compra como de venta. Posible implementación Hay que añadir un endpoint a la API para cada tipo de documento de compra o venta.

CORE - Pendiente 30-09-2024
Tarea #3282

(BUG) al hacer un asiento de venta (pasa lo mismo en compras), en ocasiones tenemos líneas a 0 en la cuenta 700.0. Esto es porque en la instalación hay una 700.1 y todos los productos vinculados a ella, pero cuando hacemos una compra o venta y metemos alguna líne de texto,...

CORE - Pendiente 29-03-2024
Tarea #2934

Modificar la clases de Core/AjaxForms para poner la mayoría de métodos estáticos como públicos, para poder llamarlos desde fuera en los mods (para cuando solamente queremos añadir algo después, o modificar levemente el html). Requisito Hay que completar primero la tarea...

CORE - Pendiente 29-11-2023
Tarea #2370

En ocasiones es necesario hacer facturas a cero, por distintos motivos. El problema es que estas facturas no están generando asientos y por tanto no aparecen en los informes de impuestos, ni los modelos fiscales. Hay que dar soporte a este tipo de facturas para que si...

CORE - Pendiente 05-04-2023
Tarea #1833

Al agrupar documentos, en el formulario, hay que poner tabindex="-1" en los campos desactivados, para que al pulsar tabulador para moverse entre campos, que no se mueva a esos campos desactivados.

CORE - Pendiente 16-11-2022
Tarea #1676

Crear un test unitario para el modelo Impuesto. Comprobar Se puede crear un impuesto y borrarlo. Se pueden crear dos impuestos con el mismo iva. Si se crea un impuesto de tipo porcentaje y 10 de iva, al hacer una compra con una línea con ese impuesto, cantidad 2 y precio 50,...

CORE - Pendiente 10-10-2022
Tarea #1745

Añadir el campo dailyexec al modelo CronJob para poder almacenar el número de ejecuciones diarias del trabajo. Modificar: Tabla Modelo XMLViews CronClass Modificar CronClass::jobDone() para que: Ponga a 0 dailyexec cuando la fecha de la última ejecución no es de hoy....

CORE - Pendiente 21-10-2022
Tarea #878

Modificar el actualizador para que la acción de actualizar, una vez se ha descargado el zip, sea una llamada ajax, al igual que la acción de actualizar el dinamic. Motivación Hay que mejorar la tolerancia a errores del actualizador. No puede ser que cada vez que hagamos un...

CORE - Pendiente 19-04-2022
Tarea #2173

Al crear un cliente o proveedor, si existe el Plan Contable, crear subcuenta automáticamente y relacionarla. Añadir también un botón a la pestaña de subcuentas, en la página del cliente o proveedor, para poder crear la subcuenta del cliente, si no existe.

CORE - Pendiente 14-02-2023
Tarea #3855

Cuando un plugin añade columnas a los formularios de edición de facturas (albranes, etc), cuando nos movemos con el tabulador, no sigue el orden de los campos. Hay que rellenar correctamente el tabindex o solucionarlo de alguna forma para que el tabulador se mueva de forma...

CORE - Pendiente 04-02-2025
Tarea #3822

Añadir el filtro de empresas a los listados de recibos (cuando hay más de una empresa). Como sucede en los listados de facturas.

CORE - Pendiente 13-01-2025
Tarea #3809

Añadir opción de establecer la serie para rectificativas, al igual que hacemos con la serie para las ventas.

CORE - Pendiente 02-01-2025
Tarea #3806

Añadir en el informe de productos cuando vemos el listado de ventas poder filtrar por agente, si es posible añadir mñas filtros tanto a compras como ventas.

CORE - Pendiente 30-12-2024
Tarea #3784

(BUG) Al sacar un listado de recibos, la suma total que aparece debajo de los recibo la muestra sin decimales.

CORE - Pendiente 12-12-2024
Tarea #3782

El listado de productos tiene un filtro para buscar por familia, y dentro de cda familia se pueden ver los productos de la familia. Hasta aquí correcot, pero escaso. ListProducto: Buscar la forma de añadir un filtro extra para que al filtrar por familia poder decir que...

CORE - Pendiente 12-12-2024
Tarea #3781

Añadir a los documentos de venta un filtro para buscar por país, ahora mismo se puede buscar por dirección pero n oes lo mismo, lo que se pretende es sacar todas las facturas de X país, o todas las facturas de esta fecha de este país, y actualmente no se puede.

CORE - Pendiente 12-12-2024
Tarea #3629

En el wizard, el paso donde se inicializan todos los modelos, se debe partir en varios pasos, ya que es lento en muchas ocasiones. Convendría cargar primer los modelos de 5 en 5, es decir, cargar 5, recargar la página, cargar los siguientes 5, etc. Para ello se puede usar un...

CORE - Pendiente 16-10-2024
Tarea #3771

Actualmente el widgetLibrary carga 50 elementos, cuando son imágenes carga la imagen completa, si casualmente caarga 50 imágenes de varios megas cada una relentiza mucho la carga de la página. En el modelo ProductoImagen se usa la función getThumbnail() para reducir el...

CORE - Pendiente 03-12-2024
Tarea #1177

(TEST) comprobar qué sucede cuando creamos un estado que genera el mismo tipo de documento. Si es problemático, impedir que un estado genere el mismo tipo de documento y añadir la comprobación al correspondiente test unitario.

CORE - Pendiente 28-06-2022
Tarea #860

Añadir las traducciones cortas save-ok, save-error, delete-ok y delete-error para usarlas al mostrar los mensajes al guardar o eliminar registros.

CORE - Pendiente 14-04-2022
Tarea #1152

Resolver bug con postgresql al inicializar modelos con datos predefinidos en data. Problema Se están importando correctamente los datos de data, pero no se están actualizando la secuencias. Eso produce errores al añadir nuevos registros. Se han tenido que modificar los...

CORE - Pendiente 24-06-2022
Tarea #2724

En los asientos se está colocando un enlace para abrir el documento relacionado solamente cuando es factura, pero tenemos asientos que son de recibos, asientos que son de remesas, etc. En todos estos casos deberíamos poder ir igualmente al modelo original. Implementación...

CORE - Pendiente 28-08-2023
Tarea #2650

(BUG) Cuando tenemos alguna columna con nombre reservado como user y además tenemos una clave ajena ahí, en PostgreSQL es necesario poner el nombre de la columna entre comillas dobles, pero en MySQL con comillas tipo acento. Necesitamos poder poner comillas en las...

CORE - Pendiente 24-07-2023
Tarea #3455

(Posible bug) al instalar un plugin, consultar la forja para ver la versión máxima del core para ese plugin. Si es menor que la actual, sacar un aviso.

CORE - Pendiente 09-07-2024
Tarea #3553

(BUG) ahora mismo 2 procesos que se ejecuten en paralelo pueden llegar a procesar el mismo evento. Esto es debido al tiempo que pasa entre que se obtiene de la base de datos el siguiente evento a procesar y cuando se bloquea el proceso. En esos milisegundos puede que otro...

CORE - Pendiente 28-09-2024
Tarea #3587

Necesitamos poder establecer una fortaleza mínima para las contraseñas de usuarios, en una constante en el config.php, por ejemplo FS_PASSWORDS_STRENGTH, con valores posibles low, medium y hard: low: mínimo 6 caracteres. medium: mínimo 10 caracteres, con números, letras...

CORE - Pendiente 01-10-2024
Cookies
Usamos cookies en nuestro sitio web para brindarte la experiencia más relevante recordando tus preferencias y visitas repetidas. Al hacer clic en "Aceptar", aceptas el uso de TODAS las cookies necesarias.
Copyright (c) 2013-2025 FacturaScripts
0.51073s

Soporte