PROJET AUTOBLOG


Philippe Scoffoni

source: Philippe Scoffoni

⇐ retour index

Avenir sombre pour Thunderbird ?

mardi 1 décembre 2015 à 18:26

tempeteC’est un article que je craignais d’écrire depuis pas mal de temps. Je me suis d’ailleurs abonné à la mailing-list du projet depuis plusieurs semaines pour voir un peu ce qui s’y racontait. Et franchement ce que l’on peut y lire n’a rien de rassurant.

Je passe sur les interrogations sur le rôle de Mozilla et l’absence de moyens humains mis à disposition pour maintenir Thunderbird. A ce jour, Mozilla fournis la plateforme technique permettant la maintenance et la mise à disposition du logiciel.

Pourtant un noyau de contributeurs s’est regroupé et c’est à lui que l’on doit les récentes mises à jour sur Thunderbird, qu’ils en soient remercié.

Mais voilà qu’un membre de Mozilla lance un message en 12 points pour le moins négatifs pour l’avenir Thunderbird. Il y est en effet question de la pertinence pour Mozilla de conserver le projet en son sein. La question est ouvertement posée de trouver un relais pour prendre en charge le projet. Chaque dollar dépensé par Mozilla pour Thunderbird n’étant pas dépensé pour Firefox, c’est donc un problème. Mozilla doit être bien mal en point sur le plan financier pour en arriver à cette extrémité.

Les contributeurs Thunderbird actifs actuels se sont regroupés depuis 2014 au sein d’un « Comité Thunderbird » piloté par R. Kent James. Leurs échanges depuis de nombreuses semaines sur la liste de diffusion tournent autour de cette problématique.

Que serait le paysage du logiciel libre sans Thunderbird ?

Pour mon usage personnel, je pourrais toujours me replier sur Evolution, Kmail. Mais ceux-ci ne fonctionnent que sous GNU/Linux. Quid des utilisateurs sous Windows ? Changer de système d’exploitation ?

Mis à part le rustique ClawsMail qui devrait faire fuir une grande majorité d’utilisateurs, il n’existe pas d’alternatives. Mais la proportion d’utilisateurs grand public utilisant un client lourd se réduit de jour en jour. Les jeunes générations n’utilisent que des Webmail (ceux de Google, Yahoo et autres cela va sans dire…). Le combat serait déjà perdu de ce côté-là.

Pour le monde de l’entreprise, Thunderbird reste la seule alternative à Doudou Outlook. Les clients lourds y ont encore une place souvent prépondérante. L’existence de Thunderbird permet au moins d’avoir une proposition que j’estime crédible avec son agenda et ses capacités de synchronisation pour les petites et moyennes structures. Chez ces dernières les problématiques de déploiement, principal défaut de Thunderbird, sont encore gérables simplement.

Demain tous en webmail ?

je n’ai pas franchi le pas. Thunderbird, son agenda et quelques extensions complémentaires me fournissent un outil de travail tout à fait performant. Un webmail reste pour moi toujours trop lent à l’utilisation. Mais je ne suis pas représentatif. De plus les webmail sont souvent capables de fonctionner même en mode déconnecté, tuant ainsi le frein majeur à leur adoption pour des utilisateurs nomades. C’est aussi sans oublier que nous avons tous désormais également nos emails sur nos smartphones…

L’avenir de Thunderbird est-il tracé ? Décrépitude fonctionnelle, baisse de l’usage et disparition à horizon de trois à cinq années. Ce n’est pas improbable.

J’ai testé hier Nylas N1, un client de messagerie lourd « nouvelle génération ». La capture d’écran qui suit vous fera comprendre que pour l’instant il est inutilisable.

n1inmemory

Presque de 3Go de RAM pour un client de messagerie c’est un peu cher payé. Si ce n’est une interface proche de ce que proposent les webmail, il n’apporte aucune innovation dans la gestion des emails à ce que j’ai pu en voir.

