Plan de desarrollo y sugerencias de FacturaScripts. Los patrocinadores pueden hacer sugerencias y votarlas, el equipo de desarrollo puede escoger una tarea y encargarse. Consulte la sección colabora (menú comunidad) para colaborar.
En la pestaña de proyectos puedes ver las sugerencias y tareas para FacturaScripts (CORE) y sus plugins. Cada proyecto tiene sus propias tareas y sugerencias.
Los patrocinadores pueden enviar y votar sugerencias desde la pestaña correspondiente. Estas sugerencias ayudan a definir el futuro de FacturaScripts y dar prioridad a nuevas funcionalidades.
Revisa las tareas activas y encuentra aquellas marcadas como "para principiantes" si quieres empezar a contribuir con código de forma gradual.
Únete al equipo de desarrollo para colaborar en FacturaScripts y/o sus plugins. Siempre necesitamos programadores, traductores, testers y personas que puedan ayudar con la documentación.
Todas las contribuciones de código se realizan a través de Pull Requests en GitHub. Si eres nuevo en Git o GitHub, ¡no te preocupes! Podemos ayudarte a dar tus primeros pasos.
Permite crear datos de pruebas para usar en demos o...
Permite migrar los datos de FacturaScripts 2017 a la...
El Modelo 111 es una declaración trimestral de las...
Permite eliminar todos los datos de la base de datos y...
Añade el campo grupo de clientes a los contactos del...
Herramienta en línea de comandos para el desarrollo...
Agrega un punto de venta (TPV, Point of Sale) que permite...
Sistema de localización de productos en almacenes para...
Añade plazos a las formas de pago y los aplica en los...
Permite gestionar contactos, listas, campañas, notas y...
Añade gestión de Remesas bancarias en formatos SEPA...
Permite importar clientes, proveedores, productos o...
Incluye herramientas para corregir automáticamente...
Permite imprimir etiquetas de códigos de barras de...
Permite asignar un segundo agente comercial a los...
Añade gestión de descuentos de venta, ya sea por...
Permite ver los movimientos de stock de cada producto del...
Permite gestionar servicios (SAT) en negocios como...
Shopea.me es un servicio web con el que puedes...
Plugin que permite generar cobros y pagos a cuenta. Se...
Añade un botón email en el listado de facturas de...
Modifica el aspecto visual de FacturaScripts para usar...
Añade soporte para la factura electrónica española: el...
Este Plugin te permite administrar los informes...
Este plugin está abandonado por el autor, solo se...
Modifica el diario contable para agrupar por cuenta y...
Permite imprimir tickets de facturas de venta, albaranes,...
El Modelo 130 es una declaración trimestral del impuesto...
Con este plugin puede crear plantillas de asientos para...
Permite agrupar documentos de distintos almacenes,...
Añade 21 themes/skins nuevos a FacturaScripts para...
Permite generar etiquetas de envío en base a la...
Añade el campo de "fecha de proveedor" a las...
Modifica el plugin Servicios y permite añadir varias...
Añade un nueva plantilla al listado de plantillas del...
Añade la columna fecha a las líneas de facturas,...
Plugin de Control de Impresión para Documentos Este...
Añade gestión de pagos (anticipos) en presupuestos,...
Añade los informes necesarios para el "Suministro...
Plugin que permite administrar los textos que generemos...
Plugin de conciliación bancaria: - Permite importar los...
Un plugin que permite llevar registro de información...
Este plugin añade soporte para Verifactu: Veri-factu es...
Optimizador de Imágenes para FacturaScript Un plugin...
El plugin Citas para FacturaScripts es la solución...
Preparar y automatizar el Informe 349 para su presentación mensual ante la Agencia Tributaria, garantizando formato y cumplimiento legal.
Implementar conversión de precios al añadir líneas de compra o venta en divisas diferentes a la predeterminada, asegurando transacciones precisas y actualizadas.
Implementar el paginador en la parte superior de los EditListView, similar a los ListView, para mejorar la navegación y la experiencia del usuario al visualizar listas extensas.
Añadir una sola imagen a las familias de productos para su uso en TPVneo y potencialmente en otras aplicaciones futuras, mejorando la visualización y gestión de productos.
Convertir automáticamente los precios de un documento a la nueva divisa al cambiar la divisa, asegurando que todos los valores reflejen la conversión correcta y actualizada.
Modificar la visualización de logs para mejorar la legibilidad de los cambios en documentos, asegurando que sea claro qué modificaciones se han realizado.
Se debe añadir un nuevo campo de observaciones privadas o notaspriv en facturas, albaranes, pedidos y presupuestos para mejorar el registro de información exclusiva relacionada con los clientes.
Modificar el atributo onclick de los widgets para que si comienza con ciertos protocolos, construya enlaces directos sin FS_ROUTE, concatenando directamente con el valor de fieldname.
Implementar cierre de sesión automático tras x minutos de inactividad configurable desde el panel de control para mejorar la seguridad y la gestión de sesiones
Implementar detección y bloqueo de bots rastreadores a nivel Core para prevenir ataques DDoS, detectando accesos a URLs no válidas y respondiendo con error o bloqueo temporal BAN para proteger instalaciones públicas.
Al exportar por PDF o enviar por mail varios documentos de Compra o Venta desde el listado no aparece la opcion Avanzado para elegir tipo de exportacion formato de impresion e idioma implementar la misma funcionalidad que en la edicion del documento
Añadir botones siguiente y anterior al ver documentos de compra o venta para navegar entre documentos del mismo cliente o proveedor y agilizar la revisión sin volver al listado ni abrir múltiples pestañas.
Modificar la creación de clientes: para empresas, almacenar todo el nombre en un solo campo; para individuos, separar el nombre y apellidos, asignando la primera parte al nombre y el resto a los apellidos.
Crear ExportPDF en Core Lib y contrato en Core Contract para reemplazar ExportManager Exportar PDFs con extensiones por modelo newPage addText addImage addTable save output setLang orientation size company setData mods y desactivar cabecera o pie
Añadir opción en configuración para definir el número de caracteres en referencias al crear productos. Facilitará búsquedas precisas y se podría aplicar a servicios, proyectos y variantes.
Permitir establecer la divisa del widget money desde XML y desde el controlador para usar un simbolo distinto al global, actualmente busca coddivisa en el modelo o usa la general, pero a veces esta en un modelo superior
Agregar segundo título por estado para distinguir acción y listado por ejemplo facturar versus facturado añadiendo una segunda columna de nombre en los estados.
Añadir columna Saldo a cada línea del asiento contable para mostrar el saldo acumulado y facilitar el punteo y la conciliación de cuentas.
Permitir registrar un segundo correo electrónico en la ficha del cliente para mejorar contacto y gestión de comunicaciones
Modificar la descarga de archivos en la biblioteca para que utilice el nombre original en lugar del id, o en su defecto, combine el id con el nombre original, mejorando la identificación de los archivos descargados.
Incorporar el campo numproveedor en los recibos de compra para que pueda visualizarse en los listados, permitiendo la búsqueda e impresión de esta información de manera eficiente.
Implementar la funcionalidad que muestre el último precio de venta al cliente en el campo de precio al añadir un producto, similar a cómo se muestra el stock en cantidad.
Añadir un mensaje de advertencia al crear un cliente o proveedor con cifnif existente, permitiendo su creación. Modificar los métodos saveInsert() en Cliente y Proveedor para verificar duplicados y registrar advertencias.
Desarrollar un plugin que facilite la administración de moteles, mejorando la gestión de reservas, disponibilidad y servicios, optimizando así la experiencia del usuario y la operativa del negocio.
Al facturar albaranes, se debe requisitar la fecha de factura y, para compras, el número de factura del proveedor, ya sea desde el listado o el albarán abierto, asegurando información completa y precisa en el proceso.
Optimizar la navegación permitiendo que los menús se desplieguen con hover en lugar de un clic, lo que ahorrará millones de clics diarios y mejorará la experiencia del usuario.
Implementar una visualización clara de la aplicación del filtro SelectWhere, indicando que no se están viendo todos los elementos, mediante un cambio de color o icono en el botón de filtros o en el propio filtro aplicado.
Añadir funcionalidad para ordenar grupos en xmlview al extender uno existente, permitiendo ubicar un nuevo grupo en cualquier posición, en lugar de agregarlo siempre al final.
Corregir el bug al cambiar cliente o proveedor en facturas y albaranes, asegurando que se recalculen las líneas para reflejar exenciones de IVA o recargos de equivalencia aplicables.
Modificar el Widget Moneda para que campos con EUROS en el nombre muestren la moneda configurada de la empresa o el simbolo de euro en listados y PDF en vez de heredar coddivisa del registro
Redisenar xml de listados para definir columnas con fieldname, filtro, orden y busqueda por defecto, soportar botones y funciones JS con parametros, totales, filtros, assets y modals configurables via xml, nombres para extensiones y onhover y onclick.
Añadir columna "materialenviado" a documentos de venta para filtrar el estado de envío. Esto permitirá identificar fácilmente si el material ha sido enviado o recibido por el cliente, mejorando la gestión y seguimiento de pedidos.
Optimizar la gestión de permisos en grupos de usuarios evitando que se muestren opciones de filtrado irrelevantes y pestañas sin acceso. Esto previene confusiones en la configuración y mejora la experiencia del usuario al navegar por la plataforma.
Mostrar la cola de procesos pendientes en segundo plano y permitir su cancelación previa, considerando las dependencias con otros subprocesos para evitar fallos o cancelaciones innecesarias.
Cambiar el icono de autocompletar por uno que no sugiera la búsqueda, como "far fa-list-alt", para evitar confusiones entre los usuarios que pulsan el icono creyendo que es un botón de búsqueda.
Implementar flow.js para permitir la subida de plugins grandes en partes, superando las limitaciones de PHP en FacturaScripts, facilitando así la instalación de plugins como PlantillasPDF sin restricciones.
Incluir los identificadores fiscales SIREN y SIRET en la lista existente, para adaptarse a los requisitos de identificación fiscal en Francia y asegurar una correcta gestión de datos.
Mostrar totales de documentos al agrupar en el asistente, sumando netos, ivas y totales de los albaranes seleccionados, para mejorar la experiencia del usuario y facilitar el proceso de agrupación.
Mostrar diversas cuentas como opciones de pago mediante transferencia. Se busca definir un método eficiente para implementar esta funcionalidad en el sistema de pagos.
Mostrar la columna "precio con IVA" en el listado de productos para facilitar a los usuarios la visualización del costo total, asegurando una mejor transparencia en la información de precios ofrecidos.
Implementar la capacidad de copiar y pegar líneas en los documentos de compra y venta, recuperando la funcionalidad anterior del modo rejilla para mejorar la eficiencia y usabilidad del sistema.
Se debe añadir un campo "Fecha de entrega" a los pedidos para mejorar la gestión y permitir ordenar los pedidos según esta fecha, optimizando el seguimiento y la planificación de entregas.
Implementar soporte para HAVING en consultas SQL para permitir filtros numéricos sobre un alias de suma en JoinModel. El objetivo es evitar errores al filtrar por "cantidadtotal", una columna calculada a partir de un JOIN.
Actualizar las tarifas en los documentos de venta para asegurar la correcta facturación y seguimiento de los precios actuales.
Se sugiere cambiar la etiqueta del asiento en el recibo de "cobro" a "devolución" para reflejar con mayor claridad la naturaleza de la transacción.
Añadir un campo "Fecha de Operación" a las facturas, manteniendo "Fecha de Expedición" como actual. Esto permitirá incluir la fecha de la operación para cumplir con las necesidades de contabilidad de los clientes y responder a consultas sobre facturas de 2022.
Unificar en un panel las compras del mismo producto por distintos proveedores para visualizar en un solo lugar las variaciones de precio y todos los movimientos asociados
Agregar en la ficha de cliente observaciones públicas que se añaden por defecto en sus facturas y observaciones privadas solo para uso interno, permitiendo insertar automáticamente textos legales de IVA o notas de inversión del sujeto pasivo.
Agregar opción para marcar proveedores y clientes como intracomunitarios por defecto, de modo que las facturas intracomunitarias se creen automáticamente sin abrir el modal ni seleccionar la operación.
Añadir opción para almacenar logs en archivos o en la base de datos, con rotación diaria, mensual, anual o como archivo único, separación por canal, formato JSON o Monolog e implementación similar a drivers de almacenamiento.
Revisar y eliminar codigo duplicado en actualizacion de precios de coste y productos de proveedor mover la logica de ProductoProveedor a un worker y actualizar los tests unitarios
Añadir pipes al controlador SendMail para permitir extensiones que personalicen los campos to, cc y bcc, añadan acciones y procesos posteriores al envío y adaptar la vista Twig para mostrar cuando hay cc o bcc
Modificar el cierre de ejercicio para que al crear asientos de regularización cierre y apertura se ignore el bloqueo de regularizaciones de impuestos y se actualice el modelo Asiento o Partida y la clase de cierre del ejercicio
Modificar las secuencias para permitir usar el último número disponible sin alterar la fecha. Se requiere una opción para usar huecos en números sin afectar las fechas relacionadas, facilitando la gestión de albaranes y pedidos con stock insuficiente.
Desarrollo de funcionalidad para bloquear variantes de un producto sin afectar la venta del producto principal, permitiendo gestionar eficazmente la disponibilidad de variantes como color, talla o temporada sin interrumpir las ventas.
Mantener filtros y página activa en ListView y EditListView tras ejecutar acciones, asegurando que la experiencia del usuario sea fluida y consistente.
Corregir fallo al eliminar una línea de albarán tras aprobar un pedido, no se restaura el stock reservado y pendiente. Objetivo implementar un test unitario que verifique la restauración de stock. Cliente yopli2k
Corregir bug: al registrar un pago con fecha en un ejercicio inexistente se crea el pago pero no el asiento; añadir en interfaz generación manual de asientos, eliminar pagos y bloquear fechas si el ejercicio no existe o está cerrado.
Permitir agrupar con un solo clic todos los albaranes de un rango de fechas por cliente para generar sus facturas automáticamente, optimizando procesos para volúmenes altos por ejemplo 500 albaranes al mes.
Restaurar las cuentas 4000, 4100 y 4300 del plan contable de España, asegurando que se creen subcuentas de clientes y proveedores adecuadamente. Modificar el archivo CSV y añadir tests unitarios para validar los cambios.
Generar asientos de factura bloqueados tras su creación. Se debe validar mediante pruebas que el asiento está bloqueado, que las modificaciones y eliminación se reflejan correctamente, y ajustar los tests unitarios para asegurar la funcionalidad.
Modificar el formulario de devoluciones para permitir la selección de si ambas facturas se marcan como pagadas y especificar la forma de pago, con el objetivo de minimizar errores del usuario en el proceso de devolución.
Verificar al instalar un plugin la versión máxima de core en la forja y avisar si es inferior a la versión actual.
Bug en Safari, el widget datetime no autocompleta hora y minutos y al editar con teclado Enter puede enviar fecha incompleta. Solución añadir onchange que rellene hora con hora actual y avise si faltan día mes o año
Modificar el JavaScript para actualizar el token en cada solicitud AJAX en la edición de asientos, compras y ventas, y agregar validación del token en los controladores pertinentes, previniendo ataques CSRF y asegurando la autenticidad de las peticiones.
Agregar FS_PASSWORDS_STRENGTH en config php con valores low medium hard que definen requisitos mínimos de contraseña low 6 car, medium 10 con números letras signo, hard 12 con mayúsculas minúsculas números signo. Validar en Core Model User php
Añadir tipodocumento al modelo asientos e implementar el método getDoc para enlazar el documento original como factura, recibo o remesa, ajustar el formulario para mostrar el enlace correspondiente y completar antes la tarea 3656
Implementar generacion y validacion de tokens formulario en Session: opcion especifica por usuario, TTL 72h configurable en config.php; actualizar formToken de twig y validateFormToken de Core/Base/Controller para usar Session; agregar test unitario.
Añadir las traducciones cortas save-ok, save-error, delete-ok y delete-error para facilitar la visualización de mensajes al guardar o eliminar registros en la aplicación.
Comprobar el efecto de crear un estado que genere el mismo tipo de documento. Si se detectan problemas, evitar su creación y añadir la verificación correspondiente en el test unitario.
Añadir al listado y edición de familias un filtro que incluya productos de las familias hijas al filtrar por una familia principal, para mostrar todos los productos asociados en ListProducto y EditFamilia.
Añadir en documentos de venta un filtro por país para listar y filtrar facturas por país y por fecha en ese país, permitiendo consultas como todas las facturas de un país o de una fecha específica en ese país.
Implementar filtro por agente en el informe de productos para el listado de ventas y, si es posible, añadir filtros adicionales para compras y ventas.
Actualizar DbUpdater para eliminar restricciones NOT NULL de campos ausentes en el XML, asegurando que la estructura de la tabla se modifique correctamente y que los modelos puedan guardar sin requerir valores para esos campos.
Añadir notificaciones por email para documentos de compra replicando la funcionalidad plantillas y configuración ya existentes para los documentos de venta
Agregar opciones extracomunitarias y sujeto pasivo al campo operacion del boton detalles en presupuestos pedidos albaranes y facturas
Al crear un cliente o proveedor, si existe el plan contable crear y vincular automáticamente la subcuenta correspondiente, y añadir un botón en la pestaña Subcuentas para crear la subcuenta desde la ficha si no existe.
Modificar el actualizador para que la acción de actualización tras descargar el zip sea una llamada ajax. Esto mejorará la tolerancia a errores y evitará que problemas en dependencias interrumpan el proceso de actualización.
Centralizar en un modal Cuadro de impuestos todas las opciones fiscales por cliente al crear documentos, prellenando régimen y retenciones, unificando IGIC, suplidos, importación, exportación, inversión del sujeto pasivo y ajustes por producto.
Detectar y corregir que facturas a cero generen asientos contables y aparezcan en informes y modelos fiscales, implementando soporte para incluirlas en el informe de impuestos.
Añadir el campo dailyexec al modelo CronJob para registrar ejecuciones diarias. Modificar tabla, modelo y XMLViews. Actualizar CronClass::jobDone() para reiniciar dailyexec si la última ejecución no es hoy y sumarlo en cada ejecución.
Crear un test unitario para el modelo Impuesto que verifique la correcta creación, borrado y cálculo de impuestos, incluyendo tipos porcentaje y valor fijo, y la asignación de subcuentas en facturas de compra y venta.
Corregir bug al aprobar documentos de compra, no copiar el campo numproveedor al documento siguiente porque el número del albarán puede diferir del de la factura
Corregir bug en InvoiceToAccounting.php que genera líneas con importe 0 en la cuenta 700.0 al desglosar líneas de texto de productos vinculados a 700.1 y evitar crear desgloses con valor 0
Implementar una función en ListController y EditController que decida si usar un filtro select o autocomplete según el número de registros. Esto reemplazará filtros existentes para provincias y ciudades, mejorando la usabilidad al manejar grandes conjuntos de datos.
Anadir regimen especial para agricultores a la lista de regimenes de IVA actualizar el Calculator para soportarlo y agregar el test unitario correspondiente
Anadir un cron para generar y almacenar diarios en MyFiles y servir el archivo pregenerado al descargar para evitar generacion en tiempo real
Bug permitir devolver la misma linea varias veces una linea con cantidad 1 puede rectificarse y volver a rectificarse causando devoluciones duplicadas Objetivo evitar devoluciones duplicadas y validar la rectificativa
Agregar clearTo, clearCC y clearBCC a la clase NewMail para vaciar listas de destinatarios y actualizar el test unitario que verifique su funcionamiento.
Actualizar el instalador para leer datos de configuración desde variables de entorno y permitir carga y parametrización automática durante la instalación
Al cambiar el estado de un documento que genera otro, mostrar un modal para elegir la fecha del nuevo documento, permitiendo al aprobar un albarán seleccionar la fecha de la factura al instante y reducir clics.
Resaltar con color de advertencia el select cuando el valor guardado no esta entre las opciones para indicar inconsistencia y orientar la correccion
Añadir a las facturas el campo fecha de vencimiento copiándolo del último recibo en el cron que revisa recibos para poder ver y filtrar la fecha desde los listados
Mover generación de tokens de Core/Lib/MultiRequestProtection a Core/Session, Session debe generar tokens vinculados y anónimos, duración configurable en config.php, MultiRequestProtection marcada como deprecated y tests de Session actualizados
Rediseñar la clase Core DB para implementar PDO, leer configuración con Tools config, aceptar URL de conexión, soportar SQLite, permitir múltiples conexiones y métodos públicos como newConnection connection connected select, e integrarlo en Installer
Agregar Bootstrap Icons y usar AssetManager para combinar todos los CSS en un único archivo, reemplazando los enlaces CSS en la plantilla Twig por llamadas a AssetManager.addCss y usando AssetManager.combinedCss para incluir el archivo combinado.
Implementar addCronWorker para registrar workers que sólo se ejecutan por cron, marcar esos eventos en la tabla y modelo, y ajustar la función run de la cola para distinguir ejecuciones desde el cron.