# A savoir avant de commencer

2008-07-26T14:11:58Z
Eldy
Si vous souhaitez devenir développeur de Dolibarr vous devez :

# Lire ce wiki et plus particulièrement la [[Documentation Développeur]] dans son intégralité (dont est issue cette page). # Créer un compte sur [http://savannah.nongnu.org Savannah] et s'inscrire a la mailing-list ML développeur ([http://savannah.nongnu.org/mail/?group=dolibarr Voir ici]) # Poster sur cette ML, une courte présentation de vos cursus, attentes ou intentions. # Vous pouvez commencer par réaliser des evolutions chez vous et les tester sans géner l'organisation de Dolibarr. # Pour soumettre vos premiers travaux ou encore devenir développeur officiel, il est important de savoir que ceci passe par un circuit qui peut etre long mais qui est nécessaire pour garantir la qualité de Dolibarr. Plus d'info sur ces liens: * [[FAQ_D%C3%A9veloppeur#Soumettre_un_patch.2C_amelioration_ou_participer_au_d.C3.A9veloppement|FAQ Développeur (soumettre un patch)]] * [[FAQ_D%C3%A9veloppeur#Comment_devenir_d.C3.A9veloppeur_officiel|FAQ Développeur (devenir développeur officiel)]]

Ces quelques obligations n'ont pour seul but que le développement se fasse dans les meilleures conditions possibles.

# Accueil

2008-07-20T16:49:18Z
Eldy
Le site web officiel francophone: http://www.dolibarr.fr

Le site web officiel anglophone: http://www.dolibarr.org

==News== Prochaines versions [[Roadmap|ici]]

