Changes

m
no edit summary
Line 1: Line 1:  
{{TemplateDocDevEn}}
 
{{TemplateDocDevEn}}
{{ToTranslate}}
  −
      
For each entity (invoice, proposal, order, etc.) created in the application, Dolibarr assigned a reference number (or text). To adapt the reference to any use, Dolibarr uses numbering modules to define the rule of generation of this reference. The supplied modules are a standard one and a generic on with a configurable mask (numbers on x character, with or without prefix, including the date or not, etc.), which can meet most needs. However, there are still cases where the standard module does not meet the need. In this case it is necessary to develop its own numbering module.
 
For each entity (invoice, proposal, order, etc.) created in the application, Dolibarr assigned a reference number (or text). To adapt the reference to any use, Dolibarr uses numbering modules to define the rule of generation of this reference. The supplied modules are a standard one and a generic on with a configurable mask (numbers on x character, with or without prefix, including the date or not, etc.), which can meet most needs. However, there are still cases where the standard module does not meet the need. In this case it is necessary to develop its own numbering module.
Line 21: Line 19:  
= Test this module =
 
= Test this module =
 
Test this module by activating the module from configuration page. Verify that the column description, example and next value you get reflect what you should get (referred respectively by function info(), getExample() and getNextValue()).
 
Test this module by activating the module from configuration page. Verify that the column description, example and next value you get reflect what you should get (referred respectively by function info(), getExample() and getNextValue()).
  −
= Créer un nouveau module de numérotation =
  −
  −
Pour l'exemple, on part du principe qu'on crée un nouveau module de numérotation de factures qu'on nommera 'terrebis' et qui s'inspire du module 'terre' fourni en standard:
  −
  −
* copier-coller ''htdocs/includes/modules/facture/terre/terre.modules.php'' en ''htdocs/includes/modules/facture/terrebis/terrebis.modules.php''. Vous pouvez utilisez le nom que vous désirez a la place de terrebis pour peu qu'il ne soit pas déjà utilisé et ne contienne que des caractères alphabétiques.
  −
* éditer le nouveau fichier afin de faire les modifications suivantes dans le code :
  −
1. Renommer le nom de la classe pour remplacer l'ancien nom de classe par le nom choisi (conserver les même conventions de nommages).
  −
  −
2. Modifier le code de la méthode info() afin de renvoyer un texte descriptif de votre module.
  −
  −
3. Modifier le code de la méthode getExemple() afin de renvoyer un example de référence qui sera renvoyé par le module.
  −
  −
4. Modifier le code de la méthode canBeActivated() afin de faire juste un "return true;"
  −
  −
5. Modifier le code de la méthode getNextValue() afin de renvoyer la prochaine référence de numérotation disponible.
  −
  −
Au sein du code de cette fonction, vous pouvez utilisez les paramètres $objsoc ou $facture qui contiennent les informations du tiers concerné par la génération et l'object concerné par la génération (Le nom de ces variables peut différer selon la nature des l'entité gérée par le module).
  −
Vous pouvez de plus utiliser les objets $langs, $conf et $db, à condition de les déclarer par la ligne
  −
global $langs, $conf, $db;
  −
Ces objets contiennent:
  −
$langs: les infos de la langue utilisateur
  −
$conf: la configuration Dolibarr
  −
$db: l'objet de connexion à la base qui permet d'effectuer des requêtes SQL en base.
  −
  −
6. Sauvegarder : le modèle 'terrebis' est disponible dans la liste des modèles de factures de Dolibarr
  −
  −
= Tester ce module =
  −
  −
Tester ce module en l'activant depuis la page de configuration du module.
  −
Vérifiez que dans la colonne description, exemple et valeur suivante, vous obtenez des informations cohérentes (renvoyées respectivement par les fonctions info(), getExample() et getNextValue() ).