(Re)-Bonjour à tous,
voici donc le premier post suite à mon post de préliminaires pour décrire les évolutions que j'ai introduites dans Dolibarr en ce qui concerne la génération des documents pdf. Malgré la 'stabilité' de Dolibarr et le grand travail effectué par sa communauté, sans modifications sur ce point de 'sortie documentaire' Dolibarr n'était malheureusement non exploitable (vraiment) pour l'activité de ma société. Désirant véhiculer une image de 'qualité' et de 'services' nous avions mis au point, entre autres, des propositions 'évoluées' qui, contrairement à nos concurrents, étaient à des années lumières d'une proposition style électricien (sans froisser quiconque). Une proposition contenant plusieurs "pages", en fait plusieurs 'chapitres' ('première page', 'simulation avec des images', le 'tableau des produits-services', le 'récapitulatif financier' et les 'Conditions générales') avec du texte, des images, des 'synthèses' des produits/services... Pour arriver à reproduire cela, voici les évolutions apportées au code :
--> création de nouveaux modèles de documents pour les propositions, les factures et les interventions grâce à de nouvelles classes dérivées de celles existantes (sur ce point mes modifications sont plus facilement 'récupérables' que d'autres).
--> quasi 'fusion' de certaines de ces nouvelles classes (les plus 'hautes') entre les propositions et les factures
--> addition de 'Conditions générales' en fin de proposition (soit d'un pdf déjà créé pour notre société, soit de CGs configurables avec le nom de sociétés externes car Dolibarr est 'mis à disposition' de nos revendeurs et apporteurs d'affaire)
--> construction d'un nom de fichier pdf généré en prenant en compte le nom du prospect, la ville et la date et donc conservation de versions successives de fichier aisément repérables ('aller/retour' client fréquent dans les négociations...). Mise en pièce jointe du fichier le plus récent en cas d'envoi de mail (mais j'y reviendrai).
--> addition d'images ('simulations' de commerce ou logo 'revendeur') dans la proposition
--> insertion du texte dans le pdf soit 'directement' dans le code soit 'récupération' de paragraphes 'stockés' dans des faux 'services hors vente' dans la table des produits/services
--> non génération du pdf à chaque insertion de ligne de produits/services (pas si anecdotique que ça)
NB : véritable "combat" pour utiliser la fonction writeHTMLCell qui donne des résultats aléatoires dans le pdf... mais aussi pour gérer de 'nouveaux' champs stockés non pas en base mais dans un champ déjà présent (voir le prochain post).
Au prochain post...
Romain