Nous sommes fiers d'annoncer la sortie de la version 7.8 de Tryton. Cette version apporte de nombreuses corrections de bugs, des améliorations de performances et quelques ajustements. Vous pouvez l'essayer sur le serveur de démonstration, utiliser l'image Docker ou le télécharger ici. Comme d'habitude, la mise à niveau à partir des séries précédentes est entièrement prise en charge.
Voici une liste des changements les plus notables :
Modifications pour l'utilisateur
Client
Nous avons ajouté un menu déroulant au client contenant les notifications de l'utilisateur. Désormais, lorsqu'un utilisateur clique sur une notification, celle-ci est marquée comme lu pour cet utilisateur. Nous avons également mis en place un compteur de messages non lus dans le client et affichons une notification utilisateur lorsque le serveur envoie une nouvelle notification.
Les utilisateurs peuvent désormais s'abonner à une discussion sur des documents en activant l'icône cloche de notification. La fonctionnalité de discussion a été activée pour de nombreux documents tels que les ventes, les achats et les factures.
Désormais, nous affichons les boutons qui sont exécutés sur une sélection d'enregistrements au bas des listes.
Nous avons désormais mis en place un moyen plus simple de rechercher les champs de relation vides : La requête « Warehouse: = » renvoie désormais les enregistrements sans entrepôt au lieu du résultat précédent qui renvoyait les enregistrements avec des entrepôts dont les noms étaient vides. Le résultat précédent peut être recherché à l'aide de la requête suivante : « Warehouse.Record Name: = ».
Nous avons désormais remplacé l'ID interne par le nom de l'enregistrement lors de l'exportation des champs Many2One et Reference vers CSV. L'exportation des champs One2Many et Many2Many utilise quant à elle une liste de noms d'enregistrements.
Nous avons également rendu possible l'importation du contenu du champ One2Many à l'aide d'une liste de noms (comme pour le champ Many2Many).
Web
Nous avons fait en sorte que les raccourcis clavier fonctionnent désormais également sur les fenêtres modales.
Serveur
Nous avons également mis en place des notifications utilisateur pour les tâches planifiées. Chaque utilisateur peut désormais s'abonner pour être averti par les tâches planifiées qui génèrent des notifications. Les notifications apparaîtront dans le menu déroulant du client.
Comptabilité
Sur les factures fournisseurs, il est désormais possible de définir une référence de paiement et de la valider. Par défaut, la référence créancier est prise en charge. Sur les factures clients, Tryton génère automatiquement une référence de paiement. Il utilise par défaut le format référence créancier et la communication structurée pour les clients belges. La référence de paiement peut être validée pour des formats définis tels que la « référence créancier ». Elle peut également être utilisée dans les règles de paiement.
Nous prenons désormais en charge la communication structurée belge sur les factures, les paiements et les règles de relevé. Cela permet d'automatiser le processus de rapprochement.
Nous avons désormais implémenté une fonctionnalité qui permet, lors d'une succession de paiements, à Tryton de demander la date de compensation au lieu d'utiliser simplement aujourd'hui.
Nous enregistrons désormais l'adresse du tiers dans le mandat SEPA au lieu d'utiliser uniquement l'adresse du premier tiers.
Nous avons ajouté un bouton dans la catégorie comptable pour ajouter ou supprimer facilement plusieurs produits.
Douanes
Nous prenons désormais en charge les agents en douane. Ils définissent une partie à laquelle l'entreprise délègue les formalités douanières entre deux pays.
Incoterm
Nous avons désormais ajouté l'ancienne version des Incoterms 2000, car certaines entreprises et certains services continuent de l'utiliser.
Nous autorisons désormais la modification des incoterms sur les expéditions des clients, à condition que celles-ci n'aient pas encore été expédiées.
Produit
Nous avons rendu la liste des variantes d'un produit triable. Cette fonctionnalité est utile pour le commerce électronique si vous souhaitez mettre en avant une variante spécifique.
Il est désormais possible de définir un prix catalogue et un prix brut différents pour chaque variante sans avoir recours à un module personnalisé.
Nous avons rendu le volume et le poids utilisables dans les formules de liste de prix. Cette fonctionnalité est utile pour inclure les taxes en fonction de ces critères.
Il est désormais possible de définir des nomenclatures fantômes (BOM) afin de regrouper les entrées ou sorties communes à différentes nomenclatures. Lorsqu'elle est utilisée dans une production, la nomenclature fantôme est remplacée par les matériaux correspondants.
Il est désormais possible de définir une production comme un démontage. Dans ce cas, le calcul à partir de la nomenclature est inversé.
Achats
Nous limitons désormais l'exécution de l'assistant de création d'achat aux demandes d'achat qui n'ont pas encore été achetées.
De même, nous limitons désormais l'exécution de l'assistant de création de devis aux demandes d'achat lorsqu'il n'est plus possible de les créer.
Il est désormais possible de créer un nouveau devis pour une demande d'achat qui en a déjà reçu un.
Nous avons désormais configuré le client pour qu'il ouvre les devis qui ont été créés par l'assistant.
Nous avons affiné le système d'approvisionnement : lorsqu'aucun fournisseur ne peut livrer à temps, le système choisit désormais le fournisseur le plus rapide.
Ventes
Il est désormais possible d'encoder les remboursements sur les commandes de vente.
Nous permettons désormais de regrouper les factures créées pour une commande de location avec les factures créées pour les commandes de vente.
Dans les lignes d'abonnement, nous avons désormais implémenté une colonne résumé similaire à celle des ventes.
Stock
Nous avons ajouté deux nouveaux rapports qui calculent l'inventaire et le taux de rotation des stocks. Nous trouvons cela utile pour optimiser et affiner les points de commande.
Nous avons désormais ajouté la prise en charge des expéditions internationales aux services d'expédition : DPD, Sendcloud et UPS.
Et nous avons désormais configuré Tryton pour générer une description d'expédition par défaut basée sur les catégories personnalisées des marchandises expédiées (avec un repli vers « Marchandises générales » pour UPS). Cela est utile pour les expéditions internationales.
Nous avons maintenant implémenté une fonctionnalité fusion des mouvements (un-split) pour corriger les mouvements de division (split) » erronés.
Nous permettons désormais d'annuler une livraison directe dans l'état done, comme pour les autres types d'expédition.
Boutique en ligne
Nous définissons désormais les Incoterm par défaut par boutique en ligne à définir sur les commandes de vente.
Nous avons ajouté une URL de statut aux ventes provenant d'une boutique en ligne.
Nous avons ajouté l'URL à chaque produit publié dans une boutique en ligne.
Nous avons ajouté un bouton sur vente depuis la boutique en ligne pour forcer une mise à jour depuis la boutique en ligne.
Nous avons apporté de nombreuses améliorations pour étendre notre prise en charge de Shopify :
- Prise en charge des remboursements de crédit
- Prise en charge des taxes sur les produits expédiés
- Ajout d'une option pour informer les clients de l'exécution de leur commande
- Ajout d'un ensemble de règles pour sélectionner le transporteur
- Prise en charge des produits de type « kit »
- Définition du prix « comparatif » à partir du prix hors promotion
- Définition de la langue du client pour la partie
- Ajout d'une URL d'administration à chaque enregistrement avec un identifiant Shopify
Nouveaux modules
EDocument Peppol
Le module EDocument Peppol fournit la base nécessaire à l'envoi et à la réception de documents électroniques sur le réseau Peppol.
EDocument Peppol Peppyrus
Le module EDocument Peppol Peppyrus permet d'envoyer et de recevoir des documents électroniques sur le [réseau Peppol](https://peppol.org/? target=_blank) grâce au service gratuit Peppyrus.
EDocument UBL
Le module EDocument UBL ajoute des documents électroniques provenant de UBL.
Vente Location
Le Module Vente Location gère les commandes de location.
Facture d'avancement de la vente ou de la location
Le module Facture d'avancement de la vente ou de la location permet de créer des factures d'avancement pour les commandes de location.
Douanes pour les expéditions de stock
Le module Douanes pour les expéditions de stock permet de générer des factures commerciales pour les retours clients et fournisseurs.
Point d'expédition des stocks
Le module Point d'expédition des stocks ajoute un point d'expédition aux expéditions.
Modifications pour l'administrateur système
Serveur
Nous avons désormais configuré le serveur pour qu'il diffuse les réponses JSON et gzip afin de réduire la consommation de mémoire.
La console trytond-console dispose désormais d'une option permettant d'exécuter un script à partir d'un fichier.
Nous avons remplacé la configuration [cron] clean_days par [cron] log_size. Désormais, le stockage des journaux des tâches planifiées dépend uniquement de leur taille et non plus de leur fréquence.
Nous avons modifié le processus de connexion afin qu'il envoie l'URL de l'hôte du bus. Ainsi, les clients n'ont plus besoin de passer par le navigateur pour gérer la redirection. Ce qui, de toute façon, ne fonctionnait pas sur les navigateurs récents.
Nous avons désormais rendu les sessions de connexion valides uniquement pour l'adresse IP du client qui les génère. Cela renforce la sécurité contre les fuites de session.
Nous laissons désormais le serveur définir un en-tête Message-Id dans tous les e-mails envoyés.
Produit
Nous avons ajouté un paramètre d'horodatage aux URL des images de produits. Cela permet de forcer l'actualisation des anciennes images mises en cache.
Boutique en ligne
Nous avons désormais ajouté des routes pour ouvrir les produits, les variantes, les clients et les commandes à l'aide de leur identifiant Shopify. Cela peut être utilisé pour personnaliser l'interface utilisateur d'administration afin d'ajouter un lien direct vers Tryton.
Modifications pour les développeurs
Serveur
Dans cette version, nous introduisons les notifications. Leurs messages sont envoyés à l'utilisateur dès leur création via le bus. Ils peuvent être liés à un ensemble d'enregistrements ou à une action qui s'ouvrira lorsque l'utilisateur cliquera dessus.
Nous avons désormais rendu possible la configuration d'un ModelSQL basé sur une table_query à matérialiser. La configuration définit l'intervalle auquel les données doivent être actualisées et un assistant permet à l'utilisateur de forcer une actualisation.
Cela est utile pour optimiser certaines requêtes pour lesquelles les données n'ont pas besoin d'être parfaitement à jour, mais qui pourraient bénéficier de certains index.
Nous enregistrons désormais les models, wizards et reports dans le fichier du module tryton.cfg. Cela réduit la consommation de mémoire du serveur. Il n'est plus nécessaire d'importer tous les modules installés, mais uniquement les modules activés.
Il s'agit également d'une première étape vers la prise en charge du typage avec la conception modulaire de Tryton.
Nous avons maintenant ajouté l'attribut multiple au <button> dans la vue tree. Lorsqu'il est activé, le bouton s'affiche en bas de la vue.
Nous avons maintenant implémenté la déclaration des Wizards en lecture seule. Ces assistants utilisent une transaction en lecture seule pour l'exécution et, de ce fait, aucun accès en écriture aux enregistrements n'est nécessaire.
Nous ne stockons désormais que des structures immuables dans le MemoryCache. Cela empêche la modification des données mises en cache.
Nous avons ajouté une nouvelle méthode à la Database pour effacer les propriétés mises en cache de la base de données. Cela est utile lors de l'écriture de tests qui modifient ces propriétés.
Nous utilisons désormais la syntaxe SQL FILTER pour les fonctions d'agrégation.
Nous utilisons désormais l'opérateur SQL EXISTS pour rechercher des champs Many2One avec l'opérateur de domaine where.
Nous avons introduit la méthode trytond.model.sequence_reorder pour mettre à jour le champ de séquence en fonction de l'ordre actuel d'une liste d'enregistrements.
Nous avons refactorisé trytond.config pour ajouter un cache. Il n'est plus nécessaire de récupérer la configuration en tant que variable globale pour éviter une dégradation des performances.
Nous avons supprimé la fonction has_window_functions de la Database, car cette fonctionnalité est prise en charge par toutes les bases de données compatibles.
Nous avons ajouté aux méthodes trytond.tools les méthodes pair et unpair, qui sont des implémentations équivalentes en Python de la méthode sql_pairing.
Proteus
Nous avons désormais implémenté la prise en charge du tri total dans Proteus Model.
Marketing
Nous avons désormais ajouté l'en-tête One-Click aux e-mails marketing afin de permettre aux destinataires de se désabonner facilement.
Ventes
Nous avons renommé les conditions de paiement anticipé en lignes pour plus de cohérence.
Boutique en ligne
Nous avons mis à jour le module Shopify afin d'utiliser l'API GraphQL, car leur API REST est désormais obsolète.