Ne vendons pas la peau de l’ours trop tôt non plus ! Cette crise peut aussi être l’occasion pour le projet de rebondir et de repartir sur une nouvelle base. Ce n’est pas la première fois qu’il est soi-disant « mort » :-) Thunderbird reste à ce jour une solution aboutit et fiable y compris pour les entreprises.

Votre avis (en espérant que ce fichu plug-in de vote fonctionne, signalez en commentaire en cas de problème en indiquant votre navigateur et sa version. Merci par avance)

Note: There is a poll embedded within this post, please visit the site to participate in this post's poll. Note: There is a poll embedded within this post, please visit the site to participate in this post's poll. Note: There is a poll embedded within this post, please visit the site to participate in this post's poll.

 


Réagir à cet article

Article original écrit par Philippe Scoffoni le 01/12/2015. | Lien direct vers cet article

Cette création est mise à disposition sous un contrat Creative Commons BY à l'exception des images qui l'illustrent (celles-ci demeurent placées sous leur mention légale d'origine).

.

Campagne de financement participative pour Dolibarr

vendredi 27 novembre 2015 à 23:34

Le lancement c’est fait en quasi quatimini par un tweet d’Alexandre Spangaro.

Sélection_095L’objectif de cette campagne portée par la société d’Olivier Olivier Geffroy est d’améliorer les modules comptabilité avancée & banque présents dans Dolibarr. Présente dans le cœur de Dolibarr depuis la version 3.7.1, elle s’active par une petite manipulation.

La comptabilité est un incontournable de la gestion d’entreprise, une obligation légale. Sa tenue est souvent externalisée à un cabinet comptable. L’entreprise émet des factures et avoirs, reçoit des factures de ces fournisseurs. Tout cela générant des mouvements financiers sur le ou les comptes de la société.

Dans mon cas et comme beaucoup de petites structures, j’ai choisi d’externaliser totalement ma comptabilité. Je fournis tous les mois les documents, qui sont ensuite saisis par le cabinet comptable pour ensuite permettre l’établissement de toutes les déclarations nécessaires. Pour rien au monde je ne souhaiterais gérer cela moi-même :-) Je n’ai donc pas besoin de logiciel de comptabilité.

comptabilite-dolibarrCe n’est pas le cas de tout le monde et pas mal de chefs d’entreprises souhaitent réaliser eux-mêmes leur comptabilité. De plus, arrivé à une certaine taille l’embauche d’un comptable s’impose. Se pose alors la question du logiciel de comptabilité.

L’absence d’une véritable comptabilité dans Dolibarr est pour certaines structures un point bloquant dans l’adoption de cet ERP. Le module de comptabilité avancé vient en partie combler ce manque et permet de générer des journaux comptables qui peuvent être fournis à son comptable lui évitant une ressaisie. Cependant ce module demande encore à être amélioré. Mais pour cela il faut des moyens.

C’est l’objectif de cette campagne de financement. Disons-le tout de suite, si j’ai souscrit c’est plus par « devoir de contribution » que par conviction intime que c’est ainsi qu’il fallait s’y prendre. J’ai souscrit aussi à cause des deux personnalités qui ont lancé cet appel et qui me semblent crédibles pour porter ce projet.

Je n’ai donc aucun regret d’avoir mis un billet de 500 € sur la table. L’argent doit me brûler les doigts ou c’est l’approche de Noël, mais cette semaine fut déraisonnable avec un autre billet de 500 € pour Framasoft. Je ne produis pas de code, il est donc normal de contribuer financièrement.

J’ai cependant des interrogations sur la façon dont l’initiative est perçue et sera supportée par le reste de la communauté Dolibarr. Pour l’instant rien sur le site de Dolibarr ni sur les listes utilisateur, ce qui laisse à penser que cette campagne et la nécessaire communication autour n’a pas été planifiée avec l’association Dolibarr. Sur les six retweets, trois proviennent de comptes m’appartenant… Laissons passer le week-end et le temps faire son œuvre, je suis probablement trop dans l’instantanéité.

