Bonjour à tous,
comme promis mais avec 1 petit mois de décalage voici la synthèse de toutes les modifications que j'ai entrepris sur Dolibarr depuis 4/5 mois (toutes les modifications que je vais décrire sont déjà en 'production'). Je suis parti de la version 2.6.1 (et toujours pas passé en 2.7.1 car migration pas évidente avec mes modifications) et je me suis astreint à quelques règles :
--> ne pas modifier la structure de données, que cela soit pour ajouter de nouvelles tables ou de modifier celles existantes. L'objectif est de ne pas surcharger les migrations futures inévitables et de les cantonner aux codes modifiées (déjà une belle affaire).
--> modifier le moins possible le code existant en essayant de trouver le 'plus court chemin'
Je partais avec l'idée de modifier 'peu' de choses et bien que j'avais développé il y a plusieurs années (Java, C++, C principalement) je n'avais jamais vraiment utilisé les techniques du web. J'ai donc découvert le PHP, le Javascript, Ajax et HTML. Je dois avouer que cela n'est pas si simple que cela et quelques points restent mystérieux. Les pbs de 'portée', de 'submit', 'd'espaces' ($nbsp; " ", "\xc2\xa0" avec le comportement 'aléatoire' de la fonction trim()) ou Ajax sont très perturbants et ralentissent fortement la progression dans certains cas...
Par ailleurs je n'ai pas 'choisi' Dolibarr au hasard car il y a un peu plus de 2 ans j'avais fait le tour du 'marché' pour chercher un outil rassemblant les fonctionnalités de CRM et d'ERP. J'en ai testé des dizaines mais aucun ne satisfaisait aux critères 'minimaux' (prix, 'ouvert', communauté riche, fonctionnalités large). Le manque de temps à consacrer à ce projet pourtant capital ('pris' par le fonctionnement ininterrompu de l'entreprise) allié à des essais infructueux de faire développer une solution spécifique par des prestataires extérieurs a presque 'enterré' le projet. Il y a 9 mois environ on a même acquis des licences Webdev pour tenter de mettre sur pied en interne un CRM/ERP (désespérés nous étions vous dis-je...). Mais à nouveau le manque de ressources internes et l'automatisation 'relative' de webdev n'a pas permis de faire aboutir les choses. Le déclic a eu lieu il y a 6 mois lorsque je me suis 'externalisé' de ma société. De fil en aiguille j'ai à nouveau prospecté sur les solutions possibles. Je suis 'tombé' en particulier sur un rapport, un 'livre blanc de l'ERP Open source', rédigé par la société 'Smile'. On y détaillait plusieurs ERP/CRM que j'ai étudié et testé. Le gagnant a été Dolibarr que je n'avais pas détecté 2 ans auparavant (peut-être l'avais-je écarté pour un manque dans une des fonctionnalités majeures). Dolibarr n'avait pas la 'meilleure bouille' (assez austère) mais sa 'complexité' était 'abordable' (pas de python, configuration/mise en place raisonnable) et surtout sa communauté était riche et très active. Ce dernier point a compté pour beaucoup. Mais tout n'est pas parfait (bien sûr) et à part mon démarrage laborieux dans les technologies du web j'ai été 'surpris' par le 'mélange' entre les différentes 'couches' de programmation ce qui rend la 'maintenance' et la 'lecture' du code non immédiate. Ainsi les requêtes SQL, les manipulations de data en PHP et la génération du code html se retrouvent parfois/souvent dans la même fonction et ne sont pas dans des 'objets' (ou dans des fichiers de fonctions 'utiles') mais dans les 'pages php' ce qui les rend non ré-utilisables et 'longues'. Egalement la non fusion d'objet 'proches' comme des propositions ou des factures entrainent des duplications/erreurs de code/divergence. Je sais que des revues de code pour éliminer la duplication de code sont régulièrement faites (ah l'historique...) et aussi que des milliers d'heures d'âmes généreuses ont été nécessaires pour créer cette application (et qui a permis entre autres à ma société de ne pas 'sombrer' sous l'augmentation brusque de la demande) et c'est pourquoi je remercie tous les contributeurs chaleureusement. Mais il y a encore plein de choses à faire (chouette) comme vous allez le voir dans ma petite liste que je vais détailler dans les prochains posts...
Vive Dolibarr !
Romain