== Utilisateurs == * [[Documentation utilisateur|Documentation Utilisateur]] * [[FAQ_Utilisateur|FAQ Utilisateur]] * [http://demo.dolibarr.fr/ Demo CVS] * [http://www.dolibarr.fr/component/option,com_fireboard/Itemid,32/ Forum]

== Développeurs == * [[Documentation Développeur]] * [[FAQ Développeur]] * [[Développement|Les ressources pour suivre ou aider le développement de Dolibarr]]

== Traducteurs == * [[Documentation traducteur]]

== Testeurs == * [[Sauvegarder ses données avant mise-à-jour]] * [[Utiliser ses données pour tester la dernière version]]

== Revue de presse == * [[Presse en ligne]] * [[Presse papier]]

[http://meta.wikimedia.org/wiki/Help:Editing Règles de formattage de ce wiki]

# Action def

2007-08-06T01:42:06Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

Liste des actions

= Structure =

# Actualités

2007-08-09T16:32:11Z
Eldy

# Adherents

2007-09-10T17:09:36Z
Eldy
{{Navigation documentation}} {{TemplateDocUtil}}

== Fonctionnalités ==

Le module adhérent permet de gérer les adhérents d'une association. * Définition de plusieurs types d'adhérent. * Création/Validation/Modification/Résiliation/Suppression d'une fiche adhérent (caractéristiques, photos, ...) * Notions d'adhérents soumis a cotisation ou non. * Saisie/Modifications/Suppression des adhésions. * En association avec le module EMailing, envoi de mailings aux adhérents ou à une certaine catégorie d'adhérents. * En association avec le module LDAP, synchronisation des adhérents vers un annuaire LDAP. * En association avec le module Banque, interaction avec les adhésions et la trésorerie de l'association. * Reporting. * Fonction générique d'export.

Les fonctions du module Adhérent sont centralisées dans le menu du haut "Adhérents".

== Création d'un type d'adhérent ==

Avant de commencer, il est nécessaire de définir les profils d'adhérents. Pour cela, il faut créer un type d'adhérent via le menu ''Type d'adhérents'' puis ''Nouveau type''.

== Création des attributs personnalisés d'adhérent ==

Si vous avez besoin de gérer des attributs particuliers sur les fiches adhérents qui ne seraient pas prévus (age du capitaine, tour de poitrine), vous pouvez définir par le menu ''Attributs d'adhérents'' puis ''Nouvel attribut''. Choisissez le libellé de l'attribut qui sera visible, son code (qui sera utilisé comme nom de champ dans la base DB2), son type et la taille maximale.

== Création d'un adhérent ==

Un adhérent passe par le cycle de vie suivant: Brouillon -> Validé -> Saisie d'une adhésion x n -> Résiliation

Pour créer un adhérent on va dans le menu ''Adhérents - Nouvel adhérent''. Un formulaire de création est alors proposé. Renseignez tous les champs et cliquez ''Créer''. Ensuite, on passe l'adhérent à l'état ''Validé'' en cliquant sur le bouton ''Valider'' sur la fiche adhérent.

== Saisie d'une nouvelle adhésion ou d'un renouvèlement ==

Une adhésion peut être vue comme une cotisation (un paiement). Toutefois, on emploie le terme d'adhésion pour certains types d'adhérents non soumis à cotisation et dans ce cas la cotisation est gratuite. Cela n'exclut pas que leur présence en tant que membre est limitée dans le temps au même titre que celui qui paie une cotisation. Le terme "adhésion" caractérise donc un renouvèlement à l'association à partir d'une date et pour une durée fixe, que ce renouvèlement soit payant ou pas.

Pour saisir une adhésion, aller dans le menu ''Adhésion'' puis ''Nouvelle adhésion'' et saisir l'adhérent recherché. Ou bien, aller sur la ''fiche adhérent'' puis ''onglet adhésion'' puis ''Nouvelle adhésion''.

L'historique des adhésions est conservé également l'onglet ''Adhésion'' de la fiche adhérent.

== Résiliation d'adhérent ==

Aller sur la fiche adhérent et cliquer sur le bouton ''Résilier''.

== Exemples de cas d'utilisations ==

'''L'association défini un nouveau type d'adhérent'''

Je crée un type d'adhérent par Menu gauche - Types d'adhérents - Nouvel adhérent.

'''Un nouvel adhérent se présente avec un chèque ou en liquide'''

Je crée un adhérent par ''Menu gauche - Nouvel adhérent''. Je crée une adhésion par onglet ''Adhésion''.

'''Un adhérent vient renouveler son adhésion avec un chèque ou en liquide'''

Je vais sur la fiche adhérent. Je saisie une nouvelle adhésion.

'''Un adhérent a son adhésion expirée et non renouvelée depuis longtemps'''

Je vais sur la fiche adhérent. Je clique sur ''Résilier''.

# ApercuDesModeles

2008-07-04T17:08:22Z
Eldy
/* Comment modifier un modèle */
= Aperçu des modèles de facture disponibles dans Dolibarr = La liste suivante est générée à partir de factures elles-mêmes générées avec Dolibar 2.1alpha.

Les marques en gris sur les factures ont été ajoutées pour masquer les données privées figurant sur ces exemples générés à partir de factures réelles.

Une explication sommaire sur la structure des scripts générant les factures en PDF est disponible en bas de page.

== Modèle Crabe (Modèle par défaut) ==

[[image:pdf_crabe.png]]

== Modèle Huître ==

[[image:pdf_huitre.png]]

== Modèle Oursin ==

[[image:pdf_oursin.png]]

= Comment modifier un modèle = Voir la page [[Creer un modele de document]]

# Authentification

2008-01-11T23:48:37Z
Eldy
== Introduction ==

Le système d'authentification de Dolibarr devient relativement complexe, et un bug peut être particulièrement difficile à trouver si l'on ne connaît par le processus d'authentification. Cette page présente une découpe du processus, qui permet de suivre la procédure et d'intervenir là où il le faut.

== Processus ==

Le processus démarre par l'appel de la page que l'on souhaite voir. Par exemple, la page d'accueil htdocs/index.php. Mais ce n'est pas ce fichier assure la demande d'authentification. En fait toute page de Dolibarr inclut un fichier pre.inc.php qui lui même inclut le fichier main.php qui inclut master.php. Nous avons donc: <pre> <index.php> <pre.inc.php> <main.inc.php> <master.inc.php> #1# </master.inc.php> #2# </main.inc.php> </pre.inc.php> </index.php> </pre>

Le #1# représente le chargement de tout un tas de librairie que nous utiliserons par la suite, ainsi que l'initialisation du contexte d'exécution du code PHP (langue, configuration, utilisateur vierge).

Le #2# représente l'exécution de code propre à l'authentification: La verification que l'on ait dans une session loguée et si ce n'est pas le cas l'affichage de l'écran de login. C'est la que l'objet utilisateur est initialisé:

L'exécution du login, elle, se présente comme suit:

$authmode=array('http','dolibarr'); if (isset($dolibarr_auto_user)) $authmode=array('auto'); // Si la demande du login a déjà eu lieu, on le récupère depuis la session // sinon appel du module qui réalise sa demande. // A l'issu de cette phase, la variable $login sera définie. $login=''; if (! session_id() || ! isset($_SESSION["dol_user"])) { # Procédure de login. Affiche page login # } else { // On est déjà en session $login=$_SESSION["dol_user"]; } // Charge l'objet user depuis son login $result=$user->fetch($login); if ($result <= 0) { dolibarr_print_error($db,$langs->trans("ErrorCantLoadUserFromDolibarrDatabase")); exit; } // Est-ce une nouvelle session if (! isset($_SESSION["dol_user"])) { // Nouvelle session pour ce login dolibarr_syslog("New session in DOLSESSID_".$dolibarr_main_db_name.": ".session_id()); $user->update_last_login_date(); $_SESSION["dol_user"]=$user; }

Encore une fois, le code de plus grande complexité a été extrait pour l'analyser plus en détail.

Toutefois, en passant au travers du code ci-dessus de façon rapide, quelque chose pourrait vous avoir sauté aux yeux. C'est l'objet '''$user'''.

Même si j'ai supprimé une grande partie du code du login ici, cet objet n'est pas déclaré dans ce script. En fait, il fait l'objet d'une instanciation au sein d'une méthode sur l'objet DOLIAuth, que nous verrons ci-dessous, et dont la classe est (re)définie dans htdocs/includes/pear/Auth/Auth.php. C'est lorsque l'on appelle la méthode start() sur cet objet que l'objet $user est instancié.

Mais analysons plus en détail le code d'appel de la méthode d'authentification (il y a plusieurs méthodes, donc plusieurs appels possibles et qui devraient être mutuellement exclusifs).

session_name("DOLSESSID_".$dolibarr_main_db_name); session_start();

// Si on rentre ici suite a soumission d'un couple user/password alors

// Selon la valeur dolibarr_main_authentication, on appelle la fonction // dans le bon fichier qui verifie si un couple user/mot de passe est correcte

// Sinon, on affiche la page de login

== Les modules de login ==

Les modules de login sont les fichiers qui contiennent les fonctions qui controlent la validite d'un couple user/password. Il y a un fichier par module. Chaque fichier assure un type de controle différent. * Le fichier '''htdocs/include/login/functions_http.php''' controle la validite du couple user/mot de passe par une authentification de type http Basic. * Le fichier '''htdocs/include/login/functions_ldap.php''' verifie la validite d'un couple user/mot de passe dans un annuaire LDAP. * Le fichier '''htdocs/include/login/functions_dolibarr.php''' veririe la validite d'un couple user/mot de passe dans la base de donnee Dolibarr.

Chaque fichier contient en fait uniquement une fonction '''check_user_password_xxx''' mais Dolibarr ne va en utiliser qu'un. Ce sera celui dont la valeur '''xxx''' correspond a la valeur de la variable '''dolibarr_main_authentication'''. Dans ce fichier, Dolibarr sollicite la seule fonction qui s'y trouve en envoyant comme parametres le user et mot de passe.La fonction renvoie vrai si le couple est valide.

# Bank (Table SQL)

2007-08-06T01:44:52Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

La table '''llx_bank''' stocke les opérations effectuées sur les comptes bancaires.

Contains the transactions operated on bank accounts.

= Structure =

<pre> +----------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+--------------+------+-----+---------+----------------+ | rowid | int(11) | | PRI | NULL | auto_increment | index technique | datec | datetime | YES | | NULL | | date de creation technique | datev | date | YES | | NULL | | date de valeur de l'opération | dateo | date | YES | | NULL | | date de l'opération | amount | double | | | 0 | | montant de l'opération | label | varchar(255) | YES | | NULL | | Libellé | fk_account | int(11) | YES | | NULL | | numéro du compte sur lequel s'est effectué l'opération | fk_user_author | int(11) | YES | | NULL | | auteur de l'information | fk_user_rappro | int(11) | YES | | NULL | | auteur du rapprochement | fk_type | varchar(4) | YES | | NULL | | Type d'opération | num_releve | varchar(50) | YES | | NULL | | Numéro du relevé bancaire sur lequel figure l'opération | num_chq | int(11) | YES | | NULL | | Numéro du chèque si significatif | rappro | tinyint(4) | YES | | 0 | | Indique si la ligne a été rapprochée ou non | note | text | YES | | NULL | | Note | author | varchar(40) | YES | | NULL | | | fk_bordereau | int(11) | YES | | 0 | | Id du bordereau de remise de cheque | banque | varchar(255) | YES | | NULL | | Nom de la banque du cheque reçu | emetteur | varchar(255) | YES | | NULL | | Nom de l'emetteur du cheque +----------------+--------------+------+-----+---------+----------------+ </pre>

# Bank account (Table SQL)

2007-08-06T01:47:47Z
Ywarnier
/* Contenu */
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

La table '''llx_bank_account''' stocke les informations sur les comptes bancaires.

Contains bank accounts definitions.

= Structure =

<pre> +-----------------+--------------+------+-----+-------------------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------------+--------------+------+-----+-------------------+----------------+ | rowid | int(11) | | PRI | NULL | auto_increment | | datec | datetime | YES | | NULL | | | tms | timestamp | YES | | CURRENT_TIMESTAMP | | | ref | varchar(12) | | | | | | label | varchar(30) | | UNI | | | | bank | varchar(60) | YES | | NULL | | | code_banque | varchar(7) | YES | | NULL | | | code_guichet | varchar(6) | YES | | NULL | | | number | varchar(255) | YES | | NULL | | | cle_rib | varchar(5) | YES | | NULL | | | bic | varchar(11) | YES | | NULL | | | iban_prefix | varchar(5) | YES | | NULL | | | domiciliation | varchar(255) | YES | | NULL | | | proprio | varchar(60) | YES | | NULL | | | adresse_proprio | varchar(255) | YES | | NULL | | | courant | smallint(6) | | | 0 | | | clos | smallint(6) | | | 0 | | | rappro | smallint(6) | YES | | 1 | | | url | varchar(128) | YES | | NULL | | | account_number | varchar(8) | YES | | NULL | | | currency_code | char(2) | | | | | | min_allowed | int(11) | YES | | 0 | | | min_desired | int(11) | YES | | 0 | | | comment | varchar(254) | YES | | NULL | | +-----------------+--------------+------+-----+-------------------+----------------+

</pre>

# Bank categ (Table SQL)

2007-08-06T01:48:08Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Bank class (Table SQL)

2007-08-06T01:48:20Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Bank url (Table SQL)

2007-08-06T01:48:38Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Banques et Caisses

2008-02-03T09:59:02Z
Grandoc
{{Navigation documentation}} {{TemplateDocUtil}}

== Définitions ==

* '''Un compte banque''' c'est un compte bancaire (souvent ce compte permet de faire des chèques ou de payer par carte bancaire). * '''Une caisse''', c'est la boite à gâteau de grand-mère dans laquelle tu mets de l'argent liquide ou encore ton porte-monnaie ou encore la caisse enregistreuse pour les commerçants.

Quand on reçoit un paiement en chèque, il sera forcement déposé sur un compte bancaire (compte banque) mais en cas de réception d'argent liquide, il est possible de ranger les billets dans un porte monnaie, une caisse enregistreuse (compte caisse) comme de les mettre de coté pour les déposer à la banque. Dolibarr permet de créer autant de comptes banque ou de comptes caisse que besoin. Pour gérer une trésorerie, il en faudra au moins un (en général compte bancaire, à moins que le commerce géré n'accepte ni chèque, ni carte bleu et que tout soit fait en liquide, achat comme vente), mais ceci reste optionnel. Si la trésorerie ne doit pas être gérée par Dolibarr, le module Banque/Caisse peut être désactivé.

== Création d'un nouveau compte bancaire / caisse ==

Aller dans le menu Compta/Trésorerie puis Banque puis bouton "Créer compte".

== Suppression/Desactivation d'un compte ==

A compléter.

== Exemple de cas d'utilisations ==

A compléter.

# Benoit Mortier

2004-07-28T22:00:13Z
212.76.237.2
Benoit Mortier développeur sous GNU/Linux au sein de la société [http://www.opensides.be/ OpenSides]

Je suis intéressé par les développement d'application web en entreprise, basés sur php et postgresql.

Je suis un "debianiste" http://www.debian.org/ convaincu !

'''Mes développements au sein de dolibarr'''

L'amélioration et le support du code postgresql pour dolibarr

Le developpement du code ldap pour dolibarr afin de permettre le stockage des contacts dans le ldap

L'amélioration du programme d'installation pour supporter mysql et postgresql

La documentation pour developpeur de dolibarr avec doxygen

'''Mes développements futur'''

L'intégration de LDAP au niveau du login dans dolibarr afin de faire un single logon au niveau de dolibarr, webcalendar, egroupware.

La localisation afin de fournir un application adaptée a la belgique

L'amélioration de l'interface : plus d'ergnomie et de facilité pour les débutants

L'écriture d'un mode d'emploi avec images et tutorial

La gestion des produits : gestion de gammes de produits, remise, plusieurs type de prix par produits

La gestion du stock : gestion des différents entrepots avec livraison intra entrepots, insertion avec gestion de codes barres ..etc

La gestion d'un parc informatique : hardware, logciel, licenses

# Bookmark4u login (Table SQL)

2007-08-06T02:06:09Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Bookmark (Table SQL)

2007-08-06T01:48:47Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Boxes (Table SQL)

2007-08-06T02:06:19Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Calendrier

2006-11-17T01:38:03Z
Eldy
{{Navigation documentation}} {{TemplateDocUtil}}

A compléter

# Ce que fait Dolibarr

2008-04-03T11:04:58Z
Eldy
/* Miscellanous */
This is a summary of main Dolibarr features

== Main modules == * Products and services catalog * Stock management * Bank accounts management * Customers, Suppliers or Prospects directory * Contacts directory * Commercial actions management * Orders management * Commercial proposals management with PDF export * Contracts management * Invoices management with PDF export * Payments management * Standing orders management * Shipping management * Support NPR VAT (for french DOM-TOM)

== Other modules == * [[Adherents|Fundations members management]] * Gestion des Bookmarks * EMailing * Can reports Dolibarr events inside Webcalendar * Reporting * Data export tools * LDAP connectivity * Donations management

== Miscellanous == * Mutli-user, with several permissions levels for each feature. * Serveral menu managers (can be used by internal users, as a back-office, with a particular menu, or by external users, as a front-office, with another menu and permissions). * Very user friendly and easy to use. * Several skins. * Code is highly customizable (a lot of use of modules). * Works with Mysql 3.1 or higher, experimental support for PostgreSql. * Works with PHP 4.3 or higher.

# Ce que ne fait pas Dolibarr

2008-04-03T10:58:00Z
Eldy
Ces fonctionalités ne sont pas disponibles en version 2.4

* Pas de compta (uniquement gestion de trésorerie). * Dolibarr ne gère qu'une seule monnaie à la fois (mono-devise). * Ne gère pas la double tva (Fédérale / provinciale) du canada. * Dolibarr ne fait pas le café (pas encore).

# Charte de nommage

2008-05-13T12:42:48Z
Raphaelb
/* Clé alternative */
== Nom de table == Toutes les tables sont préfixées pour éviter les conflits de nommage. Aujourd'hui, le préfixe est déterminé et n'est pas modifiable. Sa valeur est <tt>llx_</tt>. Il est cependant envisagé, dans une version future, de pouvoir le modifier au moment de l'installation.

=== Format de fichier === * Chaque table est définie dans son propre fichier dont le nom est <tt>''nom_de_table''.sql</tt> * Les clés étrangères et index de performance ou autres contraintes d'unicité sont définies dans un fichier séparé dont le nom est <tt>''nom_de_table''.key.sql</tt> Dans la mesure du possible, on mettra un commentaire à côté de chaque champ pour en expliquer la signification. * Toutes les tables de Dolibarr doivent avoir leur fichier creation dans le répertoire '''mysql/tables'''

== Clé primaire == La clé primaire d'une table s'appelle <tt>rowid</tt> Il y a quelques tables qui echappent à cette régle actuellement (ex llx_societe). Une evol pourra etre étudiée pour une prochaine version.

== Clé étrangère == Le nom d'une clé étrangère commence par le préfixe <tt>fk_</tt> suivi du nom de la table liée (requis pour eviter doublons globales à la base, problématiques sous certains SGBD comme postgresql) puis du champ lié (pour permettre plusieurs clés étrangères différentes sur une meme table).

Exemple: fk_facture_fourn_fk_soc

== Clé alternative == Parfois, il n'y a pas que la clé primaire qui doit etre unique. On peut donc ajouter aussi un index clé alternative unique. Un tel index est nommé par un nom qui commence par le préfixe <tt>uk_</tt> suivi du nom de la table d'un underscore (requis pour eviter doublons d'index globals à la base, problématiques sous certains SGBD comme postgresql) puis d'un suffixe qui caractérise la clé (pour permettre plusieurs index uniques sur une meme table).

Exemple: uk_societe_code_client

== Index performance == Certains champs sont souvent utilisés comme critère de recherche, de tri ou de jointure. Il convient dans ce cas, d'y mettre un index de performance. De tel index seront nommés avec un préfix <tt>idx_</tt> puis le nom de la table et le nom du champ sur lequel porte l'index.

Exemple: idx_societe_user_creat

== Utilisation des alias/nommages de champs == Dans le cas des select on pourra utiliser les alias pour simplifier l'écriture des requetes: <pre>select chp1, chpxxx2 as chp2 from table2 as t1, table2 as t2 where t1.chpx = t2.chpy</pre> Toutefois, il ne faut pas utiliser ces alias sur des requetes update car non compatible avec mysql 3.1.

== Spécificités MySQL ==

=== Format de base de données === Les tables doivent être au format InnoDB pour un usage optimal. En effet, ce format gère les clés étrangères, les éventuelles restrictions qui y sont attachées et la notion d'intégrité de transactions requis pour avoir des données en base cohérente entre tables.

== Spécificités PostgreSQL == Seules les fichiers pour mysql doivent etre maintenus. Les fichiers pour Postgresql sont générés automatiquement depuis les fichiers Mysql grace au script '''dolibarr_mysql2pgsql.pl'''

== Exemple MySQL ==

* Fichier llx_facture.sql <pre> -- =========================================================================== -- Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org> -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 2 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software -- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -- -- $Id$ -- $Source$ -- ===========================================================================

create table llx_facture ( rowid integer AUTO_INCREMENT PRIMARY KEY, facnumber varchar(30) NOT NULL, ref_client varchar(30), increment varchar(10), fk_soc integer NOT NULL, datec datetime, -- date de creation de la facture datef date, -- date de la facture date_valid date, -- date de validation paye smallint DEFAULT 0 NOT NULL, amount real DEFAULT 0 NOT NULL, remise_percent real DEFAULT 0, -- remise globale en pourcent remise real DEFAULT 0, tva real DEFAULT 0, -- montant tva apres remise globale total real DEFAULT 0, -- montant total ht apres remise globale total_ttc real DEFAULT 0, -- montant total ttc apres remise globale

fk_statut smallint DEFAULT 0 NOT NULL,

fk_user_author integer, -- createur de la facture fk_user_valid integer, -- valideur de la facture

fk_projet integer, -- projet auquel est associée la facture

fk_cond_reglement integer DEFAULT 1 NOT NULL, -- condition de reglement (30 jours, fin de mois ...) fk_mode_reglement integer, -- mode de reglement (Virement, Prélèvement) date_lim_reglement date, -- date limite de reglement

note text, model varchar(50),

UNIQUE INDEX (facnumber) )type=innodb; </pre>

* Fichier llx_facture.key.sql <pre> -- ============================================================================ -- Copyright (C) 2002-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org> -- Copyright (C) 2004 Laurent Destailleur <eldy@users.sourceforge.net> -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 2 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software -- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -- -- $Id$ -- $Source$ -- -- ============================================================================

ALTER TABLE llx_facture ADD INDEX idx_facture_fk_soc (fk_soc); ALTER TABLE llx_facture ADD INDEX idx_facture_fk_user_author (fk_user_author); ALTER TABLE llx_facture ADD INDEX idx_facture_fk_user_valid (fk_user_valid); ALTER TABLE llx_facture ADD INDEX idx_facture_fk_projet (fk_projet);

ALTER TABLE llx_facture ADD CONSTRAINT fk_facture_fk_soc FOREIGN KEY (fk_soc) REFERENCES llx_societe (idp); ALTER TABLE llx_facture ADD CONSTRAINT fk_facture_fk_user_author FOREIGN KEY (fk_user_author) REFERENCES llx_user (rowid); ALTER TABLE llx_facture ADD CONSTRAINT fk_facture_fk_user_valid FOREIGN KEY (fk_user_valid) REFERENCES llx_user (rowid); ALTER TABLE llx_facture ADD CONSTRAINT fk_facture_fk_projet FOREIGN KEY (fk_projet) REFERENCES llx_projet (rowid); </pre>

[[Utilisateur:Marc ocebo|Marc ocebo]]

# Commande

2007-05-11T09:04:26Z
Grandoc
/* Supprimer une commande */
{{Navigation documentation}} {{TemplateDocUtil}}

==Créer une commande==

La création d'une commande se fait à partir de la fiche client dans la partie commerciale de l'application. Le lien permettant cela se trouve dans la barre d'action de la fiche.

Une commande est automatiquement créée lors de la clôture d'une proposition commerciale. Cette commande est créée à l'état de brouillon.

==Clôturer une commande==

Une fois qu'une commande a été entièrement expédiée, il faut retourner sur sa fiche pour clôturer la commande. Elle est alors placée dans l'espace comptabilité comme "A facturer".

==Supprimer une commande==

Pour supprimer une commande il vous faut ouvrir la fiche de celle-ci. Une commande ne peut être supprimée que si celle-ci est à l'état de '''brouillon'''. Une fois validée, elle peut seulement être annulée. La suppression d'un commande entraine l'effacement de toutes les données s'y référant.

'''Une commande supprimée ne peut pas être récupérée'''.

==Modifier une commande==

Pour modifier une commande il vous faut ouvrir la fiche de celle-ci. Une commande ne peut être modifiée que si celle-ci est à l'état de brouillon.

# CommandeFournisseur

2007-08-16T16:21:11Z
Ywarnier
/* Créer une commande fournisseur */
{{Navigation documentation}} {{TemplateDocUtil}}

==Créer une commande fournisseur==

La création d'une commande fournisseur se fait à partir de la fiche fournisseur dans la partie tiers ou fournisseurs de l'application, onglet fournisseur. Le bouton le permettant se trouve dans la barre d'action de la fiche fournisseur.

La commande est alors créée à l'état de brouillon.

Il faut alors sélectionner des produits vendus par le fournisseur dans la liste donnée. Si l'on veut rajouter un nouveau produit, il est nécessaire de passer par l'interface des produits/services, de créer un produit puis d'utiliser l'onglet fournisseur de la fiche produit et d'indiquer le prix et la quantité minimum pour ce fournisseur. Le produit est alors disponible dans la liste des produits de ce fournisseur et peut être ajouté à la ligne de commande.

==Clôturer une commande fournisseur==

Une fois qu'une commande a été entièrement reçue, il faut retourner sur sa fiche pour la clôturer. (? Elle est alors placée dans l'espace comptabilité comme "A facturer").

==Supprimer une commande fournisseur==

Pour supprimer une commande il vous faut ouvrir la fiche de celle-ci. Une commande ne peut être supprimée que si celle-ci est à l'état de '''brouillon'''. Une fois validée, elle peut seulement être annulée. La suppression d'un commande entraîne l'effacement de toutes les données s'y référant.

'''Une commande supprimée ne peut pas être récupérée'''.

==Modifier une commande fournisseur==

Pour modifier une commande il vous faut ouvrir sa fiche. Une commande ne peut être modifiée que si celle-ci est à l'état de brouillon.

== Cas d'utilisations ==

'''UCSOR01: Commande fournisseur'''

# Comptabilité

2006-11-17T01:34:53Z
Eldy
{{Navigation documentation}} {{TemplateDocUtil}}

A compléter

# Constantes

2006-05-16T20:01:33Z
Dilaroga
/* Constantes générales */
== Introduction ==

La configuration de Dolibarr agit sur 2 niveaux. Le niveau global (configuration propre à tous les utilisateurs) et le niveau par utilisateur (configuration propre à chaque utilisateur).

'''Configuration globale (tout utilisateur)'''

L'ensemble de la configuration globale de dolibarr est stocké dans la table llx_constant. Chaque paramètre de configuration est défini par une constante et une valeur. Toutes ces constantes peuvent etre éditées depuis le menu "''Accueil - Configuration''"

'''Configuration par utilisateur'''

L'ensemble de la configuration utilisateur de dolibarr est stocké dans la table llx_user_param. C'est le champ fk_user qui contient l'id de l'utilisateur concerné. Toutes ces constantes peuvent etre éditées depuis la fiche de l'utilisateur, onglet "''Paramètres utilisateurs''"

La suite de l'article liste toutes les constantes de configurations utilisées par Dolibarr

== Constantes générales == * SIZE_LISTE_LIMIT Longeur maximum par défaut des listes sur les écrans * MAIN_THEME Le nom du thème par défaut * MAIN_DEBUG * MAIN_TITLE * MAIN_SPIP_DB Nom de la base de données SPIP * MAIN_SPIP_PASS

== [[Module Adherent]] == * A compléter

== [[Module Propale]] == * A compléter

== [[Module Facture]] == * FAC_PDF_ADRESSE Adresse imprimée sur les factures * FAC_PDF_FAX Numéro de Fax imprimé sur les factures * FAC_PDF_SIREN Numéro de SIREN affiché sur les factures

== [[Module Dons]] == * DONS_FORM

== [[Module OSCommerce]] == * OSC_DB_NAME : Nom de la base de données d'oscommerce * OSC_CATALOG_URL : URL du catalogue Oscommerce * OSC_CATALOG_DIRECTORY * OSC_DIRECTORY * OSC_IMAGE_DEFAULT

== [[Module Postnuke]] == * PN_DB_NAME Nom de la base Postnuke * PN_TABLE_STORIES_NAME

== [[Module Téléphonie]] == * TELEPHONIE_EMAIL_FACTURATION_EMAIL * TELEPHONIE_EMAIL_FACTURATION_NAME

# Contrat

2005-11-21T13:55:14Z
Rhum1
Ajout de la navigation
{{Navigation documentation}} {{TemplateDocUtil}}

# Creer un modele de document

2008-07-04T17:07:25Z
Eldy
Ce document décrit comment créer son propre modele de generation de document PDF afin de personnaliser ces documents (propales, factures, etc...) Il se base sur les propositions commerciales comme exemple mais s'applique à tout type de document.

= Tester les modèles existants = Dans Dolibarr tester les modèles existants (bleu, jaune, rouge) : créer une propale, la laisser à l'état de brouillon et tester les différentes présentations.

= Trouver le meilleur modèle = Noter le modèle le mieux adapté aux besoins. Dans cet exemple, c'est le modèle bleu (correspondant au fichier pdf_propale_bleu.modules.php). Rem: Pour info, tous les modèles de propales sont dans \includes\modules\propale si vous etes sous Windows et /includes/modules/propale si vous etes sous Unix.

= Créer le nouveau modèle = Par sécurité, on conservera les modèles d'origine. Créer le modèle 'masocietebleu' # copier-coller pdf_propale_bleu.modules.php # renommer la copie en pdf_propale_masocietebleu.modules.php # l'éditer et faire les modifs suivantes dans le code: ## Renommer 'Class pdf_propale_bleu { ' en 'Class pdf_propale_masocietebleu { ' (ligne 24) ## Renommer 'Function pdf_bleu($db=0)' en 'Function pdf_propale_masocietebleu($db=0)' (ligne 26) ## Sauvegarder : le modèle 'masocietebleu' est disponible dans la liste des modèles de propales de Dolibarr ## Tester ce modèle (Voir A)) avant d'aller plus loin...

= Personnaliser = Personnaliser le modèle créé. Toujours dans pdf_propale_masocietebleu.modules.php, chercher la fonction 'Function _pagehead(&$pdf, $fac)' (vers la ligne 306). C'est elle qui gère l'affichage de l'entête.

== Librairie de création ==

La librairie utilisée pour la création de documents en PDF se nomme FPDF et peut être trouvée dans htdocs/includes/fpdf/fpdf/fpdf.class.php. C'est également dans cette classe que l'on trouve les nombreuses méthodes utilisées pour générer les différents éléments des documents.

Les modèles eux-même instancient la classe FPDF et utilisent ensuite ses méthodes, combinées avec les données d'une facture, d'une commande ou d'autres types de données.

On retrouve généralement les appels suivants dans les scripts de création de documents: * $pdf->SetFont() - ''Désigne la fonte à utiliser pour le texte qui suivra'' * $pdf->SetXY() - ''Désigne le point de départ pour dessiner le prochain texte en coordonnées X,Y qui sont exprimées en millimètres de la page'' * $pdf->MultiCell() - ''Dessine une boîte pouvant contenir du texte, et dont on doit d'abord donner la largeur et la hauteur - très utilisée'' * $pdf->GetY() - ''Renvoie la position courante en Y'' * $pdf->SetDrawColor() - ''Désigne la couleur à utiliser pour le prochain texte à écrire - généralement noir (0,0,0) ou blanc (255,255,255)'' * $pdf->Rect() - ''Dessine un rectangle dont le coin supérieur gauche est au point indiqué par les deux premiers paramètres et le coin inférieur droit utilise les deux derniers paramètres en mode relatif aux deux premiers''

== Structure des scripts ==

Les scripts de génération des documents PDF, au moment du développement de la version 2.2, disposent des méthodes suivantes (prenant pour exemple le modèle "crabe") au sein de la classe du nom du modèle: * pdf_crabe() - ''Constructeur de l'objet pdf'' * write_pdf_file() - ''Méthode générale pour la génération du fichier. Cette méthode appelle toute les suivantes après avoir initialisé quelques variables'' * _pagehead() - ''Méthode de dessin de l'en-tête du document, incluant généralement le logo, le titre du document (et la date) ainsi que les cadres de l'émetteur et du destinataire du document'' * _tableau() - ''Méthode de dessin du tableau de détails (produits, services, etc)'' * _tableau_info() - ''Méthode de dessin du tableau reprenant une liste d'informations sur la facture'' * _tableau_tot() - ''Méthode de dessin du tableau des totaux'' * _tableau_versement() - ''Méthode de dessin du tableau des règles de versement'' * _pagefoot() - ''Méthode de dessin du pied de page''

== Insertion d'un logo == * Chercher la séquence suivante: $pdf->SetXY(10,5); if (defined("FAC_PDF_INTITULE")) { $pdf->SetTextColor(0,0,200); $pdf->SetFont('Arial','B',14); $pdf->MultiCell(60, 8, FAC_PDF_INTITULE, 0, 'L'); * Ajouter l'instruction: $pdf->Image('\www\htdocs\dolibarr\document\societe\logo.jpg', 10, 5,60.00); * Mettre en commentaire l'instruction d'affichage de la variable FAC_PDF_INTITULE

== Modification des constantes affichées == Principales fonctions utilisées $pdf->setX(float a); fixe la position x courante $pdf->setY(float b); fixe la position y courante $pdf->setXY(float a,float b); fixe les positions x et y courantes (rappel: l'origine est le coin supérieur gauche) $pdf->SetTextColor(0,0,200); fixe la couleur du texte $pdf->SetFont('Arial','B',14); fixe la police, le type ( 'B' pour gras, 'I' pour italique, '' pour normal,...) $pdf->MultiCell(60, 8, FAC_PDF_INTITULE, 0, 'L'); imprime la variable FAC_PDF_INTITULE avec saut de ligne (info: Il semble que Dolibarr gère un certain nombre de constantes dans Accueil => Configuration => System => Constantes. Mais ça ne fonctionne pas sur ma config ...).

== Pour plus d'infos == http://www.fpdf.org/?go=script&id=2 et aller sur 'accueil'

== Le résultat == Réalisation ozit: http://www.adytek.com/PR040123.pdf

= Choisir un modèle par défaut dans Dolibarr = Dans Accueil => Configuration => proposition commerciale: * on affiche les modèles, * on indique ceux qui doivent etre actifs, * on précise le modèle proposé par défaut.

= Merci = Merci à David, Florent et surtout ozit pour leur aide.

# Customisation des documents dolibarr

2005-08-25T14:34:31Z
Eldy
Cette section sert d'exemples pour modifier tous les documents emis par dolibarr

* Pour les propales, voir [[DocumentPropale]] * Pour les factures, voir [[DocumentFacture]]

# Developpement module

2008-07-17T01:47:42Z
Ncc
/* Définir vos propres box (optionnel) */
Pour créer un nouveau module, il existe plusieurs étapes. Ce didacticiel a pour but de vous décrire chacune d'elle afin d'ajouter un module permettant d'étendre les possibilités de Dolibarr, comme par exemple ajouter une ou plusieurs des fonctionnalités suivantes: * Développer de nouvelles permissions * Ajouter de nouvelles boites * Ajouter des entrées menu * Ajouter des écrans * Ajouter des exports prédéfinis * Déclencher du code automatiquement sur une action Dolibarr particulière etc...

== Créer un descripteur de Module (obligatoire) == '''Quand''': Obligatoire dès qu'une extension est développée, quelque soit sa vocation.

'''Créer votre descripteur''':

La première étape est donc de créer un fichier descripteur du module. Pour cela, aller dans le répertoire '''dev/skeletons''' et recopier le fichier modMyModule.class.php dans le répertoire '''htdocs/includes/modules'''. Ensuite, modifier le contenu de ce fichier afin de remplacer: * les ''modMyModule'' en une valeur qui corresponde a la vocation de votre module. Cette valeur doit toujours commencer par 'mod'. * $this->numero = ''10000'' par un numero de module libre (Aller dans la page Accueil -> Infos système -> Dolibarr pour connaitre la liste des id module deja utilises). * $this->const_name = 'MAIN_MODULE_MYMODULE' par $this->const_name = 'MAIN_MODULE_XXX' où XXX doit correspondre à la valeur choisie pour remplacer MYMODULE et mis en majuscule. * $dir = DOL_DOCUMENT_ROOT.'/mysql/tables/mymodule/'; par $dir = DOL_DOCUMENT_ROOT.'/mysql/tables/xxxxxxxx/'; ou xxxxxxxx représente le nom de votre module (sans espaces). * Modifier éventuellement les autres variables définies dans le constructeurs (Voir le commentaire dans le code du squelette pour leur signification).

Votre fichier descripteur de votre module est alors en place.

'''Tester votre descripteur''':

Lancer Dolibarr et aller sur la page '''Configuration->module''', vous devez voir apparaitre une nouvelle ligne avec votre nouveau module et la possibilité de l'activer ou non (parcourez tous les onglets de chaque catégories de modules jusqu'à le retrouver). C'est la valeur de $this->special qui détermine dans quel onglet se trouve votre module.

== Créer vos tables SQL et la classe PHP des accesseurs (optionnel) == '''Quand''': Si votre module a besoin de gérer des données qui lui sont propres

=== Créer vos fichiers .sql === Si votre module a vocation à gérer des données bien a lui, il est nécessaire de définir des tables SQL pour stocker ces données.

Créer un '''sous-répertoire''' de '''htdocs/mysql/tables''' propre à votre module (Par exemple '''htdocs/mysql/tables/monmodule/''') afin d'y placer les scripts sql que vous aller créer. Ensuite dans votre descripteur de module, modifier la ligne <pre>$dir = DOL_DOCUMENT_ROOT.'/mysql/tables/mymodule/';</pre> par <pre>$dir = DOL_DOCUMENT_ROOT.'/mysql/tables/monmodule/';</pre>

''Règle à respecter:'' Ajouter les fichiers d'ordre de création de vos tables sur le principe d'un fichier par table (voir les fichiers existants dans '''htdocs/mysql/tables''' pour exemple). Les fichiers doivent être opérationnel pour la base de données '''mysql'''. Rem: Les fichiers des autres bases ne sont pas maintenus mais sont générés, au moment d'une release, à partir de ces derniers via le script: <pre>build/dolibarr_mysql2autrebase.pl</pre>

=== Tester vos fichier .sql ===

Une fois les fichiers prêts, vous pouvez retourner sous Dolibarr puis désactiver le module, dropper les tables en base et réactiver le module. Les tables doivent alors être recréées par l'activation du module. Si tel n'est pas le cas, vérifiez vos scripts en les passant à la main, ou consultez les logs Dolibarr.

=== Générer la classe PHP d'accès ===

Une fois votre ou vos tables créées en base, aller dans le répertoire '''dev/skeletons''' et lancez le script <pre>php build_class_from_table.php nomtable</pre> Remarque: Si la commande ne fonctionne pas, essayer d'utiliser php-cli plutot que php.

Ceci génèrera un fichier '''out.nomtable.class.php''' qui contient la classe de gestion de la table nomtable. Dans cette classe, se trouve des méthodes déjà opérationnelles pour faire un insert, un update, un delete et un fetch (select) d'une ligne de la table. Supprimer juste le "out" du nom de fichier et placer votre fichier dans un sous-répertoire de '''htdocs''' propre à votre module (Dans '''htdocs/monmodule''' par exemple).

== Créer vos pages PHP (optionnel) == '''Quand''': Si l'objet de votre module est d'ajouter des fonctionnalités qui nécessitent de nouveaux écrans.

Vous devez ensuite créer vos pages PHP qui se basent sur les données de vos tables en utilisant les squelettes fournis comme exemple dans le répertoire '''dev/skeletons''' (Pour le développement d'un script en ligne de commande, voir [[Developpement_script]]).

Pour créer une nouvelle page écran utilisateur, créer un sous-répertoire de '''htdocs''' (si non déjà fait) propre à votre module (Dans '''htdocs/monmodule''' par exemple) afin d'y placer les pages que vous aller créer.

Y recopier le fichier '''skeletons_page.php''' qui va servir de point de départ à votre page ainsi que le fichier '''pre.inc.php'''. Modifier le fichier '''pre.inc.php''' afin que le chemin relatif du <pre> include("../../main.inc.php)"; </pre> soit correct, en fonction de la profondeur de répertoire dans laquelle se trouve le fichier '''pre.inc.php''' (Enlever ou supprimer des "../"). C'est dans le main qu'est chargé l'environnement technique ainsi que les habilitations. Les variables objets suivantes sont alors positionnées:

* $user L'objet qui contient les caractéristiques de l'utilisateur + ses droits. * $conf L'objet qui contient la configuration de Dolibarr. * $db L'objet qui contient le handler de connexion ouvert à la base de donnée. * $langs L'objet qui contient la langue de l'utilisateur.

Saisissez ensuite votre code pour afficher la page.

=== Accès à la base === Si vous avez besoin de réaliser des modifications en base, pensez à suivre cet exemple:

<pre> $db->begin(); // Debut transaction $db->query("Ma requete insert, update ou delete"); $db->commit(); // Valide ou $db->rollback() // Annule </pre>

Pour une lecture:

<pre> $resql=$db->query("Ma requete select"); if ($resql) { $num = $db->num_rows($resql); $i = 0; if ($num) { while ($i < $num) { $obj = $db->fetch_object($resql); if ($obj) { // You can use here results print $obj->field1; print $obj->field2; } $i++; } } } </pre>

=== Définition du style === Pour que le look de la page soit aligné avec le thème Dolibarr, il est nécessaire d'utiliser les styles des CSS de Dolibarr.

Par exemple:

* class="'''liste_titre'''" sur les balises ''tr'' et ''td'' pour une ligne de titre de tableau. * class="'''pair'''" ou class="'''impair'''" sur les balises ''tr'' et ''td'' des lignes de donnees de tableau. * class="'''flat'''" sur tous les champs de saisie (''input, select, textarea''...). * class="'''button'''" sur les objets de type ''input type="submit"''.

== Définir votre page de configuration (optionnel) == '''Quand''': Si votre module offre plusieurs options paramétrables.

Si votre module offre plusieurs options paramétrables, il est nécessaire de créer une page PHP pour éditer les options (qui sont stockées dans la table '''llx_const'''). Créer une page PHP nommée '''monmodule_setupapage.php''' qui offre les options possibles et les met à jour, sur le modèle des pages dans '''/admin'''. Placer cette page de configuration dans le répertoire '''/admin''' également. Ensuite dans le descripteur de module, modifier la variable pour indiquer le nom de cette page <pre> $this->config_page_url = array("monmodule_setupapage.php"); </pre> '''Tester votre page''': Aller sur la page '''Configuration->module''', vous devez voir apparaitre un icone qui permet d'accéder à la page de configuration.

== Définir vos entrées de menu (optionnel) == '''Quand''': Si vous avez créé des pages PHP, il est nécessaire que ces écrans soient accessibles depuis le menu Dolibarr.

Pour cela, il vous faut définir dans le fichier descripteur de menu le tableau <pre> $this->menu </pre> Ce tableau contient toutes les entrées qui apparaitront dans les menus une fois le module activé. Les fichiers de descripteur de module exemple possede un exemple de décalaration de menu haut ainsi que de ces entrées menu gauche correspondantes.

== Définir vos propres permissions (optionnel) == '''Quand''': Si vous voulez ajouter de nouvelles permissions.

La définition des permissions que gèrera votre module se fait dans le fichier descripteur créé dans la première étape. Modifier la ligne $this->rights_class = 'facture' par <pre> $this->rights_class = 'monmodule' </pre>

Ensuite remplissez le tableau $this->rights avec autant d'entrée que de permissions différentes à gérer.

<pre> $this->rights[$r][0] = 9999; $this->rights[$r][1] = 'Libelle par défaut de ma permission'; $this->rights[$r][3] = 1; $this->rights[$r][4] = 'action'; $this->rights[$r][5] = 'sousaction'; $r++; </pre>

Dans $this->rights[$r][0], mettre un id de permission non déjà pris (Voir dans le menu '''Infos Système''' sur une installation de Dolibarr opérationnelle pour connaitre les id déjà utilisés. Dans $this->rights[$r][3], mettre 1 si cette permission est attribué d'office par défaut quand un utilisateur est créé. Dans $this->rights[$r][1], mettre un libellé par défaut (il sera affiché si aucune traduction n'est trouvé pour votre permission dans le fichier '''admin.lang'''). Dans $this->rights[$r][4] et $this->rights[$r][5], mettre une chaine action et sousaction sans espaces. Vous pourrez alors tester dans le code PHP si un utilisateurs a bien les droits par la séquence suivante:

<pre> $user->getrights('monmodule'); if ($user->rights->action->sousaction) </pre>

== Définir vos propres box (optionnel) == '''Quand''': Si votre module amène avec lui une ou plusieurs Boxes.

Pour cela, modifier les tableaux $this->boxes du fichier descripteur de module. Il suffit d'ajouter une ligne par fichier box qui se trouve dans le répertoire '''htdocs/includes/boxes'''

''Exemple:'' <pre> this->boxes[0][1]='mabox0.php' this->boxes[1][1]='mabox1.php' this->boxes[2][1]='mabox2.php' ... this->boxes[n][1]='maboxn.php' </pre>

== Définir vos propres exports (optionnel) == '''Quand''': Si votre module amène avec lui des exports prédéfini de données (pour ces propres tables ou des tables déjà existante d'un autre module de Dolibarr).

Pour cela, modifier les tableaux $this->export_xxx du fichier descripteur de module.

== Définir vos styles CSS (optionnel) == '''Quand''': Si dans vos écrans PHP, vous utiliser des classes de styles qui ne sont pas celle des thèmes de Dolibarr (non recommandé).

Cette fonctionnalité n'est pas encore possible.

== Définir vos fonctions Javascript (optionnel) == '''Quand''': Si dans vos écrans PHP, vous utiliser des fonctions javascript non dispo en standard (fichier lib_head.js)

Si dans vos écrans PHP, vous utilisez des fonctions javascript, il est nécessaire de faire en sorte que vos fonctions déclarées dans un fichiers javascript '''monmodule.js''' soit chargées dans l'entête head html. Pour demander à Dolibarr qui gère la génération de la section header d'inclure un de vos fichiers javascript, il est nécessaire de déclarer votre fichier javascript dans le descripteur de module.

Cette fonctionnalité n'est pas encore possible.

== Déclencher du code sur un évènement Dolibarr (optionnel) == '''Quand''': Si vous voulez que des actions particulières s'exécutent suite au déclenchement d'action s standards de Dolibarr (exemple: je veux mettre à jour une table de mon module quand une facture se crée dans Dolibarr), il vous faut créer un fichier de '''triggers'''.

Voir aussi [http://www.dolibarr.com/wikidev/index.php/Interfaces_Dolibarr_vers_exterieur Interfaces_Dolibarr_vers_exterieur] et [http://www.dolibarr.com/wikidev/index.php/Interfaces_Exterieur_vers_Dolibarr Interfaces_Exterieur_vers_Dolibarr]

== Créer un package pour livrer et installer mon module ==

* Aller dans le répertoire '''/build''' et recopier le fichier '''makepack-dolibarrmodules.conf''' en '''makepack-monmodule.conf'''. Saisissez dans ce fichier la liste des noms des nouveaux fichiers que vous avez créé pour votre module (descripteur de module, nouveaux fichiers sql de tables, page php, images, etc...)

* Lancer le script via Perl (besoin de la version Perl 5.0 ou +): <pre> perl makepack-dolibarrmodule.pl </pre> Le script vous demande le nom de votre module, sa version majeure et mineure. Un fichier '''monmodule.tgz''' va alors être fabriqué contenant votre module prêt pour être déployé.

* La personne qui reçoit votre module doit alors placer le fichier dans son répertoire racine d'installation de Dolibarr et réaliser la commande: <pre> tar -xvf monmodule.tgz </pre>

== Règles == Voici quelques règles à suivre dans la réalisation d'un module

* Ne pas créer de table à l'utilisation, c'est-à-dire à la '''première utilisation''' du module. Si vous créez un module qui utilise des tables qui ne sont pas intégrées en standard dans le code de Dolibarr, veillez à suivre ce didacticiel (voir plus haut). * Ajouter des traces dans le code avec la fonction dolibarr_syslog($yourmessage, LOG_INFO|LOG_DEBUG|LOG_ERR);

# Developpement script

2008-04-21T11:29:06Z
Eldy
/* Exemple insertion d'un produit */
== Localisation == Les scripts en ligne de commande de Dolibarr doivent etre situés dans le répertoire '''scripts''' de Dolibarr. Les scripts sont ensuite répartis dans des sous-répertoire en fonction de leur vocation. Un certain nombre de scripts est donc fourni en standard.

== Développer un nouveau script == Les scripts étant souvent réalisés pour un besoin spécifiques, il y a de forte chance que vous ne trouviez pas celui qui vous intéresse. Dans ce cas, nous allons vous expliquer comment développer votre propre script.

=== Etape 1 - Création du squelette du script === La première étape est de reprendre le squelette de script disponible en '''dev/skeletons/skeleton_scripts.php''' et de recopier en le renommant, ce script dans le répertoire '''scripts/monrep/monscript.php'''

Une fois le script renommé, donnez lui les droits en exécution par la commande: <pre> cd scripts/monrep; chmod a+rx monscript.php </pre> Ensuite, lancez le pour voir si vous pouvez exécuter un script en mode ligne de commande. Pour cela, taper: <pre>php-cli ./monscript.php ou php ./monscript.php</pre> Vous devriez obtenir le resultat suivant: <pre> Usage: monscript.php param1 param2 ... </pre>

=== Etape 2 - Edition du code du script === Modifier le contenu du script pour réaliser les opérations qui vous intéressent. Tout le code qui se trouve entre les balises <pre>// ---------- START OF YOUR CODE HERE</pre> et <pre>// ---------- END OY YOUR CODE</pre> est fourni à titre d'exemple. Vous pouvez le supprimer et y mettre le code qui vous intéresse. Notez que dans cette portion, vous pouvez utiliser la variable $db qui est la ressource d'accès à la base Dolibarr et qui est déjà initialisée. L'objet $conf qui contient la configuration Dolibarr est également disponible.

==== Exemple insertion d'un produit ==== Par exemple pour insérer un produit dans la base dolibarr, vous pouvez y placer le code suivant: <pre> // Inclusion classe métier utilisateur et product require_once(DOL_DOCUMENT_ROOT."/user.class.php"); require_once(DOL_DOCUMENT_ROOT."/product.class.php");

// Création d'une instance utilisateur $user=new User($db);

// Création d'une instance de product $myproduct=new Product($db);

// Définition des propriétés de l'instance utilisateur $user->id = 0;

// Définition des propriétés de l'instance product $product->ref = '1234' $product->libelle = 'libelle'; $product->price = '10'; $product->price_base_type = 'HT'; $product->tva_tx = '19.6'; $product->type = 0; $product->status = 1; $product->description = 'Description'; $product->note = 'Note'; $product->weight = 10; $product->weight_units = 0;

// Création du produit en base $idproduct = $product->create($user);

// Gestion erreur if ($idproduct < 0) dolibarr_print_error($db,$product->error); else print "Produit $idproduct cree.\n"; </pre>

# Devenir développeur

2007-02-06T02:48:09Z
Eldy
Devenir développeur déplacé vers Outils et principe
#REDIRECT [[Outils et principe]]

# Développement

2008-05-17T20:31:01Z
Eldy
/* Download */
==Download== * Télécharger la [http://www.dolibarr.org/component/option,com_docman/task,cat_view/gid,62/Itemid,36/lang,en/ version stable] * Télécharger le snapshot de la [http://www.dolibarr.org/component/option,com_docman/task,cat_view/gid,64/Itemid,36/lang,en/ version CVS]

==Ressources== * [[Documentation développeur]] * [[Documentation traducteur]] * [[Customisation des documents dolibarr]] * [http://lists.nongnu.org/mailman/listinfo/dolibarr-dev Liste de discussion] des développeurs * [http://lists.nongnu.org/mailman/listinfo/dolibarr-user Liste de discussion] des utilisateurs * [https://savannah.nongnu.org/projects/dolibarr Page du projet sur Savannah] * [https://savannah.nongnu.org/task/?group=dolibarr Gestionnaire de tâches] * [https://savannah.nongnu.org/bugs/?group=dolibarr Bug tracker] * Licence : le projet Dolibarr est sous [http://www.gnu.org/licenses/gpl.html licence GPL] * [http://www.destailleur.fr/dolibarr/cvschangelogbuilder_dolibarr.html Statistiques du repository CVS] * Voir le [http://savannah.nongnu.org/cgi-bin/viewcvs/dolibarr/dolibarr/ Repository CVS] * Les [[Roadmap]]

==Démo en ligne== Une demo de la version CVS est accessible à l'adresse suivante:

[http://demo.dolibarr.fr/ Demo Dolibarr CVS]

Pour vous connecter, utiliser le compte suivant:

<b>Login/Mot de passe:</b> demo/demo

==Développeurs officiels==

* [http://www.lafrere.net Rodolphe Quiédeville] - Créateur / Mainteneur * Jean-Louis Bergammo - Contributeur * [http://www.ryxeo.com Eric Seigne] - Contributeur * [http://www.destailleur.fr Laurent Destailleur] - Contributeur * [[Benoit Mortier]] - Contributeur * Yannick Warnier - Contributeur * Gaëtan Frenoy - Contributeur * Régis Houssin - Contributeur

Si vous souhaitez discuter du développement de Dolibarr avec les développeurs officiels, nous vous invitons à rejoindre la liste de discussions dolibarr-dev. Si vous le souhaitez vous pouvez aussi devenir développeur en lisant la [[Documentation Développeur]] dédiée à cela

IRC

Il nous arrive de nous retrouver sur le canal #dolibarr sur le réseau IRC Freenode.

==Remerciements==

Je tiens à remercier pour leur contribution au code et leurs conseils avisés :

* Jean-Louis Bergamo * Emmanuel Raviart de la société Entr'ouvert spécialisée dans l'E-démocratie et le Logiciel Libre * Eric Seigne de la société RyXéo spécialiste Bordelais en Logiciel Libre.

# Diagramme Dolibarr 2.2

2007-06-18T21:25:28Z
Luistar15
http://glouglou.beeznest.org/dolibarr-2.2-diagram.dia http://glouglou.beeznest.org/dolibarr-2.2-diagram.png

# DocUtilisateur

2005-11-22T11:47:47Z
Mytto
DocUtilisateur déplacé vers Documentation utilisateur
#REDIRECT [[Documentation utilisateur]]

# DocumentFacture

2006-05-19T20:25:18Z
Denfrifri
Modification de l'édition des factures
Bonjour,

Si quelqu'un est capable de nous donner des infos pour facilement rajouter des ligne de commentaire avant ou après le tableau récapitulatif de la facture, il faudarait qu'il puisse nous metteune bonne expliation sur ce site.

Je suis preneur de toutes les informations que vous pouvez m'envoyer sur d.frimin@9online.fr

Merci d'avance de votre aide

A bientôt

Denis FRIMIN

# DocumentPropale

2008-07-04T17:06:34Z
Eldy
Ce document décrit comment créer son propre modele de generation de document PDF afin de personnaliser ces documents (propales, factures, etc...) Il se base sur les propositions commerciales comme exemple mais s'applique à tout type de document.

= Tester les modèles existants = Dans Dolibarr tester les modèles existants (bleu, jaune, rouge) : créer une propale, la laisser à l'état de brouillon et tester les différentes présentations.

= Trouver le meilleur modèle = Noter le modèle le mieux adapté aux besoins. Dans cet exemple, c'est le modèle bleu (correspondant au fichier pdf_propale_bleu.modules.php). Rem: Pour info, tous les modèles de propales sont dans \includes\modules\propale si vous etes sous Windows et /includes/modules/propale si vous etes sous Unix.

= Créer le nouveau modèle = Par sécurité, on conservera les modèles d'origine. Créer le modèle 'masocietebleu' # copier-coller pdf_propale_bleu.modules.php # renommer la copie en pdf_propale_masocietebleu.modules.php # l'éditer et faire les modifs suivantes dans le code: ## Renommer 'Class pdf_propale_bleu { ' en 'Class pdf_propale_masocietebleu { ' (ligne 24) ## Renommer 'Function pdf_bleu($db=0)' en 'Function pdf_propale_masocietebleu($db=0)' (ligne 26) ## Sauvegarder : le modèle 'masocietebleu' est disponible dans la liste des modèles de propales de Dolibarr ## Tester ce modèle (Voir A)) avant d'aller plus loin...

= Personnaliser = Personnaliser le modèle créé. Toujours dans pdf_propale_masocietebleu.modules.php, chercher la fonction 'Function _pagehead(&$pdf, $fac)' (vers la ligne 306). C'est elle qui gère l'affichage de l'entête.

== Librairie de création ==

La librairie utilisée pour la création de documents en PDF se nomme FPDF et peut être trouvée dans htdocs/includes/fpdf/fpdf/fpdf.class.php. C'est également dans cette classe que l'on trouve les nombreuses méthodes utilisées pour générer les différents éléments des documents.

Les modèles eux-même instancient la classe FPDF et utilisent ensuite ses méthodes, combinées avec les données d'une facture, d'une commande ou d'autres types de données.

On retrouve généralement les appels suivants dans les scripts de création de documents: * $pdf->SetFont() - ''Désigne la fonte à utiliser pour le texte qui suivra'' * $pdf->SetXY() - ''Désigne le point de départ pour dessiner le prochain texte en coordonnées X,Y qui sont exprimées en millimètres de la page'' * $pdf->MultiCell() - ''Dessine une boîte pouvant contenir du texte, et dont on doit d'abord donner la largeur et la hauteur - très utilisée'' * $pdf->GetY() - ''Renvoie la position courante en Y'' * $pdf->SetDrawColor() - ''Désigne la couleur à utiliser pour le prochain texte à écrire - généralement noir (0,0,0) ou blanc (255,255,255)'' * $pdf->Rect() - ''Dessine un rectangle dont le coin supérieur gauche est au point indiqué par les deux premiers paramètres et le coin inférieur droit utilise les deux derniers paramètres en mode relatif aux deux premiers''

== Structure des scripts ==

Les scripts de génération des documents PDF, au moment du développement de la version 2.2, disposent des méthodes suivantes (prenant pour exemple le modèle "crabe") au sein de la classe du nom du modèle: * pdf_crabe() - ''Constructeur de l'objet pdf'' * write_pdf_file() - ''Méthode générale pour la génération du fichier. Cette méthode appelle toute les suivantes après avoir initialisé quelques variables'' * _pagehead() - ''Méthode de dessin de l'en-tête du document, incluant généralement le logo, le titre du document (et la date) ainsi que les cadres de l'émetteur et du destinataire du document'' * _tableau() - ''Méthode de dessin du tableau de détails (produits, services, etc)'' * _tableau_info() - ''Méthode de dessin du tableau reprenant une liste d'informations sur la facture'' * _tableau_tot() - ''Méthode de dessin du tableau des totaux'' * _tableau_versement() - ''Méthode de dessin du tableau des règles de versement'' * _pagefoot() - ''Méthode de dessin du pied de page''

== Insertion d'un logo == * Chercher la séquence suivante: $pdf->SetXY(10,5); if (defined("FAC_PDF_INTITULE")) { $pdf->SetTextColor(0,0,200); $pdf->SetFont('Arial','B',14); $pdf->MultiCell(60, 8, FAC_PDF_INTITULE, 0, 'L'); * Ajouter l'instruction: $pdf->Image('\www\htdocs\dolibarr\document\societe\logo.jpg', 10, 5,60.00); * Mettre en commentaire l'instruction d'affichage de la variable FAC_PDF_INTITULE

== Modification des constantes affichées == Principales fonctions utilisées $pdf->setX(float a); fixe la position x courante $pdf->setY(float b); fixe la position y courante $pdf->setXY(float a,float b); fixe les positions x et y courantes (rappel: l'origine est le coin supérieur gauche) $pdf->SetTextColor(0,0,200); fixe la couleur du texte $pdf->SetFont('Arial','B',14); fixe la police, le type ( 'B' pour gras, 'I' pour italique, '' pour normal,...) $pdf->MultiCell(60, 8, FAC_PDF_INTITULE, 0, 'L'); imprime la variable FAC_PDF_INTITULE avec saut de ligne (info: Il semble que Dolibarr gère un certain nombre de constantes dans Accueil => Configuration => System => Constantes. Mais ça ne fonctionne pas sur ma config ...).

== Pour plus d'infos == http://www.fpdf.org/?go=script&id=2 et aller sur 'accueil'

== Le résultat == Réalisation ozit: http://www.adytek.com/PR040123.pdf

= Choisir un modèle par défaut dans Dolibarr = Dans Accueil => Configuration => proposition commerciale: * on affiche les modèles, * on indique ceux qui doivent etre actifs, * on précise le modèle proposé par défaut.

= Merci = Merci à David, Florent et surtout ozit pour leur aide.

# Document générés

2008-07-04T17:09:37Z
Eldy
/* Générer des documents dans de nouveaux outils */
Les documents générés sont stockés dans le répertoire définit par la constantes DOL_DATA_ROOT

== Structure du DATA_ROOT == * compta * facture * graph * produit * propale * rapport * societe * telephonie ** client ** ligne *** commande ** logs ** rapports

= Générer des documents dans de nouveaux outils =

Pour pouvoir profiter de la génération de document à la sauce Dolibarr, il convient de modifier les fichiers: # la fiche où placer la "cartouche" (affichage) permettant à l'utilisateur de générer un nouveau document et de consulter les documents existants # ''htdocs/html.form.class.php'' pour y ajouter, dans la méthode '''show_documents()''', le type de document ajouté # ''htdocs/includes/modules/mod[type de document].class.php'' au cas où ce fichier n'existerait pas déjà # ''htdocs/includes/modules/[type de document]/module_[type].php'' qui contiendra la définition de la classe de génération # ''htdocs/includes/modules/[type de document]/pdf_[modele]_[type].modules.php'' qui contiendra le modèle de génération du document # ''htdocs/document.php'' qui contient la procédure de livraison des fichiers une fois créés (et leur suppression) - il faut également y ajouter le type de document et le répertoire correspondant # la(les) classe(s) qui contien(nen)t les données à afficher (classes product.class.php ou facture.class.php, ou autres, selon le document à générer)

Par ailleurs, il faudra créer un répertoire contenant les documents générés. Ce répertoire se trouve généralement dans DOL_DATA_ROOT, soit une syntaxe du type: $conf->[type]->dir_output = DOL_DATA_ROOT.'[type]';

Il faut également que le modèle soit inséré dans la base de données, dans la [[Table llx_document_model]] avec pour type le type de document et pour nom le nom de la classe correspondante dans includes/modules (commençant par pdf_).

Plus de documentation au sujet de la génération des modèles elle-même est disponible sur la page d'aperçu des modèles: [[Creer un modele de document]]

# Documentation Développeur

2008-07-15T09:29:04Z
Kaoul
/* Interfaces et liens avec d'autres applications */
== Général == # [[Outils et principe|A savoir avant de commencer]] # [[Outils de développement]] # [[Librairies externes et dépendances]] # [[Langages|Langage et normes de développement]]

== Le fichier de configuration Dolibarr == Voir [[Fichier de configuration]]

== Base de données == # [[Charte de nommage]] # [[Liste des tables]] # [[Mise à jour du format de la base]]

== Développer un nouveau module / une extension == Pour développer votre propre module, aller sur le didacticiel: [[Developpement module]]

La liste des modules standard est définie sur la page [[Modules]]

== Les scripts ligne de commande ou batch == Pour développer un script quel qu'il soit, comme un script de traitement cron ou encore un script d'import de données issus d'un autre système, se référer à la page: [[Developpement script]]

== Le Système de paramétrage == Il existe 2 niveau de paramétrage dans Dolibarr. Le global est stocké dans la [[Table llx_const]]. Le paramétrage propre à un utilisateur est stocké dans la [[Table llx_user_param]] Voir la page [[Constantes]]

== Le Système de menus == Voir la page [[Système de menus]]

== Le Système des thèmes == Voir la page [[Themes]]

== Le Système des boites == Voir la page [[Système des boites]]

== Le Système d'authentification == Voir la page [[Authentification]]

== Le Système des permissions == Voir la page [[Permissions]]

== Le Système de traduction == Voir la page [[Système de traduction]]

== La Gestion d'erreur ==

* Voir la page [[Gestion d'erreur]] * Voir la page [[Error reporting|Rapport d'erreur]]

== La Generation de documents == Plus de documentation au sujet de la génération de documents depuis des modèles est disponible sur la page [[Creer un modele de document]]

== Le stockage des fichiers/documents == Voir la page [[Document générés]]

== Interfaces et liens avec d'autres applications == # [[Interfaces Dolibarr vers exterieur]] (Triggers Dolibarr) # [[Interfaces Exterieur vers Dolibarr]] # [[Services Web]] # [[Imports de masse]]

== FAQ == # [[FAQ Développeur]]

# Documentation développeur

2005-06-29T19:08:35Z
Eldy
Documentation développeur déplacé vers Documentation Développeur
#REDIRECT [[Documentation Développeur]]

# Documentation traducteur

2008-07-20T16:45:47Z
Eldy
/* Diffusion de votre langue */
== Traduire Dolibarr dans une autre langue == Dolibarr est par défaut développé en Français et Anglais

Il existe 3 méthodes pour réaliser la traduction de Dolibarr (phpLangEditor, iniTranslation et la méthode manuelle). Les voici par ordre de préférences:

=== Traduction via le plugin phpLangEditor de Firefox === * OS du traducteur: Tous * Outil: phpLangEditor (plugin pour Firefox)

# Installer Firefox et la version 2.5 ou plus du plugin phpLangEditor ( http://code.google.com/p/phplangeditor/ ) # Une étape supplémentaire est requise pour finaliser l'installation. Appeler l'URL '''about:config''' puis dans le champ filtre, saisissez '''phplangeditor'''. Double cliquer sur la ligne phpLangEditor.file.typeOfLangExt et metter '''ini''' a la place de '''php'''. phpLangEditor est maintenant pret pour traduire Dolibarr. # Depuis Firefox, ouvrir phpLangEditor en choisissant le menu '''Outils -> PHP lang editor'''. # Cliquez sur "Ouvrir le fichier de référence" et choisissez votre fichier .lang d'origine (par exemple dans votre répertoire Dolibarr, htdocs/langs/en_US/bills.lang # Cliquez sur "Ouvrir le fichier de traduction" et sélectionnez le fichier qui contiendra la traduction, si un fichier existe déjà (par exemple htdocs/langs/es_ES/bills.lang). # Vous pouvez choisir d'afficher tous les termes à traduire ou uniquement les termes non-traduits. Cliquez sur le terme dans la colonne de gauche pour le traduire dans la case du bas. Vous pouvez aussi utiliser des raccourcis-clavier comme CTRL+N pour passer au suivant # Enregistrer le fichier une fois la traduction terminée. # Editer le fichier pour supprimer la première ligne de commentaire.En effet, il est impossible de traduire les lignes commentées (commençant par un #), aussi le fichier traduit contient une fois enregsitré la ligne commentaire du fichier source. Une petite édition manuelle est nécessaire pour corriger ou supprimer cette ligne, bien que cela ne suive pas au bon fonctionnement du nouveau fichier .lang.

=== Traduction par iniTranslator === * OS du traducteur: Windows * Outil: [http://initranslator.sf.net iniTranslator] (sous Windows).

# Lancer votre application de traduction qui vous demandera le fichier modèle (Par exemple, sous iniTranslator, faire Fichier - Ouvrir Original). Choisir le fichier source modèle dans le répertoire htdocs/langs/en_US ou htdocs/langs/fr_FR, qui sont à jour. # Puis choisissez éventuellement le fichier destination, dans le répertoire htdocs/langs/xx_XX ou xx est le code langue à traduire. # Votre outils affichera les 2 fichiers face à face avec les chaines à traduire manquante. # Compléter # Sauvegarder le nouveau fichier destination.

Attention, iniTranslator souffre d'un grave défaut. Il ne conserve pas l'ordre d'origine des paramètres et tri le fichier généré par ordre alphabétique des clés plutot que dans l'ordre du fichier source. De plus, les zones commentaires du fichiers source ne sont pas repercutées dans le fichier destination traduit.

=== Traduction manuelle ===

Pour traduire Dolibarr dans une autre langue, il faut aller dans le répertoire langs et créer un répertoire ayant pour nom le code langue à traduire (En suivant le même format que ceux déjà existant, par exemple en_US, fr_FR, es_ES, de_DE, etc...). Il faut ensuite recopier les fichiers lang depuis un répertoire déjà traduit (par exemple en_US/main.lang ou fr_FR/bills.lang), les recopier dans le répertoire de la nouvelle langue que l'on vient de créer et traduire le contenu de ces fichiers.

Ces fichiers sont constitués de la manière suivante:

Code1=Phrases à traduire 1

Code2=Phrases à traduire 2

...

Coden=Phrases à traduire n

Seules les phrases à droite du = sont à traduire, le code doit rester inchangé. Il est possible de traduire les fichiers un par un, sans tous les traduire d'un coup. Si un fichier n'a pas été traduit dans la nouvelle langue, Dolibarr utilisera l'Anglais.

Notons que, pour l'instant, il reste de nombreuses phrases en dur dans le code des pages PHP. Ces dernières doivent etre remplacées par le code suivant:

$langs->trans("CodeX")

Et une entrée du type

CodeX=Phrase X

doit etre ajoutée aux fichiers .lang

== Intégrer sa traduction dans Dolibarr ==

'''Si vous avez complété des fichiers .lang existant déjà dans Dolibarr mais incomplets :'''

* Vous pouvez nous soumettre vos modifications en réalisant un fichier patch suivant la méthode décrite sur la page [[FAQ_D%C3%A9veloppeur#Modification_du_code.2C_participer_au_d.C3.A9veloppement|FAQ Développeur]] dans la section "Sans accès CVS en ecriture".

'''Si vous avez créé des nouveaux fichiers .lang pour une nouvelle langue, vous pouvez :'''

* Envoyer vos fichier par mail en pièce jointe sur la liste: dolibarr-dev@nongnu.org. Un développeur les intégrera pour vous.

''Remarque:'' Il y a 2 langues maitres, toutes les 2 toujours complètes: * Le français (fichiers .lang du répertoire lang/fr_FR) * L'anglais (fichiers .lang du répertoire lang/en_US) Il est possible d'utiliser indifférement l'une ou l'autre (celle qui arrange) comme référence car les 2 sont à jour. Tous les autres fichiers langues sont susceptibles d'être incomplets.

== Diffusion de votre langue ==

Quand vous avez créer une nouvelle langue, si elle n'est pas intégrée dans Dolibarr, elle peut être malgré tout diffuser pour d'autres utilisateurs. Vous pouvez fabriquer un package pour la distribuer en utilisant le script '''build/makepack-dolibarrlang.pl'''

Le fichier .tgz fabriqué doit juste etre dézippé dans le répertoire Dolibarr pour que la langue soit disponible. Ce fichier peut être envoyé sur le site web http://www.dolibarr.org dans l'espace '''téléchargement, modules/addon'''.

# Documentation utilisateur

2008-02-03T11:00:55Z
Grandoc
* Fonctionnalités # [[Ce que fait Dolibarr]] # [[Ce que ne fait pas Dolibarr]]

* Installation/Démarrage # [[Prérequis]] # [[Installation / Mise a jour]] # [[Premiers paramétrages]]

* Utilisation # [[Sociétés | Tiers]] # [[Produits]] / [[Services]] ## [[Produits associés]] ## [[Sous-Produits]] # [[Banques et Caisses]] # [[Proposition commerciale|Propositions commerciales, devis]] # [[Commande|Commandes clients]] # [[Facturation|Factures clients]] # [[CommandeFournisseur|Commandes fournisseurs]] # [[FactureFournisseur|Factures fournisseurs]] # [[Contrat|Contrats de service]] # [[Projet|Projets]] # [[Comptabilité]] ## [[Rapports TVA]] # [[Mailing|EMailing]] # [[Calendrier]] # [[Exports]] # [[Adherents|Adhérents]] # [[Téléphonie]] # [[Stock]]

* Divers # [[Glossaire]]

# Dolibarr

2006-04-11T06:51:11Z
Mytto
[[Dolibarr]] est un système libre de gestion d'entreprise développé dans une architecture web.

== Philosophie ==

== Couverture fonctionnelle ==

== Technologies ==

== Equipe de développement ==

;Rodolphe Quiédeville : Administrateur du système.

# Dolibarr modules (Table SQL)

2007-08-06T02:44:04Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

La table '''llx_dolibarr_modules''' contient la liste des modules activé, avec la date de l'activation et le numéro de version du module activé.

Contains the list of activated modules, with the activation date and the activated module's version.

= Structure =

<pre> +----------------+-------------+------+-----+---------------------+-------+ | Field | Type | Null | Key | Default | Extra | +----------------+-------------+------+-----+---------------------+-------+ | numero | int(11) | | PRI | 0 | | | active | tinyint(4) | | | 0 | | | active_date | datetime | | | 0000-00-00 00:00:00 | | | active_version | varchar(25) | | | | | +----------------+-------------+------+-----+---------------------+-------+ </pre>

# Dépendances

2004-09-27T07:47:32Z
Rodo

# php4-imagick

# Développement

2008-05-17T20:31:01Z
Eldy
/* Download */
==Download== * Télécharger la [http://www.dolibarr.org/component/option,com_docman/task,cat_view/gid,62/Itemid,36/lang,en/ version stable] * Télécharger le snapshot de la [http://www.dolibarr.org/component/option,com_docman/task,cat_view/gid,64/Itemid,36/lang,en/ version CVS]

==Ressources== * [[Documentation développeur]] * [[Documentation traducteur]] * [[Customisation des documents dolibarr]] * [http://lists.nongnu.org/mailman/listinfo/dolibarr-dev Liste de discussion] des développeurs * [http://lists.nongnu.org/mailman/listinfo/dolibarr-user Liste de discussion] des utilisateurs * [https://savannah.nongnu.org/projects/dolibarr Page du projet sur Savannah] * [https://savannah.nongnu.org/task/?group=dolibarr Gestionnaire de tâches] * [https://savannah.nongnu.org/bugs/?group=dolibarr Bug tracker] * Licence : le projet Dolibarr est sous [http://www.gnu.org/licenses/gpl.html licence GPL] * [http://www.destailleur.fr/dolibarr/cvschangelogbuilder_dolibarr.html Statistiques du repository CVS] * Voir le [http://savannah.nongnu.org/cgi-bin/viewcvs/dolibarr/dolibarr/ Repository CVS] * Les [[Roadmap]]

==Démo en ligne== Une demo de la version CVS est accessible à l'adresse suivante:

[http://demo.dolibarr.fr/ Demo Dolibarr CVS]

Pour vous connecter, utiliser le compte suivant:

<b>Login/Mot de passe:</b> demo/demo

==Développeurs officiels==

* [http://www.lafrere.net Rodolphe Quiédeville] - Créateur / Mainteneur * Jean-Louis Bergammo - Contributeur * [http://www.ryxeo.com Eric Seigne] - Contributeur * [http://www.destailleur.fr Laurent Destailleur] - Contributeur * [[Benoit Mortier]] - Contributeur * Yannick Warnier - Contributeur * Gaëtan Frenoy - Contributeur * Régis Houssin - Contributeur

Si vous souhaitez discuter du développement de Dolibarr avec les développeurs officiels, nous vous invitons à rejoindre la liste de discussions dolibarr-dev. Si vous le souhaitez vous pouvez aussi devenir développeur en lisant la [[Documentation Développeur]] dédiée à cela

IRC

Il nous arrive de nous retrouver sur le canal #dolibarr sur le réseau IRC Freenode.

==Remerciements==

Je tiens à remercier pour leur contribution au code et leurs conseils avisés :

* Jean-Louis Bergamo * Emmanuel Raviart de la société Entr'ouvert spécialisée dans l'E-démocratie et le Logiciel Libre * Eric Seigne de la société RyXéo spécialiste Bordelais en Logiciel Libre.

# Entrepot (Table SQL)

2007-08-06T02:45:56Z
Ywarnier
[[Catégorie:Stock]][[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

La table '''llx_entrepot''' contient la liste des entrepôts et des informations de localisation les concernant

Contains the list of warehouses and related localisation information.

= Structure =

<pre> +----------------+--------------+------+-----+-------------------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+--------------+------+-----+-------------------+----------------+ | rowid | int(11) | | PRI | NULL | auto_increment | | datec | datetime | YES | | NULL | | | tms | timestamp | YES | | CURRENT_TIMESTAMP | | | label | varchar(255) | | UNI | | | | description | text | YES | | NULL | | | lieu | varchar(64) | YES | | NULL | | | address | varchar(255) | YES | | NULL | | | cp | varchar(10) | YES | | NULL | | | ville | varchar(50) | YES | | NULL | | | fk_pays | int(11) | YES | | 0 | | | statut | tinyint(4) | YES | | 1 | | | fk_user_author | int(11) | YES | | NULL | | +----------------+--------------+------+-----+-------------------+----------------+ </pre>

# Entrepot valorisation (Table SQL)

2007-08-06T02:45:14Z
Ywarnier
[[Catégorie:Stock]][[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

La table '''llx_entrepot_valorisation''' contient la valeur du stock entreposé dans chaque entrepôt pour une date donnée.

Contains the stock value for each warehouse for a given date.

= Structure =

# Error reporting

2007-08-23T19:35:40Z
Ywarnier
The error reporting module is integrated in the Dolibarr administration tool and allows you to configure what level of errors you would like to be reported and where.

To get to the error reporting module configuration page, go to Home, Configuration, Modules and use the configuration icon of the last module on the screen: ''System logs''.

Of course, this module ('''System logs''') must be activated for the following to work.

The '''facility''' option allows you to use pre-set facilities to log your errors. Facilities are a system-level feature to tell your syslog operator where this error comes from, to judge priority and all that. You can find more about this inside the PHP documentation for the ''openlog()'' function which is used inside the ''dolibarr_syslog()'' function: http://www.php.ne/openlog Really, you should leave it to '''LOG_USER''' unless you know exactly what you're doing.

The next option, '''file''', allows you to choose a file in which you will store the logs. The path you will indicate there should be relative to the system root (/). If you live it as it is (default option dolibarr.log), it will likely be opened in several directories, depending on the directory you're executing the script from. Of course, to do that, your web server must have write permissions on the directory you are using.

Generally, the '''file''' facility will work more easily because it doesn't depend on your server configuration (or only for the directory that needs to be writeable).

Finally, the level of reporting is how many types of errors you want to report. LOG_DEBUG(7) is the strongest option, reporting pretty much everything that calls a dolibarr_syslog() function. LOG_EMERG(0) is the opposite, letting you see only the errors that would really block your system.

On a typical Linux install, the logs will then be available somewhere in '''/var/log/apache[2]/[dolibarr]-error.log'''. You can watch it ''live'' from the terminal by using: tail -f /var/log/apache2/dolibarr-error.log

# Expedition (Table SQL)

2007-08-06T02:46:08Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Expedition methode (Table SQL)

2007-08-06T02:46:18Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Expeditiondet (Table SQL)

2007-08-06T02:46:29Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Export Compta

2007-09-18T20:43:11Z
Ywarnier
/* Processus */
Export des lignes de factures et des paiements pour intégration dans une comptabilité.

== Présentation == La spécifité de traitement des différentes compta obligent à écrire une classe spécifique pour chaque entreprise comme cela est fait pour les modèles de factures et de propales. Cependant une classe export compta fait office de front end.

== Processus ==

Chaque nouvel export contient toutes les lignes de factures et de paiements validées qui n'ont pas encore été exportées.

Les tables [[Table llx_paiement|llx_paiement]] et [[facturedet (Table SQL)|llx_facturedet]] ont un champ fk_export_compta, lors de l'export une ligne est créée dans [[Table llx_export_compta|llx_export_compta]], le rowid affecté est alors utilisé pour tagger les lignes exportées.

== Format d'échange ==

Les lignes a exporter sont fournies par un tableau de la forme

linec[$i][0] : date de la facture linec[$i][1] : identifiant numérique dolibarr la facture linec[$i][2] : Code client linec[$i][3] : Nom du client linec[$i][4] : Numéro de compte dans le plan comptable linec[$i][5] : Numéro de la facture linec[$i][6] : Montant tva totale de la facture linec[$i][7] : Montant total ttc de la facture linec[$i][8] : Montant de la ligne

# Exports

2008-02-03T10:54:05Z
Grandoc
{{Navigation documentation}} {{TemplateDocUtil}}

La fonction Exports permet de réaliser des exports personnalisés des données via un assistant qui évite d'avoir des connaissances techniques de Dolibarr. La première étape est de choisir un des lots de données prédéfinis, ensuite de choisir les champs que vous voulez dans votre fichier résultat, et dans quel ordre. Une fois les données sélectionnées, il est possible de choisir le format du fichier export généré.

Les formats existants sont csv (Fichier texte) ou xls (Format Excel natif)

# FAQUtilisateur

2005-06-29T19:07:17Z
Eldy
FAQUtilisateur déplacé vers FAQ Utilisateur
#REDIRECT [[FAQ Utilisateur]]

# FAQ Développeur

2008-07-26T14:50:41Z
Eldy
/* Comment devenir développeur officiel */
== Récupérer/mettre à jour la version CVS développeur == '''Effectuer une sauvegarde de ses données et de sa configuration'''

'''Utilisation du CVS'''

La première opération consiste à récupérer les dernières versions des sources CVS. Pour cela, voir la [http://www.dolibarr.fr/component/option,com_docman/task,cat_view/gid,64/Itemid,36/lang,fr/ Version CVS du jour]. Les nouveaux fichiers doivent écraser les anciens.

Pour récupérer la dernière version CVS, vous pouvez aussi directement utiliser [http://savannah.nongnu.org/cvs/?group=dolibarr le serveur CVS en mode anonyme], si vous disposez d'un client CVS (commande cvs sous linux, ou TortoiseCVS par exemple sous windows) La commande script permettant de récupérer un snapshot intégral (sans suivi cvs) dans le répertoire courrant est: '' CVSROOT=:pserver:anonymous@cvs.savannah.nongnu.org:/sources/dolibarr export CVSROOT cvs -q export -r HEAD -d ./ dolibarr/ '' Pour récupérer uniquement les 3 dossiers principaux de Dolibarr: '' CVSROOT=:pserver:anonymous@cvs.savannah.nongnu.org:/sources/dolibarr export CVSROOT cvs -q export -r HEAD -d ./htdocs dolibarr/htdocs cvs -q export -r HEAD -d ./mysql dolibarr/mysql cvs -q export -r HEAD -d ./external-libs dolibarr/external-libs ''

La commande permettant de mettre à jour localement la copie de travail CVS : ''Sous linux (script shell): CVSROOT=:pserver:anonymous@cvs.savannah.nongnu.org:/sources/dolibarr export CVSROOT cvs -q update -P -d Sous Windows avec Tortoise cvs "C:\Program Files\CVSNT\cvs.exe" -q update -P -d CVSROOT=:pserver:anonymous@cvs.savannah.nongnu.org:/sources/dolibarr'' Et pour remettre au propre votre copie locale en annulant vos modifications sur les fichiers intégrés au cvs: "C:\Program Files\CVSNT\cvs.exe" -q update -P -C -d CVSROOT=:pserver:anonymous@cvs.savannah.nongnu.org:/sources/dolibarr

Si besoin, modifiez les droits de propriétaire des dossiers, pour que le serveur y ait accès.

'''Restaurer sa configuration'''

Restaurer le fichier de configuration (./htdocs/conf/conf.php) d'après sa sauvegarde si vous l'avez écrasé.

'''Mise a jour de la base'''

La deuxième étape consiste à migrer la base. Pour celà, il suffit d'appeler la page http://maracinedolibarr/install/ et choisir l'option "Mise à jour".

Cette procédure de migration/mise à jour est conçue pour fonctionner quel que soit l'état de départ et peut être repassée plusieurs fois sans risque.

== Démarrer le développement ==

Consulter '''intégralement''' la [[Documentation Développeur]] pour assimiler toutes les règles et principes imposées aux développeurs. Vous pouvez aussi consulter les FAQ suivantes.

== Comment créer un nouveau theme == Voir pour cela la page [[Themes]]

== Comment développer mon propre système de menu == Voir pour cela la page [[Système_de_menus]]

== Comment développer mon propre module == Voir pour cela la page [[Developpement_module]]

== Comment ajouter ou compléter une traduction == Voir pour cela la page [[Documentation_traducteur]]

== Changer mon système de numérotation des factures en cours de route == Si le nouveau système de numérotation n'entre pas en conflit avec l'ancien, il suffit d'aller dans le menu Configuration - Modules - Configuration factures et prendre un nouveau modèle dans la liste. Si le nouveau système rentre en conflit, il est nécessaire de renuméroter vos références existantes. Cela peut-être fait avec une requête SQL. Par exemple, pour passer de Jupiter (FYYYYMM99) à Terre (FAYYMM-999), vous pouvez exécuter la requête suivante: <pre> update llx_facture set facnumber=concat('FA',substr(facnumber,4,4),'-',substr(facnumber,8)) where facnumber like 'F%' and facnumber not like 'FA%'; </pre>

Par exemple, pour passer d'un modele FAYYMM999 à Terre (FAYYMM-999), vous pouvez exécuter la requête suivante: <pre> update llx_facture set facnumber=concat('FA',substr(facnumber,3,4),'-',substr(CONCAT('0000',substr(facnumber,7)),-4)) where facnumber like 'FA%' and facnumber not like '%-%'; </pre>

== Soumettre un patch, amelioration ou participer au développement ==

* '''Avec accès CVS en écriture ''' A ce jour, les accès en écriture au CVS sont restreints (le nombre de commit étant déjà suffisamment dynamique). Il n'est pas exclu d'accueillir d'autres développeurs en modification à d'autres horizons. Si vous bénéficiez donc à l'heure actuelle d'un accès CVS en écriture, utilisez-le. Sinon, il est nécessaire de suivre la procédure qui suit (Modification du code, sans accès CVS en écriture)

* '''Sans accès CVS en écriture''' Si vous n'avez pas de compte développeur, il est nécessaire de fournir par mail, votre fichier patch.

Sous tout OS:

Voici la ''méthode Pro'' selon laquelle travailler pour pouvoir générer un tel fichier patch:

- Avoir un répertoire qui contient la version de Dolibarr de référence (résultat de la mise à jour CVS ou bien tout simplement l'arborescence résultant de la décompression d'un snapshot tgz de Dolibarr). On appellera ce répertoire '''ancien_rep'''. Vous pouvez récupérer le snapshot de la version de dev en cours sur le [http://www.dolibarr.org/component/option,com_docman/task,cat_view/gid,50/Itemid,36/lang,en/ site officiel de Dolibarr].

- Avoir un autre répertoire qui contient l'arborescence de Dolibarr mais dans laquelle vous faites ou avez fait vos modifications. On appellera ce répertoire '''nouveau_rep'''.

Pour générer le fichier patch, il suffit alors de lancer la commande '''diff''' (en standard sous Linux, fourni dans [http://www.cygwin.org cygwin] sous Windows) de la manière suivante: <pre> diff -Naur --exclude=CVS --exclude=".#*" --exclude="*~" --exclude="*.bak" --exclude=conf.php --exclude=documents ancien_rep nouveau_rep > fichier.patch </pre> Envoyer votre patch sur la ML. L'intégration de votre patch n'est toutefois pas garantie, pas plus que le délai.

Sous Windows:

Si vous êtes sous Windows, une ''méthode moins Pro'' mais qui donne le même résultat est la suivante. Installer l'excellent outil open source de comparaison Winmerge qui sait fabriquer des patchs au format ''diff -Naur''. Pour cela, comparer avec Winmerge le fichier référence et le fichier modifié et choisir dans le menu ''"Tools - Generate patch"'' (''Générer des retouches'' en version française). Saisir un nom de fichier comme ''"resultat.patch"'', cocher la case ''"Append"'' et choisir l'option ''"Format Unified"'' (''Style : unifié'' en version française). Cliquer sur ''"Ok"''. Éventuellement recommencer pour chaque fichier modifié. Au final, on obtient un beau fichier ''resultat.patch'' qui contient toutes les modifications au bon format.

Au lieu de rechercher manuellement vos fichiers, si vous avez installé conjointement ''TortoiseCVS'' et ''Winmerge'', vous pouvez vous contenter de votre version modifiée sur votre ordinateur, et de la version CVS en ligne. Sous l'explorateur Windows, faites un clic droit sur le fichier qui doit être patché, et choisissez "CVS comparer" (pas WinMerge qui se trouve quelques lignes plus bas). Tortoise va lui-même lancer WinMerge. Puis reprenez la procédure décrite ci-dessus.

'''Appliquer un patch''' Si votre patch n'a pas encore été appliqué, mais que vous souhaitez de votre coté l'appliquer sur votre serveur linux fraichement mis à jour depuis la CVS, cela est possible grace à l'utilitaire patch. En admettant que vous avez créé votre patch à partir du répertoire htdocs de votre copie locale du cvs modifiée par vos soins, et que vous avez envoyé votre patch (monfichier.patch) sur le serveur dans le dossier patchs situé au meme niveau que votre dossier htdocs distant, la commande suivante devrait faire l'affaire (executée depuis le dossier patchs): patch -u -p0 -d ../htdocs < monfichier.patch <nowiki>Pour information: -p0 permet d'utiliser le chemin entier tel que mentionné dans le fichier de patch (-pn en retire les n premiers niveau de l'arborescence) -d permet de préciser le chemin relatif vers le dossier htdocs à patcher. < permet de donner le chemin vers le fichier source à utiliser (le patch en mode unifié) -u permet de préciser que le patch est en mode unifié</nowiki>

== Comment devenir développeur officiel ==

Dans la galaxie du projet Dolibarr, il existe plusieurs intervenants de différents niveaux. Le cursus d'un développeur Dolibarr passe par ces étapes, que l'on classe par un titre familié aux adeptes de sciences fictions. Voici ces étapes.

* '''Membre de l'alliance'''

Il faut d'abord se familiariser avec les règles et normes de développements. En lisant toute la documentation développeur, vous devenez ainsi '''Membre de l'alliance''' Dolibarr. Et tout lire, c'est pas le plus facile...

* '''Chasseur de l'alliance'''

L'étape suivante consiste à soumettre des patch, en commençant par des simples, sur la ML (voir chapitre précédent).

A votre première soumission accepté et incluse par un Amiral ou Jedi, vous entrez alors automatiquement dans la famille des '''Chasseurs de l'alliance''' Dolibarr.

Le nombre de chasseurs n'est pas limité. Plus, il y en aura, plus on sera fort. Les chasseurs représentent la force vive principale de l'alliance.

* '''Amiral de l'alliance'''

Ce n'est qu'au bout d'un temps variable (qui peut être très long) au rang de Chasseur, et si la qualité des patch qui ont été envoyée est satisfaisante, que le Maitre Yoda en place vous offrira un accès CVS direct. Vous êtes devenu un '''Amiral de l'alliance'''.

Ce titre ne se demande pas, il s'obtient par proposition d'un '''Jedi''' qui estime que vous avez soumis suffisamment de patch pour être un sérieux '''Amiral'''. L'accès CVS d'un '''Amiral''' doit cependant n'être utilisé que pour commiter des corrections de bugs déclarés sur Savannah ou le forum (que ces corrections soit personnelles ou issu d'un patch soumis par un '''Chasseur'''), ou encore des traductions. Tout commit CVS doit ainsi obligatoirement inclure, dans la description, le numéro du bug Savannah corrigé ou le numéro du message du forum signalant le problème. Seul une traduction échappe à cette contrainte (pas de restrictions pour les traductions). Le non respect de cette contrainte, peut provoquer une rétrogradation au rang de '''Chasseur'''. Pour la soumission de nouvelles fonctionnalités, il faut donc obligatoirement continuer sur le principe de patchs envoyés sur la ML.

Ce privilège est toutefois exceptionnel. La qualité de Dolibarr ne pouvant être atteinte que par un nombre d'Amiraux contrôlé, ce qui n'empêche pas d'avoir un nombre de développeurs (Chasseurs) très important (grâce au système de patch).

* '''Jedi'''

C'est encore au bout d'un temps variable (qui peut être très long) au rang d'Amiral, et si la qualité des patch qui ont été envoyée est satisfaisante, que le maitre Yoda vous signalera que vous êtes autorisé à réaliser des commits sans restrictions de fonctionnalités, à condition d'avoir cependant l'aval de principe d'un Maitre Yoda à qui vous aurez expliquer la fonctionnalité. Il peut toutefois y avoir une restriction temporaire définie par un Maitre Yoda pour raison de release proche. Vous êtes alors devenu un '''Jedi'''.

Ce titre ne se demande pas, il s'obtient par proposition d'un autre Jedi ou d'un Maitre Yoda.

Ce privilège est toutefois exceptionnel. La qualité de Dolibarr ne pouvant être atteinte que par un nombre de Jedi contrôlé, ce qui n'empêche pas d'avoir un nombre de développeurs (Chasseurs) très important (grâce au système de patch).

* '''Maitre Yoda'''

Au nombre de 1 à 3, être un '''Maitre Yoda''', c'est être un chef de projet. Ce rang s'obtient par succession, suite au départ d'un Maitre Yoda qui se retire, par nomination directe ou vote organisé par le Maitre Yoda partant.

...Et Dark Vador alors ?

Il existe. Dans la galaxie Dolibarr, on qualifie de Dark Vador, le parasite qui pollue le forum ou la mailing-list de messages ou critiques non constructives, qui ralentissent le développement de Dolibarr plutôt que d'offir des critiques constructives qui aident à progresser. Le mauvais ton est souvent de rigeur chez les Dark Vador...

# FAQ Langue

2005-09-03T00:38:03Z
Eldy
/* Si vous etes sous un autre OS */
Les dates ne s'affichent pas dans la bonne langue

== Si vous êtes sous Debian Sarge ==

Le problème vient peut etre d'un defaut de locale à l'install. Pour le français, par exemple, essayer de modifier le fichier '''/etc/locale.gen''' avec '' fr_FR@euro ISO-8859-15

fr_FR ISO-8859-1

fr_FR.UTF-8 UTF-8 ''

et le fichier '''/etc/environment''' '' LANGUAGE="fr_FR:fr"

LANG=fr_FR ''

Puis lancer la commande '''locale-gen'''

== Si vous etes sous un autre OS ==

Pour corriger,essayer la correction suivante: Aller dans ''Configuration - Interfaces'' et changer le code langue. Par exemple mette fr_BE au lieu de fr_FR ou l'inverse.

Si cela ne fonctionne pas, aller dans ''Configuration - Divers'' et ajouter la constante MAIN_FORCE_SETLOCALE_LC_TIME avec pour valeur le code du pays-langue (Par exemple ''fr_FR'').

# FAQ Montants

2005-08-22T09:22:08Z
Eldy
/* Si vous etes sous un autre OS */
Je saisie mes montants avec des centimes mais ils n'apparaissent pas dans les factures ou ecrans

== Si vous êtes sous Debian Sarge ==

Le problème vient peut etre d'un defaut de locale à l'install (de votre OS, pas de Dolibarr). Pour le français, par exemple, essayer de modifier le fichier '''/etc/locale.gen''' avec

''fr_FR@euro ISO-8859-15

fr_FR ISO-8859-1

fr_FR.UTF-8 UTF-8 ''

et le fichier '''/etc/environment'''

''LANGUAGE="fr_FR:fr"

LANG=fr_FR''

Puis lancer la commande '''locale-gen''' Après un reboot, retester

Si cela ne marche toujours pas, essayer de positionner dans Accueil - Configuration - Divers, la constante '''MAIN_FORCE_SETLOCALE_LC_NUMERIC''' à la valeur''' C'''

== Si vous etes sous un autre OS ==

Pour corriger,essayer la correction suivante: Aller dans Accueil - Configuration - Interfaces et changer le code langue. Par exemple mette fr_BE au lieu de fr_FR ou l'inverse.

Si cela ne marche toujours pas, essayer de positionner dans Accueil - Configuration - Divers, la constante MAIN_FORCE_SETLOCALE_LC_NUMERIC à la valeur C

# FAQ Utilisateur

2008-05-14T07:09:47Z
Raphaelb
/* FAQ sur le Forum */
== FAQ sur le Forum == De nombreuses Questions-Réponses sont disponibles sur le forum Dolibarr

[http://www.dolibarr.fr/component/option,com_fireboard/Itemid,32/ Forum Dolibarr]

== FAQ sur ce Wiki ==

D'autres sont recensées ici. N'hésitez pas à compléter.

* '''Je saisis mes montants avec des centimes mais ils n'apparaissent pas dans les factures ou ecrans'''

[[FAQ_Montants]]

* '''Les dates ne s'affichent pas dans la bonne langue'''

[[FAQ_Langue]]

# Facturation

2008-02-13T16:33:47Z
Eldy
/* Cas d'utilisations */
{{Navigation documentation}} {{TemplateDocUtil}}

A ce stade de développement Dolibarr n'inclut pas de véritable comptabilité au sens légal. Vous devez donc, soit utiliser en parallèle un logiciel dédié de comptabilité, soit confier la tenue de la comptabilité à un cabinet comptable.

En revanche Dolibarr vous permet bien sûr d'établir des factures aux clients que vous avez préalablement saisis (voir [[Sociétés]]).

La page [[FactureConfiguration]] vous explique comment configurer le module Facturation et donne quelques exemples de modèles de factures.

== Création de facture ==

Vous pouvez créer une facture directement à partir d'une fiche client, ou à partir d'une commande clôturée à l'état "accepté", ou encore depuis un contrat de service.

'''Types de factures'''

Si vous créez une facture depuis une fiche client, vous pouvez choisir 3 types de factures:

* Les factures de doit Il s'agit d'une facture standard. Il n'y a aucun prérequis.

* Les factures de doit de remplacement Une facture de remplacement permet de refaire une facture sur laquelle il y aurait des erreurs et sur laquelle rien n'aurait été fait (aucun paiement saisi).

On ne peut créer qu'une seule facture de remplacement pour une facture de doit donnée. Quand on a créé une facture de remplacement R, on choisit la facture de doit F qui doit être remplacée. Il n'est alors plus possible de faire d'actions sur la facture F, bien que cette dernière ne change pas de statut après que la facture de remplacement R ait été créée au statut '''brouillon'''.

Si la facture de remplacement R est supprimée, la facture F reprends son état initial et le cycle de vie de la facture F peut reprendre.

Si la facture de remplacement R est '''validée''', la facture F passe alors au statut '''abandonnée''' automatiquement. Le cycle de vie continue sur la facture R.

* Les factures d'avoir On crée une facture d'avoir sur une facture de doit. On peut créer plusieurs factures d'avoirs sur une facture donnée.

'''Procédure'''

Une fois une facture créée (en mode ''brouillon''), vous devez intégrer dans la facture des Produits ou Services déjà définis dans Dolibarr ou bien dont vous saisissez directement l'intitulé, le taux de TVA, le prix unitaire. Pour chaque ligne de la facture vous définissez aussi une quantité et éventuellement une remise.

Une fois la facture prête vous devez la valider. '''Attention''' cette opération est irréversible. Quand vous validez la facture un numéro lui est attribué selon le modèle de numérotation que vous avez choisi dans la configuration du module Facture. Si une erreur est détectée après avoir validé la facture, il faudra soit faire une facture de remplacement, soit faire une facture d'avoir.

== Génération PDF, Impression ==

A compléter... Lorsqu'un document est généré, il est fabriqué suivant un modèle choisi parmi une liste activée dans les écrans Accueil - Configuration - Modules - Facture

Voici des [[FactureModele| exemples de modèles]]

== Saisir les paiements ==

A compléter...

== Classer la facture ==

Une facture validée peut être définitivement classée à l'état: * Payé Si la somme des paiements est supérieure ou égale au montant réclamé. * Payé partiellement Si la somme des paiements est supérieure à 0 mais strictement inférieure au montant réclamé. * Abandonné Si aucun paiement n'a eu lieu.

== Exporter les factures ==

Dolibarr fournit un outil générique vous permettant d'exporter les données de vos factures. Pour cela, il faut utiliser l'assistant Export qui se trouve dans le menu Outils - Nouvel export.

Voir la page [[Exports]] pour plus d'informations.

== Cas d'utilisations ==

'''UCIN00: Erreur sur le contenu de la facture corrigée par facture remplacement'''

'''Situation''': Je crée une facture. Je valide. Je me rend compte de l'erreur après validation.

'''Actions correctives''': Je classe la facture abandonnée pour motif 'Autre' (opération non obligatoire car automatique avec étape suivante). Je crée une nouvelle facture en choisissant '''Facture de remplacement''' et en selectionnant la facture remplacée comme facture.

'''UCIN00b: Erreur sur le client détecté avant envoi facture'''

'''Situation''': Je crée une facture. Je valide. Je me rend compte que la facture a été crée sur le mauvais client.

'''Actions correctives''': Je classe la facture abandonnée pour motif 'Autre' et je renseigne le motif "Erreur saisie sur mauvais client". Je crée une nouvelle facture sur le bon client.

TODO: Faire confirmer par expert que possible si c'est fait avant envoi. Si pas possible, interdire la possibilité et utiliser le cas suivant.

'''UCIN00c: Erreur sur le client (ou facture saisie 2 fois) détecté après envoi facture mais avant paiement'''

'''Situation''': Je crée une facture. Je valide et l'envoie au client. Je me rend compte que la facture a été crée sur le mauvais client ou facture en doublon avec une autre deja envoyée.

'''Actions correctives''': Je crée un avoir sur la facture qui n'a pas encore de paiement (TODO: Pas possible actuellement) du montant inverse exacte. Je convertit l'avoir en reduc. L'avoir se retrouve ainsi "traité" et je l'envoie. J'applique la reduc sur la facture en erreur. Le du devient alors zero et je classe la facture à '''Payée complètement'''.

'''UCIN00d: Erreur sur le libellé client détecté après saisie de paiement'''

'''Situation''': Je crée une facture sur le client de libellé X. Je valide. Je saisi les paiements. Je classe la facture payée. Je me rend compte que la facture a été crée sur le mauvais client et le client me demande une contrefacture sur l'ancien nom X et une nouvelle sur le nouveau nom Y.

'''Actions correctives''': Je crée un avoir sur la facture en erreur avec toutes les lignes en inverse. Je transforme l'avoir en réduction. L'avoir se retrouve ainsi "traité". J'édite la fiche client pour corriger le libellé client X par Y. Je crée la nouvelle facture sur le nouveau client Y en incluant toutes les lignes. Je la valide. J'inclut le paiement issue de l'avoir. Le solde passe alors à 0 (aucun du). Je peux classer la facture à '''Payée''' sans saisir d'autres réglements (le client a déjà payé).

'''UCIN01: Facturation et paiement intégral'''

'''Situation''': Je crée une facture. Je reçois l'intégralité des paiements.

'''Actions''': Je saisis tous les paiement sur la facture. Le solde devient à 0. Je peux classer la facture à '''Payée'''.

'''UCIN02: Facturation et paiement supérieur reçu'''

'''Situation''': Je crée une facture. Je reçois un paiement supérieur au montant réclamé.

'''Actions correctives''': Je saisi le montant reçu. Je clos la facture à l'état '''Payé'''. Je crée un avoir du trop perçu.

'''UCIN03: Facturation et paiement intégral puis produit retourné'''

'''Situation''': Je crée une facture. Je reçois l'intégralité des paiements. Je les saisis et le solde devient 0. Je clos la facture à l'état '''Payé'''. Plus tard, je reçois un retour de produit suite à rétractation légale.

'''Actions correctives''': Je saisi un avoir sur cette facture. Cet avoir peut etre converti en réduction pour la prochaine facture ou rembourser en monétaire.

'''UCIN03b: Facturation et paiement intégral puis erreur sur produit détecté'''

'''Situation''': Je crée une facture. Je reçois l'intégralité des paiements. Je les saisis et le solde devient 0. Je clos la facture à l'état '''Payé'''. Plus tard, je découvre une erreur de produit.

'''Actions correctives''': Je saisi un avoir sur cette facture qui contient le produit en erreur. Je converti cet avoir en réduction. Je crée une nouvelle facture avec le bon produit. J'intègre l'avoir dans cette nouvelle facture. Enventuellement si j'utilise le module stock, je corrige le stock en manuel.

'''UCIN04: Facturation et paiement partiel car anticipé (escompte)'''

'''Situation''': Je crée une facture. Je reçois un paiement du montant de la facture moins un escompte accordé pour paiement anticipé.

'''Actions''': Je saisi le paiment reçu de la valeur reçue. Je classe la facture à '''Payé partiellement''' et renseigne le motif "Le manque est un '''Escompte'''".

'''UCIN06: Facturation et paiement partiel ou nul puis retour produit et attente correction anomalie ou erreur infine tolerable'''

'''Situation''': Je crée une facture. Si je reçois un paiement partiel, je le saisi. Je reçois un retour d'une partie des produits (retractation du client) ou ne reçois plus les quelques centimes manquant. Eventuellement, le client attend un avoir pour payer la fin de la facture.

'''Action''': Je saisi un avoir sur la facture (TODO pas possible actuellement si aucun réglement commencé). J'envoie l'avoir. Ensuite, je convertit cet avoir en reduction pour le client. Je saisi eventuellement la suite des paiements reçus. Eventuellement j'inclus l'avoir dans la liste des paiements de la facture (sinon il pourra etre inclus dans une autre facture). Je classe la facture à l'état '''Payé'''.

TODO Controle a inclure en plus: Quand l'avoir est fait sur une facture au statut 'Réglement commencé', il faut mettre un message disant "Attention, ne créer un avoir sur une facture en cours de paiement que si le client a cessé le paiement et attend cet avoir pour poursuivre la suite ou parceque vous fermez la facture". Ensuite il faut vérifier que le montant de l'avoir est inférieur au montant de la facture auquel il s'applique - montant deja reçu. Sinon, refuser création avoir.

'''UCIN05: Facturation et paiement partiel car mauvais payeur'''

'''Situation''': Je crée une facture. Je reçois un paiement partiel, je le saisi. Après une longue attente, la suite des paiements n'est pas reçue et j'abandonne tout espoir.

'''Actions''': Je classe la facture à l'état '''Payé partiellement''' et renseigne le motif '''Mauvais payeur'''.

'''UCIN07: Facturation et aucun paiement reçu car mauvais payeur'''

'''Situation''': Je crée une facture. Après une longue attente, la suite des paiements n'est pas reçu et j'abandonne tout espoir.

'''Actions''': Je classe la facture à l'état '''Abandonnée''' et renseigne le motif '''Mauvais payeur'''.

== Factures récurrentes ==

Une facture récurrente est une facture qui est appliquée de façon répétée dans le temps. Par exemple, l'entretien de machinerie ou la mise-à-jour régulière d'un site web peuvent être l'objet de factures récurrentes. Dans Dolibarr, une facture désignée comme récurrente est simplement une facture dont on réutilise la plupart des données pour émettre d'autres factures sur base de ces informations, ce qui permet un gain de temps non-négligeable.

Dans le cas de la mise en oeuvre des contrats, une facture récurrente peut être définie et correspondant aux éléments récurrents du contrat. Ceci est très intéressant. Le seul bémol, la période indiquée pour chaque élément de la facture résultante couvre toute la période du contrat. Elle ne devrait porter que sur le mois de facturation.

== Cas d'utilisation de factures récurrentes ==

'''UCRIN01: Création d'une facture récurrente'''

Il n'est pas possible de créer une facture récurrente en soi. Il s'agit d'une facture normale que l'on réutilise par la suite.

'''UCRIN02: Transformation d'une facture normale en facture récurrente'''

J'ouvre une facture existante. Je clique sur le bouton "Modifier en récurrente". J'entre un titre (par exemple, "Mise-à-jour trimestrielle") et éventuellement une note, qui pourrait être une explication de la raison de la répétition de cette facture. Ma facture est à présent une facture récurrente. Cela ne sera visible que si je demande l'affichage des factures récurrentes ou que je crée une nouvelle facture.

'''UCRIN03: Utilisation d'une facture récurrente pour la création d'une nouvelle facture'''

Je crée une nouvelle facture ("Créer facture"), et j'utilise la boîte de sélection en bas de page pour sélectionner la facture récurrente que je veux utiliser comme gabarit (template). Ma nouvelle facture est pré-remplie, les modifications à apporter sont mineures.

# Facturation/Comptabilité

2006-11-11T17:40:46Z
Eldy
Facturation/Comptabilité déplacé vers Facturation
#REDIRECT [[Facturation]]

# Facture

2005-07-25T22:09:35Z
213.219.168.76
/* Créer une facture */
{{TemplateDocUtil}}

# FactureConfiguration

2006-06-13T22:55:43Z
Jwarnier
/* Modèles de facture pdf */
{{TemplateDocUtil}}

==Module de numérotation des factures==

Chaque entreprise numérotant ses factures selon ses règles la numérotation dans Dolibarr utilise des modèles, un seul modèle à la fois peut être utilisé à ce jour. Si aucun préexistant ne vous convient, vous avez tout loisir d'en créer un spécialement ou de vous adresser à un développeur pour cela. Attention, certains modèles proposés ne respectent pas les règles comptables actuelles. Une partie au moins de la numérotation doit être constituée d'une suite continue ininterrompue (pas de remise à zéro mensuelle).

==Date des factures== Si cette option est activée la date des factures est définie automatiquement lors de la validation, sans cette option vous êtes libre de définir la date de la facture.

==Modèles de facture pdf==

De même que pour la numérotation, vous pouvez utiliser différents modèles de factures. Pour utiliser un modèle particulier, dans le bas de la page de facturation, dans le tableau "Documents", sélectionnez le modèle et cliquez sur "Générer" pour régénérer la facture à partir de ce modèle.

Afin d'activer les différents modèles de facture que vous placeriez dans htdocs/includes/modules/facture, veillez à bien activer chaque modèle manuellement dans la configuration du module facture!

Pour visualiser les modèles de facture actuellement disponible, suivez ce lien vers l'[[apercuDesModeles]]

==Mode de règlement à afficher sur les factures==

==Options fiscales de facturation de la TVA==

# FactureFournisseur

2008-05-20T20:16:39Z
Ywarnier
/* Cas d'utilisations */
{{Navigation documentation}} {{TemplateDocUtil}}

== Cas d'utilisations ==

'''UCSIN02: Facturation fournisseur puis reception avoir suite erreur facture'''

* Je saisi la facture fournisseur (facture de doit). * Je reçois l'avoir fournisseur (facture avoir/note de crédit), et je saisis une facture fournisseur normale mais avec montant négatif. * Je paie (Émettre paiement). * Je saisi le paiement sur facture fournisseur et un paiement négatif sur facture avoir fournisseur. * Je classe les deux factures comme "payées"

Un paiement positif et un autre négatif pour corriger apparaitront dans le relevé bancaire.

# FactureModele

2004-07-27T15:56:03Z
Rodo
Exemple de modèle de [[facture]]

* http://www.dolibarr.com/img/bulot.pdf * http://www.dolibarr.com/img/bernique.pdf * http://www.dolibarr.com/img/bigorneau.pdf * http://www.dolibarr.com/img/tourteau.pdf

# Facture (Table SQL)

2007-08-05T02:43:30Z
Ywarnier
Facture (Table SQL) déplacé vers Table llx facture
#REDIRECT [[Table llx facture]]

# Facturedet (Table SQL)

2007-08-06T02:51:49Z
Ywarnier
[[Catégorie:Facturation]][[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

Contient les lignes des factures clients.

Contains the lines of customer invoices.

= Structure =

* rowid : identifiant technique * fk_facture * fk_product * description * tva_taux : taux de TVA de la ligne * qty : quantité * remise_percent : remise en pourcentage * remise : remise en valeur * fk_remise_except * subprice * price * total_ht * total_tva * total_ttc * date_start * date_end * info_bits * fk_code_ventilation * fk_export_compta * rang : numero d'ordre dans lequel sont affichées et imprimées les lignes de la facture

<pre> +---------------------+----------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------------------+----------+------+-----+---------+----------------+ | rowid | int(11) | | PRI | NULL | auto_increment | | fk_facture | int(11) | | MUL | 0 | | | fk_product | int(11) | YES | | NULL | | | description | text | YES | | NULL | | | tva_taux | double | YES | | NULL | | | qty | double | YES | | NULL | | | remise_percent | double | YES | | 0 | | | remise | double | YES | | 0 | | | fk_remise_except | int(11) | YES | | NULL | | | subprice | double | YES | | NULL | | | price | double | YES | | NULL | | | total_ht | double | YES | | NULL | | | total_tva | double | YES | | NULL | | | total_ttc | double | YES | | NULL | | | date_start | datetime | YES | | NULL | | | date_end | datetime | YES | | NULL | | | info_bits | int(11) | YES | | 0 | | | fk_code_ventilation | int(11) | | | 0 | | | fk_export_compta | int(11) | | | 0 | | | rang | int(11) | YES | | 0 | | +---------------------+----------+------+-----+---------+----------------+ </pre>

# Facturedet rec (Table SQL)

2007-08-06T02:52:00Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Facturer un service daprès tarif

2006-12-13T19:03:16Z
Tiaris
Calculer le prix d'un service d'après une valeur (compteur) et en appliquant un tarif spécifique à ce service.

# Fichier de configuration

2008-06-05T16:05:41Z
Eldy
Le fichier de configuration de Dolibarr est '''conf/conf.php'''. Il est écrit par la procédure d'installation automatisée. Le contenu du fichier standard est :

$dolibarr_main_document_root="/home/www/dolibarr/htdocs"; $dolibarr_main_url_root="http://mondomaine.com/dolibarr"; $dolibarr_main_db_type="mysql"; $dolibarr_main_db_host="localhost"; $dolibarr_main_db_name="dolibarr"; $dolibarr_main_db_user="dolibarr"; $dolibarr_main_db_pass="";

Ce fichier ne doit pas jamais être ni modifié, ni lu, par une fonctionnalité de Dolibarr. Il est crée par la procédure d'installation ou de mise a jour de Dolibarr (install/index.php) qui est la seule habilitée à effectuer des actions sur ce fichier. Le contenu de ce fichier est accessible au développement à travers de l'objet''' $conf''' ou de constantes ('''DOL_URL_ROOT''' ou '''DOL_DOCUMENT_ROOT''').

# Fichinter (Table SQL)

2007-08-06T02:53:05Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

Cette table contient les enregistrements des interventions du module interventions.

Contains the interventions of the interventions module.

= Structure =

# Fournisseur ca (Table SQL)

2007-08-06T02:55:14Z
Ywarnier
[[Catégorie:Fournisseur]][[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

La table '''llx_fournisseur_ca''' est remplie par un script cron qui calcule tous les jours le chiffre d'affaire généré par chaque fournisseur.

Contains the turnover generated for the providers by our company, as calculated by a daily cron script.

= Structure =

* fk_societe : clef étrangère sur idp de [[societe (Table SQL)|llx_societe]] * date_calcul : date/heure à laquelle a été effectué le calcul * year : année du chiffre d'affaire * ca_genere : chiffre d'affaire généré par les produits du fournisseurs

<pre> +-------------+----------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+----------------------+------+-----+---------+-------+ | fk_societe | int(11) | YES | | NULL | | | date_calcul | datetime | YES | | NULL | | | year | smallint(5) unsigned | YES | | NULL | | | ca_genere | float | YES | | NULL | | +-------------+----------------------+------+-----+---------+-------+ </pre>

# Gestion d'erreur

2008-01-29T22:56:57Z
Eldy
/* Les fonctions */
== Les fonctions ==

dolibarr_syslog($message, LOG_INFO|LOG_DEBUG|LOG_ERR);

dolibarr_print_error($db,texte)

== Gestion d'erreur dans les classes ==

<pre> 0256-0511 Produit htdocs/product.class.php 0512-1023 Facture 1024-1279 RemiseCheque htdocs/compta/paiement/cheque/resimecheque.class.php 1280-1535 ProduitLivre 1536-1791 SocieteAuteur </pre>

# Gestion d'erreur dans les classes

2007-01-05T15:12:09Z
Rodo
<pre> 0256-0511 Produit htdocs/product.class.php 0512-1023 Facture 1024-1279 RemiseCheque htdocs/compta/paiement/cheque/resimecheque.class.php 1280-1535 ProduitLivre 1536-1791 SocieteAuteur </pre>

# Glossaire

2006-06-03T11:55:41Z
Eldy
{{TemplateDocUtil}}

Cette page a pour but de donner une définition aux nombreux termes et acronymes utilisés dans Dolibarr.

== Réductions == Une réduction est une déduction appliquée sur une propositoin commerciale, commande ou facture. On trouve 3 types de réduction: * Les remises * Les ristournes * Les rabais Cette déduction doit se traduire par une ligne supplémentaire, par réduction, dans la proposition, commande ou facture. Une ligne de réduction est de plus sujet à un taux de TVA (qui peut être 0).

== Remises == Les remises sont des formes de réductions accordées à une société pour raison de fidélité ou de bonne relation.

== Ristournes == Les rabais sont des formes de réductions accordées sur une proposition commerciale, commande ou facture pour raison ...

== Rabais == Les rabais sont des formes de réductions accordées sur une proposition commerciale, commande ou facture pour raison de produit deffectueux.

# Imports de masse

2007-11-22T17:05:59Z
Eldy
Suite à une installation neuve de Dolibarr, les bases sont vides. Parfois on désire démarrer avec des données importées d'un autre système. Voici quelques informations pour vous y aider.

== Exemples de concepts ==

=== Import des tiers et contacts === Il faut distinguer les tiers des contacts physiques. Dans les tiers on aura toutes les entités sujetes à facturation (aussi bien entreprises, association que particuliers). Les tiers sont obligatoires. Les contacts physiques sont optionels. Il s'agit juste d'un annuaire de personnes (avec téléphone et fonction) liées à un tiers. Dans le cas d'un tiers entreprise, il pourra y avoir plusieurs contacts physiques. Dans le cas d'un particulier, le contact physique sera unique et identique au tiers (voire le contact physique ne sera pas renseigné).

L'import des tiers consiste à insérer des lignes dans la table [[Table llx_societe]]. S'assurer que les champs important sont bien renseigné: * Nom: Doit contenir le nom de la société * Client: Doit contenir 1 si client, 2 si prospect, 0 sinon * Fournisseur: Doit contenir 1 si fournisseur, 0 sinon

L'import des contacts physiques consiste à insérer des lignes dans la table [[Table llx_socpeople]]. S'assurer que les champs important sont bien renseigné: * Name: Doit contenir le nom de la personne * Firstname: Doit contenir le prénom de la société * fk_soc: Doit contenir l'id de la ligne Tiers dans la [[Table llx_societe]].

=== Import des factures === A compléter

== Mise en pratique ==

La page [[Documentation_Développeur#Développer_un_script_d_import]] vous explique comment créer votre propre script de traitement Dolibarr. Des exemples sont fournis sur des cas de chargement de données.

# Installation

2005-10-10T19:56:43Z
Eldy
Installation déplacé vers Installation / Mise a jour
#REDIRECT [[Installation / Mise a jour]]

# Installation / Mise a jour

2008-05-12T15:45:59Z
Manou26
/* Procédure d'installation manuelle */
{{Navigation documentation}} {{TemplateDocUtil}}

Les procédures suivantes décrivent comment installer ou mettre à jour Dolibarr.

== Procédure d'installation manuelle ==

Cette procédure décrit l'installation manuelle (recommandée) sur un système GNU/Linux (Debian, Mandrake, ...), elle est valable avec d'autres systèmes moyennant quelques modifications. Elle est applicable pour toute version de Dolibarr >= 2.0.0

* Placez-vous dans le répertoire dans lequel installer Dolibarr (le répertoire racine de votre serveur web, par exemple /var/www sous Debian) $ cd /var/www

* Récupérez l'archive de l'application (lien ci-dessous par exemple : le lien telecharge l'archive sous le nom index.html mais il s'agit bien de l'application) $ wget http://www.dolibarr.fr/component/option,com_docman/task,doc_download/gid,9/Itemid,36/lang,fr/

* Renommer index.html en dolibarr.tgz $ mv index.html dolibarr.tgz

* Décompressez l'archive $ tar xvfz dolibarr.tgz

* Renommer le répertoire dolibarr-2.0.1 en dolibarr afin d'avoir un nom de répertoire indépendant de la version $ mv dolibarr-2.0.1 dolibarr

* En tant que root, créez, dans le répertoire dolibarr/htdocs/conf, un fichier de configuration vide, et attribuez-le, en tant que propriétaire du fichier, à l'utilisateur du serveur web (exemple www-data sur debian, nobody sur une vieille RedHat, apache sur une autre version ...). Ceci est requis car le serveur web a besoin d'écrire dans ce fichier lors de l'installation.

# cd dolibarr ; touch htdocs/conf/conf.php ; chown www-data htdocs/conf/conf.php

* Toujours en root, créez le repository qui servira aux documents générés et stockés par Dolibarr (factures pdf, images, ...), et attribuez-le, en tant que propriétaire du répertoire, à l'utilisateur du serveur web (exemple www-data sur Debian, nobody sur une vieille RedHat, Apache sur une Mandriva ou une RedHat récente, ...). Le serveur web doit avoir les droits en écriture dans ce répertoire.

# mkdir documents ; chown www-data documents

* Créez une base de données vierge pour accueillir Dolibarr

# mysqladmin create dolibarr

* Pointez votre navigateur sur la page principale

http://127.0.0.1/dolibarr/htdocs/

* Suivez les instructions de l'installation

* Pour des raisons de sécurité nous vous conseillons, une fois l'installation terminée, de mettre le fichier conf.php en lecture seule et de supprimer le répertoire d'installation

# chmod 600 htdocs/conf/conf.php ; rm -fr htdocs/install/

== Procédure mise à jour manuelle ==

Cette procédure décrit la mise à jour manuelle de Dolibarr (depuis une ancienne version) vers une plus récente. Elle est applicable dès lors que la mise à jour se fait pour une version de Dolibarr >= 2.0.0

* Placez-vous dans le répertoire dans lequel a été installé Dolibarr (le répertoire racine de votre serveur web, par exemple /var/www sous Debian) $ cd /var/www

* Récupérez l'archive de la nouvelle version $ wget http://dolibarrint.jexiste.fr/en/index.php?module=documents&JAS_DocumentManager_op=downloadFile&JAS_File_id=17

* Décompressez l'archive $ tar xvfz dolibarr-2.0.1.tgz

* Recopiez les nouveaux fichiers (qui ont été décompressés dans le répertoire dolibarr-2.0.1) dans le répertoire où vous avez votre ancienne version de Dolibarr $ cp -r dolibarr-2.0.1/* dolibarr

* Vous pouvez alors supprimer le répertoire des fichiers sources # rm -fr dolibarr-2.0.1

* Pointez votre navigateur sur la page d'install http://127.0.0.1/dolibarr/install/

* Choisissez ''Mise à jour'' dans le menu proposé

* Pour des raisons de sécurité nous vous conseillons, une fois la mise à jour terminée, de supprimer le répertoire d'installation. Dans le cas contraire, Dolibarr vous avertira d'un message dans l'interface une fois loggé # rm -fr dolibarr/htdocs/install/

# Interface OSCommerce

2007-05-11T14:00:42Z
Grandoc
Le but de cette [[interface OSCommerce]] est de pouvoir utiliser [[Dolibarr]] pour la gestion des ventes sur un site e-commerce fonctionnant avec [http://fr.wikipedia.org/wiki/osCommerce osCommerce].

== Présentation ==

A l'usage, il m'est apparu que l'administration d'osCommerce ne me suffit pas. Voici quelques questions que j'ai rencontrées :

* Un revendeur est intéressé par une commande en quantité de mes articles vus sur le site. Ce qui suppose commande supplémentaire chez le fournisseur, conditions préférentielles, procédure d'export (Tahiti Rimai vend depuis la Polynésie), devis, acceptation du devis, paiement, facturation, envoi...

* Je rencontre quelqu'un qui veut acheter des produits sans passer par le site (marché local).

* En plus, a côté de l'activité liée au site, j'ai aussi une activité de prestations informatiques et là il ne me restait que la bureautique. Or la bureautique ça va un moment, mais j'aimerais pouvoir suivre mon CA, l'état de mon compte bancaire un peu plus sérieusement...

Fonctionnalités que Dolibarr propose. Donc l'idée de base consiste à faire collaborer OSC et Dolibarr :

* récupérer les informations utiles dans la base de données du site et les intégrer dans Dolibarr pour ensuite bénéficier des fonctions de Dolibarr (suivi de l'expédition d'une commande, intégration des paiements dans le suivi de compte, gestion des clients...)

* gérer le catalogue ( suivi des commandes fournisseurs) depuis Dolibarr et le mettre à jour sur le site.

Je propose de décrire ici les fonctions utiles pour réaliser cette interface. Sentez-vous libre d'y apporter vos contributions.

== Les fonctions prévues ==

; Import des articles OSC => Dolibarr : Cette fonction sert à importer un catalogue d'un site web dans dolibarr (mon cas par ex où le site tourne, mais pas encore Dolibarr) '''à tester'''

; Export d'articles Dolibarr => OSC : pour la gestion du catalogue OSC depuis Dolibarr

; Import des clients et prospects OSC => Dolibarr : pour le suivi des clients et la gestion des commandes '''à tester''' (pour les clients)

; Import des commandes OSC => Dolibarr : en vue de leur suivi dans Dolibarr '''à tester'''

; Traitement des commandes dans Dolibarr et leur mise à jour sur OSC : Il faut mettre à jour le suivi de la commande sur le site, car le client peut suivre l'état de sa commande.

== L'utilisation de ces fonctions ==

Décrire comment elles seront implémentées et comment les intégrer dans Dolibarr.

Dans l'état actuel de ma réflexion (n'hésitez pas à me donner vos avis sur la question), je considère que le site e-commerce reste autonome par rapport à Dolibarr. Dolibarr est utilisé pour récupérer des infos du site et pour alimenter le site (intervention directe de l'utilisateur). On pourrait penser aussi un système où c'est le site e-commerce qui transmet les infos (commandes, clients...) à Dolibarr qui peut les iontégrer automatiquement dans ses traitements. Peut être à étudier par la suite.

Dans la release du cvs (et dans la 2.0.1), vous avez noté la présence d'un module ''expérimental'' d'un interface avec OSC. Elle permet de récupérer des données dans une base OSC, base qui doit tourner sur le même serveur que Dolibarr, ce qui est le cas pour une installation locale mais pas forcément pour un site en production hébergé. J'ai donc pensé implémenter cette interface sous forme de web-services développés à partir de nusoap (projet libre et GPL). Les web-services seront les fournisseurs de données (format OSC), et dans Dolibarr les clients se chargeront de la transformation des données OSC en objets Dolibarr (commandes, clients..), qui seront donc gérables par Dolibarr.

== Description des webservices ==

=== Gestion des articles <code>ws_articles</code> ===

# <code>get_article($id="",$ref="")</code> : renvoie les données de l'article identifié par son id (OSC) ou sa référence # <code>get_listearticles()</code> : renvoie la liste de tous les articles (sera optimisée car il peut y avoir beaucoup d'articles. Je réfléchis à un accès par catégories, fournisseurs, disponibilité.

=== gestion des clients <code>ws_customers</code> ===

# <code>get_Client($id="0")</code> : permet d'obtenir les infos pour tous les clients ($id=0) ou pour le client spécifié ($id est l'identifiant dans la base OSC)

=== gestion des commandes <code>ws_orders</code> ===

# <code>get_CAmensuel()</code> : renvoie le tableau du CA réalisé par mois pour l'année en cours. # <code>get_orders($nbmax, $statut)</code> : renvoie le tableau composé de nbmax commandes du statut donné (livré, en attente, en traitement...) # <code>get_lasOrderClients($id="", $name="", $limit="")</code> : renvoie les clients correspondant aux <code>$limit</code> dernières commandes (les autres paramètres ne sont pas encore utilisés). # <code>get_Order($id="0")</code> renvoie les informations pour la commande d'identifiant $id (si <code>$id >0</code>), On récupère aussi bien la commande que les lignes de la commande. ::Si <code>$id == 0</code> : la liste de toutes les commandes est renvoyée (mais sans les lignes de commandes).

== Implémentation dans Dolibarr ==

La gestion d'une boutique osCommerce est implémentée dans le module '''osCommerce''' qui arrive avec la version cvs. Un fichier <code>ReadMe</code> pour la configuration des webservices est contenu dans le répertoire du module. La configuration par défaut pointe vers le site de test mentionné dans cette doc. Le cvs de Dolibarr fournira toutes les sources, y compris des sources des webservices à installer sur la boutique avec un petit outil de tests. Avant de pouvoir la tester, il faut créer le paramétrage au moyen de l'utilitaire de paramétrage habituel de Dolibarr.

L'ancienne implémentation (module boutique) est toujours disponible (attention il y a eu des modifications !! consulter la liste de developpement du cvs).

Dans les modules externes choisissez le module osCommerce et activez-le, et vous verrez apparaître un menu '''osCommerce''' dans le menu supérieur de Dolibarr (implémenté pour le menu Eldy pour le moment seulement, faites-le dans les menus que vous utilisez).

== Fonctions dans Dolibarr ==

=== Le menu Boutique ===

[[Image:dolibarrosc_bureau.jpg|thumb|300px|right|Menu boutique]]

Il est ajouté dans le menu supérieur et vous positionne sur une page de synthèse : Le menu latéral donne accès aux fonctions de gestion du site OSC : gestion des articles, des clients et des commandes. On utilise les web-services de gestion des commandes.

Y figurent :

* Le CA mensuel réalisé sur le site pendant l'année en cours : <code>get_CAmensuel()</code> * Les 5 dernières commandes, leur mode de paiement leur statut : <code>get_orders()</code> * Les 5 dernières commandes en attente (il faut vérifier ce qui se passe) : <code>get_orders()</code> * Les 5 dernières commandes à traiter (prêtes à être expédiées donc à inclure dans Dolibarr) : <code>get_orders()</code> * Les clients liés aux 5 dernières commandes : <code>get_ClientOrders()</code>

Les valeurs des paramètres utilisés dans les appels des web-services sont définis dans un fichier de configuration. Les codes de statut sont ceux utilisés sur le site OSC.

=== Le menu Produits ===

[[Image:dolibarrosc_produits.jpg|thumb|300px|right|Menu Produits]]

On arrive sur une page listant les articles du site (à affiner, car s'il y a beaucoup d'articles ...)

Possibilité d'ouvrir les détails d'un article et accès à un bouton importer qui créé un nouvel article dans la base de Dolibarr. Si l'article existe déjà (contrôle sur la référence) on met à jour l'article dans Dolibarr (pas encore fonctionnel).

Il n'y pas encore de fonction permettant l'import de tous les articles depuis OSC dans Dolibarr, il faut donc les importer un par un.

Cette fonction ne devriat servir que pour initialiser un système Dolibarr avec un site OSC. Au quotidien, il s'agira plutôt d'alimenter le site OSC avec les articles gérés dans Dolibarr (fonction pas encore réalisée).

=== Le menu clients ===

Il est construit sur le même modèle que la gestion des produits : on affiche la liste des clients du site OSC et on peut ouvrir les détails pour un client et l'importer dans la base Dolibarr (création de la fiche société)

Il n'y a pas encore de fonction d'import de tous les clients.

NB : Lors de l'import d'une commande (voir plus loin), le client est automatiquement créé s'il n'existe pas encore.

=== Le menu commandes ===

Le schéma est le même : en cliquant le menu on affiche la liste des commandes du site OSC. On peut ensuite visualiser les détails de la commande et avoir accès à l'import dans Dolibarr. Si le client de la commande n'existe pas, il est créé. Par contre, mes articles commandés doivent exister (ou avoir été importés auparavant)

'''Frais de port :''' Il faut créer un service pour gèrer les frais de port (gestion des services) et renseigner la variable dans le fichier de configuration de l'interface.

Dans l'état actuel, une commande est importée et reçoit le statut "brouillon", il faut ensuite suivre les fonctions habituelles de Dolibarr pour la valider, gèrer l'expédition, le paiement...

; TODO : Ici interviendront des règles de gestion pour automatiser encore plus cette gestion dans dolibarr : contrôler la validité des commandes OSC selon le type de livraison, le moyen de paiement (ex : si payée par CB, la commande est déjà payée, si c'est en contre remboursement, elle doit être envoyée et on est payé plus tard, si elle est payée par virement, elle est en attente jusqu'à réception du paiement) et probablement d'autres auxquelles je n'ai pas encore pensé... Vos avis sont les bienvenus. Pour le moment, on va tester comme cela.

== Les tests à effectuer ==

=== Installation ===

Le module est regroupé dans le répertoire osCommerce_ws de la version cvs. Il n'y a en principe rien d'autre à télécharger (merci Laurent -Eldy- de l'avoir intégré). Les mises à jour du CVS mettront aussi à jour ce module. Pour y avoir accès, activer le module '''osCommerce MS2''' ('''attention''' : en activant ce module, l'ancien module '''OS Commerce MS1''' est automatiquement désactivé, '''les 2 modules n'étant pas compatibles''').

On y trouve les diverses fonctions pour accéder au site web osCommerce. Par défaut, vous accédez au [http://www.tiaris.info/catalog site web de test] que j'ai installé. Vous pouvez utiliser une autre plateforme aussi.

Les WebServices à installer sur un site OSC chez vous sont dans un sous-répertoire de <code>osCommerce_ws/</code>. Un fichier <code>README</code> décrit leur installation et leur configuration.

; NB : A utiliser en mode test uniquement pour le moment. Tous les testeurs sont les bienvenus ! Merci de me renvoyer vos remarques et commentaires.

=== Plan de tests suggéré ===

On se retrouve donc avec deux couches à réaliser : les webservices coté OSC (le côté serveur donc) et les clients de ces webservices côté Dolibarr.

Le site où sont installés les webservices : http://www.tiaris.info/catalog

un dolibarr CVS avec accès au site ci-dessus http://www.tiaris.info/dolidemo/htdocs

Il s'agit d'un site de test, que vous pouvez utiliser sans problème (tout est fictif). Pas de paiement en ligne par carte bleue, et pas d'envoi de commandes à attendre ! Vous pouvez créer des commandes, vous enregistrer comme client, ça fera plus réaliste pour les tests Les services web : ils sont installés et les tests peuvent commencer dès que vous avez mis votre cvs à jour et activé le module osCommerce2.

Il y aura beaucoup de tests à prévoir pour valider le bon fonctionnement (en voici une première liste à affiner et à préciser au fur et à mesure).

==== Site Dolibarr (côté client) ====

Ce qui peut être testé est écrit ''en italique'' :

# La gestion des articles : #* ''leur récupération depuis OSC (et leur gestion ensuite comme tout article Dolibarr)'' #* la création d'un article sur OSC depuis Dolibarr (suite à commande et livraison fournisseur) #* ''la gestion du stock'' # La gestion des clients - prospects : #* OSC ne distingue pas les clients (qui ont commandé) des prospects (inscrits mais sans commande) #* ''récupération des clients'' #* récupération des prospects #* ''la gestion de ces clients / prospects dans Dolibarr'' #* la gestion des mises à jour client # La récupération des commandes #*''leur intégration dans les commandes Dolibarr'' #*''le suivi du paiement'' (maj de la commande sur OSC à prévoir) #*''le suivi de l'expédition'' (maj de la commande sur OSC à prévoir) #*''l'intégration dans la gestion comptable de Dolibarr (compte bancaire, CA, frais, TVA...)''

==== Site osCommerce (côté serveur) ====

Ce qui peut être testé est écrit ''en italique'' :

# la gestion de l'accès # les performances # l'administration

# Interfaces Dolibarr vers exterieur

2007-12-27T21:07:56Z
Eldy
/* Ajouter son code sur un événement Dolibarr */
== Ajouter son code sur un événement Dolibarr ==

Pour permettre de déclencher du code personnalisé en réaction à un évènement Dolibarr (création/modification/suppression d'une société/facture/produit/utilisateur ou autre), Dolibarr propose un mécanisme de triggers métiers. Ce mécanisme vous permet de personnaliser un workflow afin que les évènements de gestion Dolibarr soient répercutés dans une autre application par exemple. Rien n'empêche également de l'utiliser pour modifier le comportement de Dolibarr même: par exemple, pour que la validation d'une facture provoque la création d'un contrat automatiquement.

Donc, pour ajouter son propre code qui sera déclenché par trigger, la procédure est la suivante:

1) Copier le fichier '''htdocs/includes/triggers/interface_all_Demo.class.php''' sous le nom: * '''interface_all_''xxx''.class.php''' ou bien * '''interface_mod''MonModule_xxx''.class.php''' où ''xxx'' est une chaine de votre choix et ''MonModule'' est le nom du module si votre trigger ne doit être activé que si le module MonModule est actif. Il faut laisser ce nouveau fichier dans le même répertoire.

Par exemple: ''htdocs/includes/triggers/interface_modFacture_Monworkflow.class.php''

Les triggers seront déclenchés a chaque évènement Dolibarr a condition que le module Facture soit actif.

2) Editer ce fichier ''interface_modMonModule_Monworkflow.class.php'' afin de renommer la classe ''InterfaceDemo'' par ''InterfaceMonworkflow''

3) Editer ce fichier afin de renseigner dans '''$this->name''' la valeur ''Monworkflow''.

Ensuite, accéder à la page Accueil-> Infos Systèmes -> Dolibarr -> Triggers. Votre fichier trigger doit apparaitre dans la liste sans erreur indiquant que les opérations précédentes ont été réalisées avec succès.

4) Revenez maintenant à l'édition du fichier trigger afin d'ajouter votre code dans la fonction ''run_trigger''. Cette fonction est appelée à chaque évènement Dolibarr. Placer votre code en fonction du ou des évènements sur lesquels vous voulez réagir, chaque évènement pouvant être identifié par un test sur la variable '''$action''':

<pre> function run_trigger($action,$object,$user,$lang,$conf) { // Mettre ici le code à exécuter en réaction de l'action // Le type de l'évènement Dolibarr est stocké dans $action // Les données de l'action sont stockées dans $object // La configuration, utilisateur et langage sont dans $conf,$user et $lang if ($action == 'COMPANY_CREATE') { dolibarr_syslog("Trigger for action '$action' launched. id=".$object->id); } elseif ($action == 'COMPANY_MODIFY') { dolibarr_syslog("Trigger for action '$action' launched. id=".$object->id); } elseif ($action == 'COMPANY_DELETE') ... } </pre>

Vous pouvez faire ce que vous voulez dans cette portion de code du moment que la fonction run_trigger renvoi un code retour sur le principe suivant:

<0 si ko, 0 si aucune action faite, >0 si ok

Vous pouvez de plus dans cette fonction utiliser les objets suivant: * '''$object''' est l'objet sur lequel porte l'action (voir chapitre suivant) * '''$user''' est l'objet de l'utilisateur Dolibarr qui réalise l'action * '''$langs''' est l'objet qui contient la langue de l'utilisateur Dolibarr * '''$conf''' est l'objet qui contient toute la configuration de Dolibarr.

Une fois le code réalisé, il n'y a plus qu'à tester, en provoquant l'évènement déclencheur dans Dolibarr. Attention, l'appel au '''run_trigger''' et encapsuler dans un transaction. Si votre trigger renvoie un code ko, la fonction appelante peut annuler la transaction (ceci dépend de la fonction appelante). Ajouter des traces dans la fonction '''run_trigger''' afin de vous assurer que le code s'exécute bien.

== Liste des évènements connus ==

Les évènements Dolibarr qui provoquent un appel de triggers sont, pour l'instant, identifiés par les codes '''$action''' évènements suivants:

* USER_CREATE * USER_MODIFY * USER_DISABLE Dans ces 3 cas, la variable $object contient un objet de type user.class.php

* COMPANY_CREATE * COMPANY_MODIFY * COMPANY_DELETE Dans ces 3 cas, la variable $object contient un objet de type societe.class.php

* PRODUCT_CREATE * PRODUCT_MODIFY * PRODUCT_DELETE Dans ces 3 cas, la variable $object contient un objet de type product.class.php

* ORDER_CREATE * ORDER_VALIDATE * ORDER_DELETE Dans ces 3 cas, la variable $object contient un objet de type commande.class.php

* ORDER_SUPPLIER_CREATE * ORDER_SUPPLIER_VALIDATE Dans ces 3 cas, la variable $object contient un objet de type fournisseur.commande.class.php

* PROPAL_CREATE * PROPAL_MODIFY * PROPAL_VALIDATE * PROPAL_CLOSE_SIGNED * PROPAL_CLOSE_REFUSED Dans ces 5 cas, la variable $object contient un objet de type societe.class.php

* CONTRACT_CREATE * CONTRACT_MODIFY * CONTRACT_ACTIVATE * CONTRACT_CANCEL * CONTRACT_CLOSE * CONTRACT_DELETE Dans ces 6 cas, la variable $object contient un objet de type contract.class.php

* BILL_CREATE * BILL_MODIFY * BILL_VALIDATE * BILL_CANCEL * BILL_DELETE Dans ces 5 cas, la variable $object contient un objet de type facture.class.php

* PAYMENT_CUSTOMER_CREATE Dans ce cas, la variable $object contient un objet de type paiement.class.php

* PAYMENT_SUPPLIER_CREATE Dans ce cas, la variable $object contient un objet de type paiementfourn.class.php

* FICHEINTER_VALIDATE Dans ce cas, la variable $object contient un objet de type ficheinter.class.php

* MEMBER_CREATE * MEMBER_VALIDATE * MEMBER_SUBSCRIPTION * MEMBER_MODIFY * MEMBER_RESILIATE * MEMBER_DELETE Dans ces cas, la variable $object contient un objet de type adherent.class.php

== Gérer de nouveau évènements ==

Pour gérer d'autre évènements que ceux ci-dessus, il faut modifier le code Dolibarr pour y ajouter la séquence suivante dans les méthodes métiers des classes utilisées pour gérer les évenements:

// Appel des triggers include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php"); $interface=new Interfaces($this->db); $interface->run_triggers('XXXXX_YYYYYY',$this,$user,$lang,$conf); // Fin appel triggers

Ici, $this doit être l'objet de la classe métier qui contient toutes les informations à passer au trigger. Remplacer, de plus, le 'XXXXX_YYYYYY' par un code évènement non déjà utilisé. Il sera alors possible d'ajouter dans la méthode run_trigger, un if qui permet de gérer ce code. La méthode run_trigger serait alors de la forme :

function run_trigger($action,$object,$user,$lang,$conf) { // Mettre ici le code à exécuter en réaction de l'action // Le type de l'évènement Dolibarr est stocké dans $action // Les données de l'action sont stockées dans $object // La configuration, utilisateur et langage sont dans $conf,$user et $lang <b> if ($action == 'XXXXX_YYYYY') { dolibarr_syslog("Trigger for action '$action' launched. id=".$object->id); } </b> elseif ($action == 'COMPANY_CREATE') { dolibarr_syslog("Trigger for action '$action' launched. id=".$object->id); } elseif ($action == 'COMPANY_MODIFY') { dolibarr_syslog("Trigger for action '$action' launched. id=".$object->id); } elseif ($action == 'COMPANY_DELETE') ... }

# Interfaces Exterieur vers Dolibarr

2008-07-19T16:34:56Z
Eldy
/* Utilisation des classes PHP */
Il y a 2 méthodes pour permettre à une application extérieure d'insérer des données dans Dolibarr. Les 2 techniques possibles sont les suivantes:

== Insertion des données directement en base == Cette solution requiert de connaître le modèle physique et les valeurs autorisées des champs. Elle est risquée et devra être réécrite en cas de modification du format de base de Dolibarr.

'''Avantages:''' Peut être réalisé dans n'importe quel langage.

'''Inconvénient:''' Cette technique est très fortement déconseillée. A la première montée de version de Dolibarr, cette méthode risque de ne plus fonctionner et devoir être réécrite. De plus, en utilisant cette méthode, vous passer outre les règles de validation métier, ce qui crée un risque de corrompre les données. Cette méthode nécessite aussi de connaitre la base Dolibarr.

== Utilisation des classes PHP == Il est possible d'utiliser les objets métiers de Dolibarr (Les fichiers xxx.class.php). Chacun de ces fichiers offre un classe munie de méthodes pour: * la récupération d'une entité (la méthode fetch) * l'insertion en base d'une entité (la méthode create ou insert) * la mise à jour d'une entité (la méthode update) * la suppression d'une entité (la méthode delete) si applicable à l'objet * d'autres méthodes diverses propre à l'entité manipulée. Cette technique est préférable à la précédente.

'''Avantages:''' Elle offre l'avantage de passer à travers les couches de validations métiers des données. Le code d'interface ne doit normallement pas être réécrit en cas de montée de version de Dolibarr.

'''Inconvénients:''' Elle n'est exploitable qu'en langage PHP.

Voici un exemple pour la création d'un tiers (société client par exemple):

<pre> // On declare la classe que l'on va manipuler include_once('/pathofdolibarrhtdocs/societe.class.php');

// On cree une instance de l'objet à manipuler $mycompany = new Societe($db);

// On renseigne ces caractéristiques $mycompany->nom='Big Brother'; $mycompany->client=1;

// Si on veut que l'action de creation soit associé a un utilisateur 'loginuser' particulier, // il faut decommenter cette ligne pour charger les caractéristiques de cet utilisateur. // Si on laisse commenter, Dolibarr mettra null dans les champs du user de création ou mise a jour. // $user->fetch('loginuser');

// On invoque la creation $id=$mycompany->create($user);

// Pour charger l'objet $mycompany->fetch($id);

// Pour mettre a jour $mycompany->update($user); </pre>

Rem: Si on est dans le cas d'un script externe à Dolibarr, il est nécessaire de faire au début, avant le include de la classe manipulée <pre>include('/pathofdolibarrhtdocs/master.inc.php');</pre> pour que les objets $db, $lang et $user soient créés. Si on veut que les actions (creation, mise a jour), soit associées dans le suivi à un utilisateur particulier, il est nécessaire de faire avant

# Langages

2005-12-08T21:04:41Z
Eldy
Langages déplacé vers Langages et normes
#REDIRECT [[Langages et normes]]

# Langages et normes

2008-04-03T11:22:01Z
Eldy
/* Communication Logique métier - Données (ORM) */
Voici les quelques règles sur le langage, la syntaxe et normes de développement en vigueur pour le projet Dolibarr:

== Versions ==

* Dolibarr doit fonctionner sur: # Tous OS (Windows, Linux, MACOS...) # PHP 4.3 ou + (Doit fonctionner sans aucun module PHP complémentaire hors les modules d'accès base de donnée). # Mysql 3.1 ou +

== Normes PHP ==

* Dolibarr est écrit en PHP et supporte toutes versions PHP supérieures à la 4.1. Les fichiers doivent tous comporter l'extension .php

* L'appel aux variables superglobales PHP doit passer par les opérateurs dédiés $_GET, $_POST, $_COOKIES, $_SERVER, $_ENV. Les autres opérateurs ($HTTP_SERVER_GET, ...) ayant été passé en deprecated au sein de PHP, ne doivent plus être utilisées. Ainsi le code doit fonctionner y compris quand l'option '''register_long_arrays''' est à off. De plus, le code doit fonctionner quand l'option PHP '''register_globals''' est à off (recommandé par PHP) aussi bien que quand l'option '''register_globals''' à on (par défaut sur de nombreuses installations).

* Les smart tags PHP ne sont pas utilisés. Les sections de code doivent commencer par '''<?php'''

* Pas d'utilisation de la variable '''PHP_SELF'''. Utiliser a la place $_SERVER["PHP_SELF"]

* Quand plusieurs variables doivent etre initialisées avec la même valeur, il faut utiliser plusieurs lignes <pre> $var1=1;$var2=1;$var3=1; </pre> plutot que <pre> $var1=$var2=$var3=1; </pre> qui est moins performant.

* Les chaines doivent etre encadrés de simple quote et les variables sorties de la chaine. <pre> print 'Mon texte affiche ma '.$variable.' !'; </pre>

* Les commentaires doivent suivre la syntaxe C, ie un double antislash pour un commentaire d'une ligne et utilisation slash-étoile pour ouvrir un bloc de plusieurs ligne <pre>

/* Bloc de commentaire * * Fin du bloc */

$monobjet = new MonObjet($db); $result=$monobjet->fetch($idobject);

for ($i = 1 , $i < 2 ; $i++) { // commentaire sur une ligne print $i; }

</pre>

* Les fichiers doivent etre sauvés en format Unix (LF) et non Windows (CR/LF). Le format Unix étant compatible sur les OS Unix like, Windows, Mac, alors que le format fichier texte Windows pose problème sous certains PHP sous Unix.

Les fonctions doivent retourner 0 en cas de succès, et un nombre <0 en cas d'erreur. A ce jour, très peu de fonctions respectent ce standard mais c'est celui vers lequel il faut tendre.

== Normes SQL ==

* Les SELECT * sont interdits ! Chaque SELECT doit spécifier la liste complète des champs à récupérer. Cela permet d'éviter les confusions. Exemple:

SELECT field_a, field_b, field_c FROM table_1 WHERE field_d = '$id'

* Dans les requètes sql, on quote les numériques ! Exemple:

INSERT INTO table_1 (field_txt, field_num) VALUES ('txt','1234')

* Dolibarr doit fonctionner meme avec l'option '''strict''' de Mysql.

== Normes HTML ==

* Tous les attributs dans les balises HTML doivent être *en minuscule* et quottés avec des *doubles quote* (Norme xhtml)

* Les liens href doivent etre absolu et se baser pour les pages sur la constante DOL_URL_ROOT qui pointe sur htdocs et pour les images se base sur l'appel de la fonction img_picto. Par exemple: <pre> print '<a href="'.DOL_URL_ROOT.'/monrep/mapage.php">'.img_picto('Texte alt','nompictopng','').'</a>'; </pre>

* Le javascript et l'appel aux scripts java dans les pages php est à proscrire. Si toutefois du code javascript est inclus, il doit être conditionné par le test sur "$conf->use_javascript" <pre> if ($conf->use_javascript) { ... // Le code php qui génère du javascript est ici } </pre>

* Les popups windows ne doivent pas être utilisées, sauf pour des tooltips (et restent condtionner par le point ci-dessus).

* Les scripts externes sont écrits en Perl s'ils ne peuvent l'être en php, l'utilisation d'un autre langage n'est pas interdit mais doit être discuté au préalable dans la mailing list des développeurs. Le langage devra être maitrisé par au moins 2 développeurs pour en assurer la maintenance.

== Squelettes de code ==

Afin d'uniformiser le code et d'accélérer le développement de nouveaux composants dans Dolibarr, se trouvent dans le répertoire '''dev/skeletons''', 4 squelettes de code tout préparés.

* 1 qui sert d'exemple de descripteur de module: '''myModule.class.php''' * 1 qui sert d'exemple de code pour faire une nouvelle classe: '''skeleton_class.class.php''' * 1 qui sert d'exemple de code pour faire une nouvelle page: '''skeleton_page.php''' * 1 qui sert d'exemple de code pour faire un script à exécuter en ligne de commande: '''skeleton_script.php'''

== Programmation Objet ==

=== Motifs d'organisation du code: ===

'''Martin Fowler''' a identifié 3 méthodes d'organisation du code appelées '''motifs''': * Le '''Transaction Script''' (Le code est linéraire en fonction d'une action utilisateur). C'est le motif à l'ancienne utilisé dans les langages procéduraux. Inconvénient: Redondance du code. Nécessité de connaitre le modèle physique pour développer. * Le '''Domain Model''' C'est un concept possible depuis les langages objets. Ce sont les procédures métiers (qui doivent être identifiés avant) qui servent de bases pour les classes objets. Inconvénient: Motif complexe à maintenir. * Le '''Table Module''' Un intermédiaire entre les 2 précédents où l'on a une instance unique de classe par table de la base de donnée.

Comme le montre les squelettes de code (voir point précédent), Dolibarr se base sur le principe du '''Table Module'''.

=== Communication Logique métier - Données (ORM): ===

Il existe 3 modes de liaisons: * Le Table And Row Data Gateway C'est le plus simple. On crée une table par classe et chaque classe est un pont avec la table correspondante, voir une classe par ligne de table. Une instance de classe étant alors un enregistrement de la table. La classe ne contient que du code d'accès aux lignes ou colonnes de tables.

Exemple: C'est le mode mis en oeuvre quand on utilise certains Frameworks d'ORM comme '''iBatis''' (http://ibatis.apache.org/).

* Le Active Record Identique au précédent, mais on se permet d'ajouter quelques fonctions métiers sur la classe, à conditions que ces fonctions soient propres a la table ou à l'enregistrement.

Exemple: C'est le mode choisi pour les développements Dolibarr et de nombreuses autres applications PHP qui ont leur propre framework et pratiques de développements.

* Le Data Mapper Les classes représentent les entités du problème et non les données. Il faut donc doubler, tripler... ces classes avec des classes Mapper pour accéder aux données.

Exemple: C'est le choix si on utilise le Framework d'ORM '''Propel''' (http://propel.phpdb.org/trac/).

Pour les développements Dolibarr, il est recommandé d'utiliser le mode de liaison '''Active Record''' qui offre les avantages d'un modèle proche du métier sans en avoir la complexité et sans trop masquer non plus la technique. C'est dans ce mode que le développement, la compréhension du code et la maintenance technique et/ou fonctionnelle) est la plus productiove.

# Languages

2005-10-02T17:29:46Z
82.234.59.34
Voir [[Langages]].

# Laurent Destailleur (Eldy) - Profession de foi

2006-08-05T17:35:44Z
Eldy
/* Quelques axes d'objetifs */
== Background Dolibarr == Je participe en tant que contributeur puis committeur au projet Dolibarr depuis la version 1.0 (mi-2003). On me reconnait sur le projet Dolibarr sous le pseudo "Eldy". Durant les quelques années de développements passées, j'ai pu travailleur ou mettre en place les chantiers suivant: * Amélioration du look (utilisation de picto, finalisation des themes, création du theme eldy) * Outil générique d'export * Aspect modulaire des menus * Finalisation de l'outil de mailing de masse * Finalisation de la fonction générique des habilitations (notion de groupe et utilisateur) * Finalisation de l'interface d'installation et migration * Développement de l'internationnalisation de Dolibarr * Finalisation du module d'interface avec Webcalendar * Finalisation de l'écriture du code du module notification * Uniformisation/Factorisation de code * Correction de bogues divers. ...

Pour plus de détail, voir le reporting CVS (code développeur Eldy): http://www.destailleur.fr/dolibarr/cvschangelogbuilder_dolibarr.html

En dehors du codage, je tiens également à jour le portail Dolibarr internationnal (http://www.dolibarr.org) et essaie de contribuer au wiki (dans une moindre mesure, quand le temps me le permet) et ait participé au figeage de la release 2.0 pour l'occasion du salon Solution Linux.

== Quelques axes d'objetifs == Mon objectif pour Dolibarr est tout simplement d'en faire un ERP/CRM qui offre le meme niveau de fonctionnalité que les mastodontes équivalent (Compiere, TinyERP) mais avec une facilité d'installation et de prise en main qui soit meilleure. Bref, faire de Dolibarr un outil pour tous, libre et qui offre les fonctions qu'un artisan, une PME ont besoin pour gérer leur activité sur un spectre large (commercial, facturation, trésorerie, comptabilité, stock, rh, ...). J'attache de plus beaucoup d'importance à l'architecture modulaire qui pour moi est un élément primoridial sur lequel il faut veiller afin de garantir que Dolibarr soit demain, au fur et à mesure de ces évolutions, facilement maintenable et évolutif. C'est aussi un critère primordial pour minimiser les collisions entre équipes travaillant sur des chantiers différents et donc faciliter le développement de Dolibarr à un niveau qui dépasse les frontières.

Parmi les objectifs fixés, je vois les grand points suivants: * Uniformiser les sources d'information/documentation de Dolibarr pour les francophones (1 seul site web qui soit à jour et qui centralise forum, wiki, outil savannah). Supprimer les redondances d'informations qui ne vivent pas. * Offrir également une et une seule source d'information pour les utilisateurs anglophones (poursuite du développement du site dolibarr internationnal http://www.dolibarr.org et appel à contribution pour délagation de l'administration du site via le CMS qui permet un travail collaboratif du site). * Réaliser des releases stables fréquentes (au moins une tous les 6 mois) soit en assurant la création de branches CVS, soit en déléguant à qui est prêt pour assumer cette tache CVS. Finalisation des outils d'automatisation de construction des packages dejà entammé (dans le répertoire /build du CVS) * Promouvoir Dolibarr (référencement, amélioration de la documentation, offrir un outil pour faciliter la traduction, ...) * Veiller au respect de la GPL pour une pérennité du projet. * Veiller au respect de la modularisation des composants (modules Dolibarr, modules de générations de documents PDF ou autre, interfaces d'identifications, triggers...). * Offrir les outils et la documentation permettant à des équipes indépendantes de contribuer par réalisation de modules autonomes pouvant se greffer sur Dolibarr (chose techniquement possible déjà aujourd'hui mais difficile dans les faits par manque de documentation).

La plupart de ces chantiers sont déjà entammé aussi j'aimerais avant tout faire perdurer la dynamique de développement qui existe aujourd'hui sur le projet et permettre à tous d'apprécier le travail des autres contributeurs de qualité de Dolibarr: Régis ''(votez pour lui si vous ne votez pas pour moi)'', Rodolphe, etc... ... mais dans tous les cas, je garderai une part active en tant que développeur ...

# Laurent Destailleur - Profession de foi

2006-06-03T00:19:27Z
Eldy
Laurent Destailleur - Profession de foi déplacé vers Laurent Destailleur (Eldy) - Profession de foi
#REDIRECT [[Laurent Destailleur (Eldy) - Profession de foi]]

# Librairies externes

2004-09-27T11:44:53Z
Eldy
Librairies externes déplacé vers Produits 7.1 Stocks Librairies externes et dépendances
#REDIRECT [[Produits 7.1 Stocks Librairies externes et dépendances]]

# Librairies externes et dépendances

2008-05-18T15:36:06Z
Eldy
/* Librairies embarquées dans le code source (valable pour la version 2.4) */
== Librairies embarquées dans le code source (valable pour la version 2.4) ==

Toutes les librairies embarqués Dolibarr sont situées, soit dans le répertoire '''htdocs/includes''': * Librairies AdoDb-Date * Librairies PHP-barcode * Librairies Fckeditor (http://www.fckeditor.net) * Librairies de génération de pdf FPDF (http://www.fpdf.org) * Librairies de génération de pdf FPDI * Librairies chargement RSS Magpierss * Librairies Nusoap modifié pour ne pas avoir de conflit avec PHP5 * Librairies PHP_WriteExcel * Librairies Prototype * Librairies Scriptaculous * Librairies PWC * Librairies Treemenu * Librairies VCard

Soit dans le répertoire '''external-libs''': * Librairies Artichow pour les graphismes * Librairies Smarty (non utilisé)

Toutes ces librairies embarquées doivent respecter les règles suivantes: * Elles doivent être compatibles avec la licence de Dolibarr. Le fichier '''COPYRIGHT''' dans la racine de Dolibarr liste toutes les librairies embarquée avec leur licence en vigueur. * Si une modification est faite sur le livrable de la librairie, il doit etre notifié dans le fichier '''htdocs/includes/dolibarr_changes.txt'''

== Librairies externes ==

* Librairies Apache: Aucune librairie particulière requise.

* Librairies PHP: '''Librairie''': php4-imagick (package dev-php/PECL-imagick sou Gentoo)

'''Statut''': Optionnel

'''Role''': Les onglets "Aperçu" ne sont pas opérationnels si ce module n'est pas présent. Dans ce cas, il est possible de les désactiver depuis le menu Configuration - Affichage.

# Liste des tables

2007-10-15T01:47:07Z
Eldy
[[Catégorie:Table SQL]]

Cette section reprend la liste des tables utilisées par Dolibarr. Chaque table dispose d'une page explicative. Les noms des tables sont indiqués sans aucun préfixe, d'une part pour éviter le problème linguistique lié à l'utilisation d'un terme français ou anglais, et d'autre part pour éviter un préfixe inutile, le préfixe ''llx_'' étant utilisé par défaut pour toutes les tables de Dolibarr, mais étant néanmoins une partie variable d'une installation à l'autre.

This section gives the list of tables used by Dolibarr. Each table has a proper details page. The table names are given without any prefix, to avoid putting a limit due to any linguistical subset on one hand and to avoid the use of a useless prefix on the other hand, ''llx_'' being the default prefix for the Dolibarr tables, but being a variable part nevertheless from one installation to another.

[[Diagramme des bases de données]]

#[[action_def|Table llx_action_def]] #[[Table llx_actioncomm]] #[[Table llx_adherent]] #[[Table llx_adherent_options]] #[[Table llx_adherent_options_label]] #[[Table llx_adherent_type]] #[[Table llx_appro]] #[[bank (Table SQL)|bank]] #[[bank_account (Table SQL)|bank_account]] #[[bank_categ (Table SQL)|bank_categ]] #[[bank_class (Table SQL)|bank_class]] #[[bank_url (Table SQL)|bank_url]] #[[bookmark (Table SQL)|bookmark]] #[[bookmark4u_login (Table SQL)|bookmark4u_login]] #[[boxes (Table SQL)|boxes]] #[[boxes_def (Table SQL)|boxes_def]] #[[Table llx_c_actioncomm]] #[[Table llx_c_ape]] #[[Table llx_c_chargesociales]] #[[Table llx_c_civilite]] #[[Table llx_c_currencies]] #[[Table llx_c_departements]] #[[Table llx_c_effectif]] #[[Table llx_c_forme_juridique]] #[[Table llx_c_methode_commande_fournisseur]] #[[Table llx_c_paiement]] #[[Table llx_c_pays]] #[[Table llx_c_propalst]] #[[Table llx_c_regions]] #[[Table llx_c_stcomm]] #[[Table llx_c_tva]] #[[Table llx_c_type_contact]] #[[Table llx_c_typent]] #[[Table llx_categorie]] #[[Table llx_categorie_association]] #[[Table llx_categorie_fournisseur]] #[[Table llx_categorie_product]] #[[Table llx_chargesociales]] #[[Table llx_co_fa]] #[[Table llx_co_pr]] #[[Table llx_comfourn_facfourn]] #[[Table llx_commande]] #[[Table llx_commandedet]] #[[Table llx_commande_fournisseur]] #[[Table llx_commande_fournisseur_log]] #[[Table llx_commande_fournisseurdet]] #[[Table llx_compta]] #[[Table llx_compta_account]] #[[Table llx_compta_compte_generaux]] #[[Table llx_cond_reglement]] #[[Table llx_const]] #[[Table llx_contact_facture]] #[[Table llx_contrat]] #[[Table llx_contratdet]] #[[Table llx_contratdet_log]] #[[Table llx_cotisation]] #[[Table llx_deplacement]] #[[dolibarr_modules (Table SQL)|dolibarr_modules]] #[[Table llx_document_model]] #[[Table llx_domain]] #[[Table llx_don]] #[[Table llx_don_projet]] #[[entrepot (Table SQL)|Table llx_entrepot]] #[[entrepot_valorisation (Table SQL)|Table llx_entrepot_valorisation]] #[[expedition (Table SQL)|Table llx_expedition]] #[[expedition_methode (Table SQL)|Table llx_expedition_methode]] #[[expeditiondet (Table SQL)|Table llx_expeditiondet]] #[[Table llx_export_compta]] #[[Table llx_fa_pr]] #[[Table llx_facture]] #[[Table llx_facture_fourn]] #[[Table llx_facture_fourn_det]] #[[Table llx_facture_rec]] #[[Table llx_facture_tva_sum]] #[[facturedet (Table SQL)|facturedet]] #[[facturedet_rec (Table SQL)|facturedet_rec]] #[[fichinter (Table SQL)|fichinter]] #[[fournisseur_ca (Table SQL)|fournisseur_ca]] #[[livraison (Table SQL)|livraison]] #[[livraison_det (Table SQL)|livraison_det]] #[[Table llx_mailing]] #[[Table llx_mailing_cibles]] #[[Table llx_notify]] #[[Table llx_notify_def]] #[[Table llx_paiement]] #[[Table llx_paiement_facture]] #[[Table llx_paiementcharge]] #[[Table llx_paiementfourn]] #[[Table llx_paiementfourn_facturefourn]] #[[Table llx_prelevement_bons]] #[[Table llx_prelevement_lignes]] #[[Table llx_prelevement_facture]] #[[Table llx_prelevement_facture_demande]] #[[Table llx_prelevement_rejet]] #[[Table llx_product]] #[[Table llx_product_fournisseur]] #[[Table llx_product_fournisseur_price]] #[[Table llx_product_fournisseur_price_log]] #[[Table llx_product_price]] #[[Table llx_product_stock]] #[[Table llx_projet]] #[[Table llx_propal]] #[[Table llx_propal_model_pdf]] #[[Table llx_propaldet]] #[[Table llx_rights_def]] #[[Table llx_societe]] #[[Table llx_societe_commerciaux]] #[[Table llx_societe_log]] #[[Table llx_societe_remise]] #[[Table llx_societe_remise_except]] #[[Table llx_societe_rib]] #[[Table llx_socpeople]] #[[Table llx_stock_mouvement]] #[[Table llx_telephonie_adsl_fournisseur]] #[[Table llx_telephonie_adsl_ligne]] #[[Table llx_telephonie_adsl_ligne_statut]] #[[Table llx_telephonie_adsl_type]] #[[Table llx_telephonie_client_statistique]] #[[Table llx_telephonie_client_stats]] #[[Table llx_telephonie_commande]] #[[Table llx_telephonie_commande_retour]] #[[Table llx_telephonie_communications_details]] #[[Table llx_telephonie_concurrents]] #[[Table llx_telephonie_contact_facture]] #[[Table llx_telephonie_contrat]] #[[Table llx_telephonie_contrat_contact_facture]] #[[Table llx_telephonie_facturation_batch]] #[[Table llx_telephonie_facture]] #[[Table llx_telephonie_fournisseur]] #[[Table llx_telephonie_groupe_ligne]] #[[Table llx_telephonie_groupeligne]] #[[Table llx_telephonie_import_cdr]] #[[Table llx_telephonie_ligne_statistique]] #[[Table llx_telephonie_numdata]] #[[Table llx_telephonie_prefix]] #[[Table llx_telephonie_service]] #[[Table llx_telephonie_societe_ligne]] #[[Table llx_telephonie_societe_ligne_remise]] #[[Table llx_telephonie_societe_ligne_statut]] #[[Table llx_telephonie_tarif]] #[[Table llx_telephonie_tarif_achat]] #[[Table llx_telephonie_tarif_client]] #[[Table llx_telephonie_tarif_fournisseur]] #[[Table llx_telephonie_tarif_vente]] #[[Table llx_tva]] #[[Table llx_user]] #[[user_alert (Table SQL)|Table llx_user_alert]] #[[user_clicktodial (Table SQL)|Table llx_user_clicktodial]] #[[user_entrepot (Table SQL)|Table llx_user_entrepot]] #[[Table llx_user_param]] #[[Table llx_user_rights]] #[[Table llx_usergroup]] #[[Table llx_usergroup_user]] #[[Table llx_usergroup_rights]]

== Anciennes Tables supprimées == Ces tables ont été présentes à un moment ou un autre dans Dolibarr

* [[Table llx_prelevement]]

# Livraison (Table SQL)

2007-08-06T02:55:27Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Mailing

2006-06-13T23:20:01Z
Jwarnier
{{Navigation documentation}} {{TemplateDocUtil}}

Les fonctions de mailings sont accessibles depuis le menu (sous condition que le module [[Mailing]] ait été activé). On trouve le lien Mailing dans le menu du haut sur le gestionnaire de menu "''Defaut''" ou dans le menu "''Outil''" sur le gestionnaire de menu "''Eldy''".

- Le principe est de créer un mailing avec un titre, un sujet, un email expéditeur.

- On choisit ensuite les destinataires, dans des listes prédéfinies.

- On affine le choix issu de ces listes (pour supprimer un ou deux destinataires par exemple).

- Le responsable validation valide le contenu du mailing et sa liste de destinataires. Il peut effectuer un test vers sa propre adresse e-mail pour en vérifier le rendu sur son logiciel de messagerie. Si le résultat et la liste des destinataires lui conviennent, il passe le mailing au statut validé.

- L'envoi du mail en masse se fait ensuite en ligne de commande via le script ''scripts/mailing-send.php''.

- Le statut global du mailing, ainsi que de le résultat de l'envoi pour chaque destinataire, est mis à jour par ce script.

# Main Page

2007-12-16T19:53:42Z
Eldy

# Mise à jour du format de la base

2008-01-13T22:17:35Z
Eldy
Cette méthode de migration de la base est valable aussi bien pour un passage: * D'une ancienne version stable ou CVS à une version stable. * D'une ancienne version stable ou CVS vers la version CVS actuelle.

Pour mettre a jour son modèle de données (sans perdre les données), il n'y a qu'une solution:

Après avoir écrasé les anciens fichiers Dolibarr par les nouveaux, appeler la page install. Exemple: <pre> http://localhost/dolibarr/install/ </pre>

Et choisir l'option '''migration'''.

Remarque: il est techniquement possible de passer le script de migration en manuel mais de nombreuses erreurs seront alors affichés. Seul l'intelligence de la procédure d'installation est capable de dire quelles sont les erreurs à ignorer (du a un deuxieme lancement par exemple) et quelles erreurs necessitent une analyse. De plus le passage de ce script ne realise qu'une partie de la migration (la partie mise a jour du modele physique et quelques mise a jour des données). Mais certaines opérations complexes sur les données sont codées directement dans les pages de mises a jour. Aussi, seule une mise a jour par la procédure automatisée garantie une état stable final.

# Module Adhérents

2005-12-20T23:15:59Z
Marc ocebo
(Généralités sur les [[Modules]])

Le module des adhérents permet de gérer les membres d'une association ou d'un club. Il est possible de définir différent types d'adhérents, de stocker des informations et de recenser leur cotisation.

''Numéro : 310''

== Permissions ==

* A compléter

== Tables SQL == * [[llx_adherent]] Contient la liste des adhérents * [[llx_adherent_options]] * [[llx_adherent_options_label]] * [[llx_adherent_type]] Contient les différents types d'adhérents

# Module Avoir

2005-12-21T14:30:22Z
Marc ocebo
/* Statut des avoirs */
(Généralités sur les [[Modules]])

''Numéro : 31''

== Permissions ==

{| style="border:2px solid black; border-collapse:collapse" !style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|id !style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|Libellé !style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|Permission !style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|Type !style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|Défaut |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black; text-align:right"|1101 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|Lire les avoirs |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|lire |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black; text-align:center"|r |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black; text-align:center"|1 |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black; text-align:right"|1102 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|Créer les avoirs |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|creer |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black; text-align:center"|w |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black; text-align:center"|0 |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black; text-align:right"|1103 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|Valider les avoirs |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|valider |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black; text-align:center"|m |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black; text-align:center"|0 |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black; text-align:right"|1104 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|Utiliser les avoirs |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|paiement |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black; text-align:center"|a |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black; text-align:center"|1 |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black; text-align:right"|1105 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|Envoyer les avoirs |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|envoyer |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black; text-align:center"|a |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black; text-align:center"|1 |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black; text-align=right"|1106 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|Supprimer les avoirs |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|supprimer |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black; text-align:center"|d |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black; text-align:center"|0 |}

== Statut des avoirs == Les codes essaient de respecter un standard qui semble s'être dessiné au fil du développement. {| style="border:2px solid black; border-collapse:collapse" !style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|Code !style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|Signification |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|0 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|brouillon |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|1 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|validé |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|2 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|''inutilisé'' |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|3 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|annulé |}

== Tables SQL == * [[Table llx_credit|llx_credit]] Contient la liste des avoirs

# Module Banque

2006-11-11T17:52:11Z
Eldy
Module Banque déplacé vers Module Banque-Caisse
#REDIRECT [[Module Banque-Caisse]]

# Module Banque-Caisse

2005-12-20T23:14:47Z
Marc ocebo
(Généralités sur les [[Modules]])

Le module banque permet de gérer les comptes bancaires. Il est possible de définir différent types de compte : bancaire ou caisse.

''Numéro : 85''

== Permissions ==

* A compléter

== Tables SQL == * [[llx_bank]]

# Module Barcode

2005-12-20T23:18:21Z
Marc ocebo
(Généralités sur les [[Modules]])

Gestion des codes barre.

''Numéro : 55''

== Permissions ==

* A compléter

== Tables SQL ==

* A compléter

# Module Commandes

2006-05-16T20:09:52Z
Dilaroga
/* Entité Commande */
== Fonction du module ==

Le module Commande permet de gérer dans Dolibarr les entités suivantes: * Commandes clients * Lignes de commande Les commandes fournisseurs sont gérées par le module Fournisseur.

== Entité Commande ==

La classe PHP pour manipuler cette entité est le fichier ''htdocs/commande/commande.class.php''. Elle contient principalement une méthode fecth, insert, update, et delete.

* Une commande a plusieurs lignes de commandes * Il est possible de rattacher 1 à n contacts à une commande * A compléter...

'''Cycle de vie''':

* Une commande peut être créée en mode brouillon (Provoque appel du trigger ORDER_CREATE) * Une commande peut être modifiée (Provoque appel du trigger ORDER_UPDATE) * Une commande peut être validée (Provoque appel du trigger ORDER_VALIDATE)

# Module Comptabilité

2006-04-11T06:52:29Z
Mytto
== [[Projet comptabilité légale]] ==

[[Dolibarr]] se trouvant pour le moment dépourvu, à la version 2.0, de fonctionalité de comptabilité légale française, il est envisagé de créer une synergie de contributeurs tiers, désireux d'investir dans le développement d'un [[projet comptabilité légale]], au sens français du terme.

== Autres informations == [[Export Compta]]

# Module Contrat

2006-05-16T20:30:56Z
Dilaroga
/* Statut des lignes de contrats */
(Généralités sur les [[Modules]])

== Classe == La classe PHP pour manipuler les contrats est le fichier ''htdocs/contrat/contrat.class.php''.

Elle contient principalement une méthode fecth, insert et delete.

== Cycle de vie d'un contrat ==

Statut des contrats: * 0 : statut primaire, brouillon (Provoque appel du trigger CONTRACT_CREATE) * 1 : à commander (dans le cas ou le service est un service revendu, on logue la date de commande chez le fournisseur). Pas encore géré... * 4 : validé (Provoque appel du trigger CONTRACT_VALIDATE) * 5 : cloturé (Provoque appel du trigger CONTRACT_CLOSE)

== Lignes de Services ==

=== Statut des lignes de contrats === à compléter...

== Permissions ==

* ->contrat->lire * ->contrat->creer * ->contrat->activer * ->contrat->desactiver

== Tables SQL == * [[Table llx_contrat|llx_contrat]] Contient le liste des contrats * [[Table llx_contratdet|llx_contratdet]] Contient les produits associés aux contrats * llx_contrat_facture Liste des associations des factures aux contrats

# Module Facture

2007-12-16T19:53:12Z
Eldy
[[Catégorie:Facture]] {{Tableau soft| nom=Facture| module=[[Module Facture]] |}}

== Fonction du module ==

Le module Facture permet de gérer dans Dolibarr les entités suivantes: * Factures clients * Lignes de factures Les factures fournisseurs sont gérées par le module Fournisseur.

Les arrondis de calcul de TVA doivent se faire "au plus près".

Exemple:

de 0,0000 à 0,0049 --> 0,00

de 0,0050 à 0,0099 --> 0,01

== Entité Facture ==

La classe PHP pour manipuler cette entité est le fichier ''htdocs/facture.class.php''. Elle contient principalement une methode fecth, insert, update, et delete.

* Une facture a plusieurs lignes de factures * Il est possible de rattacher 1 à n contacts à une facture * A compléter...

'''Cycle de vie''':

* Une facture peut être créée en mode brouillon (Provoque appel du trigger BILL_CREATE) * Une facture peut être modifiée (Provoque appel du trigger BILL_UPDATE) * Une facture peut être validée (Provoque appel du trigger BILL_VALIDATE) * Une facture peut recevoir un paiement * Une facture peut être classée abandonnée ou payée (Provoque appel du trigger BILL_CANCEL ou BILL_UPDATE)

== Entité Ligne de Facture ==

* Une ligne de facture représente un produit dans une facture * Chaque facture a 1 à n lignes de produits

# Module Fournisseur

2006-05-16T20:32:45Z
Dilaroga
/* Différents Statuts */
== Commandes ==

=== Permissions ===

if ($obj->fk_id == 181) $this->rights->fournisseur->commande->lire = 1;

if ($obj->fk_id == 182) $this->rights->fournisseur->commande->creer = 1;

if ($obj->fk_id == 183) $this->rights->fournisseur->commande->valider = 1;

if ($obj->fk_id == 184) $this->rights->fournisseur->commande->approuver = 1;

if ($obj->fk_id == 185) $this->rights->fournisseur->commande->commander = 1;

if ($obj->fk_id == 186) $this->rights->fournisseur->commande->cloturer = 1;

=== Différents Statuts ===

* 0 : mode brouillon en rédaction * 1 : rédigée, le rédacteur de la commande a fini la rédaction de sa commande * 2 : validée, la personne devant valider les commandes a validé la commande * 3 : transmise au fournisseur * 4 : livrée partiellement * 5 : totalement livrée ou cloturée * 9 : refusée, le responsable des commandes a refusé la commande

# Module Mailing

2007-12-16T19:52:07Z
Eldy
Ce module ajoute dans les menus une entrée pour créer des mailings. {{Tableau soft| nom=Mailing| module=[[Module Mailing]] |}}

== Procédures ==

- Le principe est de créer un mailing avec un titre, un sujet, un email expéditeur.

- On choisit ensuite les destinataires, dans des listes prédéfinis.

- On affine le choix issus de ces listes (pour supprimer un ou deux destinataires par exemple).

- Le responsable validation valide le contenu du mailing et sa liste de destinataires. Il peut effectuer un test vers son propre email pour un vérifier le rendu sur son logiciel de messagerie. Si le résultat et la liste des destinataires lui conviennent, il passe le mailing au statut validé.

- L'envoi du mail en masse se fait ensuite en ligne de commande via le script ''scripts/mailing-send.php''. <pre> Usage: mailing-send.php id_mailing </pre> Seul un mail au statut validé, peut etre réalisé par ce script.

- Le statut global du mailing, ainsi que de le résultat de l'envoi pour chaque destinataire, est mis à jour par ce script.

== Scripts mis en oeuvre ==

#[[Script mailing-send.php]] Prend en paramètre l'id du mailing à envoyer. <pre> Usage: mailing-send.php id_mailing </pre> L'envoi n'est réalisé que pour les destinataires qui n'ont pas déjà réçu le mail. .

== Tables mises en oeuvre ==

#[[Table llx_mailing]] : Table contenant les mailings (sujet, corps du text et statut global) #[[Table llx_mailing_cibles]] : Table contenant la liste des destinataires définis pour ce mailing et le statut de l'envoi par destinataire.

== Habilitations mises en oeuvre ==

A compléter

# Module OSCommerce2

2007-08-15T00:28:14Z
Ywarnier
/* Importer une commande */
= Introduction =

Le module OSCommerce2 permet de synchroniser une partie des informations d'une installation OSCommerce2 avec une installation de Dolibarr.

De cette manière, il est possible de * publier dans OSCommerce des produits introduits dans Dolibarr * importer des commandes (et leurs détails) dans Dolibarr depuis OSCommerce * importer des clients OSCommerce dans Dolibarr

Ce module fonctionne au travers de l'utilisation d'une librairie facilitant l'utilisation des services web: ''NuSOAP''

= Interface =

On accède à l'interface via l'onglet OSCommerce dans le menu supérieur de l'interface par défaut de Dolibarr. Ce menu nous donne une première page récapitulative des données disponibles dans OSCommerce.

[[image:oscommerce-menu.png]]

Le menu de gauche permet alors d'accéder à plus de fonctionnalités, notamment les fonctionnalités de synchronisation.

La liste de fonctionnalités suivante utilise la convention '''export=Dolibarr->OSCommerce''' et '''import=OSCommerce->Dolibarr'''

== Exporter un produit ==

En cliquant sur le lien ''AddProd'' (qui devrait être traduit en français par ''Ajout produit'', on arrive sur la page d'export des produits. Il suffit de sélectionner un produit et une quantité, puis d'appuyer sur le bouton ''OSCsell'' (qui devrait être traduit en français par ''Vendre sur OSCommerce'') pour que la requête de création soit envoyée.

Attention, la liste de produits est limitée en utilisant les limitations de listes de Dolibarr. Il se pourrait donc qu'au-delà de, par exemple, 50 produits, il soit impossible de voir le reste des produits. Pour changer cette limite, on peut aller la modifier dans la configuration de Dolibarr, ou si l'on veut s'en débarrasser, c'est dans '''htdocs/oscommerce_ws/produits/OSCVente.php''', chercher '''$html->select_produits''' et modifier '''$conf->produit->limit_size'''

== Importer un produit ==

Importer un produit se fait au travers du menu "Produits". La page d'import affiche une liste des produits disponibles dans OSCommerce. Le lien de droite affiche "Importer" ou "Modifier", selon que les produits figurent ou non dans la table ''llx_osc_product''.

Si un produit existe localement et qu'on le supprime (localement), on trouve un joli bug de synchronisation, où le produit apparaît ensuite toujours comme à "Modifier" plutôt qu'importer.

Un produit importé de la sorte est importé hors de toute catégorie.

Un message consécutif à l'importation indique si le produit a été importé.

== Importer un client ==

Importer un client se fait via le menu de gauche '''Clients'''. Une liste des clients apparaît et, d'une façon identique à la liste des produits, on peut choisir d'importer un client dans Dolibarr depuis OSCommerce via un lien '''Importer'''.

Un message d'information atteste de la réussite de l'opération, indiquant par la même occasion quel est l'identifiant interne attribué à ce client dans Dolibarr.

== Importer une commande ==

L'importation d'une commande se fait via le menu de gauche "Commandes".

L'importation d'une commande nécessite la présence préalable dans Dolibarr du client et des produits concernés. Si ce n'est pas le cas, un message nous indique les produits ou clients manquants et bloque l'opération d'import.

== Synchroniser une catégorie ==

La synchronisation des catégories se fait toujours à la main pour le moment. L'utilisation du menu de gauche '''Catégories''' nous mène à une page de liste des catégories existantes dans Dolibarr. Il est nécessaire d'indiquer, pour chaque catégorie de Dolibarr, à quelle catégorie de OSCommerce elle correspond. C'est assez peu intuitif pour le moment étant donné qu'il faut connaître le numéro de catégorie dans OSCommerce pour pouvoir appliquer la correspondance.

= Code =

Comme indiqué dans une ébauche de documentation très succinte au sein du code, c'est dans le répertoire '''htdocs/oscommerce_ws''' que l'on trouve le code de l'application. Il existe également pas mal de code dans un répertoire '''htdocs/boutique''' mais il est difficile de déterminer à quoi il sert (probablement au module OSCommerce1).

Le répertoire '''ws_server/''' doit être copié sur le serveur OSCommerce, dans le répertoire '''catalog/'''. Il doit également être configuré, en modifiant le fichier '''ws_server/includes/configuration.php''' pour y placer la configuration de OSCommerce.

= Problèmes =

== PHP5 ==

La librairie NuSOAP originale (elle a été modifiée dans le code de Dolibarr pour la version 2.2) entre en conflit avec l'extension SOAP de PHP5, à cause du nom du client SOAP, '''soapclient''' qui est identique des deux côtés. Les autres classes ne causent pas de conflit.

Ceci donne lieu à une erreur du type "Cannot redeclare class SoapClient".

== Erreur I/O ==

Il est possible que pour certaines requêtes le client (Dolibarr) renvoie une erreur fatale indiquant un problème d'entrée/sortie (une erreur HTTP 1.1 500 du côté serveur). Ce message d'erreur n'est pas très explicite dans le sens où il s'agit généralement d'un problème au niveau d'une méthode fournie en SOAP uniquement, et pas d'un script complet, comme il pourrait le laisser penser.

Pour corriger, une des deux méthodes suivantes est la bonne (pas encore pu filtrer, désolé): réordonner les appels, côté serveur, à $soap_server->register(méthode) ou donner des paramètres $in et $out à ces mêmes appels à register. D'une façon ou d'une autre, c'est cette partie qui pose problème.

== Mon produit n'apparaît pas dans OSCommerce ==

OSCommerce nécessite une entrée de description de produit pour que le produit apparaisse. Autrement dit, il faut que le produit ait un nom (et éventuellement une description) qui lui soient propres. Tout ça est très joli, le seul problème (dépendant de la version de Dolibarr que vous utilisez) c'est qu'il est possible que la requête d'insertion de la description du produit du côté OSCommerce ne fonctionne pas. Il s'agit de la requête située dans ws_server/ws_articles.php, dans la fonction create_article(). Il faut en fait commenter les 3 lignes commençant par '''products_head''' dans le deuxième tableau. Un produit bien inséré dans OSCommerce renvoie inévitablement un message du type '''le produit JADAA2 Aerosol 60/2 est en vente en ligne consulter'''. Si ce message n'apparaît pas, il y a fort à parier que le produit n'a pas été inséré.

# Module Propositions commerciales

2005-12-20T23:22:13Z
Marc ocebo
(Généralités sur les [[Modules]])

Gestion des propositions commerciales, devis, propales

''Numéro : 20''

== Permissions ==

* A compléter

== Tables SQL == * [[llx_propal]] Contient la liste des propales * [[llx_propaledet]] * [[llx_propal_model_pdf]]

# Module Prélèvements bancaires

2005-03-01T13:35:47Z
Rodo
[[Catégorie:Prélèvements bancaires]]

Gestion des prélèvements bancaires.

== Tables mises en oeuvre == #[[Table llx_prelevement]] (en cours de suppression) #[[Table llx_prelevement_bons]] #[[Table llx_prelevement_lignes]] #[[Table llx_prelevement_facture]] #[[Table llx_prelevement_facture_demande]] #[[Table llx_prelevement_rejet]]

== Scripts mis en oeuvre ==

#[[Script prelevement-verif.php|prelevement-verif]]

# Module Société

2006-05-16T20:25:59Z
Dilaroga
/* Entité Contact */
(Généralités sur les [[Modules]])

== Fonction du module ==

Le module société a pour vocation de permettre de gérer dans Dolibarr les entités suivantes: * Les sociétés * Les contacts * Les RIB de sociétés

Une société représente un tiers moral ou physique (prospect, client, fournisseur). Le terme est mal choisi car il peut très bien s'agir d'un "particulier". Une société est caractérisée par des informations obligatoires comme le nom, pays et d'autres optionnelles comme le capital, identifiant professionnel, etc... Les contacts sont les personnes physiques d'une société. Dans le cas d'un particulier, les caractéristiques d'un contact sont les même que les caractéristiques de l'entité société.

== Entité Société ==

La classe PHP pour manipuler cette entité est le fichier ''htdocs/societe.class.php''. Elle contient principalement une méthode fecth, insert, update, et delete.

* Une société peut avoir 1 à plusieurs [[Contacts|contacts]]. * Une société a une caractéristique qui peut être prospect (Dans ce cas l'entité Société une fois créée peut aussi etre manipulé comme entité Prospect), client (Dans ce cas l'entité Société une fois créée peut aussi etre manipulé comme entité Client) ou aucun des deux. * Une société a une caractéristique fournisseur qui peut etre non ou oui (Dans ce cas l'entité Société une fois créée peut aussi etre manipulé comme entité Fournisseur). * Il est possible de rattacher 1 à n commerciaux par défaut à une société * A compléter...

'''Cycle de vie''':

* Une société peut être créée (Provoque appel du trigger COMPANY_CREATE) * Une société peut être modifiée (Provoque appel du trigger COMPANY_UPDATE) * Un contact peut être ajouté à la société * D'autres entités peuvent être créées sur cette société (commande, propal, facture, contrat, ...) * Une société peut être supprimée (Provoque appel du trigger COMPANY_DELETE)

== Entité Société Prospect ==

La classe PHP pour manipuler cette entité est le fichier ''htdocs/prospect.class.php''.

'''Cycle de vie''':

Un prospect peut avoir plusieurs états : * A ne pas connecter (-1) ; * Non contacté (0) ; * A contacter (1) ; * Contact en cours (2) ; * Prospect contacté (3).

== Entité Contact ==

La classe PHP pour manipuler cette entité est le fichier ''htdocs/contact.class.php''. Elle contient principalement une méthode fecth, insert, update, et delete.

'''Cycle de vie''':

* Un contact peut être créé (Provoque appel du trigger CONTACT_CREATE) * Un contact peut être modifié (Provoque appel du trigger CONTACT_UPDATE) * Un contact peut être supprimé (Provoque appel du trigger CONTACT_DELETE)

== Permissions ==

* ->societe->lire A completer...

== Tables SQL == * [[Table llx_societe|llx_societe]] Contient la liste des societes * [[Table llx_contratdet|llx_contratdet]] Contient les produits associés aux contrats

# Module Stock

2007-08-19T23:19:19Z
Ywarnier
/* Améliorations possibles */
(Généralités sur les [[Modules]])

Le module stock permet de gérer une liste d'entrepots (ou tout autre "contenant") et de répertorier, à tout moment, la liste et quantité des produits qu'il contient. Quand un produit est livré, le choix de l'entrepot source est réalisé est la quantité est automatiquement décrémentée. Il est possible de réajuster le contenu de ces entrepots suite à des inventaires.

Le module stock est paramétrable dans l'administration de Dolibarr pour choisir si la décrémentation du stock se fait à la livraison d'une expédition, à la facturation ou à la commande.

La gestion du stock de cette façon ne permet pas, à l'état actuel, d'incrémenter le stock sur une livraison fournisseur.

== Permissions ==

* A compléter

== Implémentation ==

=== Expéditions ===

La modification du stock sur expédition se fait dans le script htdocs/expedition/commandes.php et utilise la classe expedition.class.php (méthode ''valid()''). La vérification avant modification du stock se fait comme suit:

if ($conf->stock->enabled && $this->entrepot_id && $conf->global->STOCK_CALCULATE_ON_SHIPMENT == 1)

=== Commandes/Livraison ===

Lorsque l'option d'incrémenter le stock sur commandes est activée, du côté des commandes fournisseurs, c'est la classe htdocs/fourn/fournisseur.commande.class.php qui prend en charge l'incrémentation du stock au travers de sa méthode ''DispatchProduct()''. L'activation de cette commande n'est possible qu'à l'état 3 et 4 de la commande fournisseur, ce qui veut dire qu'il ne faut pas rater son coup au moment d'encoder la commande. Une fois la commande "envoyée", il est possible de placer les produits dans le stock en cliquant sur l'onglet Dispatch (''Ventilation'').

== Améliorations possibles ==

La gestion du stock devrait pouvoir incorporer une intégration des livraisons fournisseurs directement dans un stock au choix. De même, une livraison d'un produit composé de plusieurs sous-produits devrait pouvoir être intégrée au stock sous forme des différents constituants plutôt que du tout. Cette intégration peut être faite de façon simple en ajoutant un checkbox dans fourn/commande/dispatch.php, une méthode donnant la liste détaillée des composants d'un produit (incluant les quantités), et une nouvelle méthode commandeFournisseur::DispatchProductAsComponents() qui va chercher la liste des enfants et les place un à un dans le stock.

== Tables SQL == * [[llx_entrepot]] Contient la liste des entrepots

# Module Téléphonie

2005-08-16T08:54:07Z
81.56.183.189
[[Catégorie:Téléphonie]] {{Tableau soft| nom=Téléphonie| module=[[Module Téléphonie]] |}} Module de facturation spéciale pour les revendeurs de téléphonie. Permet la gestion des lignes en préselection, l'emission des factures comptables et des factures détaillées. Le suivi des consommations. Le calcul des commissions des distributeurs.

== Procédures ==

#[[Module Téléphonie Procédure Facturation]]

== Scripts mis en oeuvre ==

#[[Script import-cdr.php]] #[[Script facturation-verif.php]] #[[Script facturation-calcul.php]] #[[Script facturation-emission.php]]

== Tables spécifique à ce module ==

#[[Table llx_telephonie_adsl_fournisseur]] #[[Table llx_telephonie_adsl_ligne]] #[[Table llx_telephonie_adsl_ligne_statut]] #[[Table llx_telephonie_adsl_type]] #[[Table llx_telephonie_client_statistique]] #[[Table llx_telephonie_client_stats]] #[[Table llx_telephonie_commande]] #[[Table llx_telephonie_ligne]] #[[Table llx_telephonie_commande_retour]] #[[Table llx_telephonie_commission]] #[[Table llx_telephonie_commission_avance]] #[[Table llx_telephonie_commission_conso]] #[[Table llx_telephonie_communications_details]] #[[Table llx_telephonie_concurrents]] #[[Table llx_telephonie_contact_facture]] #[[Table llx_telephonie_contrat]] #[[Table llx_telephonie_contrat_contact_facture]] #[[Table llx_telephonie_contrat_priseordre]] #[[Table llx_telephonie_contrat_service]] #[[Table llx_telephonie_facture]] #[[Table llx_telephonie_fournisseur]] #[[Table llx_telephonie_groupe_ligne]] #[[Table llx_telephonie_groupeligne]] #[[Table llx_telephonie_import_cdr]] #[[Table llx_telephonie_ligne_statistique]] #[[Table llx_telephonie_numdata]] #[[Table llx_telephonie_prefix]] #[[Table llx_telephonie_service]] #[[Table llx_telephonie_societe_ligne]] #[[Table llx_telephonie_societe_ligne_remise]] #[[Table llx_telephonie_societe_ligne_statut]] #[[Table llx_telephonie_tarif]] #[[Table llx_telephonie_tarif_achat]] #[[Table llx_telephonie_tarif_client]] #[[Table llx_telephonie_tarif_client_log]] #[[Table llx_telephonie_tarif_grille]] #[[Table llx_telephonie_tarif_grille_rights]] #[[Table llx_telephonie_tarif_montant]] #[[Table llx_telephonie_tarif_montant_log]]

# Module Utilisateurs

2006-05-13T11:34:42Z
Eldy
(Généralités sur les [[Modules]])

Gestion des utilisateurs (''Numéro : 0'')

== Fonction du module ==

Le module utilisateur est un module obligatoire. Il ne peut etre désactivé. Il a pour vocation de permettre de gérer dans Dolibarr les entités suivantes: * Utilisateurs de Dolibarr * Groupes d'utilisateurs de Dolibarr

== Permissions ==

* A compléter

== Tables SQL == * [[llx_user]] Contient la liste des utilisateurs * A compléter

# Module comptabilité

2006-04-11T09:54:35Z
Mytto
#REDIRECT [[Module Comptabilité]]

# Modules

2007-08-04T02:03:45Z
Ywarnier
/* Définition de la classe */
== Liste de modules ==

# [[Module Facture]] # [[Module Propositions commerciales]] # [[Module Produits]] # [[Module Projets]] # [[Module Fiches d'intervention]] # [[Module Adhérents]] # [[Module Commandes]] # [[Module Comptabilité]] # [[Module Expédition]] # [[Module Banque-Caisse]] # [[Module Société]] # [[Module Téléphonie]] # [[Module Prélèvements bancaires]] # [[Module Contrat]] # [[Module Fournisseur]] # [[Module Stock]] # [[Module Service]] # [[Module Barcode]] # [[Module OSCommerce]] # [[Module OSCommerce2]]

== Définition ==

La définition d'un module se fait en incluant une classe dans le répertoire htdocs/includes/modules.

Cette classe est une extension de la classe modDolibarrModules, son nom doit commencer par le préfixe "mod", la quatrième lettre étant en majuscule (ex : modFacture, modCommercial)<br>

=== Définition de la classe ===

La classe doit comporter une fonction d'initialisation qui a le même nom que la classe en elle-même (fonctionnalité de php).

Elle comporte les propriétés depends, const et boxes qui sont toutes trois des tableaux à une ou plusieurs dimensions. Elle a aussi un numéro dans le champ numero qui doit être unique.

{| style="border:2px solid black; border-collapse:collapse" !style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|Propriété !style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|Type !style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|Signification !style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|Obligatoire |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|depends |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|Array of strings |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|Nom des autres modules dont dépend le module |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black; text-align:center"|X |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|const |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"| {| | rowspan="4" | Array of Array || 0 || Nom de la constante |- | 1 || Type de la constante (chaine, texte, yesno) |- | 2 || Valeur par défaut |- | 4 || ? |} |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|Liste des constantes définies par le module |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black; text-align:center"|X |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|boxes |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"| {| | rowspan="2" | Array of Array || 0 || Titre de la boîte |- | 1 || Nom du fichier PHP de la boîte |} |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|Liste des boîtes gérées par le module |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black; text-align:center"| X |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|numero |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|integer |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|Numéro unique du module |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black; text-align:center"| X |}

Inspirez-vous des classes existantes pour écrire votre propre classe.

Dans le cas de l'utilisation (involontaire) d'un '''numero''' non-unique, l'indexation de la liste des modules à afficher dans la page d'administration des modules provoquera une superposition des définitions de ces modules, ce qui pourrait avoir pour effet de faire apparaître un des modules deux fois, ou une seule fois mais à un autre endroit qu'habituellement.

=== Numéros de modules recensés ===

{| style="border:2px solid black; border-collapse:collapse" !style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|Numéro !style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|Module |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|0 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module Utilisateurs]] |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|1 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module Société]] |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|2 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module Commercial]] |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|10 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module Comptabilité]] |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|20 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module Propositions commerciales]] |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|22 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module Mailing]] |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|23 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module Energie]] |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|25 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module Commandes]] |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|30 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module Facture]] |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|31 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module Avoir]] |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|40 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module Fournisseur]] |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|42 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module Syslog]] |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|50 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module Produits]] |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|52 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module Stock]] |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|53 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module Service]] |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|54 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module Contrat]] |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|55 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module Barcode]] |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|56 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module Téléphonie]] |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|57 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module Prélèvements bancaires]] |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|58 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module ClickToDial]] |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|70 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module Fiche d'intervention]] |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|75 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module Déplacement]] |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|80 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module Expédition]] |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|85 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module Banque]] |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|86 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module Boutique]] |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|200 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module LDAP]] |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|210 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module Postnuke]] |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|310 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module Adhérents]] |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|320 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module Fil RSS Externe]] |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|330 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module Bookmark]] |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|400 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module Projets]] |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|410 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module Webcalendar]] |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|700 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module Don]] |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|900 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module OSCommerce2]] |- |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|1780 |style="border-left:1px solid black; border-right:1px solid black; border-bottom:2px solid black"|[[Module Catégories]] |}

# Nomination chef de projet

2006-07-25T22:55:53Z
Cbattarel
/* Candidats */
== Contexte == Le projet Dolibarr arrive à un seuil critique, pour passer au mieux cette étape difficile Rodolphe propose la nomination d'un chef de projet, celui-ci sera élu par l'ensemble des personnes souhaitant s'impliquer dans cette élection. Les candidats devront poster ici une profession de foi. Et les volontaires participeront à la rédaction du [[Rôle du chef de projet]] de façon collaborative.

== Procédure ==

Les dates des élections seront définies ultiérieurement et seront postées dans les listes de discussions -dev et -user.

== Candidats ==

* [[Profession de foi Chef de Projet - Régis Houssin]]

* [[Laurent Destailleur (Eldy) - Profession de foi]]

== Electeurs == La liste des électeurs est ouvertes à la communauté Dolibarr.

* Rodolphe Quiédeville * [[Utilisateur:Marc_ocebo|Marc Barilley - Ocebo]] * Laurent Destailleur - Eldy * Nicolas Gombert * [[Utilisateur:Ozit|Arié Oziel]] * [[Utilisateur:OrdiLem|Ludovic MAINIE - OrdiLem]] * Yannick Warnier * Jerome Warnier * [[Utilisateur:Syl20|Sylvain Scattolini - Syl20]] * [[Utilisateur:Tiaris|Jean Heimburger - Tiaris]] * [[Utilisateur:Mfauveau|Matthieu Fauveau]]

# OpenXtrem

2006-04-12T10:48:11Z
Mytto
/* Associés */
[[openXtrem]] est une société de conseil en ingénierie informatique innovante, * axée sur les nouvelles technologies, en particulier l'architecture web * basée sur les développements open source * centrée sur le service à la demande

Nous utilisons quotidiennement [[Dolibarr]] pour nos propres besoins, et envisageons sérieusement de packager une prestation de services autour de cet excellent système de gestion d'entreprise.

== Associés == ; [[Utilisateur:Mytto|Thomas Despoix]] : Consultant web open source, expert en génie logiciel ; Romain Ollivier : Consultant web open source, Expert en Systèmes d'Information Hospitalier

== Liens externes == * [http://www.openxtrem.com Site web d'openXtrem]

# Outils de développement

2008-07-14T17:56:06Z
Eldy
/* Configuration */
Tout environnement de développement peut être utilisé. Toutefois voici une liste d'outils fortement recommandés pour leur complétude, leur qualité et la productivité du développement qu'ils apportent. Il est utilisé par certains des développeurs principaux de Dolibarr. Notons que toutes ces solutions sont gratuites et OpenSource.

== Pour tous ==

* Installation d'Eclipse 3.2 ou 3.3 ( http://www.eclipse.org/ )

* Installation du module PHPClipse pour Eclipse.

* Firefox 2.0 ou plus avec les plugins: Tamper Data, HTMLValidator, Phplangeditor, Firebug + Firecookie.

* SquirrelSql (pour l'administration de base)

== Optionnel ==

=== Si vous gérez d'autres projets sous SVN === * Installation du module SubClipse ( http://subclipse.tigris.org/install.html )

=== Si vous désirez développer des modules avec le générateur UML2Dolibarr ===

* Vérifier que Eclipse contient le plugin - Si Eclipse 3.2: # EMF 2.2.2 # UML2 2.0.3 - Si Eclipse 3.3: # EMF 2.3.0 # UML2 2.1.1

Si non, les installer via la procédure '''Find And Install''' et choisir EMF et UML2 End-User.

* Installation de TopCased 1.4 Pour cela, utiliser la procédure '''Find And Install''' et ajouter l'URL de mise a jour: http://topcased-mm.gforge.enseeiht.fr/release/update-site3.3/

* Installation d'acceleo 2.2.1 Pour cela, utiliser la procédure '''Find And Install''' et ajouter l'URL de mise a jour: http://www.acceleo.org/modules/update/

* Installation d'UML2Dolibarr svn checkout svn://svn.forge.objectweb.org/svnroot/acceleo/trunk/modules/community/uml21/dolibarr/trunk/

== Et si vous êtes sous Windows ==

* WampServer 2 (pour le base Mysql, Apache et PHP tout clé en main). Ce serveur WAMP offre le trio MySql+Apache+PHP installé en clé en main, avec possibilité de basculer de version pour n'importe lequel des ces composants d'un simple clic). Un must !

* Notepad++ (pour ceux qui ne supportent pas java ou utilisent un vieux coucou trop faible pour Eclipse).

* WinMerge (pour la comparaison de fichiers ou répertoires)

== Configuration == Si vous êtes un développeur officiel avec accès CVS en écriture, ajouter dans la configuration CVS de votre Eclipse, une entrée CVS.

:ext:yourlogin@cvs.savannah.nongnu.org:/cvsroot/dolibarr

Sinon

a completer...

# Outils et principes

2007-02-06T02:47:42Z
Eldy
Outils et principes déplacé vers Poubelle
#REDIRECT [[Poubelle]]

# Permissions

2006-11-11T17:53:33Z
Eldy
Chaque permission se voit affecter un id unique. Toutes les permissions gérées dans Dolibarr sont stockées dans la [[Table llx_rights_def]] et possède un id. Cet id est aussi utilisé pour faire le lien entre un utilisateur et la permission (liens sotckés dans la table [[Table user_rights]] ou pour faire un lien entre un groupe et la permission (liens sotckés dans la table [[Table usergourp_rights]]).

Avant de créer de nouvelles permissions les développeurs doivent compléter ce document c'est lui et lui seul qui fait office de réservation et d'inventaire des identifiants retenus

Identification des classes :

== Tableau d'identification des classes ==

# Gestion utilisateurs # [[Module Facture]] # [[Module Propositions commerciales]] # [[Module Produits]] # [[Module Projets]] # [[Module Fiches d'intervention]] # [[Module Adhérents]] # [[Module Commandes]] # [[Module Comptabilité]] # [[Module Expedition]] # [[Module Banque-Caisse]] # [[Module Société]] # [[Module Prélèvements bancaires]] # [[Module Contrat]] # [[Module Mailing]] # [[Module Fournisseur]] # [[Module Fournisseur]] commandes # [[Module Fournisseur]] factures # [[Module Catégorie]] # [[Module Commercial]] # [[Module Téléphonie]] # [[Module Téléphonie]] lignes # [[Module Téléphonie]] lignes ADSL # [[Module Téléphonie]] contrats de lignes téléphonique # [[Module Téléphonie]] permissions supplémentaires # [[Module Téléphonie]] Services # [[Module Téléphonie]] Tarifs

# PhpLangEditor

2007-10-15T01:56:02Z
Eldy
/* Version courte */
= phpLangEditor - Modification pour Dolibarr =

== Version courte ==

* Installez l'extension [https://addons.mozilla.org/firefox/687/ phplangeditor] dans votre Firefox * Trouvez où se cache phplangeditor.jar sur votre disque * Remplacez-le par [http://glouglou.beeznest.org/phplangeditor.jar cette version-ci] * Redémarrez Firefox et cliquez sur Outils -> PHP lang editor

== Version longue ==

phpLangEditor est une extension pour Firefox (disponible [https://addons.mozilla.org/firefox/687/ sur le site de Mozilla]) qui permet la traduction de fichiers de langue au "format PHP". Toutefois, ce format est peu pratique pour toute une série de raisons.

Comme Dolibarr utilise une forme de "format INI" pour ses traductions, il est impossible d'utiliser phpLangEditor telle quelle pour les traductions. Toutefois, quelques petites modifications permettent d'aboutir à une version de phpLangEditor qui nous convient (mais qui ne permet plus, dès lors, d'utiliser des fichiers au format PHP).

Afin d'utiliser la modification fournie ci-dessous, il est d'abord nécessaire d'installer l'extension, en suivant le lien [https://addons.mozilla.org/firefox/687/ sur le site de Mozilla].

Une fois que c'est fait, téléchargez la version modifiée du fichier d'extension (voir lien en fin de page) et copiez-la dans votre répertoire Firefox. C'est une procédure un peu laborieuse (on espère que l'auteur de phpLangEditor intégrera bientôt les modifications à la source) mais si vous suivez attentivement les instructions cela ne devrait pas poser de problème.

La difficulté réside dans le fait de trouver où se trouve l'extension sur votre disque. Sous Linux, il s'agit d'un chemin du genre de '''.mozilla/firefox/i7xfinu9.default/extensions/\{77e8295d-7048-8367-1c67-378514e06d74\}/chrome/phplangeditor.jar'''. Pour le trouver, placez-vous dans votre répertoire home ou dans votre répertoire .mozilla/ et tapez dans un terminal: find . -name "phplangeditor.jar"

Vous devriez voir s'afficher le répertoire complet dans lequel se trouve le fichier. C'est ce fichier phplangeditor.jar que vous devez remplacer par celui fourni [http://glouglou.beeznest.org/phplangeditor.jar ici]. Désolé pour l'utilisation d'un autre serveur, mais je n'ai pas le droit d'uploader autre chose que des images sur le wiki.

Redémarrez Firefox et cliquez sur Outils -> PHP lang editor

# Premiers paramétrages

2008-07-17T21:26:04Z
Eldy
/* Quelques options cachées */
{{Navigation documentation}} {{TemplateDocUtil}}

Après l'installation proprement dite de Dolibarr, vous devez le paramétrer pour l'adapter à vos besoins avant de le mettre en production.

== Institution ==

Pour commencer, à partir de la page d'accueil, rendez-vous dans la partie "Configuration" et éditez les informations de votre institution. N'oubliez pas d'indiquer votre pays car certains paramétrages (TVA) en dépendent.

== Affichage ==

Cette partie vous permet de choisir la langue et la présentation des pages. Dans un premier temps vous devriez conserver les options par défaut.

== Modules ==

L'activation des modules est très importante. Elle dépend de l'utilisation que vous prévoyez de faire de Dolibarr. Il est très peu probable que vous ayez besoin de la totalité des modules. Il vous faut donc activer les modules dont vous aurez très probablement besoin. Par exemple: Sociétés, Factures éventuellement Comptabilité.

Si vous n'êtes pas sûr de vous, activez les modules les uns après les autres et voyez les fonctionnalités qu'ils ajoutent dans Dolibarr (vérifiez avant les droits, voir ci-dessous). Il est bien sûr possible de désactiver des modules après coup.

Une fois activés, certains modules nécessitent une configuration supplémentaire (cliquer sur l'icône qui apparait tout à droite sur la même ligne). Voir en particulier pour les factures [[FactureConfiguration]]

== Autre == Les autres entrées du menu Configuration sont des options avancées. Il n'est pas obligatoire de les parcourir.

== Utilisateurs == La dernière étape consiste à créer les utilisateurs. Pour cela, vous pouvez vous rendre dans la partie "Utilisateurs & Groupes" pour définir les utilisateurs et leurs droits. Attention, pensez à définir les droits utilisateurs, et aussi à les vérifier quand vous ajoutez un module (voir plus loin). La liste des droits disponibles dépendant des modules activés (voir plus haut), il est recommandé de configurer cette partie après avoir activé les modules désirés. Pour certaines actions, si vous n'avez pas les droits pour faire une action, Dolibarr ne vous la proposera pas. Vous risquez de rater des choses utiles et/ou importantes.

== Quelques options cachées == Quelques options non visibles dans les interfaces (souvent car en beta ou en expérimentation) sont disponibles. Pour les activer il faut définir une constante à 1 dans '''Accueil - Configuration - Divers''':

* MAIN_CONFIRM_AJAX => Si cette constante est définie (à autre chose que 0), le message de confirmation de suppression de lignes de facture, propal, etc, est une popup Ajax, au lieu d'un formulaire affiché par rechargement de la page.

* MAIN_AUTOFILL_DATE => Si cette constante est définie (à autre chose que 0), la date de facture, propal, commande ou paiement est prérempli avec la date du jour. Il est fortement recommandé de NE PAS ACTIVER cette option, ceci générant une saisie sans validation de la part des utilisateurs sur les dates, ce qui se traduit par des données incorrectes enregistrés et un beau casse tête lorsqu'il faut faire sa compta ! Toutefois l'option reste disponible, à la demande des certains utilisateurs.

# Presse en ligne

2005-02-15T15:41:34Z
Rodo
# http://www.indexel.net/1_6_3997__3_/4/50/1/Solution_Linux_2005___Dolibarr_seduit_les_petites_entreprises.htm # http://www.indexel.net/doc.jsp?id=2308 # http://www.indexel.net/1_6_3585__3_/4/49/1/Logiciels_libres___panorama_de_l_offre_en_2004.htm # http://www.zdnet.fr/techupdate/applications/0,39020852,39139769-1,00.htm

# Presse papier

2006-04-01T20:04:06Z
Eldy
# '''Linux Magazine numéro 77 (novembre 2005)''' - ''Dolibarr, et si vous utilisiez un ERP libre ?'' 6 pages sont destinées à décrire l'installation et la personnalistaion de Dolibarr. # '''Linux Pratique numéro 32 (novembre-décembre 2005)''' - ''Dolibarr, et si vous utilisiez un ERP libre ?'' 4 pages sont destinées à décrire l'installation, l'administration et l'utilisation de Dolibarr.

# Produits

2007-05-11T09:10:13Z
Grandoc
/* Définition de Produit */
{{Navigation documentation}} {{TemplateDocUtil}}

== Définition de Produit == Un produit Dolibarr est un bien à gérer, soit parce qu'il caractérise un objet proposé à des clients, soit parce qu'il caractérise un objet obtenus auprès de fournisseurs. Il s'agit de biens matériels, contrairement aux [[Services]].

Un produit répond, en résumé, aux règles suivantes: * Un produit peut se stocker dans un entrepôt (seuls les produits d'ailleurs apparaissent dans le module [[Module_Stock|Stock]]. Les services n'y apparaissent pas). * Un produit peut se livrer (seuls les produits d'ailleurs apparaissent dans le module [[Module_Stock|Stock]]. Les services n'y apparaissent pas. Ces derniers sont réalisés ou non, mais pas livrés). * Un produit est en général un bien matériel. Sa valeur souvent se déprécie avec le temps (Un produit d'occasion vaut moins que le même produit neuf).

# Produits associés

2006-12-02T12:26:59Z
Rodo
{{Navigation documentation}} {{TemplateDocUtil}}

== Définition d'un produit associés == Un produit associés est un [[Produits|produit]] à part entière. Le fait d'associer un produit à un autre entraîne les actions suivantes :

* lors de l'ajout d'un produit dans un document (propale, facture, commande) tous ses produits associés y sont eux-même ajouté

# Projet

2008-03-17T14:45:45Z
Tdeme
/* Créer un projet */
{{Navigation documentation}} {{TemplateDocUtil}}

== Présentation == Un projet permet de regrouper des [[Proposition commerciale|propositions commerciales]], des [[Commande|commandes]] et des [[Facture|factures]] pour une société. Un projet est lié à une société, il ne peut contenir que des éléments relatifs à cette société.

== Créer un projet ==

La création d'un nouveau projet se fait depuis la fiche client ou prospect (à partir de l'onglet "Tiers") d'une société via le bouton "Créer projet"

# Projet comptabilité légale

2006-10-25T08:39:50Z
Mytto
/* Contributeurs */ déplacé dans la page de l'utilisateur
Le [[projet comptabilité légale]] a pour but l'enrichissement du [[module comptabilité]] de [[Dolibarr]], dans l'optique de son utilisation pour assurer le suivi de la comptabilité d'une structure, au sens de la '''législation française'''.

== Raison d'être ==

Partant du double constat que d'une part la demande pour une telle fonctionnalité est très importante, et que d'autre part la [[roadmap]] officielle ne l'envisage à ce jour que pour la version [[Roadmap 2.6.0|2.6.0]] du système, nous avons décidé de créer un projet dans le projet pour accélérer son développement. Il existe deux systèmes distincts actuellement très complémentaires et qui permettraient en les intégrant de réunir le meilleur des deux monde : ; PHP Compta : Système de gestion comptable avancé répondant aux normes légales en France et en Belgique. ; Dolibarr : Système de gestion d'enteprise intégré (CRM, facturation, GED) Une unification de ces deux systèmes permettrait d'arriver à la solution open source n°1 de gestion d'entreprise francophone.

== Besoins fonctionnels ==

;Plan comptable français : Gérer la hiérarchies des comptes du plan comptable, et les lier aux écritures bancaires de la société.

== Processus ==

Il faut probablement envisager un processus itératif, qui est souvent la meilleure méthode pour fédérer des idées et des efforts de façon agile. Il faut avancer continuement et converger vers le système final, plutôt que de tenter l'édification d'un cahier des charges monolythique.

L'objectif final du processus est clairement d'intégrer la branche principale de Dolibarr, dès qu'une version utilisable est obtenue.

=== Proposition de processus === ;Etape 1 -- Etat de l'art : Faire un bilan initiatives déjà en cours (''cf.'' [[Discuter:Projet comptabilité légale]]).

Initiative compta expert Dolibarr: L'initiative principale est entammée par Laurent Destailleur (Eldy), contributeur principal de Dolibarr après Rodolphe, créateur de Dolibarr. Elle se base sur le principe suivant: - Des tables supplémentaires pour stocker le plan comptable et les écritures comptables. - Utilisation des triggers Dolibarr pour alimenter la tables des écritures selon les évènements Dolibarr. Ce développement peut etre accéléré par les soumissions de tous à condition d'être parti sur ce principe.

Initiative interface phpCompta: Une autre initiative possible est d'utiliser toujours les triggers Dolibarr pour non pas alimenter les tables dédiées compta de Dolibarr mais les tables d'un autre systeme de compta comme PhpCompta.

Les 2 sont possibles, car chacune des 2 solutions s'activera de manière optionnelle (via le systeme des Modules Dolibarr).

;Etape 2 -- Mutualiser la base : Mettre sous CVS le travail le plus abouti

Ceci sera fait via le controle de Laurent Destailleur (eldy@users.sourceforge.net) par soumission des patch par mail. Les patch doivent etre construit sur le principe défini dans le wiki.

;Etape 3 -- Définir les besoins : Sélectionner et prioriser les besoins principaux

Pour l'initiative compta expert Dolibarr: - Créer la page pour définir son plan comptable - Créer la table des ecritures - Créer le fichier trigger qui alimente table des écritures sur chaque evenement Dolibarr. - Créer les états de reporting (grand livre, journal, bilan...) basés sur cette table

;Etape 4 -- Développer les services un par un : Alerter la communauté dès que quelque chose est montrable ;Etape 5 -- Tester et améliorer : Puis boucler sur l'étape 3 autant que nécessaire ;Etpae 6 -- Officialiser le module : Avec l'accord des administrateurs, intégrer le développement à la branche principale de Dolibarr

== Moyens ==

; Base de connaissance : Le présent wiki est un espace privilégié pour consolider l'information du projet, ainsi que les discussions afférantes.

; Dépot du code source : Afin d'avoir un point centralisé pour la réalisation de la compta, les contributions ou idées doivent etre soumise à Laurent Destailleur (eldy@users.sourceforge.net) qui intégrera directement les modifications en CVS après validation.

== Contributeurs ==

; [[Utilisateur:Eldy|Laurent Destailleur - Eldy]] : Je centralise l'initiative Dolibarr compta Expert mais je peux aider aux autres (exemple: initiative interface phpCompta).

; [[openXtrem]] : Expert en développement web open source. Nous nous proposons pour fédérer les efforts autour du projet de comptabilité légale et participer au développement technique.

; [[Utilisateur:Marc ocebo|Marc Barilley - Ocebo]] : Développeur web/offline. Déjà contributeur au projet. J'ai de solides connaissances en programmation et modélisation de base de données mais de sérieuses lacunes en comptabilité. Dans notre société, nous attendons avec impatience des fonctionnalités de comptabilité. C'est pourquoi nous souhaitons nous investir dans le développement.

# Proposition commerciale

2007-05-15T16:22:22Z
Grandoc
{{Navigation documentation}} {{TemplateDocUtil}}

Si le mot vous parle plus, on peut dire qu'une proposition commerciale est un devis.

==Créer une proposition commerciale==

La création d'une proposition commerciale se fait à partir de la fiche client ou prospects dans la partie Commercial. Pour créer une Proposition vous devez avoir un contact défini pour ce client et le [[Premiers paramétrages#Modules|module]] doit être activé !).

Suivez ensuite les indications pour créer une proposition brouillon, puis validez la quand elle est prête (contrairement aux factures vous pouvez modifier une proposition validée).

==Clôture d'une proposition==

Clôturez une proposition comme Signée quand le client a donné son accord. Lors de la clôture d'une proposition commerciale la société rattachée est automatiquement définie comme client si celle-ci était auparavant classée comme prospect, une [[Commande]] "brouillon" correspondante est automatiquement créée.

==Modèles==

Dolibarr sait gérer plusieurs modèles de propositions, qui doivent être actives dans la partie Configuration du module. Vous pouvez créer vous même vos modèles il vous suffit pour cela de connaitre tout de même le language php. Les modèles de propositions se trouvent dans /includes/modules/propale/

# Prérequis

2007-12-08T13:36:51Z
Eldy
/* Bases de données */
Dolibarr est conçu pour fonctionner avec les composants suivant:

== OS == * Tout OS pouvant accueillir un serveur Web avec PHP. Par exemple: Linux, BSD, Windows, MacOS, Aix, ...

== Bases de données == * Mysql 3.1 ou + (4.1 ou plus recommandé) Si le fonctionnement avec l'option mode=STRICT renvoie des warnings ou erreur merci de nous le signaler. Les tests dans ce mode sont rares, car cette option est rarement active. * PostgresSql (support experimental non operationnel) * MSSql (support experimental non operationnel)

== PHP == * Version 4.1 ou + * Le support des sessions doit etre actifs (c'est le cas par défaut en PHP) * Fonctionne quelque soit le paramètre register_globals * Fonctionne quelque soit le paramètre magick_quotes * Fonctionne quelque soit le paramètre safe_mode * La configuration PHP doit autoriser une taille max de mémoire par session d'au moins de 16Mo (24Mo conseillé sous Windows).

# Rapports TVA

2008-02-03T10:00:36Z
Grandoc
{{Navigation documentation}} {{TemplateDocUtil}}

Les rapports TVA actuellement disponibles sont utilisables mais encore imparfaits. Il vaut mieux vérifier les calculs/totaux avant de les utiliser pour remplir une déclaration.

Par exemple, dans le rapport TVA *quadri*, les totaux calculés: * ne font pas de distinction entre produits et services, * ne déterminent pas de manière sûre s'il s'agit d'une TVA intra-communautaire ou autre * ne prennent pas compte de l'encodage d'une facture fournisseur après un quadri, ce qui signifie que les totaux du quadri précédent sont modifiés de telle sorte que la TVA à récupérer ne s'affiche pas comme une modification au dernier quadri

En termes clair, les rapports de TVA sont à utiliser à titre indicatif mais ne sauraient en aucun cas avoir valeur légale.

Il existe désormais (version 2.1) un rapport '''quadri détail''' qui permet d'exporter une liste des recettes et dépenses de TVA utilisable par un comptable (classées par ligne de facture).

# Roadmap

2007-12-27T21:17:59Z
Eldy
* [[Roadmap 2.0.0]] - Disponible depuis février 2005 * [[Roadmap 2.1.0]] - Abandonnée car mauvaise gestion des arrondis bloquant et gestion avoir clients incomplete * [[Roadmap 2.2.0]] - Disponible depuis le 26/12/2007 * [[Roadmap 2.4.0]] - C'est en cours... * [[Roadmap 2.6.0]]

# Roadmap 1.2.0

2005-05-14T13:13:43Z
Eldy
Roadmap 1.2.0 déplacé vers Roadmap 2.0.0
#REDIRECT [[Roadmap 2.0.0]]

# Roadmap 1.3.0

2005-05-14T13:16:08Z
Eldy
Roadmap 1.3.0 déplacé vers Roadmap 2.3.0
#REDIRECT [[Roadmap 2.3.0]]

# Roadmap 1.4.0

2005-05-14T13:18:05Z
Eldy
Roadmap 1.4.0 déplacé vers Roadmap 2.4.0
#REDIRECT [[Roadmap 2.4.0]]

# Roadmap 1.6.0

2005-05-14T13:18:45Z
Eldy
Roadmap 1.6.0 déplacé vers Roadmap 2.6.0
#REDIRECT [[Roadmap 2.6.0]]

# Roadmap 2.0.0

2006-06-03T12:05:49Z
Eldy
/* Les fonctionnalités */
[[Roadmap]] Dolibarr pour la version 2.0.0

== Les fonctionnalités ==

* <strike>Mise à jour de la date de la facture lors de la validation sous forme d'option (RodolpheQuiedeville)</strike> * <strike>Déplacemement des fichiers générés hors du ~DocumentRoot (RodolpheQuiedeville)</strike> ** <strike>Déplacement des propales (RodolpheQuiedeville)</strike> ** <strike>Déplacement des factures (RodolpheQuiedeville)</strike> ** <strike>Déplacement des rapports de paiements (RodolpheQuiedeville)</strike> * <strike>Outil de la migration lors de la mise à jour</strike> * <strike>L'amélioration du programme d'installation pour supporter MySQL et PostgreSQL (BenoitMortier, LaurentDestailleur)</strike> * <strike>La documentation pour developpeur de Dolibarr avec doxygen (BenoitMortier, LaurentDestailleur)</strike> * <strike>La localisation afin de fournir un application adaptée à la Belgique, francais, néerlandais (LaurentDestailleur, BenoitMortier)</strike> * <strike>Suppression de PHP_SELF (tout le monde ;-)</strike> * <strike>Fonctionnement correct en mode register_globals=off (tout le monde ;-)</strike> * <strike>Fonction controle clé RIB lors de la création d'un compte bancaire (LaurentDestailleur)</strike> * <strike>On quote les numériques dans les requêtes sql (tout le monde)</strike> * <strike>La gestion des caisses de liquides, sur le même principe que les comptes bancaires</strike> (LaurentDestailleur) * <strike>Option pour intégrer automatiquement les actions Dolibarr en evenement dans la base webcalendar</strike> (LaurentDestailleur) * <strike>Gestion de la notion de "groupes" d'utilisateurs</strike> (LaurentDestailleur)

== Modules à inclure/exclure pour la release == Tous les modules peuvent etre inclus dans la release 2.0.0 a l'exception des suivants dont tout dépend de la réponse:

* postnuke Q : Quelqu'un sait-il si il est stable

R : Non il n'est pas stable :(

* telephonie Q : Ce module peut-il servir à d'autres ou est-il spécifique à un client de Rodolphe ?

R : (rodo) A mon sens il ne faut pas l'intégrer dans la release, il est dans le CVS et c'est suffisant pour l'instant

* energie Q : Ce module peut-il servir à d'autres ou est-il spécifique à un client de Rodolphe ?

R : (rodo) oui oui et oui il faut l'intégrer dans la release même si il est assez sommaire cette partie gestion de l'énergie va prendre de plus en plus de place dans Dolibarr

* clicktodial Q : Quelqu'un sait à quoi il sert et comment on s'en sert ?

R : Hack grossier sur un système peu répandu à exclure de la release

* bookmark4u Q : Quelqu'un sait à quoi il sert et comment on s'en sert ?

R : hack avec le logiciel eponyme, pas forcément utile pour la release

* barcode (Régis) Pas fini, ne pas inclure dans la release

* categorie Q : Stable ? Quelqu'un a testé ?

R : (rodo) pas stable du tout

* Fonction export Non fini

== Modèles à inclure/exclure pour la release == '''Modèle numérotation facture'''

Afin de simplifier et éviter doublons , je propose de supprimer de la livraison standard les modules de numérotation suivant:

deneb: non réglementaire

janus: non réglementaire, pas de plus-value par rapport à jupiter, saturne, lune

jupiter: non réglementaire, exemple coincide pas avec desc

lune: non réglementaire

mars: non réglementaire

mercure: non réglementaire, exemple coincide pas avec desc

pluton: non réglementaire, pas de plus-value par rapport à terre

saturne: non réglementaire

venus: non réglementaire, ne peut fonctionner si 2 factures pour le meme client le meme jour

'''Modèle génération facture'''

bigorneau: non reglementaire

tourteau: non reglementaire

bulot: non reglementaire

== Autres questions pour la doc ou annonces de release == Q : Dolibarr 2 est il stable en PHP5 ?

R : (eldy) Oui, seules quelques modifs mineures ont été requises. J'utilise PHP5 depuis un moment en environnement de dev et je n'ai aucun souci.

Q : Et mysql5

R : (eldy) Il y a une régression dans MySQL5 qui fait que certaines requêtes ne fonctionnent plus (quand il y a des jointures externes, la table de jointure doit être citée en dernier dans la liste. J'ai adapté les requêtes pour cela mais je n'ai pas validé toutes les requetes du code. Donc Dolibarr est pret pour Mysql5 en ce qui concerne les fonctions principales. Non testé pour les fonctions rares.

Q : Et prostgresql

R: Le support de postgres n'est pas encore opérationnel. Je ne l'intègre pas en 2.0.

# Roadmap 2.1.0

2007-05-16T18:05:40Z
Eldy
/* Modules à inclure/exclure pour la release */
[[Roadmap]] Dolibarr pour la version 2.1.0

== Les fonctionnalités ==

* <strike>Corrections des retours de la 2.0<strike> (Fait - Tous) * <strike>Ajout de gestion des remises fixes et relatives</strike> (Fait - LaurentDestailleur) * <strike>Ajout de gestion des factures avoirs</strike> (Fait - LaurentDestailleur) * <strike>Rendre le "modules de comptabilité standard" optionnel afin de permettre de faire disparaitre les notions purement comptables</strike> (Fait - LaurentDestailleur) * <strike>Simplification du code. Utilisation d'un modèle unique de table pour tous les modules qui "active" des sous-modules de génération de document afin de réduire le code redondant</strike> (Fait - LaurentDestailleur).

== Modules à inclure/exclure pour la release == Tous les modules du CVS peuvent être inclus dans la release 2.1.0 à l'exception des suivants:

* Postnuke Non stable

* Telephonie Trop spécifique, présente des failles de sécurité graves

* ClicktoDial Non car hack grossier sur un système peu répandu

* Bookmark4u Non car peu utile

* Barcode Q: Est-il fini ? R: non je n'ai pas encore eu le temps (Régis)

* Editeur En cours de dev, non requis pour la 2.1

* Document En cours de dev, non requis pour la 2.1

== Modèles à inclure/exclure pour la release == '''Modèle numérotation facture'''

Afin de simplifier et éviter doublons, je propose de supprimer de la livraison standard les modules de numérotation suivant:

deneb: non réglementaire

jupiter: non réglementaire, exemple coincide pas avec desc

pluton: non opérationnel

== Autre ==

* Le support PosgreSQL n'est pas stable (Manque de testeurs) et ne sera donc pas intégré à la 2.1

# Roadmap 2.2.0

2007-12-27T21:20:26Z
Eldy
/* Features (english version) */
[[Roadmap]] Dolibarr pour la version 2.2.0

== Fonctionnalités ==

* <strike>Corrections des retours de la 2.1.0</strike> * <strike>Correction pb avoir client</strike> * <strike> - Add more statistics on main page. - Add option to add message on login page. - Management of categories for third parties. - Add volume on products properties. - Support for LDAP authentication. - Full member synchronisation with LDAP database in fundation module. - More LDAP fields supported for user synchronization. - Better logger for install. - First changes to support UTF8. - Add a "forget password" feature. - Setup process can run several migrate files if need to jump several versions to upgrade. - Support for webcalendar 1.1 in webcalendar module. - Support for menu in database. - Better support for using Dolibarr on more WHP. - Removed some deprecated files and clean code. - New theme: Auguria - Removed PHP warnings. - Some bugs fixes. - Traduction more complete. - Better code comments for Doxygen documentation. - Better support of vcard export format. - Themes are full CSS compliant. </strike>

== Features (english version) ==

* Fix bug reports of 2.1.0 * Reported to 2.3.0 <strike>Addition of multi-currencies management, only in informative mode at first (Yannick Warnier)</strike> * Better database input filtering (prevent easy attacks by disatisfied employees) (continual effort) * Reported to 2.3.0 <strike>Improvements of invoice-related e-mail sending: configurable default fields, automatical CC to a specified e-mail address, drop-down, title and body language in the contact info (introduce concept of contact language)</strike> * Reported to 2.3.0 <strike>Improvements in the commercial management features. Introduce dated notes, contacts belonging to more than one company, notion of "referral" (a client refers us to another - to keep track of worthy clients)</strike> * Reported to 2.3.0 <strike>Manage members language (e-mail sending)</strike>

== Modules à inclure/exclure pour la release == Tous les modules du CVS peuvent être inclus dans la release 2.2.0 à l'exception des suivants:

* Postnuke Non stable

* Telephonie Trop spécifique, présente des failles de sécurité graves

* ClicktoDial Hack grossier sur un système peu répandu

* Bookmark4u Peu utile

* Barcode Non fini

* Editeur En cours de dev, non requis

* Document En cours de dev, non requis

== Modèles à inclure/exclure pour la release == '''Modèle numérotation facture'''

Aucun modele a exclure.

== Themes à inclure/exclure pour la release ==

Tous les themes sont opérationnels sauf 'rodolphe' qui n'a aucun picto.

== Autre ==

* Le support PostgreSQL n'est pas stable (Manque de testeurs) et ne sera donc pas intégré à la 2.2 * Le support MSSQL n'est pas stable et ne sera donc pas intégré à la 2.2

# Roadmap 2.3.0

2007-12-27T21:21:00Z
Eldy

# Roadmap 2.4.0

2007-12-27T21:21:27Z
Eldy
[[Roadmap]] Dolibarr pour la version 2.4.0

* Nettoyage des librairies incluses. * Ajout de la gestion multi-devise en mode informatif seulement dans un premier temps (Yannick Warnier) * Ajout d'historique de documents générés pour les factures (si une facture est générée et envoyée au client, la conserver à tout prix sous cette forme - avec date) * Meilleur filtrage des données à l'insertion dans la DB (effort continu) * Améliorations au niveau de l'envoi d'e-mail liés à une facture: champs par défaut configurables, CC automatique à une adresse, drop-down, langue du titre et du corps dans la langue du contact (introduire concept de langue du contact) * Amélioration de la flexibilité de la partie commerciale. Introduction des notes datées, de l'appartenance d'un contact à plus d'une société, du suivi de "parrainage" (référencement d'un client par un autre) * Gérer la langue des adhérents également (envoi d'e-mail en plusieurs langues également) * La gestion des produits (BenoitMortier) * La gestion du stock (BenoitMortier) * Création d'un package debian (BenoitMortier) * La notion de Projets doit pouvoir contenir plusieurs sociétés et ne pas etre propre à une société (LaurentDestailleur) * Addition of documents history (if invoice generated and sent to the client, keep that precise invoice in this form at all costs - with date) * La possibilité d'utiliser les librairies présentes sur le système d'exploitation (BenoitMortier) * Addition of multi-currencies management, only in informative mode at first (Yannick Warnier) * Improvements of invoice-related e-mail sending: configurable default fields, automatical CC to a specified e-mail address, drop-down, title and body language in the contact info (introduce concept of contact language) * Improvements in the commercial management features. Introduce dated notes, contacts belonging to more than one company, notion of "referral" (a client refers us to another - to keep track of worthy clients) * Manage members language (e-mail sending)

# Roadmap 2.6.0

2007-12-18T11:00:12Z
Hregis
[[Roadmap]] Dolibarr pour la version 2.6.0

* Un module de vrai compta: Paramétrage du plan de compte et du schéma de ventilation des évènements de gestion dans ces comptes + Les rapports comptables: bilan, compte de résultat, grand livre, etc (LaurentDestailleur) * Outils de gestion de parc informatique (BenoitMortier) (connecteur avec GLPI - Régis Houssin) * Gestion de projets (BenoitMortier) * Lien avec les système bancaire belge (BenoitMortier)

# Régles de développement

2005-10-02T17:29:07Z
82.234.59.34
Voir [[Règles de développement]].

# Rôle du chef de projet

2006-06-02T23:40:50Z
Eldy
Rôle et tâches afférant au chef de projet :

* Suivre les bugs dans le bugtrack de Savannah et rappeler à l'ordre quand ceux-ci ne sont pas résolus dans des délais raisonnables * Remonter les bugs signalés dans les listes de discussions dans le bugtrack quand les utilisateurs ne le font pas eux-mêmes * Expliquer pourquoi des modifications ne sont pas acceptées et ce qu'il faudrait y changer pour qu'elles le soient * Définir les deadlines des releases * Figer le code pour les release ou assister un responsable (release manager) qui s'en charge. * Trancher quand il y a plusieurs options possibles non compatibles à prendre. * Créer des comptes et attribuer les droits aux responsables délégués.

# Salon Solutions Linux 2005

2005-12-04T22:33:42Z
85.68.239.82
La bonne page est la

http://www.dolibarr.com/wikidev/index.php?title=Salon_Solutions_Linux_2006

# Salon Solutions Linux 2006

2006-01-30T22:39:55Z
85.68.238.29
/* Un repas le mardi 31 à midi */
Cette page a pour but de faciliter les rencontres/activités autour de Dolibarr au Salon Solutions Linux 2006 qui se tiendra au CNIT-Paris la Défense du 31 janvier au 2 février.

== Les développeurs (CVS ou non) ou utilisateurs qui comptent etre présents == * Regis (Vient de: Bourg en Bresse, Présent le: mardi 31 janvier 2006) * Laurent Destailleur alias Eldy (Vient de: Saint Quentin-en-Yvelines, Présent le: 31 janvier 2006. Je serais sur le stand Parinux ou bien je traine dans les couloirs. Ne pas hésiter à me chercher, et à demander à des personnes du stand Parinux pour me trouver...) * Ludovic (Vient de Louviers (27), compte passer) * Simon (Vient de: ?, Présent le: ?) * Rodo (Vient de: ?, Présent le: ?) * Ozit (Vient de : IDF, Présent le: 31-01-2006) avec des CDs ...

== Les idées à faire ou décisions à prendre ==

* Diffusion de CD Live Dolibarr - Reste à faire le CD master. Simon ? - Ozit peut les graver si master fourni au moins une semaine avant. - Regis peut aussi en graver une partie si besoin.

* En profiter pour faire un point global sur le developpement de dolibarr - Identifier quel developpeur peut servir de référend sur chaque module.<br/> - Discuter des futurs développements.<br/> - Initier (ou continuer) une reflexion sur la méthodologie.<br/>

* Et puis ???

== Un repas le mardi 31 à midi == Et pourquoi pas une bouffe ? Un resto par exemple. Peu importe le restaurant ou le picnic, pourvu qu'on se rassemble, ok pour mardi midi.

L'idée, se retrouver le matin pour définir sur place le rendez-vous.

# Script facturation-calcul.php

2005-08-16T08:52:26Z
81.56.183.189
[[Catégorie:Téléphonie]][[Catégorie:Scripts]] {{Tableau soft| nom=Téléphonie| module=[[Module Téléphonie]] |}}

Localisation : /dolibarr/htdocs/telephonie/script/facturation-calcul.php

Lit les CDR fournisseurs importés dans [[Table llx_telephonie_import_cdr]], calcul les prix de vente et stocke les communications dans la [[Table llx_telephonie_communications_details]]. Calcul les factures téléphonique pour chaque ligne dans [[Table llx_telephonie_facture]]

== syntaxe == <pre> $ php facturation-calcul.php </pre>

== Tables utilisées == * [[Table llx_telephonie_facturation_batch]] * [[Table llx_telephonie_facture]] * [[Table llx_telephonie_communications_details]] * [[Table llx_telephonie_import_cdr]]

# Script facturation-verif.php

2005-08-16T08:50:50Z
81.56.183.189
[[Catégorie:Téléphonie]][[Catégorie:Scripts]] {{Tableau soft| nom=Téléphonie| module=[[Module Téléphonie]] |}}

Localisation : /dolibarr/htdocs/telephonie/script/facturation-verif.php

Lit les CDR fournisseurs importés dans [[Table llx_telephonie_import_cdr]], vérfie que le tarifs est existant pour chaque ligne de facturation. == Syntaxe == <pre> $ php facturation-calcul.php </pre>

== Tables utilisées == * [[Table llx_telephonie_import_cdr]]

# Script import-cdr.php

2005-08-16T08:54:34Z
81.56.183.189
[[Catégorie:Téléphonie]][[Catégorie:Scripts]] {{Tableau soft| nom=Téléphonie| module=[[Module Téléphonie]] |}} Localisation : /dolibarr/htdocs/telephonie/script/import-cdr.php

Importes les cdr des fichiers fournisseurs. Les CDR sont fournis sous forme CSV, le script lit les fichiers fournisseurs et peuple la [[Table llx_telephonie_import_cdr]]

== syntaxe == <pre> $ php import-cdr.php -f NOM_FICHIER -i ID_DU_FOURNISSEUR </pre>

# Script mailing-send.php

2005-08-12T15:48:47Z
194.250.195.224
essai
essai

# Script prelevement-verif.php

2005-02-22T10:01:20Z
Rodo
# [[Table llx_prelevement_bons]]

# Scripts cron

2006-12-06T13:24:00Z
Rodo
Les scripts à faire tourner dans la crontab se trouvent dans le répertoire <pre> /scripts/cron/ </pre> == Listes des scripts ==

# [[facture-paye-stats.php (script)]] # [[stock-valorisation.php (script)]] # [[stock-graph.php (script)]]

# Services

2006-06-13T23:06:10Z
Jwarnier
/* Définition de Services */
{{Navigation documentation}} {{TemplateDocUtil}}

== Définition de Services == Les produits et services sont souvent confondus. Pourtant ils répondent à des règles différentes. Un service est un bien non matériel qui peut être vendu, acheté ou offert. Un service peut être ponctuel ou s'inscrire dans la durée.

Voici les caractéristiques qui identifient un service: * Un service peut être ponctuel (installation d'un matériel à domicile) ou avoir une durée (comme une garantie d'un [[Produits|Produit]]) * Un service ne peut pas se stocker dans un entrepôt * Des services ne sont donc pas soumis à un inventaire

# Services Web

2008-07-15T09:35:08Z
Kaoul
Dolibarr fournit un serveur et un client de services web dans htdocs/webservices. Le serveur utilise la librairie php nusoap (pas besoin de module php) donc les requêtes y sont faites en SOAP. On peut appeler les méthodes du webservice dolibarr (server.php) avec http://dolibarr.mondomaine.com/webservices/client.php

# Sociétés

2007-08-09T15:44:31Z
Eldy
{{Navigation documentation}} {{TemplateDocUtil}}

Le module Tiers-Société permet de gérer les entités clients, prospects et/ou fournisseurs.

Il est un prérequis indispensable pour de nombreux autres [[Premiers paramétrages#Modules|modules]] qui se basent sur ces notions (factures, commandes, contrats, proposition commerciales, etc...).

Vous pouvez aussi créer 1 à plusieurs Contacts à l'intérieur de la Société (nécessaires pour créer ensuite une [[proposition commerciale]] ou une [[Facturation/Comptabilité|facture]]).

Une société est donc une entité métier: client, prospect ou fournisseur (Exemple: Une SARL, un commerce, une association, un particulier). Le contact quant à lui représente une personne physique ou contact générique vers une personne physique (Exemple: PDG ou ouvrier de la SARL, vendeur principal du commerce, président ou trésorier de l'association, ou encore particulier).

Dolibarr gère de la même manière les particuliers et les entreprises. Aussi pour les particuliers, on saisira en général un "Contact" qui contient les mêmes caractéristiques que l'objet "Société".

== Créer une nouvelle société ==

Aller dans le menu Client - Nouveau client ou Prospect - Nouveau prospect ou encore Fournisseur - Nouveau fournisseur. Saisissez les informations demandées (vous n'êtes pas obligé de remplir tous les champs).

Une fois la société créée , vous pouvez ajouter des Notes dans l'onglet correspondant, et joindre des documents liés.

== Modifier une société == Aller dans le menu Société, cliquer sur le nom de la société à modifier.

Cliquer sur le bouton "éditer" (en bas à droite).

Saisir les modifications.

Cliquer sur le bouton "enregistrer".

== Supprimer une société ==

== Cycle de vie d'une société ==

Une société ne peut avoir qu'un seul état. Elle existe ou pas. Une société supprimée ne change pas d'état, mais elle disparait complètement de Dolibarr.

# Sous-Produits

2006-12-02T12:25:12Z
Rodo
{{Navigation documentation}} {{TemplateDocUtil}}

== Définition d'un Sous-Produit == Un sous-produit Dolibarr est une partie d'un [[Produits|produit]] qui répond aux règles suivantes :

* le stock d'un sous-produit est décrémenté par l'expédition d'un produit * un sous-produit n'apparait pas dans les documents (propale, facture, bon d'expedition, ...)

# Stock-graph.php (script)

2006-12-06T13:24:46Z
Rodo
[[Catégorie:Stock]][[Catégorie:cron]]

Génère les graphiques afférants à la gestion des stocks

# Graphiques de valorisation du stock

# Stock-valorisation.php (script)

2006-12-06T13:27:39Z
Rodo
[[Catégorie:Stock]][[Catégorie:cron]]

Ce script doit être éxécuté une fois par jour, il remplit la [[entrepot_valorisation (Table SQL)|entrepot_valorisation]]

# Système de menus

2008-06-29T18:04:01Z
Eldy
/* Développer son propre système de menu */
== Le système de menu Dolibarr ==

Il y a dans Dolibarr 2 systèmes de menu. Celui du haut et celui de gauche qui peuvent être dépendant l'un de l'autre ou non. On les appelera "menu gauche" et "menu haut". Par défaut, les gestionnaires de ces deux systèmes de menu apportent une approche d'un menu contextuel. Le menu gauche par exemple dépend des éléments métiers que l'on manipule. Cette approche diffère de celle, plus traditionnelle, des applis Windows où le menu déroulant dépend du chemin pris pour atteindre la fonctionnalité. Une sorte d'arbre dans laquelle on ne saute pas d'une branche en changeant de fonction, mais en remontant à la racine de l'arbre (exemple menu "Fichier") pour choisir ensuite la sous branche (exemple "Ouvrir"). Afin de contenter les 2 mondes (questions de choix, de goût ou d'habitudes), Dolibarr offre un système de menu modulaire. Il est en effet possible de développer son propre système de menu, à sa sauce, qui prend complètement l'ascendant sur le menu par défaut. L'autre avantage, pour le développeur, est que toute la logique du menu peut également être centralisée dans un seul et même fichier. Ceci permet d'offrir des systèmes de menu aux comportements complètement différents.

== Changer le système de menu ==

Changer de système de menu est possible via la page Configuration - Interface. Prendre par exemple les gestionnaires de menu "eldybackoffice", fournis en standard (Activer le gestionnaire du menu gauche eldybackoffice en même temps que le gestionnaire du menu haut eldybackoffice, les 2 étant conçus pour fonctionner ensemble). Ces gestionnaires de menu (gauche et haut) sont complètement opérationnels et offrent divers alternatives de menu.

Et si cela ne vous convient toujours pas, rien ne vous empêche de développer le vôtre. Voir paragraphe suivant...'''''

== Développer son propre système de menu ==

Le but de cet article est de décrire comment créer un nouveau système de menu dans son intégralité (remplacement de l'intégralité des entrées menus, chamboulement complet du concept de navigation).

Cela ne concerne pas le simple ajout d'entrées de menus. Si tel et le cas et que vous désirez juste savoir comment ajouter des entrées menus au sein d'un gestionnaire de menu existant, dans le cadre du développement d'une extension ou d'un nouveau module par exemple, reporter vous plutôt à la page [[Developpement module]].

Si vous voulez remplacer intégralement un systeme de menu par le votre, le plus simple est de prendre exemple sur le gestionnaire de menu "eldy_backoffice".

* Pour développer son '''système de menu haut''', il suffit de # Copier le fichier htdocs/includes/menus/barre_top/eldybackoffice.php sous un autre nom comme htdocs/includes/menus/barre_top/monmenu.php # Editer ensuite le fichier monmenu.php. La fonction showmenu() est la fonction appelée par Dolibarr lorsqu'il génère une page pour afficher ce menu haut. On peut y mettre le code que l'on veut, cette fonction ne modifie aucune variable extérieur et doit juste afficher par des "print" le menu que l'on veut voir. On peut ainsi récupérer le menu à afficher depuis un fichier de configuration, une base de donnée et le personnaliser par rapport à l'environnement. L'environnement Dolibarr étant stocké dans les 3 objets global suivant: $user, $conf, $langs. $user contient les informations propres à l'utilisateur. $conf contient les informations propres à la configuration (modules actifs, permissions actives, etc...) $langs contient les informations propres à la langue active.

Exemple de fonction showmenu() du fichier htdocs/includes/menus/barre_top/monmenu.php <pre> function showmenu() { global $user,$conf,$langs,$dolibarr_main_db_name;;

print '<table class="tmenu"><tr class="tmenu">';

// Menu Home print '<td class="tmenu"><a '.$class.' href="'.DOL_URL_ROOT.'/index.php?mainmenu=home&leftmenu="'.($this->atarget?" target=".$this->atarget:"").'>'.$langs->trans("Home").'</a></td>';

// Put here other entries // ...

print '</tr></table>'; } </pre>

* Pour développer son '''système de menu gauche''', le principe est aussi simple. # Copier le fichier htdocs/includes/menus/barre_left/eldybackoffice.php sous un autre nom comme htdocs/includes/menus/barre_left/monmenu.php. # Il faut ensuite modifier la fonction showmenu() afin de fabriquer son menu gauche. Si on veut afficher le menu standard ou juste le modifier légèrement sans recréer le sien complètement, il suffit de boucler sur le contenu du tableau $menu->liste, initialisé par Dolibarr "par défaut" grace au fichier pre.inc.php stocké dans le même répertoire que la page appelée. Si vous voulez afficher un menu complètement différent et totalement controlé par vous (et donc ignorer les fichiers pre.inc.php), il vous faut, dans la fonction showmenu(), créer un objet $newmenu=new Menu() et utiliser les méthodes $newmenu->add et $newmenu->add_submenu pour définir la liste des entrées menu gauche à faire apparaitre. En fin de code, on affiche par des print le contenu du tableau $newmenu->liste (qui vient d'etre construit) au lieu de $menu->liste.

Exemple de fichier htdocs/includes/menus/barre_left/monmenu.php <pre> function showmenu() { global $user,$conf,$langs,$dolibarr_main_db_name; $newmenu = new Menu();

// Put here left menu entries // ***** START *****

$langs->load("admin"); // Load translation file admin.lang $newmenu->add(DOL_URL_ROOT."/admin/index.php?leftmenu=setup", $langs->trans("Setup")); $newmenu->add_submenu(DOL_URL_ROOT."/admin/company.php", $langs->trans("MenuCompanySetup")); $newmenu->add_submenu(DOL_URL_ROOT."/admin/modules.php", $langs->trans("Modules")); $newmenu->add_submenu(DOL_URL_ROOT."/admin/ihm.php", $langs->trans("GUISetup")); $newmenu->add_submenu(DOL_URL_ROOT."/admin/boxes.php", $langs->trans("Boxes")); $newmenu->add_submenu(DOL_URL_ROOT."/admin/delais.php",$langs->trans("Alerts")); $newmenu->add_submenu(DOL_URL_ROOT."/admin/triggers.php", $langs->trans("Triggers")); $newmenu->add_submenu(DOL_URL_ROOT."/admin/perms.php", $langs->trans("Security")); $newmenu->add_submenu(DOL_URL_ROOT."/admin/dict.php", $langs->trans("DictionnarySetup")); $newmenu->add_submenu(DOL_URL_ROOT."/admin/const.php", $langs->trans("OtherSetup"));

// ***** END *****

// do not change code after this

// override menu_array by value array in $newmenu $this->menu_array=$newmenu->liste;

$alt=0; for ($i = 0 ; $i < sizeof($this->menu_array) ; $i++) { $alt++; if ($this->menu_array[$i]['level']==0) { if (($alt%2==0)) { print '<div class="blockvmenuimpair">'."\n"; } else { print '<div class="blockvmenupair">'."\n"; } }

if ($this->menu_array[$i]['level']==0) { if ($this->menu_array[$i]['enabled']) print '<a class="vmenu" href="'.$this->menu_array[$i]['url'].'">'.$this->menu_array[$i]['titre'].'</a><br>'; else print '<font class="vmenudisabled">'.$this->menu_array[$i]['titre'].'</font><br>'; } if ($this->menu_array[$i]['level']==1) { if ($this->menu_array[$i]['enabled']) print '<a class="vsmenu" href="'.$this->menu_array[$i]['url'].'">'.$this->menu_array[$i]['titre'].'</a><br>'; else print '<font class="vsmenudisabled">'.$this->menu_array[$i]['titre'].'</font><br>'; } if ($this->menu_array[$i]['level']==2) { if ($this->menu_array[$i]['enabled']) print '&nbsp; &nbsp; <a class="vsmenu" href="'.$this->menu_array[$i]['url'].'">'.$this->menu_array[$i]['titre'].'</a><br>'; else print '&nbsp; &nbsp; <font class="vsmenudisabled">'.$this->menu_array[$i]['titre'].'</font><br>'; } if ($this->menu_array[$i]['level']==3) { if ($this->menu_array[$i]['enabled']) print '&nbsp; &nbsp; &nbsp; &nbsp; <a class="vsmenu" href="'.$this->menu_array[$i]['url'].'">'.$this->menu_array[$i]['titre'].'</a><br>'; else print '&nbsp; &nbsp; &nbsp; &nbsp; <font class="vsmenudisabled">'.$this->menu_array[$i]['titre'].'</font><br>'; }

if ($i == (sizeof($this->menu_array)-1) || $this->menu_array[$i+1]['level']==0) { print "</div>\n"; } }

} </pre>

# Système de traduction

2006-12-20T01:24:55Z
Eldy
== Principe développement == Dans le code les traductions se font par appel de methode sur l'objet $langs avec en paramètre la clé de la chaine à traduire. lo'bjet $langs contient la définition de la langue de l'utilisateur. Il est définit dans toutes les pages.

On trouve 2 méthodes: * $langs->trans('TRAD_STRING'); Cette méthode renvoi la traduction de l'entrée TRAD_STRING, tout en codant le résultat en entities HTML pour permettre un affichage des caractères spéciaux correct dans une page HTML. * $langs->transnoentities('TRAD_STRING'); Cette méthode renvoi la traduction de l'entrée TRAD_STRING, mais ne code pas le résultat.

Ces 2 méthodes peuvent accepter des arguments complémentaires qui sont substitués aux valeurs %s dans la chaine résultante de la traduction.

Note: Si en paramètre, on met un résultat de traduction, il convient que ce résultat soit renvoyé par la fonction $langs->transnoentities, sinon il sera codé en HTML puis le sera une deuxième fois par l'appel $langs->trans initiale. Exemple: print $langs->trans("STRING_TO_TRANSLATE",$langs->transnoentities("STRING_PARAM1"))

== Traduire Dolibarr dans une autre langue == Voir la page [http://www.dolibarr.com/wikidev/index.php/Documentation_traducteur Documentation_traducteur]

# Système des boites

2006-11-11T18:12:57Z
Eldy
Chaque boite est stockée dans le répertoire htdocs/include/boxes Il faut un fichier par boite. Chaque fichier est une classe qui hérite de la classe ModeleBoxes.

# Table llx action def

2007-08-15T13:51:00Z
Ywarnier
Table llx action def déplacé vers Action def
#REDIRECT [[Action def]]

# Table llx actioncomm

2007-08-06T01:42:20Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

Cette table contient la liste des actions commerciales

This table contains all the commercial actions (looks unused in many cases)

= Structure =

# Table llx adherent

2007-08-09T16:12:05Z
Eldy
Table llx adherent déplacé vers Adherent (Table SQL)
#REDIRECT [[Adherent (Table SQL)]]

# Table llx adherent options

2007-08-06T01:42:49Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx adherent options label

2007-08-06T01:43:06Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx adherent type

2007-08-06T01:43:24Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx appro

2007-08-06T01:43:47Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx c actioncomm

2007-08-06T02:07:47Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

Contient les types d'actions que vous pouvez trouvez dans Dolibarr (appels téléphoniques, e-mail, envoi de facture, ...). Utilisée pour générer des listes déroulantes. Les titres sont en français uniquement pour le moment.

This table contains the types of actions that you can find in the system (phonecall, e-mail, invoice sending, ...). Used to generate dropdown boxes. Titles are in french at the moment.

= Structure =

# Table llx c ape

2007-08-06T02:07:57Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx c departements

2007-08-06T02:25:05Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

Contient une liste des départments proposés pour certains pays.

Contains a list of departments for some countries.

= Structure =

# Table llx c civilite

2007-08-05T17:20:44Z
Ywarnier
[[Catégorie:Table SQL]]

Cette table contient les civilités des contacts (M., Mme, ...)

This table contains all the contact people's civility (Mr,Ms.,...)

# Table llx c currencies

2007-08-06T02:09:58Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

Contient les différentes devises proposées à l'utilisateur. Uniquement utilisée à ce jour (version 2.1) au moment de l'installation pour demander quelle devise utiliser partout pour la suite.

Contains the list of currencies proposed to the user. To date (version 2.1), only used to ask the installator what currency to use globally.

= Structure =

# Table llx c departements

2007-08-06T02:25:05Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

Contient une liste des départments proposés pour certains pays.

Contains a list of departments for some countries.

= Structure =

# Table llx c effectif

2007-08-06T02:11:58Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

Contient les différentes tranches de nombres d'employés dans une entreprise. Utilisée pour générer des listes déroulantes.

Contains ranges of number of employees in a company. Used to generate drop-down lists

= Structure =

# Table llx c forme juridique

2007-08-06T02:12:57Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

Contient la liste des formes juridiques possibles d'une entreprise. Utilisée pour générer des listes déroulantes.

Contains the list of possible juridical forms of a company. Used to generate drop-down lists.

= Structure =

# Table llx c paiement

2007-08-06T02:14:30Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

Contient la liste des types de paiements disponibles selon votre configuration du système. Utilisée pour générer des listes déroulantes et pour filtrer des listes de résultats.

Contains the list of possible payment types, depending on your Dolibarr configuration. Used to generate drop-down lists, and to filter down lists of results.

= Structure =

<pre> +---------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+-------+ | id | int(11) | NO | PRI | | | | code | varchar(6) | NO | UNI | | | | libelle | varchar(30) | YES | | NULL | | | type | smallint(6) | YES | | NULL | | | active | tinyint(4) | NO | | 1 | | +---------+-------------+------+-----+---------+-------+ </pre>

# Table llx c pays

2007-08-06T02:15:30Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

La table '''llx_c_pays''' contient la liste des pays disponibles. Utilisée pour générer des listes déroulantes et filtrer des résultats.

Contains the list of countries available. Used to generate drop-down list and filter results.

= Structure =

<pre> +----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+-------------+------+-----+---------+-------+ | rowid | int(11) | NO | PRI | | | | code | varchar(2) | NO | UNI | | | | code_iso | varchar(3) | YES | UNI | NULL | | | libelle | varchar(50) | NO | UNI | | | | active | tinyint(4) | NO | | 1 | | +----------+-------------+------+-----+---------+-------+ </pre>

# Table llx c regions

2007-08-06T02:24:38Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx c stcomm

2007-08-06T02:27:13Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

Contient les statuts de contact de chaque contact commercial. Par exemple "ne pas contacter", "contact en cours", "à contacter au plus tôt", ... Utilisée pour pour afficher des icônes de statut pour les listes de clients.

This table contains the contact status of each commercial contact. i.e. "do not contact", "contact pending", "to contact asap",... Used to display quick icon status in the clients lists.

= Structure =

# Table llx c tva

2007-08-06T02:28:31Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

Contient les taux de TVA applicables. Utilisé pour générer des listes déroulantes et trier des résultats.

Contains the possible VAT rates. Used to generate drop-down lists and filter results.

= Structure =

# Table llx c type contact

2007-08-06T02:28:59Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx categorie

2007-08-06T02:30:11Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

La table '''llx_categorie''' contient les différentes catégories des différents "objets" de Dolibarr (fournisseurs, produits, clients, ...)

Contains the categories used for the various objects of Dolibarr (providers, products, clients, ...)

= Structure =

<pre> +-------------------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------------------+--------------+------+-----+---------+----------------+ | rowid | int(11) | NO | PRI | NULL | auto_increment | index technique | label | varchar(255) | YES | MUL | NULL | | libellé (nom) | description | text | YES | | NULL | | description un peu plus longue. Pourrait contenir du code HTML | visible | tinyint(4) | NO | | 1 | | visibilité (0=caché, 1=visible) | type | tinyint(4) | NO | | 1 | | type d'objet auquel cette catégorie se réfère (0=produits,2=fournisseurs,...) +-------------------------+--------------+------+-----+---------+----------------+ </pre>

# Table llx categorie association

2007-08-06T02:30:21Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx categorie fournisseur

2007-08-06T02:31:39Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

La table '''llx_categorie_fournisseur''' contient une relation "n to m" entre les fournisseurs (llx_societe avec fournisseur=1) et les catégories. Il existe également une table llx_fournisseur_categorie à l'utilité douteuse... (jusqu'à preuve du contraire)

Contains a "n to m" relationship between providers (see [[Table llx_societe]] with ''fournisseur'' field set to ''1'') and the categories.

= Structure =

<pre> +--------------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------------+---------+------+-----+---------+-------+ | fk_categorie | int(11) | NO | PRI | | | Clef étrangère vers la table llx_categorie | fk_societe | int(11) | NO | PRI | | | Clef étrangère vers la table llx_societe +--------------+---------+------+-----+---------+-------+ </pre>

Note: c'est le champ "type" de la table llx_categorie qui détermine s'il s'agit d'une catégorie de fournisseurs ou d'autre chose, puisque le lien se fait avec la table llx_societe qui peut aussi contenir des clients

# Table llx categorie product

2007-08-06T02:31:57Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx chargesociales

2007-08-06T02:32:10Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx co fa

2007-08-06T02:33:23Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

La table '''llx_co_fa''' contient les liens entre commandes clients et factures clients. Pour les liens entre les commandes fournisseurs et les factures fournisseurs, il faut consulter la [[Table llx_comfourn_facfourn]]

Contains the link between customer orders and customer invoices. For the link between provider orders and provider invoices, look into [[Table llx_comfourn_facfourn]].

= Structure =

<pre> +-------------+---------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+---------+------+-----+---------+----------------+ | rowid | int(11) | NO | PRI | NULL | auto_increment | | fk_commande | int(11) | NO | MUL | | | | fk_facture | int(11) | NO | MUL | | | +-------------+---------+------+-----+---------+----------------+ </pre>

# Table llx co pr

2007-08-06T02:33:35Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx comfourn facfourn

2007-08-06T02:34:38Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

La table '''llx_comfourn_facfourn''' contient les relations entre les commandes fournisseurs et les factures fournisseurs correspondantes. Pour l'équivalent côté client, merci de consulter la [[Table llx_co_fa]]

Contains the link between provider orders and provider invoices. For the equivalent on the customer side, have a look at [[Table llx_co_fa]]

= Structure =

<pre> +-------------+---------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+---------+------+-----+---------+----------------+ | rowid | int(11) | NO | PRI | NULL | auto_increment | | fk_commande | int(11) | NO | MUL | | | | fk_facture | int(11) | NO | MUL | | | +-------------+---------+------+-----+---------+----------------+ </pre>

# Table llx commande

2007-08-06T02:35:31Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

Table principales des commandes clients, les détails de la commande sont dans la [[Table llx_commandedet]]

Contains customer orders. The order details are in [[Table llx_commandedet]]

= Structure =

<pre> -- =================================================================== -- Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org> -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 2 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software -- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -- -- $Id$ -- $Source$ -- -- ===================================================================

create table llx_commande ( rowid integer AUTO_INCREMENT PRIMARY KEY, tms timestamp, fk_soc integer, fk_soc_contact integer, fk_projet integer DEFAULT 0, -- projet auquel est rattache la commande ref varchar(30) NOT NULL, -- propal number date_creation datetime, -- date de creation date_valid datetime, -- date de validation date_cloture datetime, -- date de cloture date_commande date, -- date de la commande fk_user_author integer, -- createur de la commande fk_user_valid integer, -- valideur de la commande fk_user_cloture integer, -- cloture de la propale signee ou non signee source smallint NOT NULL, fk_statut smallint default 0, amount_ht real default 0, remise_percent real default 0, remise real default 0, tva real default 0, total_ht real default 0, total_ttc real default 0, note text, model_pdf varchar(50), facture tinyint default 0, -- flag indiquant si cette commande a été facturée UNIQUE INDEX (ref) )type=innodb;

</pre>

# Table llx commande fournisseur

2007-08-06T02:37:19Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

La table llx_commande_fournisseur contient les commandes fournisseurs (les commandes effectuées auprès des fournisseurs). Ces commandes peuvent plus tard être étendues sous forme de factures fournisseurs, auquel cas c'est la table llx_facture_fourn qui est utilisée, en combinaison (s'il y a un lien entre commande et facture) avec la table llx_comfourn_facfourn.

Contains the provider orders (orders made to the providers). These orders may be later extended as (provider-) invoices, in which case [[Table llx_facture_fourn]] is used, in combination (if there is a link between order and invoice) with [[Table llx_comfourn_facfourn]].

= Structure =

<pre> +---------------------+-------------+------+-----+-------------------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------------------+-------------+------+-----+-------------------+----------------+ | rowid | int(11) | NO | PRI | NULL | auto_increment | | tms | timestamp | NO | | CURRENT_TIMESTAMP | | | fk_soc | int(11) | NO | MUL | | | | fk_projet | int(11) | YES | | 0 | | | ref | varchar(30) | NO | UNI | | | | date_creation | datetime | YES | | NULL | | | date_valid | datetime | YES | | NULL | | | date_cloture | datetime | YES | | NULL | | | date_commande | date | YES | | NULL | | | fk_user_author | int(11) | YES | | NULL | | | fk_user_valid | int(11) | YES | | NULL | | | fk_user_cloture | int(11) | YES | | NULL | | | source | smallint(6) | NO | | | | | fk_statut | smallint(6) | YES | | 0 | | 0 pour brouillon, 1 pour validée, 2 pour "approuvée", 5 pour "reçu complètement" | amount_ht | double | YES | | 0 | | | remise_percent | double | YES | | 0 | | | remise | double | YES | | 0 | | | tva | double | YES | | 0 | | | total_ht | double | YES | | 0 | | | total_ttc | double | YES | | 0 | | | note | text | YES | | NULL | | | note_public | text | YES | | NULL | | | model_pdf | varchar(50) | YES | | NULL | | | fk_methode_commande | int(11) | YES | | 0 | | +---------------------+-------------+------+-----+-------------------+----------------+ </pre>

# Table llx commande fournisseur log

2007-08-06T02:37:38Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx commande fournisseurdet

2007-08-06T02:38:34Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

Contient le détail des lignes de commandes fournisseurs.

Contains the details of provider orders lines.

= Structure =

# Table llx commandedet

2007-08-22T00:46:40Z
Ywarnier
/* Structure */
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

Détails des commandes clients, cette table est liée avec la [[Table llx_commande]]

Contains details of customer orders. This table is linked to [[Table llx_commande]]

= Structure =

<pre> rowid integer AUTO_INCREMENT PRIMARY KEY, fk_commande integer, fk_product integer, description text, tva_tx real DEFAULT 19.6, -- taux tva qty real, -- quantit remise_percent double DEFAULT 0, -- pourcentage de remise remise double DEFAULT 0, -- montant de la remise fk_remise_except int default NULL, price double, -- prix final subprice double, -- prix avant remise total_ht double, total_tva double, total_ttc double, info_bits int, coef double, special_code tinyint default 0, -- utilisé pour les frais de port (=1) et les écotaxes (=2). Sinon à 0. rang int </pre>

# Table llx compta

2007-08-06T02:39:32Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx compta account

2007-08-06T02:39:41Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx compta compte generaux

2007-08-06T02:39:51Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx const

2007-08-06T02:42:08Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

Cette table permet de sauvegarder le paramétrage global de l'application, c'est-à-dire les paramètres dont la valeur est commune à tous les utilisateurs.

Contains the global application parameters (parameters for which the value is the same for all users).

= Structure =

# Table llx contrat

2007-08-06T02:42:34Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

<pre> -- ============================================================================ -- Copyright (C) 2002-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org> -- Copyright (C) 2004 Laurent Destailleur <eldy@users.sourceforge.net> -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 2 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software -- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -- -- $Id$ -- $Source$ -- -- ============================================================================

create table llx_contrat ( rowid integer AUTO_INCREMENT PRIMARY KEY, tms timestamp, enservice smallint DEFAULT 0, mise_en_service datetime, fin_validite datetime, date_cloture datetime, fk_soc integer NOT NULL, fk_product integer NOT NULL, fk_facture integer NOT NULL default 0, fk_facturedet integer NOT NULL default 0, fk_user_author integer NOT NULL default 0, fk_user_mise_en_service integer, fk_user_cloture integer )type=innodb; </pre>

# Table llx contratdet

2007-08-06T02:42:44Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx contratdet log

2007-08-06T02:42:53Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx cotisation

2007-08-06T02:43:03Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx deplacement

2007-08-06T02:43:14Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx dolibarr modules

2006-12-06T14:09:53Z
Rodo
#REDIRECT [[dolibarr_modules (Table SQL)]]

# Table llx domain

2007-08-06T02:44:14Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx don

2007-08-06T02:44:23Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx don projet

2007-08-06T02:44:34Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx entrepot valorisation

2006-12-06T13:28:51Z
Rodo

# Table llx export compta

2007-08-06T02:46:47Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

<pre> -- =================================================================== -- Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org> -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 2 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software -- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -- -- $Id$ -- $Source$ -- =================================================================== -- -- $Revision$

create table llx_export_compta ( rowid integer AUTO_INCREMENT PRIMARY KEY, ref varchar(12) NOT NULL, date_export datetime NOT NULL, -- date de creation fk_user integer NOT NULL, note text

)type=innodb; </pre>

# Table llx fa pr

2007-08-06T02:47:21Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

Contient le lien entre factures et projets.

Contains the link between invoices and projects.

= Structure =

# Table llx facture

2007-08-06T02:47:57Z
Ywarnier
[[Catégorie:Facturation]][[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

Contient les factures clients.

Contains the customer invoices.

= Structure =

<pre> +--------------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------------+--------------+------+-----+---------+----------------+ | rowid | int(11) | | PRI | NULL | auto_increment | | facnumber | varchar(30) | | UNI | | | | type | smallint(6) | | | 0 | | | ref_client | varchar(30) | YES | | NULL | | | increment | varchar(10) | YES | | NULL | | | fk_soc | int(11) | | MUL | 0 | | | datec | datetime | YES | | NULL | | | datef | date | YES | | NULL | | | date_valid | date | YES | | NULL | | | paye | smallint(6) | | | 0 | | | amount | double | | | 0 | | | remise_percent | double | YES | | 0 | | | remise_absolue | double | YES | | 0 | | | remise | double | YES | | 0 | | | close_code | varchar(16) | YES | | NULL | | | close_note | varchar(128) | YES | | NULL | | | tva | double | YES | | 0 | | | total | double | YES | | 0 | | | total_ttc | double | YES | | 0 | | | fk_statut | smallint(6) | | | 0 | | | fk_user_author | int(11) | YES | MUL | NULL | | | fk_user_valid | int(11) | YES | MUL | NULL | | | fk_facture_source | int(11) | YES | MUL | NULL | | | fk_projet | int(11) | YES | MUL | NULL | | | fk_cond_reglement | int(11) | | | 1 | | | fk_mode_reglement | int(11) | YES | | NULL | | | date_lim_reglement | date | YES | | NULL | | | note | text | YES | | NULL | | | note_public | text | YES | | NULL | | | model_pdf | varchar(50) | YES | | NULL | | +--------------------+--------------+------+-----+---------+----------------+ </pre>

# Table llx facture fourn

2007-08-06T02:49:12Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

Cette table contient la liste des factures émises par les fournisseurs. Une facture fournisseur peut être liée à une commande fournisseur ([[Table llx_commande_fournisseur]]) au travers de la [[Table llx_comfourn_facfourn]])

Contains invoices sent by providers. A provider invoice can be linked to a provider order ([[Table llx_commande_fournisseur]]) by the [[Table llx_comfourn_facfourn]].

= Structure =

<pre> +--------------------+--------------+------+-----+------------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------------+--------------+------+-----+------------+----------------+ | rowid | int(11) | NO | PRI | NULL | auto_increment | | facnumber | varchar(50) | NO | MUL | | | | type | smallint(6) | NO | | 0 | | | fk_soc | int(11) | NO | MUL | | | | datec | datetime | YES | | NULL | | | datef | date | YES | | NULL | | | libelle | varchar(255) | YES | | NULL | | | paye | smallint(6) | NO | | 0 | | 1 si la facture a été payée, 0 sinon | amount | double(16,8) | NO | | 0.00000000 | | | remise | double(16,8) | YES | | 0.00000000 | | | tva | double(16,8) | YES | | 0.00000000 | | | total | double(16,8) | YES | | 0.00000000 | | | total_ht | double(16,8) | YES | | 0.00000000 | | | total_tva | double(16,8) | YES | | 0.00000000 | | | total_ttc | double(16,8) | YES | | 0.00000000 | | | fk_statut | smallint(6) | NO | | 0 | | 0= brouillon, 1=impayée, 2=payée, 3=abandonnée | fk_user_author | int(11) | YES | MUL | NULL | | | fk_user_valid | int(11) | YES | MUL | NULL | | | fk_projet | int(11) | YES | MUL | NULL | | | fk_cond_reglement | int(11) | NO | | 1 | | | date_lim_reglement | date | YES | MUL | NULL | | | note | text | YES | | NULL | | | note_public | text | YES | | NULL | | +--------------------+--------------+------+-----+------------+----------------+ </pre>

Attention, si le statut est à 1 (impayée) mais le champ "paye" est à 1 également (payée), ce qui ne devrait jamais arriver dans des conditions normales d'utilisation, la facture est indiquée comme payée.

# Table llx facture fourn det

2007-08-06T02:50:30Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx facture rec

2007-08-06T02:50:44Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx facture tva sum

2007-08-06T02:50:55Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx facturedet

2006-12-09T15:43:57Z
Rodo
#REDIRECT [[facturedet (Table SQL)]]

# Table llx mailing

2007-08-06T02:55:54Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx mailing cibles

2007-08-06T02:56:06Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx notify

2007-08-06T02:56:18Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx notify def

2007-08-06T02:56:28Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx paiement

2007-08-06T02:57:41Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

Contient les paiements relatifs aux factures clients. La relation entre une facture client et le paiement correspondant se trouve dans la [[Table llx_paiement_facture]]

Contains the payments made for client invoices. The relation between a client invoice and the corresponding payment is in [[Table llx_paiement_facture]]

= Structure =

<pre> -- =================================================================== -- Copyright (C) 2001-2002,2004 Rodolphe Quiedeville <rodolphe@quiedeville.org> -- Copyright (C) 2004 Laurent Destailleur <eldy@users.sourceforge.net> -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 2 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software -- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -- -- $Id$ -- $Source$ -- =================================================================== -- -- -- Satut, 0 ou 1, 1 n'est plus supprimable -- fk_export_compta 0 pas export

create table llx_paiement ( rowid integer AUTO_INCREMENT PRIMARY KEY, fk_facture integer, -- left NULL since the creation of llx_paiement_facture datec datetime, -- date de creation tms timestamp, datep datetime, -- payment date amount real DEFAULT 0, author varchar(50), fk_paiement integer NOT NULL, -- payment type (cheque, cash, ...) - see llx_c_paiement num_paiement varchar(50), note text, fk_bank integer NOT NULL, -- bank account id - see llx_bank fk_user_creat integer, -- utilisateur qui a cr l'info fk_user_modif integer, -- utilisateur qui a modifi l'info statut smallint DEFAULT 0 NOT NULL, fk_export_compta integer DEFAULT 0 NOT NULL

)type=innodb; </pre>

# Table llx paiement facture

2007-08-06T02:58:49Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

Contient la relation entre les factures clients et son (ou ses) paiement. Voir [[Table llx_paiement]] pour les paiements.

Contains the relation between a client invoice and its (single or multiple) payments. See [[Table llx_paiement]] for more about payment details.

= Structure =

# Table llx paiementcharge

2007-08-06T02:57:53Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx paiementfourn

2007-08-06T02:59:13Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx paiementfourn facturefourn

2007-08-06T02:59:30Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

<pre> -- ============================================================================ -- Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org> -- Copyright (C) 2005 Marc Barilley / Océbo <marc@ocebo.com> -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 2 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software -- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -- -- $Id$ -- $Source$ -- -- ===========================================================================

CREATE TABLE `llx_paiementfourn_facturefourn` ( `rowid` int(11) NOT NULL auto_increment, `fk_paiementfourn` int(11) default NULL, -- paiement fournisseur `fk_facturefourn` int(11) default NULL, -- facture fournisseur `amount` double default '0', PRIMARY KEY (`rowid`), KEY `idx_fk_facture` (`fk_facturefourn`), KEY `idx_fk_paiement` (`fk_paiementfourn`) ) TYPE=innodb; </pre>

== Rôle == Etablit le lien entre les paiements émis et les factures fournisseur correspondantes.

# Table llx prelevement

2005-02-22T09:41:50Z
Rodo
[[Catégorie:Prélèvements bancaires]][[Catégorie:Table SQL]] == Présentation ==

Liste des bon de prelevement envoyé à la banque

== Modules ==

# [[Module Prélèvements bancaires]]

== Structure == ; rowid : identifiant ; ref : référence permettant d'identifier le prélèvement ; datec : ; amount : montant total du prélèvement ; note : champ de commentaire == Code SQL == <pre> -- =================================================================== -- Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org> -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 2 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software -- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -- -- $Id$ -- $Source$ -- =================================================================== -- -- create table llx_prelevement ( rowid integer AUTO_INCREMENT PRIMARY KEY, ref varchar(12), -- reference datec datetime, -- date de creation amount real DEFAULT 0, -- montant total du prelevement credite smallint DEFAULT 0, -- indique si le prelevement a t credit note text

)type=innodb;

</pre>

# Table llx prelevement bons

2007-08-06T03:00:21Z
Ywarnier
[[Catégorie:Prélèvements bancaires]][[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

== Présentation ==

Liste des bons de prélèvement envoyé à la banque.

== Modules ==

# [[Module Prélèvements bancaires]]

== Tables liées ==

# [[Table llx_prelevement_lignes]]

== Structure == ; rowid : identifiant ; ref : référence permettant d'identifier le prélèvement ; datec : ; amount : montant total du prélèvement ; note : champ de commentaire == Code SQL ==

# Table llx prelevement facture

2007-08-06T03:01:16Z
Ywarnier
[[Catégorie:Prélèvements bancaires]][[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

== Presentation ==

Liste des factures relative à un bon de prelevement

== Modules ==

# [[Module Prélèvements bancaires]]

== Structure ==

; rowid : identifiant ; fk_facture : identifiant de la facture ; fk_prelevement : identifiant du prélèvement ; statut : statut de la ligne : Le champ statut est positionné à 0 par défaut, une fois le prélèvement est crédité sur le compte le champ statut est passé à 1, si le prélèvement a été refusé par la banque le statut passe à 2

== Code SQL ==

<pre> -- =================================================================== -- Copyright (C) 2005 Rodolphe Quiedeville <rodolphe@quiedeville.org> -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 2 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software -- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -- -- $Id$ -- $Source$ -- =================================================================== -- --

create table llx_prelevement_facture ( rowid integer AUTO_INCREMENT PRIMARY KEY, fk_facture integer NOT NULL, fk_prelevement integer NOT NULL, statut smallint DEFAULT 0 )type=innodb;

</pre>

# Table llx prelevement facture demande

2007-08-06T03:01:32Z
Ywarnier
[[Catégorie:Prélèvements bancaires]][[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx prelevement lignes

2007-08-06T03:00:53Z
Ywarnier
[[Catégorie:Prélèvements bancaires]][[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

== Présentation ==

Liste des lignes de prélèvement. == Modules ==

# [[Module Prélèvements bancaires]]

== Tables liées ==

# [[Table llx_prelevement_bons]]

== Structure == ; rowid : identifiant ; ref : référence permettant d'identifier le prélèvement ; datec : ; amount : montant total du prélèvement ; note : champ de commentaire == Code SQL ==

# Table llx prelevement rejet

2007-08-06T03:01:47Z
Ywarnier
[[Catégorie:Prélèvements bancaires]][[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx product

2007-08-23T19:38:38Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

Cette table contient les produits et services.

Contains the list of products and services.

= Structure =

<pre> +--------------------+--------------+------+-----+-------------------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------------+--------------+------+-----+-------------------+----------------+ | rowid | int(11) | NO | PRI | NULL | auto_increment | | datec | datetime | YES | | NULL | | | tms | timestamp | NO | | CURRENT_TIMESTAMP | | | ref | varchar(32) | NO | UNI | | | | label | varchar(255) | NO | | | | | description | text | YES | | NULL | | | note | text | YES | | NULL | | | price | double(16,8) | YES | | NULL | | | price_ttc | double(16,8) | YES | | 0.00000000 | | | price_base_type | varchar(3) | YES | | HT | | | tva_tx | double(6,3) | YES | | NULL | | | fk_user_author | int(11) | YES | | NULL | | | envente | tinyint(4) | YES | | 1 | | | nbvente | int(11) | YES | | 0 | | | fk_product_type | int(11) | YES | | 0 | | | duration | varchar(6) | YES | | NULL | | | stock_propale | int(11) | YES | | 0 | | | stock_commande | int(11) | YES | | 0 | | | seuil_stock_alerte | int(11) | YES | | 0 | | | stock_loc | varchar(10) | YES | | NULL | | | gencode | varchar(255) | YES | | NULL | | | weight | float | YES | | NULL | | weight value, depending on weight units | weight_units | tinyint(4) | YES | | NULL | | weight units (0=kg,-3=g,-6=mg) | volume | float | YES | | NULL | | volume value | volume_units | tinyint(4) | YES | | NULL | | volume units (0=m3,-3=cm3,-6=mm3) | canvas | varchar(15) | YES | | | | +--------------------+--------------+------+-----+-------------------+----------------+ </pre>

= Notes =

Une barre de recherche des produits en AJAX peut être utilisée à la place de la liste déroulante, en activant, dans le module produits, l'option "Utiliser une barre de recherche ..." et en laissant AJAX activé dans les paramètres d'interface utilisateur. C'est la méthode select_produits() de html.form.class.php qui se charge de renvoyer la liste, qu'elle soit en AJAX ou en liste de formulaire HTML.

# Table llx product fournisseur

2007-08-06T03:02:45Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx product fournisseur price

2007-08-06T03:02:55Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx product fournisseur price log

2007-08-06T03:03:05Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx product price

2007-08-06T03:03:15Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx product stock

2007-08-06T03:03:56Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu = La table '''llx_product_stock''' contient les stocks rattachés à un produit (et aux entrepôts dans lesquels il est stocké)

Contains the stock levels related to products (and warehouses where they are stored)

= Structure = <pre> +-------------+-----------+------+-----+-------------------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+-----------+------+-----+-------------------+----------------+ | rowid | int(11) | NO | PRI | NULL | auto_increment | | tms | timestamp | NO | | CURRENT_TIMESTAMP | | timestamp | fk_product | int(11) | NO | MUL | | | ID du produit concerné | fk_entrepot | int(11) | NO | MUL | | | ID de l'entrepôt | reel | int(11) | YES | | NULL | | stock réel courant (notons que le stock doit être un entier) +-------------+-----------+------+-----+-------------------+----------------+ </pre>

# Table llx projet

2007-08-06T03:04:07Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx propal

2007-08-06T03:04:17Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx propaldet

2007-08-06T03:04:35Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx rights def

2007-08-06T03:06:49Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu = Table qui contient la liste des droits disponibles. Tous les droits des modules actifs y sont stockés. Lorsqu'un nouveau module est activé, sa classe d'activation (htdocs/includes/modules/modXXX.class.php) a la responsabilité d'ajouter les permissions relatives au module dans cette table.

Contains the various permissions available. All the active modules are stored in there. When a new module is activated, its activation class (htdocs/includes/modules/modXXX.class.php) has the responsibility of adding the permissions related to the module in this table.

= Structure =

# Table llx societe

2007-08-06T03:08:10Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

Contient les tiers enregistrés dans Dolibarr. Un tiers peut être: * une entreprises cliente ou fournisseur (ou les deux) * une personne physique * une association/fondation

This table contains the list of third parties stored in Dolibarr. Third parties can be: * suppliers or customers companies (depending on the sub-elements defined) or both. * A normal person. * A fundation.

= Structure =

# Table llx societe commerciaux

2007-08-06T03:08:23Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx societe remise

2007-08-06T03:08:33Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx societe remise except

2007-08-06T03:08:41Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx societe rib

2007-08-06T03:08:51Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx socpeople

2007-08-06T03:09:39Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

La table '''llx_socpeople''' contient les contacts (personnes) des sociétés (clients et fournisseurs)

Contains the contact people of companies (clients or providers).

= Structure = <pre> +---------------------+--------------+------+-----+-------------------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------------------+--------------+------+-----+-------------------+----------------+ | rowid | int(11) | NO | PRI | NULL | auto_increment | identifiant unique interne | datec | datetime | YES | | NULL | | date de création | tms | timestamp | NO | | CURRENT_TIMESTAMP | | timestamp (date dernière modification) | fk_soc | int(11) | YES | MUL | NULL | | clef étrangère vers llx_societe | civilite | varchar(6) | YES | | NULL | | civilité (en texte ex: MR, MME,...) | name | varchar(50) | YES | | NULL | | nom de famille | firstname | varchar(50) | YES | | NULL | | prénom | address | varchar(255) | YES | | NULL | | adresse | cp | varchar(25) | YES | | NULL | | code postal | ville | varchar(255) | YES | | NULL | | ville | fk_pays | int(11) | YES | | 0 | | clef étrangère vers llx_c_pays | birthday | date | YES | | NULL | | anniversaire/date de naissance | poste | varchar(80) | YES | | NULL | | fonction au sein de l'entreprise | phone | varchar(30) | YES | | NULL | | téléphone | phone_perso | varchar(30) | YES | | NULL | | téléphone personnel | phone_mobile | varchar(30) | YES | | NULL | | téléphone mobile (GSM) | fax | varchar(30) | YES | | NULL | | fax | email | varchar(255) | YES | | NULL | | e-mail | jabberid | varchar(255) | YES | | NULL | | identifiant sur le réseau Jabber (pourrait être un autre réseau également) | fk_user_creat | int(11) | YES | MUL | 0 | | clef étrangère vers llx_user (utilisateur qui a créé ce contact) | fk_user_modif | int(11) | YES | | NULL | | clef étrangère vers llx_user (utilisateur qui a modifié ce contact) | note | text | YES | | NULL | | note +---------------------+--------------+------+-----+-------------------+----------------+ </pre>

# Table llx socstatutlog

2007-08-06T03:09:49Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

= Structure =

# Table llx stock mouvement

2007-08-06T03:10:42Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

La table '''llx_stock_mouvement''' contient les mouvements de stock rattachés à un entrepôt

Contains the stock movements attached to a warehouse.

= Structure =

<pre> +----------------+-------------+------+-----+-------------------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+-------------+------+-----+-------------------+----------------+ | rowid | int(11) | NO | PRI | NULL | auto_increment | identifiant interne unique | tms | timestamp | NO | | CURRENT_TIMESTAMP | | date de dernière modification | datem | datetime | YES | | NULL | | date de création ( devrait être datec?) | fk_product | int(11) | NO | MUL | | | produit défini dans llx_product | fk_entrepot | int(11) | NO | MUL | | | entrepôt défini dans llx_entrepot | value | int(11) | YES | | NULL | | valeur attribué au stock | price | float(13,4) | YES | | 0.0000 | | prix | type_mouvement | smallint(6) | YES | | NULL | | type de mouvement [1] | fk_user_author | int(11) | YES | | NULL | | utilisateur auteur de cet enregistrement +----------------+-------------+------+-----+-------------------+----------------+ </pre>

[1] mouvement manuel = 0, sortie = 2, entrée = 3, cfr product/stock/mouvementstock.class.php::livraison

# Table llx tva

2007-08-06T03:21:23Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

La table llx_tva garde une liste de montants de TVA. Informations à préciser...

Contains a list of VAT amounts. To be further described...

= Structure =

<pre> +--------+--------------+------+-----+-------------------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------+--------------+------+-----+-------------------+----------------+ | rowid | int(11) | NO | PRI | NULL | auto_increment | | tms | timestamp | NO | | CURRENT_TIMESTAMP | | | datep | date | YES | | NULL | | | datev | date | YES | | NULL | | | amount | double | NO | | 0 | | | label | varchar(255) | YES | | NULL | | | note | text | YES | | NULL | | +--------+--------------+------+-----+-------------------+----------------+ </pre>

# Table llx user

2007-08-06T03:22:21Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

Contient la listes des utilisateurs avec leur login et leur mot de passe. C'est une table essentielle.

Contains the users, together with their login and password. This is a mandatory table.

= Structure =

# Table llx user param

2007-08-06T03:25:07Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

Cette table contient la liste des paramétrages propres aux utilisateurs

Contains a list of parameters for each user.

= Structure =

# Table llx user rights

2007-08-06T03:26:13Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

Table qui contient l'association entre un utilisateur et ses droits ([[Table llx_user]] et [[Table llx_rights_def]])

Contains the link between a user and his permissions ([[Table llx_user]] and [[Table llx_rights_def]])

= Structure =

# Table llx usergroup

2007-08-06T03:27:46Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

Contient la liste des groupes d'utilisateurs. Il est possible de créer autant de groupe que voulu. Chaque groupe peut contenir plusieurs utilisateurs. On peut attribuer des droits à un groupe, ce qui a pour effet d'attribuer ces droits à tous les utilisateurs inclus dans ce groupe.

Contains the list of user groups. It is possible to create as many groups as you need. Each group can contain several users. One can assign permissions to a group, which has the effect of giving these permissions to all the users included in this group.

= Structure =

# Table llx usergroup rights

2007-08-06T03:29:34Z
Ywarnier
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

Table qui contient l'association entre un groupe et ses droits ([[Table llx_usergroup]] et [[Table llx_rights_def]])

Contains the link between a group and its permissions ([[Table llx_usergroup]] and [[Table llx_rights_def]])

= Structure =

# Table llx usergroup user

2007-08-06T03:28:41Z
Ywarnier
/* Contenu */
[[Catégorie:Table SQL]] La documentation relative aux autres tables est disponible sur la page [[Liste des tables]] The documentation related to other tables is available on the tables list page: [[Liste des tables]]

= Contenu =

Contient les liens entre [[Table llx_user]] et [[Table llx_usergroup]]

Contains the link between [[Table llx_user|llx_user]] and [[Table llx_usergroup|llx_usergroup]]

= Structure =

<pre> -- ============================================================================ -- Copyright (C) 2005 Rodolphe Quiedeville <rodolphe@quiedeville.org> -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 2 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software -- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -- -- $Id$ -- $Source$ -- -- ===========================================================================

create table llx_usergroup_user ( rowid integer AUTO_INCREMENT PRIMARY KEY, fk_user integer NOT NULL, fk_usergroup integer NOT NULL,

UNIQUE(fk_user,fk_usergroup) )type=innodb; </pre>

# Themes

2006-11-11T17:49:40Z
Eldy
/* Création d'un nouveau thème */
== Création d'un nouveau thème ==

Pour créer un nouveau thème, allez dans le répertoire 'htdocs/theme/' recopier par exemple tout le répertoire 'dolibarr' vers un nouveau répertoire qui aura le nom de votre thème.

Dans ce répertoire changer le nom du fichier .css pour qu'il ait le même nom que le répertoire.

Modifier le fichier AUTHOR avec les informations vous concernant.

Modifier ensuite le CSS, ainsi que les images contenues dans le répertoire img pour personnaliser votre thème.

Le nom du thème apparaitra automatiquement dans la liste des thèmes utilisables sous la page ''Configuration - Interface'' qui vous permettra de l'activer par defaut, ou ''Utilisateurs et Groupes - Onglet Interface utilisateur'' pour l'activer pour un utilisateur donné.

== Diffusion de votre theme ==

Quand vous avez créer un nouveau theme, vous pouvez fabriquer un package pour le distribuer en utilisant le script '''build/makepack-dolibarrtheme.pl'''

# Téléphonie

2007-04-27T11:56:16Z
Rodo
/* Présentation */
{{Navigation documentation}} {{TemplateDocUtil}}

== Présentation == Module spécifique pour la facturation de la téléphonie

[[TelephonieProcedureFacturation|Procédure de facturation]]

# Utiliser ses données pour tester la dernière version

2007-01-27T08:18:41Z
Ywarnier
Les testeurs parmi vous voudront certainement, à un moment ou l'autre, tester les dernières mises-à-jour disponibles en CVS afin de vérifier l'état de certains bugs.

Afin d'utiliser vos données en toute quiétude, voici une procédure à suivre pour éviter les pertes...

'''Attention!''' Cette documentation a pour base des exemples pris d'une installation Dolibarr avec la configuration suivante * Linux Debian Etch * MySQL 4.1 * Apache2 Dans le cas où vous utiliseriez un autre type de machine, merci de procéder aux modifications d'usage.

= Copie = Comme vos données ont une valeur importante, il serait dommage de les perdre. Afin de tester une mise-à-jour, pourquoi ne pas copier vos données ailleurs?

== Répertoire == Étant donné que, fort probablement, toute votre installation de Dolibarr réside dans un unique répertoire, une copie sera facile. <code> cp -ra /var/www/dolibarr /var/www/dolibarrtest </code> Cette commande copiera votre répertoire Dolibarr (supposé être dans /var/www/dolibarr ici) dans un second répertoire dolibarrtest sur lequel vous mènerez vos tests. Le ''-ra'' veut dire ''récursif'' et ''conserve les droits sur les fichiers''. Cette dernière option vous permettra de ne pas vous soucier des questions de droits sur les fichiers après copie.

== Base de données == * Faites une sauvegarde de votre base de données: <code> mysqldump -u utilisateur -p --result-file=dolibarr.date.sql base_de_donnees </code> * Éditez le fichier résultant et modifiez la ligne ''USE base_de_donnees;'' en début de fichier pour la remplacer par un nouveau nom de base de données, celui de la base de données de tests, par exemple ''USER base_de_donnees_test;'' dans ce cas-ci. * Créez la nouvelle base de données si ce n'est pas déjà fait. Si la base de données existe, droppez-la et recréez-la, afin de n'obtenir au final que les données réellement extraites de votre base de données courante. <code> mysqladmin -u utilisateur -p drop base_de_donnees_test mysqladmin -u utilisateur -p create base_de_donnees_test </code> Il se peut que vos permissions ne vous autorisent pas à dropper/créer une base de données. Dans ce cas, reportez-vous à votre documentation de MySQL concernant les permissions. * Importez les données de votre base de départ dans votre nouvelle base <code> mysql -u utilisateur -p base_de_donnees_test < dolibarr.date.sql </code>

== Hôtes virtuels d'Apache ==

Si vous utilisez des hôtes virtuels dans Apache, il faudra en créer un nouveau pour votre installation de test. Par exemple, si vous aviez quelque chose comme ceci dans un fichier nommé ''/etc/apache2/sites-available/dolibarr'': <code> <VirtualHost *:80> ServerName dolibarr.mondomaine.net ServerAdmin webmaster@mondomaine.net DocumentRoot /var/www/dolibarr/htdocs DirectoryIndex index.php ErrorLog /var/log/apache2/dolibarr-error.log CustomLog /var/log/apache2/dolibarr-access.log combined </VirtualHost> </code> ... il faudra à présent en faire une copie dans, par exemple, ''/etc/apache2/sites-available/dolibarrtest'': <code> <VirtualHost *:80> ServerName dolibarrtest.mondomaine.net ServerAdmin webmaster@mondomaine.net DocumentRoot /var/www/dolibarrtest/htdocs DirectoryIndex index.php ErrorLog /var/log/apache2/dolibarrtest-error.log CustomLog /var/log/apache2/dolibarrtest-access.log combined </VirtualHost> </code>

Attention, ceci ne suffit pas à rendre cet hôte disponible, il faudra également: * mettre en place le sous-domaine spécifié, avec notamment des règles de redirection sur la machine qui sert de DNS à votre domaine * faire un lien symbolique depuis ''/etc/apache2/sites-enabled/dolibarrtest'' vers ''/etc/apache2/sites-available/dolibarrtest'' <code> ln -s /etc/apache2/sites-enabled/dolibarrtest /etc/apache2/sites-available/dolibarrtest </code> * recharger la config d'Apache2 <code> /etc/init.d/apache2 reload </code>

== Fichier de configuration == Enfin, le fichier de configuration ''/var/www/dolibarrtest/htdocs/conf/conf.php'' '''doit absolument''' être modifié. Tant qu'il n'est pas modifié, votre installation dolibarrtest se connectera en effet toujours à votr vraie base de données, pas celle de test! Éditez le fichier de configuration et modifiez le nom de la base de données à laquelle se connecter. Dans la lignée des exemples ci-dessus, renommez ''base_de_donnees'' en ''base_de_donnees_test''. Renommez également les répertoires auxquels votre configuration fait référence. Les ''/var/www/dolibarr'' deviennent ''/var/www/dolibarrtest''.

== Vérifications == Si vous avez bien réalisé les étapes préparatoires, vous devriez à présent pouvoir charger votre nouveau portail dans votre navigateur et vérifier qu'il s'agit bien d'un portail distinct. Comment faire? === Modification DB === * Modifiez une petite information (par exemple modifiez vos détails persos) sur votre portail de test * Déloggez-vous * Loggez-vous sur votre portail de production * Vérifiez si l'information a changé. Si elle a changé, reparcourez les étapes ci-dessus pour voir ce que vous avez manqué. Aucune modification n'aurait dû être apportée! * Si aucune modification n'a été apportée, c'est bien! Retournez sur votre portail de test et vérifiez que la modification que vous y aviez apportée y est toujours... bien.

=== Modification documents === * Ajoutez un document à l'une de vos fiches sur votre portail de test * Déloggez-vous * Loggez-vous sur votre portail de production. * Vérifiez si le nouveau document s'y trouve. S'il s'y trouve, reparcourez les étapes ci-dessus pour voir ce que vous avez manqué. Aucune modification n'aurait dû être apportée! * Si aucune modification n'a été apportée, c'est bien! Retournez sur votre portail de test et vérifiez que la modification que vous y aviez apportée y est toujours... bien.

= Mise-à-jour =

Vous avez tout copié, et votre configuration vous met à l'abri de modifications indésirées dans votre répertoire de production? Vous avez vérifié que vous pouviez accéder à votre portail de test depuis votre navigateur? Bien! Maintenant, récupérez la dernière version de Dolibarr et copiez-là aussi sec par-dessus l'autre, qui est dans ''/var/www/dolibarrtest'' (si on vous le demande, choisissez "écraser"). Ensuite, pointez votre navigateur sur le portail de test, et ajoutez "install/" dans l'URL. Le processus d'installation/mise-à-jour de Dolibarr devrait vous proposer une mise-à-jour. Acceptez et suivez les étapes.

Votre portail de test est maintenant mis-à-jour à la dernière version CVS. Bravo!