J’ai lu en fin de journée un long fil sur le Forum sans aucun lien avec cet appel à participation, mais avec la gouvernance du projet. Je ne développerais pas plus, si ce n’est que l’on retrouve cet éternel clivage entre ceux qui prônent un pilotage par la demande utilisateur (indépendamment des souhaits des développeurs) et ceux pour qui compte d’abord le code, les utilisateurs étant assez grands pour se débrouiller par eux-mêmes avec ce qu’on leur fournit. Vous savez probablement dans quels camps je me situe….

En tout état de cause, je vais pousser l’information à mes quelques clients Dolibarr dont au moins un va avoir besoin de ce module comptabilité en 2016. Je ne sais pas comment va se dérouler le projet, ni dans quels délais ni pour quel résultat. Les plus prudents me diront que dans ces conditions, cet appel à financement est potentiellement mal « gaulé ».

Ils n’ont pas complètement tort, le logiciel libre continue d’ignorer des modèles de financement alternatif et notamment l’utilisation des fonds de dotation qui sont de simples associations. Cependant elles ouvrent la possibilité de faire appel au mécénat et donc offre aux donateurs des réductions d’impôts. Mais ce n’est qu’un maillon d’une approche plus globale de la gouvernance des logiciels libres (rires au fond de la salle). Sur ce dernier point, j’ai baissé les bras. Il faudra probablement un électrochoc pour provoquer une prise de conscience. Mais il est probable qu’il sera déjà trop tard.

Essayons en tout cas de continuer d’avancer en encourageant les bonnes volontés quand il s’en trouve même si elles n’ont pas choisi le cheminement que vous aviez espéré. Au moins sont-elles du bon côté de la force :-)


Réagir à cet article

Article original écrit par Philippe Scoffoni le 27/11/2015. | Lien direct vers cet article

