Crear un módulo de numeración


Para cada entidad creada en la aplicación, Dolibarr le asigna una referencia. Con el fin de adaptar la referencia a cualquier uso, Dolibarr utiliza módulos para definir la regla de generación de esta referencia. Los módulos se suministran como estándar, por lo tanto, algunos son genéricos y se utilizan para definir la máscara de numeración (x número de caracteres, con o sin prefijo, incluyendo la fecha o no, etc), pudiendo satisfacer la mayoría de las necesidades. Sin embargo, aún hay casos en los que el módulo estándar incluido no responde a la necesidad. En este caso es necesario para desarrollar su propio módulo de numeración. .

Crear un nuevo módulo de numeración

Por ejemplo, partiremos del principio que crearemos un nuevo módulo de numeración de facturas al que llamaremos 'terrebis' y que se basa en el módulo incluido como estándar 'terre':

  • copiar-pegar htdocs/core/modules/facture/terre/terre.modules.php en htdocs/core/modules/facture/terrebis/terrebis.modules.php. Puede utilizar el nombre que desee en lugar de terrebis, siempre que no esté ya en uso y que contenga solamente caracteres alfabéticos.
  • editar el nuevo fichero para realizar las siguiente modificaciones en el código :

1. Renombrar el nombre de la clase para reemplazar el nombre de clase por el nombre escogido (conservar las mismas convenciones).

2. Modificar el código del método info() para devolver una descripción de su módulo.

3. Modificar el código del método getExemple() para devolver un ejemplo de referencia devuelto por el módulo.

4. Modificar el código del método canBeActivated() para realizar solo un "return true;"

5. Modificar el código del método getNextValue() para devolver el siguiente número de referencia.

En el código de esta función, puede utilizar los parámetros $objsoc ó $facture que contienen la información de los terceros implicados en la generación y el objeto que participa en la generación (Los nombres de estas variables pueden ser diferentes en función de la naturaleza de la entbjetidad gestionada por el módulo). Puede utilizar además los objetos $langs, $conf y $db, a condición de declarrarlos mediante la línea

global $langs, $conf, $db;

Estos objetos contienen: $langs: la información del idioma del usuario $conf: la configuración de Dolibarr $db: el objeto de conexión a la base de datos que permite realizar las consultas SQL.

6. Guardar: el modelo 'terrebis' está disponible en la lista de modelos de facturas de Dolibarr

Testear el módulo

Testee este módulo activándolo desde la página de configuración del módulo. Compruebe que las columnas de descripción, ejemplos y valor siguiente, se obtienen informaciones coherentes (devueltas respectivamente por las funciones info(), getExample() y getNextValue() ).