2.1 Nouvelles fonctionnalités pour les utilisateurs INTELLIGENCE ARTIFICIELLE ET ASSISTANT MCP : NOUVEAU : Serveur MCP expérimental et assistant IA intégrés directement dans Keatic ERP (#37888). MCP (Model Context Protocol) permet à Keatic ERP d’exposer ses données à un assistant IA externe (tel que Claude), afin que celui-ci puisse interagir avec l’ERP en langage naturel. NOUVEAU : Outil vérification orthographique assistée par IA sur les zones de texte (#37692). Une action IA peut relire et corriger automatiquement la rédaction d’un document ou d’un email. NOUVEAU : Les outils IA sont disponibles directement dans l’éditeur de messages des tickets. NOUVEAU : Des exemples de modèles IA sont affichés dans la page de configuration, pour aider au paramétrage des différents fournisseurs (OpenAI, Ollama, etc.). NOUVEAU : Ajout d’un outil de comptage pour l’IA (utilisé par le serveur MCP pour dénombrer des objets Keatic ERP). NOUVEAU : Ajout du picto “Assistant IA” dans l’interface pour identifier les zones et boutons liés à l’IA. Astuce : Ce que ça apporte : Le serveur MCP expérimental ouvre la voie à une utilisation de Keatic ERP en langage naturel : « Crée-moi un devis pour le client Dupont », « Donne-moi les factures impayées de ce mois », etc. C’est une révolution dans la façon d’interagir avec l’ERP, sans nécessiter de formation à l’interface. SÉCURITÉ ET LOGS INALTÉRABLES : NOUVEAU : Utilisation d’un algorithme de hachage v2 basé sur SHA-256/HMAC pour les logs inaltérables (#37725). Cette évolution renforce la résistance aux falsifications du journal d’audit certifiable. NOUVEAU : Affichage de la valeur cumulée (lifetime amount) sur la liste des logs inaltérables. Il est ainsi possible de vérifier en un coup d’œil la cohérence des montants enregistrés. NOUVEAU : Amélioration visuelle significative des pages de logs inaltérables (meilleure présentation, couleurs, navigation). NOUVEAU : Restriction IP par plage CIDR (#36855) : il est désormais possible de limiter l’accès à Keatic ERP à des plages d’adresses IP spécifiques (ex : 192.168.1.0/24), plutôt que seulement à des adresses IP uniques. NOUVEAU : Le niveau de protection CSRF passe de 2 à 3 ( MAIN_SECURITY_CSRF_WITH_TOKEN ), renforçant la vérification des tokens anti-falsification sur les formulaires. NOUVEAU : L’option MAIN_DISALLOW_UNSECURED_SELECT_INTO_EXTRAFIELDS_FILTER est activée par défaut et déplacée dans le fichier conf.php. Cela bloque les filtres non sécurisés sur les extrachamps, évitant des injections SQL potentielles. NOUVEAU : Début d’implémentation de MAIN_RESTRICTHTML_ONLY_VALID_HTML =2 pour bloquer les balises HTML dangereuses dans les zones de contenu riche. NOUVEAU : L’utilisation de l’éditeur riche ( WYSIWYG ) est désactivée par défaut sur les pages publiques, pour limiter les risques XSS sur les formulaires ouverts à l’extérieur. NOUVEAU : Amélioration des outils de vérification d’intégrité des fichiers Keatic ERP (contrôle des checksums des fichiers du core). COMPATIBILITÉ : NOUVEAU : Bilan comparatif avec instantané de clôture (#37382) : la balance comparative peut afficher un exercice clos comme référence, permettant de comparer l’exercice courant avec le bilan de clôture de l’exercice précédent. NOUVEAU : Message de confirmation avec lien après la validation d’une écriture comptable (#37383) : une fois une transaction validée, Keatic ERP affiche un lien direct vers l’écriture créée pour faciliter la navigation. NOUVEAU : Options d’export par défaut dans la comptabilité (#37938) : les préférences d’export comptable (format, colonnes, plage de dates) peuvent être sauvegardées. NOUVEAU : Système de multi-rapports comptables (#37248) : il est possible de créer et de gérer plusieurs formats de rapports comptables différents. NOUVEAU : Modèles de transactions (système complet, partie SQL incluse) (#37286, #36807) : des gabarits d’écritures comptables peuvent être définis pour saisir rapidement des opérations récurrentes. NOUVEAU : Choix entre comptabilité d’engagement et comptabilité de trésorerie (#37050) : l’option permet de basculer entre les deux méthodes de comptabilisation. NOUVEAU : Lettrage sur le compte général (#38040) : le rapprochement entre écritures peut désormais se faire directement sur un compte comptable général (pas seulement sur le compte auxiliaire). NOUVEAU : Recherche AJAX sur les comptes auxiliaires dans la liste des écritures (#37570) : un champ de recherche à la saisie permet de filtrer rapidement les comptes auxiliaires. NOUVEAU : Option de dissociation des ventes comptant (#38160) : les ventes au comptant peuvent être comptabilisées séparément des ventes à crédit. NOUVEAU : Export Quadra – option pour n’exporter le compte tiers que s’il n’existe pas déjà (#38208), évitant les doublons lors de l’import dans les logiciels compatibles Quadra. NOUVEAU : Hook sur le libellé d’une opération comptable (#37838), permettant aux modules tiers de personnaliser le libellé des écritures générées. NOUVEAU : Les codes comptables d’un produit peuvent être réduits/masqués dans la fiche produit, pour gagner de la place lorsque de nombreux codes sont définis. NOUVEAU : Rapport TVA – Bouton pour tout réduire / tout développer par taux de TVA (#36946), utile lorsque de nombreux taux coexistent. NOUVEAU : Ajout de la colonne einvoice_vate dans le dictionnaire de TVA : permet d’associer un code TVA aux formats de facturation électronique. NOUVEAU : Ajout d’une section d’aide pour trouver les modules de facturation électronique (e-invoice) dans la page de configuration, selon le pays. NOUVEAU : Ajout des cotisations sociales pour la Suisse (#38236). FACTURES ET PAIEMENTS : NOUVEAU : Envoi automatique de la facture générée depuis un modèle récurrent (#36967). Une option permet d’envoyer la facture par email automatiquement au moment de sa création par le cron. NOUVEAU : Colonne “Compte bancaire” dans les listes de factures clients et fournisseurs (#36718), permettant de voir d’un coup d’œil le compte associé à chaque facture. NOUVEAU : Action de masse pour annuler des factures via avoir (#37852) : depuis la liste des factures, il est possible de sélectionner plusieurs factures et de les annuler en créant les avoirs correspondants. NOUVEAU : La liste des factures utilise un sélecteur select2 multiselection pour le filtre de statut (#36834) : on peut filtrer simultanément sur plusieurs statuts (brouillon, validé, payé…). NOUVEAU : La liste des factures fournisseur utilise également le sélecteur select2 multiselection pour le filtre de statut (#36887). NOUVEAU : Envoi d’email en masse depuis la liste des factures d’un produit donné (#37937) : on peut sélectionner toutes les factures contenant un produit spécifique et envoyer un email groupé. NOUVEAU : Protection contre la modification du total d’une facture validée : un message d’erreur est affiché si une action tente de modifier le total d’une facture déjà validée. NOUVEAU : Option pour masquer le prix unitaire de la remise exceptionnelle sur les lignes de facture (#37066). NOUVEAU : Suppression du modèle PDF “crabe” (legacy) : ce vieux modèle de facture n’est plus proposé dans Keatic ERP. NOUVEAU : Affichage du total en devise secondaire sur le paiement (#37070) : lorsqu’un paiement est effectué dans une devise autre que la devise principale, le montant en devise secondaire est affiché. NOUVEAU : Ajout d’un champ “Commentaires” dans la popup de confirmation lors de l’ajout d’un paiement en action de masse (#37594). NOUVEAU : Variables de substitution pour les acomptes (dépôts) (#37546), permettant de personnaliser les emails liés aux factures d’acompte. NOUVEAU : Extrachamps sur les paiements divers (#38260) : les champs personnalisés sont maintenant disponibles sur les paiements divers (pas seulement sur les factures). NOUVEAU : Nouveau statut “Annulé” sur les prélèvements directs (direct debit). NOUVEAU : Filtre sur le statut des prélèvements directs dans la liste. NOUVEAU : Possibilité de choisir les demandes de paiement à inclure dans un virement bancaire (#36814) : lors de la constitution d’un fichier de virements, on peut sélectionner unitairement les lignes à inclure. NOUVEAU : Augmentation de la longueur de la description : 12 caractères pour les paiements par carte, 22 pour le SEPA. NOUVEAU : Raccourci vers les prélèvements à clôturer sur la page d’accueil (widget/vignette). PRÉLÈVEMENTS ET VIREMENTS (SEPA) : NOUVEAU : Hook dans BonPrelevement::EnregDestinataireSEPA() (#37419) : les modules tiers peuvent modifier le contenu des fichiers SEPA générés. NOUVEAU : Possibilité de choisir les demandes à inclure dans un fichier de virement bancaire (#36814). VENTES, ACHATS ET COMMANDES : NOUVEAU : Gestion des remises sur toutes les lignes pour les éléments fournisseur (#36954) : la remise peut être appliquée en masse sur toutes les lignes d’une commande ou facture fournisseur. NOUVEAU : Indicateurs visuels sur la fiche commande client (#37460) : des icônes et codes couleur signalent l’état de chaque ligne (livrée, à livrer, etc.). NOUVEAU : Ajout du champ libellé dans la méthode addline des commandes fournisseur (#36544). NOUVEAU : Liens de téléchargement externes activables pour les documents fournisseur, avec exposition des variables de substitution correspondantes (#37386). NOUVEAU : Possibilité de lier une proposition commerciale à un participant de conférence ou à un exposant (#38359). NOUVEAU : Affichage du nom du tiers avec sa référence dans les objets liés de toutes les commandes fournisseur (#36952) et de tous les types de documents (#37906). NOUVEAU : Ajout de la date de livraison prévue dans le bloc des objets liés d’une commande fournisseur (#38351). NOUVEAU : Répertoire de sortie (dir_output) mis à jour pour les factures fournisseur (#37841) et les commandes fournisseur (#37858). EXPÉDITIONS ET RÉCEPTIONS : NOUVEAU : Glisser-déposer pour gérer l’ordre des lignes d’une expédition en brouillon (#36311). NOUVEAU : Option cachée STOCK_EXPEDITION_NO_MORE_THAN_ORDER (#37604) : empêche de créer une expédition avec une quantité supérieure à celle commandée. NOUVEAU : Hooks dans la fiche réception (#37214) pour permettre aux modules tiers de personnaliser l’affichage ou le traitement des réceptions. TIERS ET CONTACTS : NOUVEAU : La fiche compte bancaire d’un tiers demande maintenant le pays, l’état/région, la devise et le statut du compte (#38031), pour une meilleure conformité bancaire internationale. NOUVEAU : La valeur par défaut du type de tiers passe à “Particulier” (au lieu de “Société”) si aucune donnée ne permet de deviner (#Keatic ERP). Cela évite de créer de faux “Sociétés” sans raison. NOUVEAU : Limite de taille de la liste déroulante des tiers ( THIRDPARTY_LIMIT_SIZE ) : option pour éviter les ralentissements sur les bases avec de nombreux tiers. NOUVEAU : Liste des contacts – Ajout des colonnes Région et État/Province (#37553). NOUVEAU : Import/export des tiers – Ajout de la localisation Incoterm et possibilité d’importer avec le code incoterm (#37969). NOUVEAU : Ajout du champ numéro EUID (European Unique Identifier) sur les fiches tiers (#37222, #36997). L’EUID est l’identifiant européen unique des entreprises, utilisé dans le registre des sociétés européen. NOUVEAU : Affichage du nom alias entre parenthèses dans les listes déroulantes de sélection de tiers (#37997), facilitant l’identification des entités avec des noms commerciaux différents. NOUVEAU : Infobulle et meilleure traduction sur le champ référence côté tiers lors de la création d’un objet. NOUVEAU : La fiche tiers affiche un nouvel onglet avec les événements (agenda) auxquels le tiers participe comme attendee (participant) ou booth (exposant) (#37743). NOUVEAU : Champ “compte bancaire par défaut” sur le formulaire de création de tiers (#37866) : on peut directement associer un RIB lors de la création du tiers. NOUVEAU : Le numéro de téléphone du tiers est disponible dans la liste des contrats. PRODUITS, STOCKS ET NOMENCLATURES : NOUVEAU : Module Transfert de stock stabilisé avec couverture fonctionnelle complète (#37557) : le module expérimental de transfert de stock passe en version stable. NOUVEAU : Ajout des miniatures et de la valeur de stock dans la liste des catégories produit (#37510). NOUVEAU : Affichage d’une image externe liée sur la fiche produit (#37574) : si un produit a une URL d’image externe, elle est affichée directement sur sa fiche. NOUVEAU : Support des sous-totaux sur plus d’objets (#34125) : les lignes de type sous-total (product_type = 9) sont maintenant gérées sur davantage de types de documents. NOUVEAU : La vue arborescente des besoins nets de la BOM est affichée par position de ligne (#37459), facilitant la lecture des nomenclatures complexes. NOUVEAU : Export des prix multi-tarifs (multiprices) d’un produit avec les extrachamps (#37595). NOUVEAU : Options d’impression des étiquettes code-barres des produits (#36656) : format, taille, nombre d’exemplaires configurables. NOUVEAU : Possibilité d’enregistrer un mouvement de stock à 0 (#36812) : utile pour justifier formellement l’absence de mouvement sur une période. NOUVEAU : Tags et catégories sur les OFs (ordres de fabrication / Manufacturing Orders) (#36816). INTERVENTIONS : NOUVEAU : Ajout des tags et catégories sur les interventions (#38158) : les interventions peuvent maintenant être classées par catégorie, comme les autres objets Keatic ERP. NOUVEAU : Glisser-déposer de fichiers directement sur la fiche intervention (#38138). NOUVEAU : Bouton “Déplacer vers” dans l’administration des fiches d’intervention (#38314) : permet de réassigner une intervention à un autre contexte. NOUVEAU : Fusion des deux étapes de création d’une intervention en un seul formulaire unifié (#38284) : l’UX de création est simplifiée. NOUVEAU : Le modèle Fichinter passe en version stable (#36873) : le modèle de génération PDF pour les interventions n’est plus expérimental. TICKETS : NOUVEAU : Le Portail Web supporte maintenant les interventions et les tickets (#37538) : les clients peuvent consulter et soumettre des tickets/interventions depuis le portail. NOUVEAU : Possibilité d’ajouter des contacts externes sur les événements des tickets (#37870). NOUVEAU : Les outils IA sont disponibles dans l’éditeur de messages des tickets. NOUVEAU : Le message initial de création d’un ticket est affiché comme un message normal dans la vue Événements/Agenda (#37713), uniformisant la lecture de l’historique. NOUVEAU : La date de lecture d’un ticket est mise à jour automatiquement lorsque son statut change (#37470). CONTRATS : NOUVEAU : Ajout d’un total consolidé sur les contrats (#38249) : la fiche contrat affiche un récapitulatif des montants totaux des lignes de services. NOUVEAU : Ajout de statistiques sur les contrats (#38136) : une page de statistiques est accessible depuis les contrats pour analyser les tendances. NOUVEAU : Le numéro de téléphone du tiers est affiché dans la liste des contrats. RESSOURCES HUMAINES ET SALAIRES : NOUVEAU : Génération de PDF pour les fiches de salaires (#36785) : le module Salaires peut maintenant produire des bulletins de salaire en PDF. NOUVEAU : Raccourcis rapides de navigation sur les dates dans le module Salaires (#37704) : boutons “Mois précédent / Mois en cours / Mois suivant” pour naviguer rapidement entre les périodes. NOUVEAU : Import du solde de congés (#37011) : le solde initial de congés d’un employé peut être importé via l’outil d’import. NOUVEAU : La date de création peut être renseignée lors de la mise à jour d’une note de frais (#36936). NOUVEAU : Ajout d’un traitement batch pour l’envoi d’informations RH (#37542). NOUVEAU : La classe Holiday gère maintenant le champ date_create (#36918). ADHÉRENTS : NOUVEAU : Affichage de la date de fin d’adhésion dans la liste des partenariats. NOUVEAU : Affichage du membre dans la liste des partenariats. NOUVEAU : Ajout d’une colonne libellé dans la liste des cotisations d’un adhérent (#38289). NOUVEAU : Action de masse pour les abonnements adhérents – libellé de type textline (#38288). NOUVEAU : L’infobulle sur la cotisation d’un adhérent inclut maintenant le libellé (#38291). NOUVEAU : Filtre sur les dates de début et de fin d’adhésion (#38309) : dans la liste des adhérents, on peut filtrer par période d’adhésion. NOUVEAU : Il est maintenant possible de lier les cotisations d’adhésion à des factures, des commandes ou des propales (#37712). NOUVEAU : Bouton “Plus” sur la page des statistiques adhérents. NOUVEAU : Champ texte de recherche sur le libellé (#38306) dans les listes d’adhérents. PORTAIL WEB : NOUVEAU : Le portail web supporte les interventions et les tickets (#37538). NOUVEAU : Ajout d’un captcha sur les formulaires du portail web (#37726), pour se protéger des soumissions automatisées. NOUVEAU : Hooks sur les formulaires de liste du portail web (#36844) : les modules tiers peuvent personnaliser l’affichage des listes dans le portail. NOUVEAU : L’éditeur riche est désactivé par défaut sur les pages publiques (sécurité XSS). AGENDA ET COMMUNICATIONS : NOUVEAU : Possibilité d’activer ou désactiver les calendriers externes individuellement par calendrier. NOUVEAU : Prise en charge de la variable __AUTHOREMAIL__ dans les notifications fixes (#37285) : l’email de l’auteur de l’action peut être utilisé dans les templates de notification. NOUVEAU : Option globale pour désactiver les emails directement sur chaque page de configuration d’emails. Utile pour les environnements de test. NOUVEAU : Nouvelle constante MAIL_MASS_ACTION_SEARCH_MOST_RECENT_FILE_IF_NOT_FOUND (#36813) : lors d’un envoi d’email en masse, si le fichier joint attendu n’est pas trouvé, Keatic ERP peut chercher automatiquement le fichier le plus récent portant le même nom. NOUVEAU : Le premier message d’un ticket est affiché dans la vue Agenda comme n’importe quel autre message, pour uniformiser l’historique (#37713). INTERFACE UTILISATEUR ET ERGONOMIE : NOUVEAU : Refonte visuelle de l’outil d’import/export (look and feel v24) : interface plus moderne et plus claire. NOUVEAU : Les catégories affichent leur libellé court par défaut, le libellé complet étant disponible au survol (infobulle). Améliore la lisibilité des longues arborescences. NOUVEAU : Les interrupteurs on/off peuvent utiliser des couleurs personnalisées dans les pages de configuration (setup factory). NOUVEAU : Lors de la création d’une catégorie, le type de catégorie est sélectionnable directement dans le formulaire (#38206). NOUVEAU : Quand il n’y a qu’un seul modèle de document, la sélection de modèle n’est plus affichée lors de la création : le modèle est appliqué automatiquement. NOUVEAU : Un séparateur visuel distingue les statuts Gagné/Perdu des autres statuts d’opportunité dans les listes. NOUVEAU : Prise en charge du format d’image AVIF (#37014) : le format AVIF (successeur du WebP, meilleure compression) est accepté dans les téléchargements d’images. NOUVEAU : Affichage du nom du tiers avec sa référence dans les blocs d’objets liés de tous les types de documents (#37906), pour une identification plus précise. NOUVEAU : Ajout d’un texte d’aide (helptext) dans la fonction formconfirm (#38435) : les popups de confirmation peuvent maintenant afficher un texte explicatif supplémentaire. NOUVEAU : Forçage de l’affichage des formulaires d’ajout et de liaison de fichiers dans l’onglet “Fichiers liés” (#38100), même si aucun fichier n’est encore présent. NOUVEAU : Le compteur d’impression est maintenant calculé de façon synchrone dans documents.php et receipt.php (refactorisation). NOUVEAU : Affichage du lien des modules en liste noire dans une infobulle. IMPORT / EXPORT : NOUVEAU : Mode d’import CSV/XLSX avec désactivation de l’exécution des triggers (#37367) : option pour importer des données sans déclencher les automatismes (utile pour les migrations massives). NOUVEAU : Les chaînes de caractères sont automatiquement nettoyées (trim) lors de l’import : les espaces en début et fin de chaque valeur sont supprimés. NOUVEAU : Simplification du processus d’import en supprimant certaines étapes redondantes (#36811). NOUVEAU : Meilleur aspect visuel de l’outil d’import/export (v24 look and feel). CONNEXION ET AUTHENTIFICATION : NOUVEAU : Auto-création d’utilisateurs via OpenID Connect (OIDC) (#37314) : si un utilisateur s’authentifie via un fournisseur OIDC et qu’il n’existe pas encore dans Keatic ERP, son compte peut être créé automatiquement. NOUVEAU : Nouvelle règle MAIN_BUILD_LOGIN_RULE = 'flastname' pour construire automatiquement le login d’un utilisateur à partir de la première lettre du prénom + le nom de famille. NOUVEAU : Possibilité de demander et forcer un changement de mot de passe à la prochaine connexion (#37196). DOLISTORE ET MODULES : NOUVEAU : Installation directe des modules communautaires et gratuits depuis le DoliStore (#38357) : il est possible d’installer un module en un clic depuis l’interface Keatic ERP, sans passer par un téléchargement manuel. NOUVEAU : Nouveau module expérimental “Quick memo” : permet de coller des post-it sur n’importe quelle page de Keatic ERP (#37422). Idéal pour laisser des notes contextuelles sur un écran particulier.