Cette création est mise à disposition sous un contrat Creative Commons BY à l'exception des images qui l'illustrent (celles-ci demeurent placées sous leur mention légale d'origine).

.

ONLYOFFICE, suite bureautique en ligne open source

mercredi 25 novembre 2015 à 08:32

clo_bureautique-entrepriseA ce jour, tous les indicateurs démontrent que la suite bureautique de Microsoft que l’on aurait pu croire menacée par les outils en ligne de Google Apps est en train de reconquérir le marché des suites bureautiques en ligne. Une entreprise sur deux utiliserait aujourd’hui une suite mail et bureautique en mode cloud. Bien entendu, toutes n’ont pas pris la mesure ni les conséquences que pourrait avoir pour elle cette externalisation dans les années à venir. Le vrai prix reste encore à payer.

Le réel besoin

Entendons-nous tout de suite sur la notion de bureautique en ligne. Il s’agit ici d’utiliser des logiciels de traitement de texte, de tableur et de présentation depuis un navigateur web. Il n’est pas clair dans l’article cité en lien précédemment si les entreprises utilisent ces outils en lignes ou n’utilisent pas plutôt les capacités de stockage et de partage de fichiers en ligne des offres de Microsoft et Google.

Les fonctionnalités d’éditions que ce soit chez Google ou Microsoft restent tout de même en deçà de ce que peuvent faire des outils comme MS Office et LibreOffice. Cependant dans certains cas d’usage, les possibilités de « coédition » deviennent très utiles, voir indispensables. Elles permettent d’éviter les problèmes de gestion de version des documents ou de mise à jour simultanée.

Pour moi le réel besoin se situe dans ces deux fonctions de l’outil :

Quelles solutions libres ou open source ?

Il existe pas moins de trois solutions qui répondent au besoin du stockage et du partage de fichiers en ligne : Owncloud, Pydio et Seafile. Le partage des fichiers se fait par des mécanismes de synchronisation entre les postes clients et un serveur en ligne. Les utilisateurs travaillent alors avec la suite bureautique installée sur leur poste. Nous avons donc là des solutions équivalentes aux services en ligne OneDrive, Google Drive ou encore Dropbox pour ne citer que les principaux.

Malheureusement ses solutions ne savent pas gérer la mise à jour simultanée d’un document. Au mieux un « conflit » est détecté et le document doublonné. A charge pour les utilisateurs de faire la fusion des données.

Là encore, malheureusement, le logiciel libre n’avait pas de solution équivalentes aux applications en ligne de Google ou de Microsoft. Du côté de LibreOffice, mis à part des annonces répétées de version en ligne de la suite bureautique, toujours rien de sérieux à se mettre sous la dent. Les solutions du type Etherpad même amélioré par Framasoft avec MyPads permettent uniquement (mais c’est déjà un début) de travailler sur le contenu. La mise en forme étant réalisée une fois ce dernier finalisé. Mais Etherpad ne couvre que la partie texte, pas la partie tableur ni présentation.

ONLYOFFICE, la suite bureautique open source qui vient de l’Est

Cela fait déjà pas mal de mois que je suis de plus ou moins loin les avancés de la solution ONLYOFFICE. Publié par la société Ascensio System SIA basée en Lettonie, cette suite propose un ensemble d’outils orientés travail de groupe :

Le tout est totalement intégré dans une unique interface web plutôt jolie. Sur le papier numérique, c’est très alléchant. J’ai donc ouvert un compte d’essai de trente jours pour voir concrètement de quoi il retourne et si cet outil est suffisamment intéressant pour que je l’ajoute à mon catalogue de solutions.

Lors de ma première prise de contact, en début d’année, il était encore nécessaire de mettre en œuvre un serveur sous Windows pour bénéficier des outils d’édition en ligne. Un point à l’époque disqualifiant pour moi. C’est chose révolue désormais puisque l’ensemble de la solution fonctionne sous GNU/Linux. Parmi les modes de mis en œuvre, une installation utilisant Docker est disponible pour les fans de cette technologie.

A l’utilisation

Les premières « sensations » sont plutôt favorables. L’organisation de l’écran est assez simple et la découverte des fonctionnalités rapide.

onlyoffice-ecran

Comme vous le voyez sur la capture, ONLYOFFICE peut s’appuyer sur des solutions de stockage en ligne. Une bonne surprise, Owncloud fait partie des solutions supportées. A ce stade mon petit cœur s’emballe déjà et je m’imagine proposant en option à mes clients Owncloud, la solution pour éditer leurs documents stockés dans ce dernier.

Je passe au deuxième point critique de mon test : l’édition en ligne de document. J’ouvre donc un des documents de test présent et me connecte depuis deux navigateurs différents pour simuler une coédition. Petite déception, rien à voir avec ce que propose Google ou même Etherpad. Il n’est pas possible de voir en temps réel les modifications réalisées par une autre personne.Vous pouvez savoir si un autre utilisateur a ouvert votre document grâce à un petit icône dans la barre de statut en bas.

onlyoffice-texte

Ce n’est que lors de l’enregistrement du document que vous êtes prévenu par une infobulle, qu’une autre personne a modifié le document.

onlyoffice-edition-simultaneePar contre ONLYOFFICE se charge de fusionner les modifications et de les rendre visibles avec une couleur de fond pour la zone modifiée.  Pour les tableurs et présentations par contre, je n’ai pas vu que les modifications étaient ainsi mis en évidence ce qui est plutôt gênant. Un tchat est accessible depuis les documents pour échanger avec les autres utilisateurs ayant ouvert le document.

ONLYOFFICE ne résout donc pas totalement l’équation de la coédition, mais apporte un début de solution.

Je n’ai que survolé les autres fonctionnalités. D’autres personnes que j’ai invitées sur l’instance de test m’ont signalé divers points (non exhaustif) comme :

Je vous invite à créer une instance de test de la solution ou à l’installer pour vous faire une idée par vous-même et à venir partager ici vos impressions.

Le #Fail

J’en viens au dernier point et non des moindres qui représentent pour moi le principal « fail » de la solution : le format des documents bureautique. ONLYOFFICE utilise en effet OpenXML. J’ai bien tenté de charger un document au format OpenDocument ce qui est tout à fait possible, mais pour l’éditer, il faut le convertir. Autrement dit si je veux pouvoir utiliser l’édition en ligne, je dois passer au format OpenXML ce qui dans ma petite entreprise est juste impossible.

Le support de l’OpenDocument n’est hélas pas prévu pour le moment.

onlyoffice-ODF-support-reponseMais je suis un cas particulier et pour le reste du monde, cela ne posera pas de problème. J’oserais même dire que le choix de ONLYOFFICE est dicté par la réalité du marché. Ce que je n’ai pas testé, c’est jusqu’à où va ce support de l’OpenXML et dans quelle mesure la mise en forme est correctement respectée dans le cadre d’une utilisation conjointe avec la suite MS Office.

Je ne saurais cependant qu’inciter fortement l’éditeur s’il passe par là à considérer le support d’ODF en édition. Je me doute que cela représente une quantité de travail non négligeable et démultiplie la charge de maintenance de l’application. Cependant cela lui ouvrirait des portes, car certains pays comme l’Angleterre qui impose le format ODF dans l’administration. Pour un développement commercial sur le secteur public français ce serait également un gros plus je pense, même si nos politiques sont bien moins courageux qu’outre-Manche.

Ma question finale reste de savoir si j’envisage ou pas de proposer cette solution commercialement. Je serais tenté de répondre oui, même si le non support de l’ODF me fait mal au ventre. Mais le marché reste (et restera) dominé par MS Office. Si au moins cela permet de limiter la diffusion d’Office 365, cela sera déjà un bon début. Prochaine étape, l’installation d’une instance connectée à un Owncloud.

Si vous connaissez une entreprise qui veut faire un bêta test, envoyez-moi là, on trouvera un arrangement :-) !


