Archivo de la categoría: Frontaccounting

Publicaciones relacionadas con este ERP de fuente abierta. Implementación, configuración, desarrollo de extensiones, etc.

Extensiones Paso por Paso – Parte 1

Parte 1: Introducción

Este tutorial muestra paso por paso el desarrollo de una extensión en Frontaccounting. Antes de iniciar, debemos entender como están organizados sus componentes en el menú, qué es una aplicación, qué es un módulo y qué son las opciones por módulo, así como el esquema de seguridad utilizado para permitir o denegar el acceso a cada uno de dichos componentes. Una vez entendido lo anterior, será muy fácil construir nuestras extensiones o plug-ins.

Aplicaciones

Las aplicaciones son grupos de módulos organizados en un Tab, Frontaccounting cuenta con siete aplicaciones: Sales, Purchases, Items & Inventory, Manufacturing, Dimensions, Banking & General Ledger y Setup. Cada aplicación cuenta generalmente con tres módulos: Transactions, Inquiry and Reports y Maintenance, aunque Setup cuenta con otros múdulos específicos para su función, mientras que Items and Inventory cuenta con un módulo adicional para Pricing and Costs. Podemos decir que una aplicación es un grupo de Módulos.

Módulos

Los módulos son grupos de Opciones, organizados por renglones y columnas (izquierda y derecha).

las funciones lapp y rapp se utilizan para las ubicaciones de colocación

Opciones

Cada opción corresponde a una función específica y está asociada a un programa PHP.

Una vez entendida la estructura de Frontaccounting podemos hacer cualquiera de las siguientes cosas, o todas a la vez:

  1. Agregar una opción a un módulo de una aplicación estándar.
  2. Agregar un módulo a una aplicación estándar.
  3. Agregar una aplicación extendida.


Tutorial1_1
Figura 1

Paso 1: Crear el directorio de la extensión:

Debemos crear un directorio en que deberá estar ubicado en el directorio modules de Frontaccounting, por ejemplo:

En CentOS, Fedora or RHEL (1), en Debian or Ubuntu (2) y en Windows (3) como sigue:

  1. /Home/user/public_html/FrontAccounting/modules
  2. /var/www/frontaccounting/modules
  3. D:\XAMPP\htdocs\frontaccounting\modules

/home/user/public_html/frontaccounting/modules

Para nuestro ejemplo crearemos el directorio tutorial1;

/home/user/public_html/frontaccounting/module/tutorial1

Paso 2: Crear el archivo hooks.php

En éste directorio, residirán los archivos y subdirectorios necesarios para nuestra extensión, siendo el primero de ellos hooks.php

hooks.php declara la clase hooks_tutorial1 que es una extensión de la clase hooks, definida en include/hooks.inc, dicha clase declara varias funciones que deberán implementarse en el archivo hooks.php de cada extensión que construyamos.

Una de dichas funciones es install_options, que toma como parámetro la aplicación que la ha invocado ($app).

En nuestro ejemplo implementaremos ésta función para agregar tres opciones, una para cada uno de los módulos estándares de la aplicación Dimensions, cuyo identificador es ‘proj’, mediante las funciones

add_lapp_function() y add_rapp_function()

Dichas funciones toman como parámetros:

  • módulo (0 – Transactions, 1 – Inquiries and Reports, 2 – Maintenance)
  • nombre de la opción
  • ruta al archivo ejecutable (Ej: config.php)
  • nivel de acceso  (lo veremos más adelante, por ahora null)
  • constante para el icono que se presentará en el menú, que puede ser:
menu_update MENU_UPDATE menu_transaction MENU_TRANSACTION
menu_system MENU_SYSTEM menu_settings MENU_SETTINGS
menu_report MENU_REPORT menu_maintenance MENU_MAINTENANCE
menu_inquiry MENU_INQUIRY menu_entry MENU_ENTRY

NOTA: deberá colocar la variable $show_menu_category_icons igual a 1 en el archivo de configuración config.php para que los iconos aparezcan correctamente.

$show_menu_category_icons = 1;

Paso 3: Activar la Extensión

Antes que podamos ver los resultados de nuestro ejemplo, es necesario que activemos nuestra extensión seleccionando en el menú: Setup >> Install/Activate Extensions

Tutorial1_4

Figura 2

Ésta función nos presenta la lista de extensiones disponibles en el repositorio oficial http://repo.frontaccounting.eu, y cuáles están instaladas en el servidor local, ya sea que hayan sido descargadas del repositorio o creadas directamente en el directorio modules de Frontaccounting, como en nuestro ejemplo.

Tutorial1_7

Figura 3

Cuando la extensión ha sido instalada desde el repositorio, aparecerá la versión instalada en la columna Installed, de otra forma aparecerá como Unknown.

En la misma aplicación en el Drop List, seleccionamos las Extensiones Activadas para la compañía actual, en nuestro caso el nombre de nuestra compañía de demostración es SandBox.

Tutorial1_8

Figura 4

Se presentará la lista de Extensiones Instaladas, las activas con un check box activo y las inactivas con un check box inactivo. Seleccionamos el check box de nuestra nueva Extensión tutorial1 y actualizamos mediante el botón Update.

Tutorial1_10

Figura 5

Frontaccounting desplegará el mensaje: El conjunto de extensiones activas ha sido guardado.

Tutorial1_11

Figura 6

Listo! Ya podemos ver nuestra extensión en acción seleccionando la aplicación Dimensions, revisemos cómo la línea 16 de nuestro código agrega la opción Tutorial 1 Three, en el módulo de Mantenimiento de la aplicación Dimensiones:

Tutorial1_3
Figura 7
 

NOTA: Observará que las nuevas opciones agregadas a cada módulo están deshabilitadas (en gris), esto se debe a que aún no definimos los permisos de acceso para los usuarios. En la Segunda Parte de éste tutorial veremos como definir dichos accesos.