Este skill contiene la documentacion exhaustiva de FacturaScripts 2025.81, un ERP open-source en PHP para gestion empresarial: facturacion, contabilidad, stock, compras, ventas, CRM y mas.
Antes de escribir codigo, lee la referencia relevante segun la tarea:
TareaReferencia a leerEntender como funciona FacturaScriptsreferences/architecture.md (2374 lineas)Crear un plugin nuevoreferences/plugins.md (2089 lineas)Trabajar con modelos (datos, CRUD)references/models.md (1135 lineas)Crear o modificar controladoresreferences/controllers.md (1721 lineas) + references/controllers-advanced.md (713 lineas)Crear o modificar vistas/formulariosreferences/views-widgets.md (2787 lineas)Conectar con la API RESTreferences/api.md (2811 lineas)Trabajar con base de datosreferences/database.md (2649 lineas)Exportacion, PDF, email, contabilidadreferences/libraries.md (944 lineas)Usuarios, roles, permisos, seguridadreferences/security.md (1840 lineas)Traducciones e internacionalizacionreferences/translations.md (1181 lineas)Consulta rapida de metodos y clasesreferences/quick-reference.md (454 lineas)
Para la mayoria de tareas de desarrollo de plugins, lee references/plugins.md primero
y luego las referencias especificas que necesites.
Si la tarea involucra crear un MCP Server para conectar con FacturaScripts, lee
references/api.md que incluye una seccion completa sobre como crear un MCP Server
con herramientas basadas en la API REST.
text
facturascripts/
index.php # Punto de entrada
Core/
Kernel.php # Nucleo: rutas, controladores, ciclo de vida
Plugins.php # Gestor de plugins
Session.php # Sesion y autenticacion
Request.php # Datos HTTP de entrada
Response.php # Respuesta HTTP
Cache.php # Cache basada en archivos
Logger.php # Sistema de logging
Tools.php # Utilidades (fechas, numeros, archivos)
Translator.php # Sistema de traducciones
Html.php # Motor Twig con funciones custom
Http.php # Cliente HTTP (cURL)
DbQuery.php # Query builder fluent
Where.php # Constructor de clausulas WHERE
WorkQueue.php # Cola de trabajos asincronos
Validator.php # Validacion de datos
Base/
Controller.php # Clase base de controladores
DataBase.php # Abstraccion BD (MySQL/PostgreSQL)
Controller/ # 125+ controladores del core
Model/ # 87+ modelos de dominio
Base/ # Clases base (ModelCore, ModelClass, traits)
Join/ # Modelos virtuales (JOIN)
Lib/
ExtendedController/ # Controladores extendidos (List, Edit, Panel)
Widget/ # 36 tipos de widgets
API/ # Sistema API REST
ListFilter/ # 7 tipos de filtros
AjaxForms/ # Formularios AJAX
Export/ # Exportacion (CSV, XLS, PDF)
PDF/ # Generacion PDF
Email/ # Envio de emails
Accounting/ # Contabilidad
View/ # Plantillas Twig
XMLView/ # 133 definiciones de vistas XML
Table/ # Esquemas de tablas XML
Translation/ # Archivos de traduccion JSON
Mod/ # Sistema de modificadores (hooks)
Worker/ # Workers para cola de trabajos
Plugins/ # Directorio de plugins
MyFiles/ # Archivos generados, cache, uploads
text
1. index.php carga autoloader Composer
2. CrashReport::init() - manejo de errores fatales
3. Kernel::init() - constantes, idioma, workers, plugins
4. Plugins::init() - ejecuta Init.php de cada plugin activo
5. Kernel::run($url)
a. Sanitiza URL
b. Carga rutas (core + MyFiles/routes.json)
c. Busca controlador que coincida con URL
d. Instancia controlador
e. Ejecuta controlador->run($response, $request)
6. WorkQueue::run() - procesa trabajos pendientes
7. Telemetry::update()
8. Logger::save() - persiste logs
9. DataBase::close()
text
1. __construct() - configura getPageData()
2. run($response, $request)
a. checkSecurity() - verifica login y permisos
b. execPreviousAction($action) - procesa acciones del usuario
c. loadData() - carga datos del modelo
d. execAfterAction($action) - post-procesamiento
e. Renderiza vista Twig
Core/Model/ que extienden ModelClass. Cada modelo mapea una tabla.Core/XMLView/) y renderizada con Twig ( Core/View/). Los widgets controlan la UI.Core/Controller/ que extienden BaseController o sus variantes extendidas.TipoUsoClaseListControllerListados con filtros, ordenacion, paginacionLib\ExtendedController\ListControllerEditControllerFormulario de edicion de un registroLib\ExtendedController\EditControllerPanelControllerFormulario con pestanas (tabs)Lib\ExtendedController\PanelControllerReportControllerInformes con filtrosLib\ExtendedController\ReportController
text
Plugins/MiPlugin/
facturascripts.ini # Metadatos del plugin
Init.php # Hooks de inicializacion
Controller/
ListMiModelo.php # Controladores
EditMiModelo.php
Model/
MiModelo.php # Modelos
Table/
mi_tabla.xml # Esquema de tabla
XMLView/
ListMiModelo.xml # Definicion de vista lista
EditMiModelo.xml # Definicion de vista edicion
Translation/
es_ES.json # Traducciones
FacturaScripts incluye una API REST completa accesible en /api/3/. Soporta:
Token) o login/password=, gt, gte, lt, lte, neq, like, null, notnulloffset y limitPara detalles completos de cada area, consulta las referencias especificas en references/.
tableName(), primaryColumn() y clear().test(), que se ejecuta antes de save().facturas_cli, productos).List y los Edit llevan prefijo Edit.Tools::lang()->trans('clave') para textos traducibles.Table/.get*() (ej: getLines(), getCustomer()).