Réagir à cet article

Article original écrit par Philippe Scoffoni le 25/11/2015. | Lien direct vers cet article

Cette création est mise à disposition sous un contrat Creative Commons BY à l'exception des images qui l'illustrent (celles-ci demeurent placées sous leur mention légale d'origine).

.

Economie du logiciel libre en 2015, une croissance supérieure aux prévisions

vendredi 20 novembre 2015 à 09:39

economieLorsque j’explique ce que sont les logiciels libres et ce qu’ils représentent dans notre économie, il y a des chiffres que je mentionne systématiquement :

En 2012, le marché du logiciel libre en France
2,5 milliards € et 30 000 emplois
6% du marché des services IT, 9 % en 2015

Nous sommes en 2015. Est-ce que ses prévisions ont été réalisées ou dépassées ? Les résultats de l’enquête réalisée par le cabinet Pierre Audoin Consultants auprès de plus de 100 entreprises – des TPE aux grands groupes – membres du Conseil national du logiciel libre (CNLL), du syndicat des ESN et des éditeurs Syntec Numérique vient d’être rendu publique à l’occasion de l’Open Source Summit, nouvelle grande messe du logiciel libre et de l’open source issue de la fusion de Solution Linux et de l’Open World Forum.

4,1 milliards d’euros en 2015,
13 % du marché des logiciels et des services informatiques en France.
50 000 emplois

Objectif atteint donc et même dépassé. Ce chemin a été parcouru en l’espace d’une quinzaine d’années et a vu se constituer des sociétés à dimension européenne comme SMILE qui atteint le millier de salariés et dont le rapprochement avec Open-Wide devrait encore gonfler la taille.

Cependant, parmi les pure-player, autrement dit ce qui ne font que du logiciel libre ou de l’open source, on constate très clairement la persistance d’une courbe de longue traîne. Il y a très peu de sociétés de plus de 100 salariés et un très grand nombre de petites structures dont je fais partie. Ainsi 66 % de ces entreprises ont moins de 10 salariés. Une conséquence du modèle économique dans lequel les barrières à l’installation sont très faibles. Il est rare qu’il soit nécessaire d’obtenir une certification ou un accord de distribution pour proposer des services autour d’un logiciel libre. Votre seule compétence suffit en général.

Prochain objectif : 2020 et le chiffre de 6 milliards d’euros. Il va sans dire que ce chiffre ne reflète que partiellement le réel impact des logiciels libres sur l’économie du numérique. A ce jour, il est quasiment possible d’affirmer que les revenus cumulés des GAFA (Google, Apple, Facebook, Amazon)  reposent entièrement sur l’usage de logiciels open source.

Il est donc paradoxal de voir comment notre pays et les acteurs institutionnels de la région Rhône-Alpes entre autres continuent d’ignorer ce phénomène en refusant de donner la priorité à ce modèle économique.

Rien d’étonnant alors à ce que 76 %  des entreprise du numérique libre autofinancent leur recherche et développement. A ce sujet d’ailleurs, les leaders de ces entreprises feraient bien aussi dans ce contexte de se tourner vers les propositions qui leur sont faites mais, qui reste là aussi ignorée, d’explorer d’autres moyens d’auto-financement comme le mécénat financier et de compétences. Mais là aussi, les blocages ont la vie dure.


Réagir à cet article

Article original écrit par Philippe Scoffoni le 20/11/2015. | Lien direct vers cet article

Cette création est mise à disposition sous un contrat Creative Commons BY à l'exception des images qui l'illustrent (celles-ci demeurent placées sous leur mention légale d'origine).

.

Ajouter un export de données personnalisés dans Dolibarr

jeudi 12 novembre 2015 à 16:09

Un logiciel de gestion d’entreprise permet de centraliser un maximum d’informations utiles en un seul endroit. Ces données, il faut aussi pouvoir les exploiter et il est parfois nécessaire de les extraire pour les analyser dans un outil dédié à cet usage. L’export se fait en général dans des formats compatibles avec les tableurs comme le CSV, le format OpenDocument et évidemment l’incontournable format d’Excel.

Dolibarr dispose en standard d’un certain nombre d’exports prêt à l’emploi. Il est possible lors de leur génération de les personnaliser en choisissant les colonnes que l’on souhaite voir apparaître et les filtres à appliquer aux données.

Cependant ces exports couvrent des besoins génériques et parfois il est nécessaire de les compléter par des exports répondant à un besoin précis du client. Pour ajouter un export spécifique à Dolibarr, il n’existe malheureusement pas encore dans le logiciel d’interface permettant de réaliser cet ajout simplement.

Il faut donc ouvrir le coffre du moteur et mettre les doigts dans le cambouis. La suite de cet article s’adresse donc à des personnes ayant déjà eu l’occasion de mettre le nez dans du code.

Il existe cependant un module permettant de simplifier l’opération, mais qui ne sera pas adapté dans le cas de l’export d’importants volumes de données : MyList  disponible gratuitement sur le Dolistore ou avec une liste personnalisée selon vos besoins. Il faut cependant une connaissance de la base de données de Dolibarr et savoir écrire des requêtes SQL pour utiliser ce module.

L’autre solution est d’utiliser des outils open source d’analyse statistique directement connecté à la base de données ou à une copie de celle-ci (pour éviter de pénaliser les utilisateurs du logiciel durant l’exécution de grosses requêtes).

Dans mon cas, le volume de données retourné dépassant le millier d’enregistrements, je choisis donc l’option consistant à ajouter un export à Dolibarr.

Où sont définis les exports ?

Les extractions standards de Dolibarr sont définies dans les modules décrivant les classes des entités manipulées par le logiciel (propositions, commandes, facture, etc.). Ces définitions sont stockées dans le répertoire htdocs/core/modules et les fichiers modxxxxx.class.php.

Exemple : modFournisseur.class.php

Dans ce fichier vous pourrez retrouver la définition de l’extraction à partir de la ligne 273 (Dolibarr 3.8.2).

// Exports
//--------
$r=0;

$r++;
$this->export_code[$r]=$this->rights_class.'_'.$r;
$this->export_label[$r]='Factures fournisseurs et lignes de facture';
$this->export_icon[$r]='bill';
$this->export_permission[$r]=array(array("fournisseur","facture","export"));

Ces premières lignes permettent de configurer les informations qui apparaissent au niveau de la liste des exports ainsi que le droit nécessaire pour y avoir accès.

$this->export_fields_array[$r]=array('s.rowid'=>"IdCompany",'s.nom'=>'CompanyName', ...

Cette ligne permet d’indiquer la liste des colonnes qui seront disponibles dans l’export. Il s’agit là d’indiquer le nom du champ issu de la requête SQL et de lui associer le nom qui apparaît dans la liste des champs. Les mécanismes de traduction de Dolibarr sont ici mis en œuvre. IdCompany sera traduit en français ou dans la langue choisie par l’utilisateur en fonction des traductions disponibles. Ces dernières sont dans le dossier htdocs/langs/xx_XX (fr_FR pour le français).

Cette ligne reproduite ici de façon incomplète peut être assez longue.

$this->export_TypeFields_array[$r]=array('s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text',...

Ce tableau reprend dans le même ordre que le précédent la liste des champs et permet de spécifier le type de la donnée contenue dans la colonne : Text, date, numeric, Boolean, Status, etc. Certains types de colonnes contenant des identifiants liés à une entité Dolibarr peuvent être lié à la table correspondant. Exemple : List:product:label qui permet dans la phase de définition des filtres de choisir un produit dans la liste de ceux qui existent.

$this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company', ...

Ce tableau a un objectif « cosmétique », celui de définir l’icône qui sera associé au champ dans la liste. Cela permet visuellement de savoir à quel type d’entité appartient un champ de l’export.

Suit ensuite pas mal de code lié à la gestion des champs complémentaires ajoutés aux entités. On finit par la requête correspondant à l’export.

$this->export_sql_start[$r]='SELECT DISTINCT ';
$this->export_sql_end[$r]  =' FROM '.MAIN_DB_PREFIX.'societe as s';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'c_country as c ON s.fk_pays = c.rowid,';
$this->export_sql_end[$r] .=' '.MAIN_DB_PREFIX.'facture_fourn as f';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'projet as project on (f.fk_projet = project.rowid)';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'facture_fourn_extrafields as extra ON f.rowid = extra.fk_object';
$this->export_sql_end[$r] .=' , '.MAIN_DB_PREFIX.'facture_fourn_det as fd';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'facture_fourn_det_extrafields as extraline ON fd.rowid = extraline.fk_object';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product as p on (fd.fk_product = p.rowid)';
$this->export_sql_end[$r] .=' WHERE f.fk_soc = s.rowid AND f.rowid = fd.fk_facture_fourn';
$this->export_sql_end[$r] .=' AND f.entity IN ('.getEntity('supplier_invoice',1).')';

Jolie requête, non :-) ?

Où faut-il ajouter un export ?

Le premier réflexe serait d’ajouter son export dans une des classes existantes. C’est en effet la solution de facilité. Sauf qu’à la première mise à jour de Dolibarr, cet export sera effacé. Il vous faudra alors l’ajouter à nouveau. Peut-être rien d’insurmontable s’il ne s’agit que d’un seul export, mais si leur nombre augmente cela peut devenir pénible et risque d’oubli. Sans compter que si demain quelqu’un reprend votre travail, il se laissera peut-être piéger.

La solution qui me semble la plus propre et pérenne consiste à créer un module spécifique à mon client. L’avantage d’un module est qu’il permet de bien isoler le code que vous ajoutez à Dolibarr sans toucher au « cœur » du logiciel.

Alors comment crée-t-on un module ?

Sa création est documentée sur le Wiki de Dolibarr. Un module permet d’ajouter au cœur de Dolibarr de nouvelles fonctionnalités, de nouvelles tables de données, écrans, menus, etc., et de nouveaux exports.
À ce stade, il faut savoir que chaque module complémentaire à un descripteur et un identifiant unique qui est géré via cette page. Si votre module n’a pas vocation a être distribué, car spécifique à votre client, inutile de vous déclarer et de bloquer une plage d’identifiant. Utilisez un identifiant au-dessus de 500 000.

Un modèle complet de module est disponible sur Github.

Dans notre cas nous allons nous contenter de créer le strict minimum.

La structure de répertoire minimale de votre module doit contenir un répertoire core contenant lui-même un répertoire modules. L’ensemble est contenu dans un répertoire qui porte le nom de votre module. Pour l’exemple, il s’appellera par la suite « client ».

Il faut créer dans le répertoire modules un fichier dont le nom commence par mod suivi du nom de la classe qui définira votre module. Dans le cas de cet exemple, je l’appelle modClient.class.php.

J’utilise le fichier modMyModule.class.php fourni dans le modèle pour initialiser ce nouveau fichier en le renommant.

Éditons le contenu de ce fichier. À ce stade, il faut suivre scrupuleusement les instructions du wiki et les commentaires contenus dans le fichier. Voici un exemple. Les commentaires dans le fichier modèle et quelques tests vous permettront de trouver les bons réglages.

public function __construct($db)
{
  global $langs, $conf;
  $this->db = $db;
  $this->numero = 500100;
  $this->rights_class = 'client';
  $this->family = "other";
  $this->name = preg_replace('/^mod/i', '', get_class($this));
  $this->description = "Module spécifique Client";
  $this->version = 'dolibarr';
  $this->const_name = 'MAIN_MODULE_' . strtoupper($this->name);
  $this->special = 2;
  $this->picto = 'client@client'; // mypicto@mymodule
  $this->phpmin = array(5, 3);
  $this->need_dolibarr_version = array(3, 7);

À ce niveau vous devez voir apparaître votre module dans la liste. Une première victoire :-)

Ajoutons enfin notre export

Là encore il suffit d’adapter l’exemple fourni dans le modèle à son besoin et surtout à sa requête SQL. Voici un exemple

// Exports
$r = 0;
$r++;
$this->export_code[$r]=$this->rights_class.'_'.$r;
$this->export_label[$r]='Export';
$this->export_icon[$r]='bill';
$this->export_permission[$r]=array(array("fournisseur","facture","export"));
$this->export_fields_array[$r]=array('e.ref'=>'Reference','e.periode'=>'Periode','e.niveau1'=>'Niveau1','e.niveau2'=>'Niveau2','e.item'=>'Item','e.montantht'=>'Montant HT');
$this->export_entities_array[$r]=array('e.ref'=>'bill','e.periode'=>'bill','e.niveau1'=>'bill','e.niveau2'=>'bill','e.item'=>'bill','e.montantht'=>'bill');
$this->export_sql_start[$r]='SELECT DISTINCT ';
$this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'extract_export as e';

Dans le cas présent, je m’appuie sur une vue qui fait tout le boulot d’agrégation des données. Vous n’êtes donc pas obligé d’utiliser uniquement des requêtes portant sur des tables.

Voilà le résultat dans Dolibarr.

export-dolibarrCet article ne se veut nullement exhaustif et reste approximatif sur pas mal de choses. Il s’agit avant tout de vous mettre le pied à l’étrier et je ne suis encore qu’un jeune Padawan Dolibarr :-) . Il y a d’autres façons de faire des exports comme je l’indiquais et peut-être certaines que je n’ai pas présentées ici. N’hésitez pas à compléter/corriger.


Réagir à cet article

Article original écrit par Philippe Scoffoni le 12/11/2015. | Lien direct vers cet article

Cette création est mise à disposition sous un contrat Creative Commons BY à l'exception des images qui l'illustrent (celles-ci demeurent placées sous leur mention légale d'origine).

.