Sortie de Tryton 4.6

Posté par  (site web personnel) . Édité par Davy Defaud, Oliver, sisalp, Nicolas Évrard et palm123. Modéré par Nÿco. Licence CC By‑SA.
Étiquettes :
24
6
nov.
2017
Bureautique

Déjà six mois depuis la dernière version de Tryton et donc voici la nouvelle mouture pour passer l’hiver.

Pour rappel, Tryton est un progiciel de gestion intégré (aka PGI ou ERP) écrit majoritairement en Python (et un peu de JavaScript). Il suit une architecture architecture trois tiers et tourne par défaut sur PostgreSQL et SQLite. Il possède trois clients : desktop, web et script, et vient avec une suite de plus de cent modules qui couvrent un large éventail des besoins de l’entreprise (achats, ventes, comptabilité, stock, etc.).

Logo de Tryton

Cette nouvelle version reçoit pas moins de neuf nouveaux modules, les plans comptables espagnoles et des améliorations de l’interface utilisateur en corrigeant plein de petits détails.

Comme d’habitude, la migration depuis les versions précédentes de Tryton est prise en charge.

Le conférence annuelle de Tryton aura lieu du 7 au 10 décembre à Liège, et on y fêtera les dix ans du projet. 😉

Sommaire

Le projet

Gouvernance

Le projet est mené par un ensemble de sociétés et de particuliers qui s’appuient sur la méritocratie. Les évolutions sont systématiquement proposées à la discussion et à la revue de la communauté pour rechercher un consensus.
L’infrastructure et la marque sont gérées par une Fondation privée de droit belge, ce qui garantit une indépendance et impartialité sur la gestion du commun.

Audience

  • les PME qui veulent un outil de gestion qui intègre l’ensemble de leurs opérations ;
  • les PME qui veulent une application qu’elles pourront adapter et faire évoluer en fonction de leurs besoins ;
  • les SS2I qui cherchent un outil pour développer des applications métier rapidement et en se basant sur une base commune générique.

Architecture

L’architecture trois tiers est utilisée.
Pour base de données, PostgreSQL, SQLite (et MySQL) sont prises en charge. Des prototypes ont déjà été développés pour gérer d’autres bases de données comme Oracle.
Le serveur applicatif est écrit en Python, utilise JSON-RPC (ou XML-RPC) comme protocole de communication et XML pour décrire les vues. La logique métier est définie dans les modules du serveur. Un module peut aussi modifier le comportement d’un autre module grâce à une technique de surcharge.
Le client desktop est programmé aussi en Python et utilise GTK+. Le client Web est écrit en JavaScript et utilise JQuery et Bootstrap. La librairie cliente est simplement programmée en Python.

Changements pour les utilisateurs

Une des améliorations de l’interface concerne l’affichage du profil de connexion dans la barre de titre. C’est pratique quand on a plusieurs clients ouverts.

L’ordonnancement de la barre d’outil a été revu afin de regrouper les actions similaires :
Bandeau de la barre d’outils

L’alignement des titres de colonnes suit l’alignement du contenu et les listes éditables ont un style de grille afin de les distinguer des listes non éditables :
Fenêtre de liste non éditable
Fenêtre de liste éditable

Les champs binaires ont reçu le même traitement que les champs relation lors de la version précédente : seuls les boutons disponibles sont visibles et le bouton de sélection n’est disponible qu’une fois que le contenu précédent a été effacé.

Le client Web a maintenant les mêmes raccourcis clavier que le client bureau. La liste des raccourcis est affichée avec Ctrl+H.

Le client desktop, sous GTK+ 3, peut bénéficier d’un thème fourni par un fichier au format CSS.

Comptabilité

La création d’une année fiscale est une opération qui peut être complexe et qui doit être faite chaque année. Afin de la simplifier, un nouvel assistant a été ajouté pour la renouveler. Il prend l’année précédente et en fait une copie en ajoutant un an aux dates.
Assistant de renouvellement d’une année fiscale

Une option permet de faire redémarrer ou pas les numérotations des documents.

Une mention légale peut être configurée sur les taxes. Quand celle‐ci est utilisée sur une facture, la mention légale est ajoutée automatiquement.

Dans certains pays comme l’Espagne, il existe des taxes (équivalence surcharge) qui s’ajoutent en fonction du tiers et de la taxe déjà appliquée. Le système de règles ne permettait pas de les configurer facilement, il fallait créer une nouvelle taxe pour toutes les combinaisons possibles. Une nouvelle option a été ajoutée afin que la règle ne remplace plus la taxe par une autre mais l’ajoute simplement.

Les comptes client et fournisseur ne sont plus obligatoires lors de la création d’un tiers. Un message d’erreur est levé si une opération les requiert. Ce changement fait partie d’une tendance générale du développement de Tryton qui est de limiter au maximum les contraintes.

Le grand livre et le compte de résultat sont aussi disponibles sur une plage de dates en plus des périodes comptables. Il est aussi possible maintenant de faire des recherches sur les montants du grand livre pour, par exemple, n’avoir que les comptes avec une balance non nulle.

Pour les Belges, Tryton génère le relevé à la TVA des opérations intracommunautaires et la liste annuelle des clients assujettis à la TVA.

L’importation des extraits de comptes au format CODA est pris en charge (d’autres formats vont suivre dans les prochaines versions).

Le paiement avec Stripe a reçu beaucoup d’attention :

  • il est possible de créer des paiements manuellement ;
  • la source du client peut être sélectionnée, avant c’était Stripe qui en choisissait une par défaut ;
  • le paiement en deux étapes a été intégré, il permet de réserver le montant sur la carte de crédit dans un premier temps et de le capturer par la suite.

L’annulation d’un relevé dé-réconcilie automatiquement les mouvements liés. Ça simplifie grandement la tâche pour l’utilisateur.

Les relances peuvent maintenant envoyer un courriel automatiquement au tiers concerné. Le format du courriel peut‐être personnalisé par niveau de relance. Un historique de cet envoi est gardé dans la base de données.

Stock

On peut maintenant limiter un emplacement de stockage pour n’avoir qu’un seul niveau de sous‐emplacement. Ceci permet à l’algorithme de calcul des quantités de stock d’être optimisé et ainsi permettre de s’exécuter sur un très grand nombre d’emplacements tout en restant performant. C’est une condition nécessaire si l’on veut utiliser la stratégie de stockage chaotique.

En plus de pouvoir diviser les mouvements de stock, il est maintenant possible de diviser aussi les expéditions. Certains expéditeurs limitent la taille ou le poids de celles‐ci.

L’erreur qui est levée quand on exécute un mouvement sans origine ne l’est plus qu’une seule fois pour l’ensemble de mouvements au lieu d’un par mouvement.

La comptabilité de stock perpétuelle gère aussi les retours directs de livraison.

Afin de pouvoir entrer des mouvements passés (ex : reprise d’historique), la date effective d’un mouvement peut être modifiée par l’utilisateur (par défaut, c’est la date du jour).

Il est maintenant interdit de désactiver un emplacement qui contient toujours une quantité de produit.

Tryton gère la consignation (ou [dépôt‐vente) de fournisseurs dans l’entrepôt de la société, mais aussi de la société dans l’entrepôt de ces clients. Quand des produits sont utilisés, la facture correspondante est automatiquement créée.

Afin de gérer certains emplacements de stockage comme les palettes, les livraisons internes peuvent déplacer les emplacements marqués comme mobiles.

Achat

Les ruptures de stock des fournisseurs ne sont plus planifiées. Avant elles l’étaient pour la même date que l’ordre initial, mais c’est une supposition trop optimiste : si le fournisseur a déjà manqué un réapprovisionnement, on ne peut pas supposer qu’il sera dans les temps pour la prochaine fois.

Les ordres d’achats confirmés sont automatiquement traités grâce à une tâche planifiée.

Vente

Les ruptures de stock des livraisons sont planifiées pour le jour même. Avant elles étaient planifiées pour la même date que l’ordre initial, mais cette date est très probablement dans le passé et donc le calcul de réapprovisionnement risque de les manquer. Le parti pris est d’essayer de tenter de l’exécuter au plus tôt.

Les ventes confirmées sont automatiquement traitées grâce à une tâche planifiée. Auparavant, en cas de mélange de services et de biens, le coût de la livraison pouvait être facturé en même temps que les services. Maintenant, le coût de livraison est facturé seulement si une livraison a été effectuée.

La vérification des quantités de stock des produits vendus ignore les produits qui sont considérés comme consommables.

Il est maintenant possible d’enregistrer des paiements sur la vente avant la création de la facture. Dans ce cas, la vente est automatiquement validée quand on reçoit l’autorisation des paiements pour le montant total de la vente. Cette fonctionnalité est principalement utilisée pour gérer le flux de paiement de site d’e‐commerce.

Des tolérances de sur‐expédition ou de sous‐expédition pour les ventes peuvent être configurées. Si la quantité expédiée d’une ligne de vente est dans la tranche de tolérance, celle‐ci sera considérée comme complètement expédiée et aucun autre ordre de livraison ne sera créé. En revanche, si la quantité expédiée dépasse la tolérance, un avertissement (warning) est levé.

Notification

Cette nouvelle fonctionnalité permet d’envoyer des courriels aux tiers (ou utilisateurs) liés à un enregistrement en fonction du déclenchement de conditions prédéfinies. Le courriel peut inclure n’importe quel rapport de l’enregistrement en question. Cette fonctionnalité permet, par exemple, d’envoyer automatiquement les factures aux clients dès qu’elles sont enregistrées en comptabilité.

Changements pour les développeurs

Le serveur gère les colonnes de type JSON au lieu de TEXT pour les champs dictionnaire. Cela permet de tirer profit des fonctions spécifiques de la base de données pour ces champs.

Le back‐end SQLite prend en charge les fonctions alter_type() et alter_size(). L’implémentation recrée la table avec les nouveaux types et réinsère l’ancien n‐uplet (tuple).

Grâce à la prise en charge de la dernière version de Relatorio, Tryton gère les Flat OpenDocuments comme modèle de documents pour une meilleure intégration dans les gestionnaires de code source, car les fichiers sont des fichiers plats XML au lieu de ZIP.

Les modèles de documents peuvent être configurés pour s’appliquer sur un seul enregistrement. Dans le cas d’une requête sur plusieurs enregistrements concernant un rapport, le serveur génère un fichier ZIP contenant un fichier par enregistrement. Cette fonctionnalité est utilisée pour les factures qui doivent être archivées de manière unique.

Une nouvelle méthode get_email() a été ajoutée au module report. Elle retourne une instance de courriel basée sur le modèle de rapport. Le courriel peut être en plusieurs langues et, si le modèle est en HTML, une version en texte brut est ajoutée automatiquement.

La sécurité des sessions est augmentée en passant à 32 octets aléatoires (256 bits).

Une protection contre le déni de taille de requête a été ajoutée, et celle‐ci est activée par défaut. Les requêtes non authentifiées sont limitées à 2 Mio et celles authentifiées à 2 Gio. Les tailles sont, bien entendu, configurables.

Afin de simplifier l’utilisation comme application WSGI, les variables d’environnement TRYTOND_LOGGING_CONFIG et TRYTOND_DATABASE_NAMES ont été ajoutées.

Tryton est prêt pour la nouvelle version 10 de PostgreSQL. Cette version a changé l’interface interne de gestion des séquences, ce qui a poussé à déplacer cette gestion dans le back‐end et ainsi prendre en charge plusieurs versions de manière transparente.

Certaines méthodes ne peuvent pas être appelées sur une liste d’enregistrements qui contient des doublons. Mais, souvent, les développeurs ne pensent pas à vérifier cette contrainte. Afin de se protéger de ce type de bogue, tous les appels RPC sont vérifiés sur l’unicité des identifiants. Les méthodes de bouton et de transition de workflow contiennent une précondition (assert) pour détecter les problèmes lors du développement sans avoir d’impact sur les performances en production.

Les modules externes qui implémentent de nouveaux back‐end peuvent enregistrer de nouveaux tests via un point d’entrée spécifique aux jeux de tests standards.

La commande trytond-admin a une nouvelle option --install-dependencies qui permet d’installer automatiquement les dépendances manquantes quand on met à jour la base de données. Les modules qui n’existent plus sont aussi supprimés.

L’utilisateur root peut se comporter comme n’importe quel employé de n’importe quelle société.

Comme Python 3.3 a atteint sa fin de vie, sa prise en charge a été supprimée. En revanche, la prise en charge de Python 3.6 a été ajoutée.

Aller plus loin

  • # Gestion de la production

    Posté par  . Évalué à 3. Dernière modification le 07 novembre 2017 à 07:43.

    Tryton deviendra encore plus intéressant quand il y aura un module de gestion de la production (nomenclatures, gammes de fabrication, lancement des OF, pointage des temps de fabrication sur les opérations…) et un module de gestion de la qualité (non conformités…).

    • [^] # Re: Gestion de la production

      Posté par  (site web personnel) . Évalué à 4. Dernière modification le 09 novembre 2017 à 00:37.

      • [^] # Re: Gestion de la production

        Posté par  . Évalué à 2.

        Bonjour,

        Ayant un besoin, j'ai une question :
        Est ce que le système de nomenclature est multi-niveau ?
        En d'autre terme : peut on inclure des nomenclatures dans d'autres nomenclatures ?

        C'est pour gérer la fab de carte électroniques modulaires et gérer le stock de composants associé.
        Cela vous parait il adapté ?

        Merci par avance du retour d'expérience.
        Philippe.

        • [^] # Re: Gestion de la production

          Posté par  . Évalué à 2.

          Au pire, tu crées un article pour chaque sous-ensemble.

        • [^] # Re: Gestion de la production

          Posté par  (site web personnel) . Évalué à 3.

          Oui c'est multi-niveau en passant par un produit intermédiaire. Et le calcul d’approvisionnement est récursif tant qu'il y a des nouvelles demandes crées.
          Par contre, il faut configurer une période d'approvisionnement suffisamment long pour tenir compte de nombre de niveau et du temps de production de chacun.
          Par contre, il n'y a pas de base le nomenclature fantôme mais ça ne devrait pas être trop compliqué à ajouter.

          • [^] # Re: Gestion de la production

            Posté par  . Évalué à 1.

            Merci.
            Je pense que je vais être obligé de monter une démo pour valider si cela s'approche assez de mes besoins réels.
            En tout cas ça a l'air pas mal comme outil.

          • [^] # Re: Gestion de la production

            Posté par  . Évalué à 2. Dernière modification le 11 novembre 2017 à 17:26.

            Dans le stock, on peut réceptionner des commandes en kg et incrémenter le stock en mètres (coefficient de conversion) ?
            On peut valoriser le stock suivant le PMP ou suivant le dernier prix d'achat ?
            Le PMP ne se met à jour que sur les mouvements adéquats (pas lors d'un changement d'emplacement par exemple) ?

            • [^] # Re: Gestion de la production

              Posté par  (site web personnel) . Évalué à 3.

              Dans le stock, on peut réceptionner des commandes en kg et incrémenter le stock en mètres (coefficient de conversion) ?

              Pas encore. Mais la fonctionnalité a déjà été évoquée et elle consisterait à utiliser un champs calculer.

              On peut valoriser le stock suivant le PMP ou suivant le dernier prix d'achat ?

              Les méthodes implémentées sont par prix fixe, prix moyen pondéré et le FIFO.
              Le prix de dernier achat ne devrait pas être compliqué à faire (pas sûr que ce soit autoriser). Le problème principal serait de définir ce que ça veut dire précisément. Est-ce qu'on prend la date de l'achat, de la réception ou de la facturation comme référence etc.

              Le PMP ne se met à jour que sur les mouvements adéquats (pas lors d'un changement d'emplacement par exemple) ?

              Uniquement quand un produit est réceptionné depuis un fournisseur vers un emplacement de l'entrepôt.

              • [^] # Re: Gestion de la production

                Posté par  . Évalué à 2. Dernière modification le 12 novembre 2017 à 13:30.

                S'il continue sur ce chemin et reste libre, ça devient en effet un ERP très très intéressant.

  • # Tryton et ERPNext ?

    Posté par  . Évalué à 3.

    Je cherche une plateforme typée ERP/CRM comme base pour des développements spécifiques.
    Odoo est un peu trop captif tant sur le modèle économique que sur l'écosystème des partenaires.
    La démarche d'ERPNext et de son framework frappé semble du coup intéressante.
    Comment se positionne Tryton par rapport à ERPNext ?

    • [^] # Re: Tryton et ERPNext ?

      Posté par  (site web personnel) . Évalué à 3. Dernière modification le 09 novembre 2017 à 00:40.

      Tryton se veut bien plus modulaire et flexible pour des développements spécifiques. Car le cœur ne possède pas de logique métier, tout est développé avec des modules. Les modules de Tryton peuvent littéralement modifier n'importe quel modèle (class) du système.
      Or ERPNext a une démarche plus monolithique et fonctionne avec des hooks prévus. Il ne pousse pas la modularité au même niveau.

  • # tryton vs ?

    Posté par  . Évalué à 2.

    Bonjour

    Par rapport à quels erp du marché tryton se situerait il ?

    La démo (du lien indiqué) me montrant un erp très très light.

    • [^] # Re: tryton vs ?

      Posté par  (site web personnel) . Évalué à 5.

      La démo n'a que les modules les plus courant activés (26/118). En se connectant en tant que administrateur (admin:admin), on peut activer d'autres modules.
      Sinon pour avoir une idée de l'étendue de ces fonctionnalités, on peut consulter les business cases.

  • # Documentation

    Posté par  (site web personnel) . Évalué à 2.

    Parfais je suis pil en recherche d'un ERP. Je créé un petit container basé sur debian strech, un coup de pip install trytond, apt install postgresql… C'est à partir de là que la configuration de tryton devient obscurs.

    La doc est bien là mais c'est comme si cétait plus une prise de note pour faire la rédaction de la doc plus tard que vraiment une procédure d'installation.

    Born to Kill EndUser !

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.