Tous les projets

IDProjetCatégorie  ascTypeSévéritéPrioritéSystème d'exploitationRésuméÉtatBasée surDue pour la versionProgression
 708 BeDesk-ExpressApplicationGarde-fouCritiqueTrès hauteTous Vérifier le format des noms de base de données avant im ...Fermée16.4 (fork)17.0
100%
Description de la tâche

Certains utilisateurs accèdent aux fichiers de travail sur le disque dur via l’explorateur de fichier ou un autre logiciel et modifie les noms des bases de données.

Cela entraîne de nombreux problèmes.

Pour éliminer ces problème, il faut vérifier les noms de base de données avant restauration, avant importation et même avant d’ajouter les bases de données dans la liste proposée par la BeDesk-Starter.

 710 BeDesk-ExpressApplicationBugCritiqueTrès hauteTous Problème de création des numéros de dossier des nouveau ...Fermée17.0
100%
Description de la tâche

Problème de création des numéros de dossier des nouveau documents:

Lorsqu’on crée un nouveau document, il prend le numéro de dossier du dernier document précédent.

Problème!...


Confirmé.


Correctif via l’ajout d’un garde-fou (pre-store).

 735 BeDesk-ExpressApplicationBugCritiqueTrès hauteTous Ouverture de rapports sans aperçu visible Fermée17.017.1
100%
Description de la tâche

Ouverture de rapports sans aperçu visible.

Lorsqu’on ouvre l’outil “Rapports” la vue apparaît sans aperçu du rapport visible. On observe le fond gris uniquement (pas même de roulette de progression).

Toutefois, si on lance une impression, le rapport est bien imprimé.


Le souci se situe probablement dans la pile de tâches du rendu pour afficher l’aperçu.


NOTE : LORSQU’ON MODIFIE LA TAILLE DE LA FENÊTRE, L’APERÇU APPARAÎT.

L’aperçu est donc bien généré en arrière plan, même s’il n’apparaît pas.


Le problème se situe bien dans la pile de tâches de rafraîchissement de l’affichage lors de la création de l’aperçu.

Cette procédure est assez complexe et la dernière phase doit absolument être bloquante afin d’attendre la fin du rendu d’arrière plan.


Corrections réalisées...

Tests nécessaires.


 760 BeDesk-ExpressApplicationSuiviCritiqueTrès hauteTous FRANCE : Conformité lois des finances 2018 Fermée17.018.0
100%
Description de la tâche

L’administration a commenté l’obligation pour les assujettis à la TVA en France qui enregistrent les règlements de leurs clients au moyen d’un logiciel de comptabilité ou de gestion ou d’un système de caisse, d’utiliser à partir du 1er janvier 2018, des logiciels ou des systèmes satisfaisant à des conditions d’inaltérabilité, de sécurisation, de conservation et d’archivage des données.


MISE A JOUR : Novembre 2017

1. Qu'est-ce qu'un logiciel ou système de caisse ?

Éléments de réponse: Un logiciel ou un système de caisse est un système informatisé dans lequel un assujetti enregistre les livraisons de biens et les prestations de services ne donnant pas lieu à facturation au sens du BOI-TVA DECLA-30-20-10. Autrement dit, un logiciel ou un système de caisse est un système informatisé dans lequel un assujetti enregistre les opérations effectuées avec ses clients non assujettis.

Ainsi, les logiciels ou systèmes de caisse dans lesquels sont enregistrées les opérations effectuées avec des clients assujettis à la TVA (clients professionnels) ne relèvent pas du champ d’application du dispositif.

En revanche, ceux dans lesquels sont enregistrées les opérations effectuées avec des clients qui ne sont pas assujettis à la TVA (clients particuliers) relèvent du champ d’application du dispositif.

De la même façon, ceux dans lesquels sont enregistrées à la fois les opérations effectuées avec des clients assujettis à la TVA (clients professionnels) et des non assujettis (clients particuliers) relèvent du champ d’application du dispositif.

Il convient de ne pas tenir compte de la qualification du logiciel (de caisse, comptable ou de gestion) en question, mais de retenir sa fonctionnalité de caisse. Ainsi, un logiciel de gestion qui permet l’enregistrement des opérations de ventes ou de prestations de services qui concernent les non assujettis à la TVA (clients particuliers) doit être considéré comme un logiciel ou un système de caisse visé par le dispositif.

2. Tous les logiciels de gestion commerciale incluant une fonctionnalité de caisse enregistreuse/d'encaissement sont-ils toujours à certifier par leurs éditeurs pour le 1er janvier 2018 ?

Éléments de réponse:

Depuis le 15 juin 2017, seuls les logiciels et systèmes de caisse sont concernés par la mesure, principaux vecteurs des fraudes constatées à la TVA.

Concernant les logiciels multi fonctions (comptabilité/gestion/caisse), seules les fonctions caisse enregistreuse/encaissement, et non l’ensemble du logiciel, devront être certifiées.

Partie II – Éclairage sur les aspects techniques

I Référentiel technique

18. Existe-t-il un référentiel officiel de mise en conformité des logiciels et systèmes de caisse?

Éléments de réponse: La loi instaure une obligation de résultat concernant la conformité des logiciels (respect des quatre conditions de la loi : inaltérabilité, sécurisation, conservation, archivage) et non de moyen: elle ne définit pas de cahier des charges, ni de solution technique, contrairement à d’autres dispositifs fiscaux.

L’élaboration de référentiels est donc du ressort des seuls acteurs privés.

II Condition d'inaltérabilité

19. Pour respecter la condition d’inaltérabilité, l'intégrité des données enregistrées doit être garantie dans le temps par tout procédé technique fiable. Des procédés autres que le scellement et le chaînage pourront être proposés par les éditeurs. Comment apprécier la garantie d’inaltérabilité exigée ?

Éléments de réponse:

L’administration fiscale n’impose aucune solution technique (empreinte électronique, chaînage des opérations...), dès lors qu’aucune norme fiscale a été prévue par le législateur.

Concernant les systèmes de caisse, la garantie d’inaltérabilité peut être obtenue par plusieurs techniques permettant d’une part d’empêcher l’accès de l’utilisateur à des fonctionnalités de modification des données validées et d’autre part de détecter tout accès/modification des données de règlement. Toute modification ou correction doit être détectable.

Le certificat est associé à la capacité de pouvoir démontrer que les données de règlement n’ont pas été modifiées depuis leur enregistrement initial et doit fournir un système de preuve en ce sens.

20. Qu’entend-on par « données permettant d’assurer la traçabilité des données de transaction » ?

Éléments de réponse:

Le logiciel de caisse doit enregistrer toutes les données d’origine relatives à la transaction de règlements (notes et tickets de caisse).

Les données initialement validées devant rester inaltérables, si des corrections sont ultérieurement apportées à des opérations de règlements, ces corrections (modifications ou annulations) s’effectuent par l’enregistrement de nouvelles opérations de «plus» et de «moins» et non par modification directe des données d’origine enregistrées.

Ces opérations de correction donnent également lieu à enregistrement et leur inaltérabilité doit également être garantie.

Techniquement, la solution doit garantir l’inaltérabilité de toutes les données élémentaires (enregistrement initial et correction(s)) et fournir une fonctionnalité de suivi des modifications.

21. Qu’entend-on par « rendre inaltérables les données » ?

Éléments de réponse:

Pour les systèmes de caisse, la condition d’inaltérabilité des enregistrements de règlement (quantité, montant, TVA, mode de règlement...) s’obtient par plusieurs moyens techniques garantissant:

  • Une inaltérabilité logique de haut niveau, en privant l’utilisateur de toute fonctionnalité du logiciel lui permettant de modifier les données élémentaires de règlement. Ce moyen s’assortit d’une solution technique permettant de détecter et démontrer que l’utilisateur n’a pas contourné cette impossibilité fonctionnelle intégrée au logiciel de l’éditeur.
  • Une inaltérabilité de bas niveau qui garantit l’intégrité des données enregistrées sur le disque sous forme de fichier ou de base de données. L’accès à une donnée élémentaire par un homme de l’art ne pouvant jamais être empêché, cette inaltérabilité est garantie par la preuve que la donnée élémentaire n’a pas été modifiée depuis son enregistrement (empreinte numérique à clé privée, chaînage...).
22. Qu’entend-on par les données d’origine « enregistrées initialement » ? À partir de quel moment doit-on les rendre inaltérables ?

Éléments de réponse:

Les données de l’opération doivent être inaltérables de la prise de commande jusqu’à l’enregistrement du règlement.

Cette inaltérabilité est garantie par:

  • L’absence de fonctionnalité logicielle permettant une modification/suppression de la transaction et la preuve que ce système n’a pas été contourné.
  • Une preuve numérique permettant de détecter si la donnée élémentaire a été modifiée depuis son enregistrement.

III Condition de sécurisation

23. Qu’entend-on par «sécurisation» des données ? En quoi cette notion se différencie des trois autres (inaltérabilité, conservation, archivage) et quels sont les critères à respecter pour garantir la «sécurisation» des données? Doit-on le comprendre comme la faculté d’un assujetti de pouvoir justifier qui peut accéder aux données, qui a accédé aux données sur une période définie, et d’un suivi de ces accès?

Éléments de réponse:

La condition de sécurisation des données a fait l’objet de précisions dans la doctrine administrative à laquelle il convient de se reporter : BOI-TVA-DECLA-30-10-30 § 130 à 150. La condition de sécurisation ne vise pas à limiter les droits d’accès au logiciel ou système de caisse mais à assurer que les enregistrements des encaissements réalisés par toute personne qui accède au logiciel ou système soient tracés, de même que les éventuelles modifications apportées à ces enregistrements initiaux.

En cas d’emploi d’une fonction «école» ou «test», le § 150 de la doctrine administrative précitée prévoit par ailleurs l’identification de l’opérateur sous la responsabilité duquel le personnel en formation enregistre les données.

La sécurisation des données vise à s’assurer que les données enregistrées ne peuvent plus être modifiables, sans traces. Il ne s’agit pas seulement de protéger les données contre les modifications par des tiers, ce qui constitue un délit en application des articles 323-1 à 323-3 du code pénal, mais aussi contre des modifications non tracées effectuées par le propriétaire et détenteur des données lui-même.

IV Conditions de conservation et d'archivage

24. Quelle est la différence entre conservation et archivage des données ?

Éléments de réponse: Il convient de distinguer la condition de conservation des données de la condition d’archivage des données.

La conservation des données détaillées de transaction doivent être conservées «en ligne» dans le système de caisse. Ces données peuvent faire l’objet de purge, ce qui consiste à les sortir du système de caisse et à les stocker dans un support externe d’archivage (clé USB, disque optique ou disque dur externe).

L’ensemble des données doivent être conservées (dans le système de caisse) et archivées (sur support externe et leur inaltérabilité et leur traçabilité doivent être garanties pendant six ans. Elles doivent être archivées au moins une fois à la fin de chaque exercice comptable au moyen d’un processus obligatoirement prévu par le logiciel. Elles sont toujours archivées avant un processus de
purge.

Comme précisé par le BOI-TVA-DECLA-30-10-30 (§ 160 et suivants), pour chaque clôture (selon le cas journalière, mensuelle et/ou annuelle ou par exercice), toutes les données doivent être conservées: «cette obligation de conservation porte sur toutes les données enregistrées ligne par ligne, ainsi que pour les systèmes de caisse, sur les données cumulatives et récapitulatives calculées par le système» (cumul du grand total de la période et total perpétuel).

La condition d’archivage a, quant à elle, pour «objet de figer les données et de donner date certaine aux documents archivés». Pour plus de précisions, se reporter au BOI-TVA-DECLA-30-10-30-20160803 § 220 et suivants.

S’agissant du cas de changement de matériel ou de logiciel, il est rappelé que le délai général de conservation de six ans, mentionné au premier alinéa de l’article L. 102B du livre des procédures fiscales, s’applique aux livres, registres, documents ou pièces auxquels l’administration a accès pour procéder au contrôle des déclarations et des comptabilités des contribuables astreints à tenir et à
présenter des documents comptables.

25. Quelles sont les données de caisses à conserver et doit-on le faire tous les jours ou tous les mois? Uniquement le Z ou le détail?

Éléments de réponse:

Toutes les données élémentaires doivent être conservées par le logiciel ou le système de caisse et non pas seulement le Z. Un assujetti qui ne conserve que les Z ne respecte pas les obligations de conservation prévues à l’article L. 102-B du livre des procédures fiscales. Cette définition répond à la nécessité légale de justifier les résultats produits par un système informatisé avec les données élémentaires ayant servi à leur élaboration, prises en compte dès leur origine, et non par des données agrégées résultant de traitements automatisés. Les données de détail d’une transaction de règlement comprennent le numéro du ticket, la date (heure-minute-seconde), le numéro de la caisse, le total TTC, les totaux HT par taux de TVA, le détail des articles ou prestations (libellé, quantité, prix unitaire, total HT de la ligne, taux de TVA associé) et les traces de modifications et corrections apportées.

Ainsi, avant la purge des données élémentaires conservées dans le système de caisse, l’ensemble des données précitées et enregistrées depuis la dernière opération d’archivage doivent être conservées. Après la purge, opération d’archivage qui a pour objet de transférer les données conservées vers un support externe, seuls les totaux de contrôles produits par les procédures de clôtures (soit les grands totaux journaliers, mensuels, annuels et de l’exercice et le total perpétuel) doivent être conservés dans le logiciel de caisse et continuer d’être protégés par la garantie d’inaltérabilité. Les données de traçabilité de la procédure de purge/archivage doivent être conservées.

26. Faut-il conserver les données directement dans le logiciel ou dans un système d’archivage ?

Éléments de réponse:

L’inaltérabilité des données permet de garantir que les enregistrements de règlement ne sont plus modifiés ou n’ont pas été modifiés après leur validation.

Les garanties de conservation et d’archivage permettent de garantir que ces données inaltérables restent durablement accessibles dans le cadre d’un contrôle pendant le délai légal de contrôle.

Pour les logiciels de caisse, on distingue la conservation des données « en ligne » dans le système de caisse, de l’archivage des données sur un support externe.

Les données conservées (en ligne dans le logiciel de caisse) doivent faire l’objet de clôtures journalières, mensuelles et annuelles (ou par exercice). Les données sont archivées au moins une fois à la fin de chaque exercice comptable au moyen d’un processus obligatoirement prévu par le logiciel. Elles sont toujours archivées avant un processus de purge. Les données de détail de règlement sont enregistrées sur un support externe et effacées de la sauvegarde « en ligne » présente dans le logiciel de caisse. En revanche, les totaux de contrôles produits par les procédures de clôtures doivent être conservés dans le logiciel de caisse et continuer d’être protégés par la garantie d’inaltérabilité. La solution logicielle doit permettre de maintenir la traçabilité des procédures d’archivage et de garantir l’inaltérabilité des données archivées.

27. Qu’est-ce qu’un «support physique externe sécurisé» ?

Éléments de réponse: Il est possible de citer comme support physique externe: une clé USB, un disque optique ou un disque dur externe. Ce support physique externe doit être sécurisé. Aucune solution technique n’est imposée pour assurer cette sécurisation.

Le support physique externe sécurisé n’est exigé qu’en présence de purges, tel que l’indique le § 250 du BOI-TVA-DECLA-30-10-30: Au-delà de la périodicité choisie et au maximum annuelle ou par exercice, le logiciel ou le système peut prévoir une procédure de purge des données de règlement.

Avant la mise en œuvre de cette procédure de purge, le logiciel ou le système doit garantir la production d’une archive complète des données de règlement (données d’origine et éventuelles modifications), avec la date de l’opération de règlement (année – mois – jour), sur un support physique externe sécurisé.

La décision de purger les données est liée à la nécessité de libérer de l’espace sur le disque dur.

L’archivage des données est donc dans ce cas logiquement réalisé en dehors du système de caisse. La sécurisation du support d’archivage doit permettre de garantir l’intégrité des données archivées et leur disponibilité en cas de contrôle.

La disponibilité des données doit être effective en cas de contrôle. Les éditeurs doivent prévoir des procédures d’archivage obligatoires pour les utilisateurs. Pour plus de sécurité plusieurs supports de stockage différents pour une même archive peuvent être proposés comme le prévoit la norme Z 42 013. Les utilisateurs ont en effet l’obligation de conserver les données archivées pendant six ans.

L’obligation d’archivage prévue par le certificat ne doit pas être confondue avec une solution de sauvegarde des données présentes dans le système de caisse. Ces sauvegardes sont entendues comme une copie des données toujours présentes sur la caisse. Les sauvegardes permettent la reprise technique des données en cas de panne de la caisse et constituent une solution, parmi d’autres, de sécurisation des données justificatives de règlement.

28. Qu’entend-on par « grand total de la période et le total perpétuel » ?

Éléments de réponse:

Le § 170 du BOI-TVA-DECLA-30-10-30 précise que: «Pour chaque clôture -journalière, mensuelle et annuelle (ou par exercice)- des données cumulatives et récapitulatives, intègres et inaltérables, doivent être calculées par le système de caisse».

On entend par «cumul du grand total de la période» le cumul de chiffre d’affaires décompté depuis l’ouverture de la période comptable en cours.

On entend par «total perpétuel» le cumul de chiffre d’affaires décompté depuis le début de l’utilisation du système.

Le Total perpétuel est en effet un compteur qui cumule le chiffre d’affaires total enregistré depuis le début de l’utilisation du système et ne se remettant jamais à zéro. Il n’est pas lié à une période contrairement au Grand Total qui lui est le compteur qui cumule le chiffre d’affaires total pour la période comptable.

En cas de changement de matériel ou de logiciel, tous les compteurs repartent de zéro. Les compteurs de l’ancien matériel ou logiciel doivent être archivés et sécurisés.

Dans le cas d’un simple changement de version d’un logiciel tous les compteurs doivent continuer à être incrémentés sans être remis à zéro.

29. Quelles sont les attentes pour la clôture mensuelle obligatoire dans un système de caisse par rapport à la clôture journalière ?

Éléments de réponse:

Des précisions ont été apportées sur ce point aux § n° 160 et suivants du BOI-TVA-DECLA-30-10-30.

Pour les systèmes de caisse, l’obligation de clôture est: journalière, mensuelle et annuelle (ou par exercice).

La doctrine administrative précise par ailleurs que: «Pour chaque clôture -journalière, mensuelle et annuelle (ou par exercice)- des données cumulatives et récapitulatives, intègres et inaltérables, doivent être calculées par le système de caisse».

Parmi ces données figurent le grand total pour la période comptable, le total période et le total perpétuel.

Toutes les données enregistrées doivent être conservées. «Cette obligation de conservation porte sur toutes les données enregistrées ligne par ligne, ainsi que pour les systèmes de caisse, sur les données cumulatives et récapitulatives calculées par le système».

La clôture mensuelle permet aussi la totalisation du chiffre d’affaires ventilé par taux de TVA.

30. Comment peut-on sur un système de caisse répondre à l’exigence de périodicité de clôture au minimum annuelle si on procède à des clôtures journalières et mensuelles ?

Éléments de réponse: La doctrine administrative prévoit que la clôture doit intervenir à l’issue d’une période au minimum annuelle (ou par exercice si celui-ci n’est pas calé sur l’année civile). Pour les systèmes de caisse, il faut en plus une clôture journalière et mensuelle. Ensuite, le § 220 du BOI-TVA-DECLA-30-10-30 prévoit la possibilité d’archiver les données selon une périodicité choisie qui est au maximum annuelle
ou par exercice.

S’agissant de la condition de conservation des données, il est précisé pour les systèmes de caisse, aux §160 et 170 de la doctrine précitée, que ces systèmes doivent prévoir obligatoirement une clôture journalière, une clôture mensuelle et une clôture annuelle (ou par exercice lorsque l’exercice n’est pas calé sur l’année civile). Pour les systèmes de caisse, ces trois échéances de clôtures sont cumulatives et impératives.

S’agissant du respect de la condition d’archivage, il est prévu que les systèmes de caisse comme les logiciels de comptabilité ou de gestion doivent permettre d’archiver les données enregistrées selon une périodicité au maximum annuelle ou par exercice. Cette périodicité est donc la même que la périodicité annuelle ou par exercice prévue pour le respect de la condition de conservation.

V Partage des responsabilités

31. Définition de «l’éditeur» :

Éléments de réponse: On entend par « éditeur » du logiciel ou du système de caisse la personne qui détient le code source du logiciel ou système et qui a la maîtrise de la modification des paramètres de ce produit.

Une attestation délivrée par un éditeur engage sa responsabilité sous réserve que les dispositifs techniques garantissant sécurisation, inaltérabilité, conservation et archivage ne sont pas modifiés.

Logiciel standard d’un éditeur fourni sous forme d’un exécutable et de ses bibliothèques logicielles non modifiables et dont un éventuel paramétrage ne concerne pas les fonctions assurant la sécurisation, l’inaltérabilité, la conservation et l’archivage. L’éditeur de ce logiciel est soumis à une obligation de sécurisation justifiée par un certificat délivré par un organisme accrédité ou une attestation établie par l’éditeur lui-même.

35. Les archives doivent être lues aisément par l’administration en cas de contrôle: quels sont les moyens considérés comme aisés par l’administration pour lire les données ? En cas de cryptage des archives quels sont les outils de décryptage acceptés?

Éléments de réponse:

Les archives doivent pouvoir être lues aisément par l’administration. Aucun format d’archive n’est toutefois imposé. De la même manière, en cas de cryptage de l’archive, aucun format de cryptage n’est imposé. Les archives seront dans ce cas considérées comme pouvant être aisément lues par l’administration (les données numériques par exemple apparaissant en clair et non sous forme codée), dès lors qu’en cas de contrôle, l’assujetti à la TVA concerné présentera à l’administration des archives décryptées.

A titre d’exemple, les formats de fichiers de type TXT ou CSV peuvent être utilisés pour l’archivage (cf. BOI-BIC-DECLA-30-10-20-40 § 550).

II Attestation

42. L'attestation individuelle de l'éditeur doit-elle respecter un certain formalisme?

Éléments de réponse:

L’attestation doit être individuelle, c’est-à-dire délivrée nominativement à l’assujetti à la TVA qui la produit.

L’attestation doit être établie par l’éditeur du logiciel ou du système de caisse ou par son représentant légal lorsqu’il s’agit d’une société.

Elle doit explicitement mentionner que le logiciel ou le système de caisse respecte les conditions d’inaltérabilité, de sécurisation, de conservation et d’archivage des données. Elle doit indiquer précisément:

  1. le nom et les références de ce logiciel (y compris la version du logiciel concernée et le numéro de licence quand il existe une licence) ou de ce système;
  2. la date d’acquisition du logiciel ou système par l’assujetti à la TVA.

L’attestation peut être délivrée sur un support physique ou de manière dématérialisée (par exemple, par téléchargement en ligne d’une attestation à compléter par l’assujetti pour y mentionner notamment son identité complète). Pour plus de précision, il convient de se reporter à la doctrine administrative.

L’attestation doit être conforme au modèle fourni en BOI-LETTRE-000242.

44. Que faire si mon éditeur de logiciel ne m'a pas encore envoyé d'attestation?

Éléments de réponse:

La loi n’impose pas aux éditeurs cette délivrance spontanée.

Si l’éditeur n’adresse pas d’attestation à l’utilisateur, il appartient à ce dernier de la lui réclamer.

Des consignes seront données aux agents de l’administration fiscale pour prendre en compte les circonstances particulières si l’assujetti apporte la preuve des diligences qu’il a faites pour obtenir cette attestation.

47. L'attestation de mon éditeur peut-elle être limitée dans le temps?

Éléments de réponse:

Le renouvellement de l’attestation est fondé sur les notions d’évolutions mineures ou majeures du logiciel, et non sur une durée calendaire. Dans les faits, l’attestation n’a pas à être renouvelée annuellement, mais elle le sera en fonction des changements mineurs ou majeurs apportées au logiciel.

Il est admis que l’attestation demeure valable pour attester du respect des conditions d’inaltérabilité, de sécurisation, de conservation et d’archivage des données par les versions mineures ultérieures du logiciel ou système (cf. I-C-1 § 340 du BOI-TVA-DECLA-30-10-30 pour la définition d’une version majeure et d’une version mineure) :

Dans le cas où les fonctionnalités techniques du certificat ne sont pas modifiées par une nouvelle version du logiciel, on parlera d’une version mineure ne faisant pas naître une nouvelle obligation de certification.

Dans le cas où la modification du logiciel est telle que les fonctionnalités techniques assurant la sécurisation, l’inaltérabilité, la sauvegarde et l’archivage des données sont altérées, on parlera d’une version majeure qui doit faire l’objet d’une nouvelle certification.
Toute nouvelle version majeure du logiciel ou système doit donner lieu à l’établissement d’une nouvelle attestation visant expressément cette version

MISE A JOUR : Communiqué de presse du 15 juin 2017

Suite au communiqué de presse du cabinet du ministère du 15 juin 2017 (http://proxy-pubminefi.diffusion.finances.gouv.fr/pub/document/18/22503.pdf), seuls les logiciels de caisse seraient à présent concernés.

Etant donné que BeDesk fait partie des logiciels de gestion et non de caisse, l’obligation de mise en conformité dont il est question dans ce ticket ne serait donc plus avérée.

Cependant, tant que la loi n’est pas effectivement révisée, nous continuerons de mettre en application les points ci-dessous à toutes fins utiles.

Un gros travail a déjà été effectué et, considérant que cela améliore également d’une certaine manière la qualité du logiciel, nous le finirons.



MISE A JOUR : FAQ l'administration publiée le 28 juillet 2017

Question n°1

Qu’est-ce qu’un logiciel ou système de caisse ?

Un logiciel ou un système de caisse est un système informatisé dans lequel un assujetti enregistre les livraisons de biens et les prestations de services ne donnant pas lieu à facturation au sens du BOI-TVA DECLA-30-20-10.

NOTES

Ceci exclut de-facto le logiciel BeDesk car il s’agit d’un logiciel de facturation et non de caisse.


Question n°2

Tous les logiciels de gestion commerciale incluant une fonctionnalité de caisse enregistreuse/d’encaissement sont-ils toujours à certifier par leurs éditeurs pour le 1er janvier 2018 ?

Depuis le 15 juin 2017, seuls les logiciels et systèmes de caisse sont concernés par la mesure, principaux vecteurs des fraudes constatées à la TVA.
Concernant les logiciels multi fonctions (comptabilité/gestion/caisse), seules les fonctions caisse enregistreuse/encaissement, et non l’ensemble du logiciel, devront être certifiées.

NOTES

La note “fonctions caisse enregistreuse/encaissement” est quelque peu ambigüe.

En effet, le suivi de l’apurement des factures pourrait-il être considéré comme une “fonction d’encaissement” ?



CHAMP D'APPLICATION DE LA LOI PAR RAPPORT À NOTRE LOGICIEL

Ce qui ne concerne pas BeDesk-Express :

  • BeDesk-Express n’est pas un logiciel de caisse :
    • On ne réalise pas de ticket de caisse avec BeDesk-Express.
    • BeDesk-Express ne peut pas être connecté à un dispositif de caisse, à un terminal de paiement ou à un quelconque autre système de paiement, pour le piloter ou en extraire les informations.
      • Si l’activité de l’utilisateur nécessite l’usage d’un tel dispositif, celui-ci doit en acquérir un indépendamment de BeDesk-Express.
        • Un avertissement clair doit être placé bien en vue à ce sujet dans le contrat de licence.
  • BeDesk-Express n’est pas un logiciel de comptabilité :
    • On ne réalise pas la comptabilité de l’entreprise avec BeDesk-Express.
      • Un avertissement clair doit être placé bien en vue à ce sujet dans le contrat de licence.
    • BeDesk peut cependant fournir une partie des informations sources (de pré-comptabilité) qui permettent de réaliser la comptabilité proprement dite, par un expert-comptable ou éventuellement à l’aide d’un logiciel tiers conçu à cet effet par un autre éditeur.
  • BeDesk-Express ne gère ni les moyens de paiements ni l’apurement des comptes :
    • L’apurement des comptes est du ressort de la comptabilité et/ou du logiciel de comptabilité. Ce que BeDesk-Express n’est pas et ne fait pas.
    • La gestion des moyens de paiements peut être réalisée via un système de caisse, un logiciel de comptabilité ou un système de liaison bancaire. BeDesk-Express ne dispose pas d’un système de liaison bancaire permettant par exemple de faire le rapprochement entre une opération bancaire et un encaissement.
      • Il est toutefois possible d’indiquer dans BeDesk-Express des montants d’acomptes reçus à titre “indicatif” dans l’unique but d’assurer un suivi plus facile et de relancer éventuellement les mauvais payeurs. Cette fonctionnalité n’est pas conçue pour remplacer la gestion comptable des apurements ni un système de caisse certifié.
        • Un avertissement clair doit être placé bien en vue à ce sujet, y compris dans le contrat de licence.

Ce qui concerne BeDesk-Express :

  • BeDesk-Express permet de créer et de gérer des factures (de vente et d’avoir) :
    • Celles-ci doivent être (et sont déjà) conservées indéfiniment dans la base de données.
      • Une clôture est cependant nécessaire pour figer définitivement et irrévocablement les documents (c-à-d, «archiver») à la fin de l’exercice ou à une durée maximum d’un an.
    • On ne peut supprimer aucun document dans BeDesk-Express (ceci n’a jamais été possible via l’interface du logiciel).
      • Cependant, la loi stipule que les fichiers (et donc leur contenu) doivent être inaltérables. Il faut donc mettre ne place un ou plusieurs dispositifs techniques qui détectent et signalent toute modification des fichiers en dehors du logiciel BeDesk-Express lui-même.
    • Toutes les opérations réalisées avec le logiciel doivent être tracées :
      • La notion de traçabilité est très importante car elle permet de fournir un justificatif des opérations réalisées.
        • Dans le cas de BeDesk-Express, elles comprennent l’ensemble des données qui concourent à la réalisation d’une vente et d’un encaissement:
          • Il faut donc établir un historique chronologique inaltérable, sécurisé et par ajouts uniquement des évènements suivants:
            1. Création d’un document avec l’enregistrement d’un horodatage, des états (payé, imprimé, etc..) et des montants totaux HT, TTC et acomptes reçus.
            2. Modification d’un document avec l’enregistrement d’un horodatage et autres informations de traçage ci-dessus.
            3. Impression du document (idem).
            4. Envoi du document par e-mail (idem).
            5. Impression d’une lettre de relance (idem).
            6. Clôture du document (idem).
          • De plus, l’enregistrement à titre “indicatif” des
          • Certains évènements pouvant nécessiter une explication ou un justificatif, l’utilisateur devrait pouvoir commenter les évènements sans toutefois pouvoir en modifier la nature, le contenu et l’ordre chronologique. Bien entendu, aucune suppression ne devrait en outre être possible (seulement ajouter de nouveaux évènements supplémentaires à la fin de l’historique).
          • Bien que l’enregistrement des paiements reçus dans BeDesk-Express soit exclusivement «indicatif» de manière à assurer le suivi plus facile des documents en souffrance et de relancer éventuellement les clients, il convient de modifier la méthode de saisie des acomptes. Il devient nécessaire de remplacer le tableau des versions précédentes par un journal chronologique où on ne peut qu’ajouter de nouvelles entrées par «PLUS» et «MOINS». L’enregistrement des évènements de ce journal doit respecter les mêmes règles d’inaltérabilité, de sécurité, de conservation et d’archivage que les points précédents.
 761 BeDesk-ExpressApplicationSuiviCritiqueTrès hauteTous Suivi des aspects légaux relatifs aux adapations de la  ...Fermée17.0x-dev
100%
Description de la tâche

Les obligations qui découlent des changements légaux prévus :

  • 2018 : terminé.
  • 2019 : terminé.
  • 2020 : suivi.
 1017 BeDesk-ExpressApplicationSpécificationCritiqueTrès hauteAll Intégration de Java 9 Fermée17.017.9
100%
Description de la tâche

L’intégration de Java 9 en remplacement de Java 8 est planifiée pour BeDesk-Express v17.

Ce remplacement apportera de nombreuses améliorations et corrections de bugs dans le composant Java nécessaire à l’exécution du programme BeDesk-Express.

Nombre de jours avant disponibilité : http://www.java9countdown.xyz/

Bien que la sortie officielle de java 9 est prévue le 27/07/2017, nous ne le proposerons pas avant début septembre, pour pouvoir assurer un meilleur support du basculement.

Date de sortie repoussée par Oracle au 21 septembre 2017.

Cela va certainement retarder légèrement la sortie de la version 17.9 du logiciel de manière à disposer de cette intégration (si possible avant la fin du mois).


	
 1076 BeDesk-ExpressApplicationSpécificationCritiqueTrès hauteTous Configuration des paramètres locaux et d'arrondi unique ...Fermée17.517.6
100%
Description de la tâche

Jusqu’à présent, l’utilisateur pouvait modifier certains paramètres “critiques” comme le nombre de décimales à prendre en compte dans les calculs des totaux.

La loi exige à présent de placer les montants dans une blockchain (liste de hashes chaînés) ce qui impose l’obligation de figer définitivement l’arrondi et les caractéristiques des calculs de l’application en fonction de la monnaie utilisée.

Ainsi, il faut supprimer les paramètres de configuration de la devise, ainsi que les caractéristiques du calcul de l’arrondi.

L’utilisateur choisi le signe de la monnaie ainsi que les caractéristiques du calcul de l’arrondi liée à la monnaie en choisissant sont pays.

Il peut personnaliser le nombre de décimale et les caractéristiques locales une fois pour toute lors du tout premier démarrage de l’application à l’aide de l’assistant de configuration.

Il n’est plus possible de modifier ces paramètres par la suite car cela impliquerait de briser la blockchain des montants (en recalculant ceux-ci, le logiciel doit arriver exactement aux mêmes valeurs que celles archivées dans la blockchain - bien entendu, si l’arrondi est modifié, les résultats sont forcément différents -il n’est donc plus possible de les modifier ultérieurement).

C’est pour accorder le logiciel aux contraintes légales que cette restriction est appliquée.

 1079 BeDesk-ExpressApplicationSpécificationCritiqueTrès hauteTous Configuration de la numérotation des documents uniqueme ...Fermée17.517.6
100%
Description de la tâche

Jusqu’à présent, bien que la numérotation des documents ne peut être modifiée en interne, il était possible de personnaliser le mode de numérotation via le panneau de configuration de l’application.

Malheureusement, cette possibilité n’est plus conforme aux exigences légales qui impose d’archiver les documents de manière infalsifiables (c-à-d, inaltérables).

Or, en personnalisant le mode de numérotation, on peut changer la forme du numéro (sans toutefois changer de numéro à proprement parlé). Pour rencontrer les exigences légales, la personnalisation du format du numéro de série n’est plus acceptable, ce pour conserver les documents archivés absolument identiques aux originaux.

Le format du numéro de série des documents pourra donc être choisi au moment de la toute première configuration de la base de données, mais ne pourra plus être modifiée par la suite.

Ceci pour conformer le logiciel aux exigences légales.

 1082 BeDesk-ExpressApplicationSpécificationCritiqueTrès hauteTous Dépréciation du numéro de dossier inclu dans le numéro  ...Fermée17.517.6
100%
Description de la tâche

L’indication du numéro de dossier dans la formule de numérotation de série des documents peut prêter à confusion (il ne fait en effet pas partie du numéro de série à proprement dit - il est purement indicatif).

De plus, cette indication peut varier en fonction du dossier dans lequel on attache le document.

Aussi, pour conformer le logiciel aux nouvelles exigences légales, le numéro de dossier dans la numérotation de série est dépréciée.

Ce numéro peut être inséré dans le corps du document, toutefois, il ne pourra plus figurer dans le numéro de série.

  • Le format de numérotation pourra être sélectionné au lancement de l’assistant du premier démarrage, mais plus ensuite.
  • Il faut déterminer comment aider les utilisateurs qui ont inséré le numéro de dossier dans le format du numéro de série à le retirer.

On n’est pas obligé de supprimer les numéros de dossiers du format des numéros de série.

Le numéro de dossier est purement indicatif.

Cependant, dès lors qu’un document est validé, on ne devrait plus pouvoir changer son dossier d’origine.



 1108 BeDesk-ExpressApplicationImplementationCritiqueTrès hauteTous Implémentation de l'agent de réplication du moteur LogV ...Fermée17.5x-dev
100%
Description de la tâche

Mise à jour ‘Upstream’ de keyListDB.

Intégration et implémentation de l’agent de réplication.

Nécessite des modifications importantes dans l’application.

 1192 BeDesk-ExpressApplicationGarde-fouCritiqueHauteTous Terminer l'application alors que le worker est en cours ...Fermée17.517.6
100%
Description de la tâche

Si on termine l’application, le worker continue en arrière plan.

Il en résulte des erreurs dans les fichiers car les dernières modifications ne sont pas répercuté en ligne.

 1237 BeDesk-ExpressApplicationGarde-fouCritiqueTrès hauteTous URI des propriétés différentes sur Windows par rapport  ...Fermée16.4 (fork)17.6
100%
Description de la tâche

Sur Windows l’URI des propriétés est héritée du système de fichier avec des ‘\’ au lieu de ‘/’ pour définir l’arborescence.

Un garde-fou a du être implémenté pour uniformiser cette stratégie en la fixant définitivement avec des séparateurs ‘/’.

 1252 BeDesk-ExpressApplicationBugCritiqueTrès hauteTous Problème lors du lancement de la base de données sur de ...Fermée17.6
100%
Description de la tâche

Lorsqu’on a sélectionné une base de données et qu’on la lance sur un ordinateur lent, le BeDesk-Starter réitère le lancement si le précédent lancement a échoué (ou n’a pas répondu dans un temps imparti).

Or, sur un ordinateur plus lent, le délai de réponse peut être beaucoup plus long que prévu étant donné la nécessité de réaligner l’agent de réplication.

Un garde-fou est donc nécessaire pour interdire le redémarrage dès lors que l’application principale a été lancée sur une base de données.

 1290 BeDesk-ExpressApplicationSuiviCritiqueTrès hauteTous Problème d'interprétation des dates dans la gestion des ...Fermée17.617.7
100%
Description de la tâche

Ce problème est un effet de bord du problème  FS#1259 .

La date d’échéance des abonnements est mal interprétée.


Adaptations nécessaires.

 1352 BeDesk-ExpressApplicationBugCritiqueTrès hauteTous Vérification "Registrable" échoue pour le module Logist ...Fermée16.4 (fork)17.8
100%
Description de la tâche

La vérification du type “Registrable” échoue lorsque l’on ouvre à nouveau la boîte d’activation des licences.

La requête est mal formatée et n’est donc pas acceptée pour revalidation.

La requête en cas de revalidation n’est pas traitée de la même manière qu’en cas de validation.

Ainsi, depuis la version 16.4, lorsqu’on ouvrait la boîte d’activation et qu’on avait un code Logistique déjà validé, la requête échouait.

Ce problème est résolu.

 1367 BeDesk-ExpressApplicationSuiviCritiqueTrès hauteTous Mise à jour des outils de développement pour le support ...Fermée17.817.9
100%
Description de la tâche

Pour pouvoir fournir des paquet Java 9, il faut attendre la mise à niveau des outils de développement.

 1369 BeDesk-ExpressApplicationSpécificationCritiqueTrès hauteMac OS X Prise en charge de la compatibilité avec le nouveau Mac ...Fermée17.817.9
100%
Description de la tâche

Mac OS X 10.13 “High Sierra” sera disponible normalement dès ce 25 septembre 2017.


Le profil de compatibilité du logiciel doit être adapté en conséquence.

La compatibilité sera assurée en même temps que la migration vers Java 9.

L’intégration est toujours en cours suite aux retards accumulés à la sortie du Java 9 par Oracle et la disponibilité des outils pour cette nouvelle version.

Cette tâche est en attente de la fin d’intégration Java 9.


Prise en charge à partir de macOS X10.10 minimum.

 1370 BeDesk-ExpressApplicationImplementationCritiqueHauteMac OS X Nouveau bundle pour macOS avec Java 9 intégré Fermée17.817.9
100%
Description de la tâche

Nécessité de créer un nouvel exécutable “.app” pour macOS intégrant Java 9 et compatible avec le nouveau macOS 10.13.

Version supportée minimum du système Mac OS X passe à 10.10.


	
 1381 BeDesk-ExpressApplicationSpécificationCritiqueHauteWindows Nouveau paquet d'installation uniquement pour Windows 6 ...Fermée17.817.9
100%
Description de la tâche

A partir de Java 9, Oracle ne fournit plus de bundle JRE pour Windows 32 bits.

Nous adaptons donc la distribution des paquets en nous focalisant donc exclusivement sur la version 64 bits.

 1388 BeDesk-ExpressApplicationBugCritiqueTrès hauteWindows Bug Java 9 : java.lang.NullPointerException @ java.des ...Fermée17.818.1
100%
Description de la tâche

Nécessite un correctif de Java 9 et/ou du pilote d'impression

CE PROBLEME NECESSITE UN CORRECTIF DE JAVA 9 : CE CORRECTIF EST ATTENDU DE LA PART DE ORACLE (l’éditeur de Java)

Selon le ticket JDK-8186987 (https://bugs.openjdk.java.net/browse/JDK-8186987), un correctif est prévue par l’équipe JDK est planifiée pour Java 10 (http://openjdk.java.net/projects/jdk/10/)à paraitre en mars 2018. Ceci reporte ce correctif à BeDesk 18.

Attente de résolution tiers.

Contournement du problème

Pour contourner ce souci, utiliser le nouveau module d’impression via l’application PDF par défaut du système (voir Options/Système/Paramètres Système/Module d’impression).

https://guide.bedesk-express.com/faq:select_desktop_printer_job

Descriptif du problème

Avec Java 9 et certains modèles d’imprimante, lorsqu’on essaye d’imprimer un document sur Windows, rien ne se passe.

Liste des modèles d'imprimante affectés par le souci que nous avons répertorié:

  • Brother MFC-8520DN (confirmé)
  • Brother MFC-9140CDN (confirmé)
  • Brother DCP-9055CDN (confirmé)
  • Brother MFC-9460 (confirmé)
  • Brother MFC-9330 (non confirmé)
  • Brother DCP-7055 (confirmé)
  • Brother HL-4150CDN (confirmé)
  • HP Officejet Pro 6830 (non confirmé - peut-être un faux positif)
  • HP Photosmart 5520 (confirmé - via USB)

Journal de débogage

Lorsqu’on examine le journal de débogage, on trouve par exemple ceci:

AUTO-CONFIGURATION> RECHERCHE DE LA FILE D'IMPRESSION PAR DEFAUT... PATIENTEZ...
AUTO-CONFIGURATION> FILE D'IMPRESSION TROUVEE : Java Printing sur Brother MFC-8520DN Printer ACCUEIL1...
Before Attributes:
   media-printable-area = (25.4,25.4)->(159.102,246.238)mm[javax.print.attribute.standard.MediaPrintableArea]
   media = iso-a4[javax.print.attribute.standard.MediaSizeName]
Utilisation de l'ancien systeme d'impression... [ignorer le selecteur]
Service non trouve ... Tentative du 2ieme type... Avons-nous de la chance?...
MainWindow Activated...
Service d'impression disponible Brother MFC-8520DN Printer ACCUEIL1
setPrintService...
Print to:Brother MFC-8520DN Printer ACCUEIL1
Attributes:
   media-printable-area = (25.4,25.4)->(159.102,246.238)mm[javax.print.attribute.standard.MediaPrintableArea]
   media = iso-a4[javax.print.attribute.standard.MediaSizeName]
MyPrintServiceUI.getPaper - PrintableArea :(25.4,25.4)->(159.102,246.238)mm
                                     :X,Y = (72.0,72.0) lpi
                                     :W,H = (450.997802734375,697.9974975585938) lpi
MyPrintServiceUI.getPaper - Media Size    :iso-a4
                                     :210.0x297.0 mm
                                     :595.2755737304688x841.8897705078125 lpi
MyPrintServiceUI.getPaper - PrintableArea :(25.4,25.4)->(159.102,246.238)mm
                                     :X,Y = (72.0,72.0) lpi
                                     :W,H = (450.997802734375,697.9974975585938) lpi
MyPrintServiceUI.getPaper - Media Size    :iso-a4
                                     :210.0x297.0 mm
                                     :595.2755737304688x841.8897705078125 lpi
HTMLDOC *** AutoCheckFontSize patching font size 6 -> 7 ***
<#> Report length : 5130
<#> Report created in 292ms...
HTMLDOC *** AutoCheckFontSize patching font size 10 -> 11 ***
HTMLDOC *** AutoCheckFontSize patching font size 6 -> 7 ***
CREATE PageClassicHeaderImage : javax.swing.ImageIcon@74d65d9e
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at java.desktop/sun.print.RasterPrinterJob.setAttributes(Unknown Source)
        at java.desktop/sun.awt.windows.WPrinterJob.setAttributes(Unknown Source)
        at java.desktop/sun.print.RasterPrinterJob.print(Unknown Source)
        at bedesk._MainApp.factIconsBar_imprimeFact_actionPerformed(_MainApp.java:2866)
        at bedesk.AppAction.printDocument(AppAction.java:264)
        at bedesk.ui.iconsbar.document.DocumentsIconsBar$3.actionPerformed(DocumentsIconsBar.java:106)
        at java.desktop/javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
        at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
        at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
        at java.desktop/javax.swing.DefaultButtonModel.setPressed(Unknown Source)
        at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
        at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
        at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
        at java.desktop/java.awt.Component.processMouseEvent(Unknown Source)
        at java.desktop/javax.swing.JComponent.processMouseEvent(Unknown Source)
        at java.desktop/java.awt.Component.processEvent(Unknown Source)
        at java.desktop/java.awt.Container.processEvent(Unknown Source)
        at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
        at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
        at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
        at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
        at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
        at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source)
        at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
        at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.desktop/java.awt.EventQueue.access$500(Unknown Source)
        at java.desktop/java.awt.EventQueue$3.run(Unknown Source)
        at java.desktop/java.awt.EventQueue$3.run(Unknown Source)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
        at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
        at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
        at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)

La partie qui est la plus intéressante est celle-ci:

java.lang.NullPointerException
        at java.desktop/sun.print.RasterPrinterJob.setAttributes(Unknown Source)
        at java.desktop/sun.awt.windows.WPrinterJob.setAttributes(Unknown Source)
        at java.desktop/sun.print.RasterPrinterJob.print(Unknown Source)
        at bedesk._MainApp.factIconsBar_imprimeFact_actionPerformed(_MainApp.java:2866)

Le problème n’est pas directement dans le logiciel BeDesk. Il s’agit d’un bug de Java 9.


Description du bug JDK-8186987 : https://bugs.openjdk.java.net/browse/JDK-8186987

Ce problème a été rectifié dans l’OpenJDK le 21 septembre dernier, mais Oracle n’a pas encore reporté le correctif dans le Java 9 officiel.


Il semble que le pilote d’impression ne donne pas toujours les informations de résolution (la densité des points par pouce). Du coup, là où les informations devraient se trouver, il y a un pointeur NULL. D’où l’erreur.


Comme décrit par le BTS d’OpenJDK, il serait possible de contourner le souci en forçant la résolution de base (300dpi) en cas d’absence de l’objet PrinterResolution.

A rechercher et tester...


Tentative de contournement du problème à l’aide d’un wrapper qui enveloppe les PrintService retournés par le système. Ce wrapper PatchedPrintService détecte et corrige les attributs erronés ou manquant.

Tests nécessaires...


Malgré le Patch on continue avec :

CREATE PageClassicHeaderImage : javax.swing.ImageIcon@730a4a8c
         log> PatchedPrintService.getDefaultAttributeValue(javax.print.attribute.standard.JobSheets)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at java.desktop/sun.print.RasterPrinterJob.setAttributes(Unknown Source)
        at java.desktop/sun.awt.windows.WPrinterJob.setAttributes(Unknown Source)
        at java.desktop/sun.print.RasterPrinterJob.print(Unknown Source)
        at java.desktop/sun.print.Win32PrintJob.pageableJob(Unknown Source)
        at java.desktop/sun.print.Win32PrintJob.print(Unknown Source)
        at java.desktop/sun.print.RasterPrinterJob.spoolToService(Unknown Source)
        at java.desktop/sun.print.RasterPrinterJob.print(Unknown Source)
        at bedesk._MainApp.factIconsBar_imprimeFact_actionPerformed(_MainApp.java:2866)

Or le patch fonctionne bien:

         log> PatchedPrintService.getDefaultAttributeValue(javax.print.attribute.standard.PrinterResolution)
PatchedPrintService : NULL javax.print.attribute.standard.PrinterResolution
PatchedPrintService : PATCHING javax.print.attribute.standard.PrinterResolution = 30000x30000 dphi
       - printer-resolution = 30000x30000 dphi [javax.print.attribute.standard.PrinterResolution]

Nouvel essai sur un poste affecté à l’aide du JDK:

CREATE PageClassicHeaderImage : javax.swing.ImageIcon@2ca36e49
         log> PatchedPrintService.getDefaultAttributeValue(javax.print.attribute.standard.JobSheets)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at java.desktop/sun.print.RasterPrinterJob.setAttributes(RasterPrinterJob.java:1240)
        at java.desktop/sun.awt.windows.WPrinterJob.setAttributes(WPrinterJob.java:696)
        at java.desktop/sun.print.RasterPrinterJob.print(RasterPrinterJob.java:1510)
        at java.desktop/sun.print.Win32PrintJob.pageableJob(Win32PrintJob.java:573)
        at java.desktop/sun.print.Win32PrintJob.print(Win32PrintJob.java:390)
        at java.desktop/sun.print.RasterPrinterJob.spoolToService(RasterPrinterJob.java:1428)
        at java.desktop/sun.print.RasterPrinterJob.print(RasterPrinterJob.java:1516)
        at bedesk._MainApp.factIconsBar_imprimeFact_actionPerformed(_MainApp.java:2866)
        at bedesk.AppAction.printDocument(AppAction.java:264)
        at bedesk.ui.iconsbar.document.DocumentsIconsBar$3.actionPerformed(DocumentsIconsBar.java:106)
        at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
        at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
        at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
        at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
        at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:269)
        at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297)
        at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297)
        at java.desktop/java.awt.Component.processMouseEvent(Component.java:6578)
        at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3343)
        at java.desktop/java.awt.Component.processEvent(Component.java:6343)
        at java.desktop/java.awt.Container.processEvent(Container.java:2259)
        at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4961)
        at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2317)
        at java.desktop/java.awt.Component.dispatchEvent(Component.java:4793)
        at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
        at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4539)
        at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4480)
        at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2303)
        at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2758)
        at java.desktop/java.awt.Component.dispatchEvent(Component.java:4793)
        at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:766)
        at java.desktop/java.awt.EventQueue.access$500(EventQueue.java:97)
        at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:717)
        at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:711)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:89)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:99)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:739)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:737)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:89)
        at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:736)
        at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:199)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
 1544 BeDesk-ExpressApplicationSpécificationCritiqueTrès hauteTous Exporter en PDF revient à imprimer un document Fermée17.x-dev18.0
100%
Description de la tâche

Pour être conforme à la loi, exporter une facture vers un fichier PDF, revient à l’imprimer.

Aussi, lorsqu’on exporte un document, celui-ci est dorénavant marqué comme imprimé.

 1621 BeDesk-ExpressApplicationRégressionCritiqueTrès hauteTous Problème d'arrondi sur certains montants lorsqu'ils son ...Fermée17.x-dev18.0
100%
Description de la tâche

Lorsque certains montants sont enregistrés et qu’on revient sur l’UI, le montant change suite à un souci d’arrondi.

Le souci provient de la compression double (64 bits) vers floats (32 bits) de l’OpenDDN (composant de KeylistDB).

Ce souci est apparu avec Java 9. Le retrait temporaire de cette compression (50%) permet d’éviter des soucis avec de certains montants de 8 chiffres.

 1897 BeDesk-ExpressApplicationBugCritiqueTrès hauteWindows (64 bits) Rapport de bug JDK-8194494 : SHA-512 stub uses AVX 2 in ...Fermée18.1
100%
Description de la tâche

Les fonctions internes de l’implémentation de Java 9 pour Windows utilise les instructions AVX2 du processeur pour le calcul des clés de hashage SHA2 (SHA-512). Ceci permet de multiplier les performances par 2.

Cependant, l’implémentation de Java 9 essaye d’exécuter des instructions AVX2 même sur un processeur qui ne supporte pas ces instructions.

Il peut donc y avoir divers problèmes ainsi que des plantage de Java dès lors que le serveur de base de données est ouvert et commence à lire la blockchain de la piste d’audit qui nécessite l’usage de clés SHA2 pour le chaînage des blocs.

Ce bug n’est pas un bug du logiciel BeDesk, il s’agit d’un bug de Java.

Il revient donc à Oracle l’éditeur de Java de le résoudre.

Voici le lien vers le descriptif du bug sur le site de développement de l’OpenJDK:https://bugs.openjdk.java.net/browse/JDK-8194494.

Il n’y a malheureusement rien que l’on puisse faire au niveau du logiciel BeDesk pour contourner ce problème. La solution doit être publiée par Oracle avec une mise à jour de Java.

Un correctif est prévu par Oracle dans Java 10.

Nous utiliserons donc Java 10 en remplacement de Java 9 dès qu’il sera disponible.

 1906 BeDesk-ExpressApplicationBugCritiqueTrès hauteMac OS X 10.10 Rapport de bug 9053078 (JDK-10) -> JDK8200214 : libpack ...Fermée18.1
100%
Description de la tâche

RAPPORTS DE BUG : JDK-8200214

ORACLE A MARQUÉ CLAIREMENT QUE CE PROBLÈME NE SERA PAS RÉSOLU! : Aucune solution ne sera donc apportée.

On a constaté que les applications empaquetées avec le javapackager du JDK-10 (Java 10) ne démarre pas sur Mac OS X 10.10.

Lorsque l’application est lancée, une erreur “/Applications/BeDesk-Express.app/Contents/MacOS/libpackager.dylib not found”.

Or, le fichier est bien présent dans le paquetage.

Il y a donc un problème de compatibilité entre Java 10 et Mac OS X 10.10.

En outre, cette erreur ne se produit que sur Mac OS X 10.10.

Si vous utilisez une version plus récente de Mac OS X, l’erreur ne se produit pas.

Un rapport de bug a été envoyé à Oracle l’éditeur de Java et nous attendons que celui-ci soit pris en compte.

En attendant, on a constaté que si l’on installe directement le JDK-10 sur la machine, on peut démarrer l’application BeDesk via une ligne de commande.

On a donc créé un Automate Apple qui permet de lancer l’application plus aisément.

 1925 BeDesk-ExpressApplicationAméliorationCritiqueTrès hauteTous Nouveau moteur d'impression Fermée18.x-dev
100%
Description de la tâche

Le moteur d’impression utilisé jusqu’à présent date de quelques années et a atteint ses limites quant à la vitesse de rendu et à l’utilisation des ressources.

Le développement d’un nouveau moteur d’impression (générateur de rapports) doit être sérieusement envisagé.

Le nouveau moteur doit être plus rapide, plus puissant et moins gourmand en terme de ressources.

Ceci peut être planifié pour la version 19.

 2024 BeDesk-ExpressApplicationBugCritiqueTrès hauteTous Lors de la création automatique d'une note de crédit, l ...Fermée18.4
100%
Description de la tâche

Lorsqu’on crée une note de crédit automatique sur base d’une facture où un montant a été indiqué dans la case “Acompte”, ce montant d’acompte s’ajoute au total à payer.

Le montant final ne correspond pas alors à celui de la facture d’origine.

Problème confirmé.

Contournement du problème : Corriger le montant d’acompte à zéro.

Comment procéder ?

Vous ne pouvez pas corriger l’acompte directement en remplaçant son montant par zéro.

Le logiciel dispose d’un garde-fou qui empêche la saisie d’un montant d’acompte supérieur à celui du document. or, votre document à un montant total négatif. Zéro est donc plus grand que le montant du document.

Pour cela, ouvrez la table des articles du document et remplacez la quantité ‘-1’ par ‘1’ de manière à faire passer le montant négatif en positif.

Après cela, rectifiez le montant dans la case “Acompte” par ‘0’.

Validez.

Ensuite, revenez sur la table des articles et remettez la quantité correcte ‘-1’ à la place de ‘1’.

Enregistrez le document.

Il faut rectifier le module de création automatique de notes de crédit en conséquence.

Prévoir aussi une amélioration du contrôle de l’acompte :

Nouvelle formule:

( |ACOMPTE| <= |TOTAL| ) AND ( SGN(ACOMPTE)==0 OR SGN(ACOMPTE)==SGN(TOTAL) )

	
 2051 BeDesk-ExpressApplicationSpécificationCritiqueTrès hauteTous Specification 19.0: Support Java 11 LTS Fermée19.0
100%
Description de la tâche

Introduction du support de Java 11 LTS en remplacement définitif de Java 9 et 10 sur l’ensemble des modules.

 2087 BeDesk-ExpressApplicationSpécificationCritiqueHauteTous Suppression par Oracle du paquetage JRE et de l'outil j ...Fermée19.0
100%
Description de la tâche

Oracle ayant décidé de supprimer le paquetage JRE (on peut toutefois créer un Java Runtime à l’aide de jlink), il n’y a plus de paquetage redistribuable à partir de Java 11.

Oracle a également supprimé l’outil jpackage qui permet de créer des paquets exécutables pour les différents systèmes d’exploitation.

En outre, le JDK-11 de Oracle voit sa licence changer. L’usage du JDK dans le cadre d’une distribution commerciale ne put plus être réalisée sans paiement d’une licence spécifique chez Oracle.

Cependant, l’usage de l’OpenJDK reste gratuit y compris pour une redistribution commerciale. Il faut toutefois garder à l’esprit que l’OpenJDK est fourni sous licence GPL avec une “classpath exception”. On peut donc distribuer la version binaire non modifiée de l’OpenJDK dans le cadre d’une agrégation à condition de fournir la version non modifiée de l’OpenJDK et de l’utiliser sans mélange du code. En l’occurrence, l’OpenJDK peut être appelé via ligne de commande pour exécuter du code externe sans nécessiter de modification de l’oeuvre originale. Il faut toutefois faire mention de la licence de l’openJDK, s’assurer que l’application peut fonctionner avec un autre JDK (assurer l’indépendance du code) et signaler où l’utilisateur peut trouver le code source de l’OpenJDK.

 2090 BeDesk-ExpressApplicationImplementationCritiqueHauteMac OS X Création du paquetage .app et du packet d'installation  ...Fermée19.0
100%
Description de la tâche

Privé de JRE et de l’outil jpackage, il est nécessaire de générer l’application et le paquet d’installation par lignes de commande.

Rien n’interdit de repartir de composants existants et d’assurer le lancement correct de l’application.

 2148 BeDesk-ExpressApplicationGarde-fouCritiqueHauteTous Garde-fou: (paramètres) Rectification automatique du co ...Fermée19.0
100%
Description de la tâche

Un utilisateur avait modifié le paramètre du code ISO de sont pays en remplaçant le code “FR” par “F”.

L’utilisation d’un paramètre ISO-3166-1 erroné débraille la reconnaissance des numéros de TVA des assujettis à la TVA du pays courant (celui du profil et du même coup de l’utilisateur).

Le logiciel est accompagné de 4 profils prédéfinis:

  1. Belgique
  2. France
  3. Luxembourg
  4. Suisse

Le code ISO ne devrait donc faire partie de l’ensemble suivant: BE, FR, LU ou CH.

Cependant, il était possible de personnaliser ce code si on modifie un profil pour correspondre à un autre pays.


La modification du code ISO ne change pas le calcul de la TVA sur les documents.

Il devrait donc être possible de mettre en place un garde-fou qui rattache le code ISO erroné à un des 4 pays supportés.


Attention!!! Il ne faut pas chercher à rectifier un code ISO s’il correspond à un code ISO correct.


NOTE

Le code ISO fournis par les profils initiaux ne peuvent plus être personnalisés depuis la version 18.0.

Si un code ISO a été modifié, cela ne peut se produire que suite à l’importation d’une ancienne base de données utilisées préalablement à partir d’une version antérieure du logiciel (avant janvier 2018).


On peut donc envisager la correction automatique de ce paramètre pour les éventuels utilisateurs qui auraient modifier ce paramètre AVANT de migrer vers la version 18.0 certifiée.


Garde-fou : ok.

 2155 BeDesk-ExpressApplicationSpécificationCritiqueTrès hauteTous Specifications 19.0: Niveau de rétro-compatibilité mini ...Fermée19.0
100%
Description de la tâche

Le niveau minimum de rétro-compatibilité est fixé à la version 18.0-250, c-à-d la première version certifiée du logiciel.

Les utilisateurs qui utilisent toujours une révision antérieures peuvent faire appel au support technique pour bénéficier d’un service de conversion et de certification des fichiers.

 2284 BeDesk-ExpressApplicationSpécificationCritiqueHauteTous Mise à jour UpStream : OpenJDK 11.0.5+10 (Adopt OpenJDK ...Fermée19.020.0
100%
Description de la tâche

Passage à la révision 5+10 de l’OpenJDK 11 soutenu par la communauté AdoptOpenJDK.

Cette mise à jour de l’OpenJDK 11 comporte les correctifs suivants par rapport à la révision précédemment utilisée:

You can check the details of these bugs using the 11.0.5 Fix Version filter in the JDK Bug System.
Security fixes

  1. S8209901: Canonical file handling
  2. S8213429, CVE-2019-2933: Windows file handling redux
  3. S8218573, CVE-2019-2945: Better socket support
  4. S8218877: Help transform transformers
  5. S8220186: Improve use of font temporary files
  6. S8220302, CVE-2019-2949: Better Kerberos ccache handling
  7. S8221497: Optional Panes in Swing
  8. S8221858, CVE-2019-2958: Build Better Processes
  9. S8222684, CVE-2019-2964: Better support for patterns
  10. S8222690, CVE-2019-2962: Better Glyph Images
  11. S8223163: Better pattern recognition
  12. S8223505, CVE-2019-2973: Better pattern compilation
  13. S8223518, CVE-2019-2975: Unexpected exception in jjs
  14. S8223886: Add in font table referene
  15. S8223892, CVE-2019-2978: Improved handling of jar files
  16. S8224025: Fix for JDK-8220302 is not complete
  17. S8224062, CVE-2019-2977: Improve String index handling
  18. S8224532, CVE-2019-2981: Better Path supports
  19. S8224915, CVE-2019-2983: Better serial attributes
  20. S8225286, CVE-2019-2987: Better rendering of native glyphs
  21. S8225292, CVE-2019-2988: Better Graphics2D drawing
  22. S8225298, CVE-2019-2989: Improve TLS connection support
  23. S8225597, CVE-2019-2992: Enhance font glyph mapping
  24. S8226765, CVE-2019-2999: Commentary on Javadoc comments
  25. S8227601: Better collection of references
  26. S8228825, CVE-2019-2894: Enhance ECDSA operations

Other fixes

  1. S6996807: FieldReflectorKey hash code computation can be improved
  2. S8076988: reevaluate trivial method policy
  3. S8087128: C2: Disallow definition split on MachCopySpill nodes
  4. S8133489: Better messaging for PKIX path validation matching
  5. S8139965: Hang seen when using com.sun.jndi.ldap.search.replyQueueSize
  6. S8147502: Digest is incorrectly truncated for ECDSA signatures when the bit length of n is less than the field size
  7. S8148188: Enhance the security libraries to record events of interest
  8. S8163363: AArch64: Stack size in tools/launcher/Settings.java needs to be adjusted
  9. S8163511: Allocation of compile task fails with assert: “Leaking compilation tasks?”
  10. S8170639: [Linux] jsig is limited to a maximum of 64 signals
  11. S8177899: Tests fail due to code cache exhaustion on machines with many cores
  12. S8180901: Transformer.reset() resets the state only once
  13. S8193234: When using -Xcheck:jni an internally allocated buffer can leak
  14. S8194231: java/net/DatagramSocket/ReuseAddressTest.java failed with java.net.BindException: Address already in use: Cannot bind
  15. S8196681: Java Access Bridge logging and debug flags dynamically controlled
  16. S8198411: [TEST_BUG] Two java2d tests are unstable in mach5
  17. S8200365: TestOptionsWithRanges.java of ‘-XX:TLABWasteTargetPercent=100’ fails intermittently
  18. S8200400: Restrict Sasl mechanisms
  19. S8202035: Archive the set of ModuleDescriptor and ModuleReference objects for observable system modules with unnamed initial module.
  20. S8202252: (aio) Closed AsynchronousSocketChannel keeps completion handler alive
  21. S8202952: C2: Unexpected dead nodes after matching
  22. S8203629: Produce events in the JDK without a dependency on jdk.jfr
  23. S8204203: Many pkcs11 tests failed in Provider initialization, after compiler on Windows changed
  24. S8204521: compiler/jsr292/RedefineMethodUsedByMultipleMethodHandles.java fails trying to delete temp file
  25. S8205421: AARCH64: StubCodeMark should be placed after alignment
  26. S8205654: serviceability/dcmd/framework/HelpTest.java timed out
  27. S8206074: nsk/jdi/EventRequestManager/createStepRequest/crstepreq001/TestDescription.java is timing out
  28. S8206879: Currency decimal marker incorrect for Peru
  29. S8207965: C2-only debug build fails
  30. S8208269: Javadoc does not support module-info in a multi-release jar
  31. S8208499: NMT: Missing memory tag for Safepoint polling page
  32. S8208655: use JTreg skipped status in hotspot tests
  33. S8208701: Fix for JDK-8208655 causes test failures in CI tier1
  34. S8208706: compiler/tiered/ConstantGettersTransitionsTest.java fails to compile
  35. S8208780: (se) test SelectWithConsumer.testReadableAndWriteable(): failure
  36. S8209186: Rename SimpleThresholdPolicy to TieredThresholdPolicy
  37. S8209413: AArch64: NPE in clhsdb jstack command
  38. S8209420: Track membars for volatile accesses so they can be properly optimized
  39. S8209684: Intrinsics that assume some input non null should use GraphKit::must_be_not_null()
  40. S8209939: [testbug][ppc] Test SafepointPollingPages fails after 8208499 with UseSIGTRAP on.
  41. S8210063: ZGC: Enable load barriers for IN_NATIVE runtime barriers
  42. S8210130: java/net/httpclient/UnknownBodyLengthTest.java failed
  43. S8210314: [aix] NMT does not show “Safepoint” memory type
  44. S8210389: C2: assert(n→outcnt() != 0 || C→top() == n || n→is_Proj()) failed: No dead instructions after post-alloc
  45. S8210390: C2 still crashes with “assert(mode == ControlAroundStripMined && use == sfpt) failed: missed a node”
  46. S8210408: Refactor java.util.ResourceBundle:i18n shell tests to plain java tests
  47. S8210729: Clean up macosx static library handling
  48. S8210919: Remove statically linked libjli on Windows
  49. S8210926: vmTestbase/nsk/jvmti/scenarios/allocation/AP11/ap11t001/TestDescription.java failed with JVMTI_ERROR_INVALID_CLASS in CDS mode
  50. S8210985: Update the default SSL session cache size to 20480
  51. S8211097: aix: fix build after JDK-8210919
  52. S8211232: GraphKit::make_runtime_call() sometimes attaches wrong memory state to call
  53. S8211233: MemBarNode::trailing_membar() and MemBarNode::leading_membar() need to handle dying subgraphs better
  54. S8211727: Adjust default concurrency settings for running tests on Sparc
  55. S8212528: Wrong cgroup subsystem being used for some CPU Container Metrics
  56. S8212970: TZ database in “vanguard” format support
  57. S8212992: Change mirror accessor in Klass::verify_on() to use AS_NO_KEEPALIVE
  58. S8213017: jspawnhelper: need to handle pipe write failure when sending return code
  59. S8213117: adoptNode corrupts attribute values
  60. S8213134: AArch64: vector shift failed with MaxVectorSize=8
  61. S8213172: CDS and JFR tests fail with assert(JdkJfrEvent::is(klass)) failed: invariant
  62. S8213325: (props) Properties.loadFromXML does not fully comply with the spec
  63. S8213406: (fs) More than one instance of built-in FileSystem observed in heap
  64. S8213561: ZipFile/MultiThreadedReadTest.java timed out in tier1
  65. S8213734: SAXParser.parse(File, ..) does not close resources when Exception occurs.
  66. S8214003: Limit default test jobs based on memory size
  67. S8214096: sun.security.util.SignatureUtil passes null parameter, so JCE validation fails
  68. S8214161: java.lang.IllegalAccessError: class jdk.internal.event.X509CertificateEvent (in module java.base) cannot access class jdk.jfr.internal.handlers.EventHandler (in module jdk.jfr) because module java.base does not read module jdk.jfr
  69. S8214287: SpecJbb2005StressModule got uncaught exception
  70. S8214579: JFrame does not paint content in XVFB / X11vnc environment
  71. S8214687: Optimize Collections.nCopies().hashCode() and equals()
  72. S8214702: Wrong text position for whitespaced string in printing Swing text
  73. S8214770: java/time/test/java/time/format/TestNonIsoFormatter.java failed in non-english locales.
  74. S8214777: Avoid some GCC 8.X strncpy() errors in HotSpot
  75. S8214857: “bad trailing membar” assert failure at memnode.cpp:3220
  76. S8215044: C2 crash in loopTransform.cpp with assert(cl→trip_count() > 0) failed: peeling a fully unrolled loop
  77. S8215130: Fix errors in LittleCMS 2.9 reported by GCC 8
  78. S8215265: C2: range check elimination may allow illegal out of bound access
  79. S8215281: Use String.isEmpty() when applicable in java.base
  80. S8215380: Backout accidental change to String::length
  81. S8215451: JNI IsSameObject should not keep objects alive
  82. S8215483: Off heap memory accesses should be vectorized
  83. S8215505: Cleanup jvm.cpp obsolete code after JDK-8210094: Better loading of classloader classes
  84. S8215534: [testbug] some jfr test don’t check @requires vm.hasJFR
  85. S8215694: keytool cannot generate RSASSA-PSS certificates
  86. S8215756: Memory leaks in the AWT on macOS
  87. S8215792: AArch64: String.indexOf generates incorrect result
  88. S8215879: AArch64: ReservedStackAccess may leave stack guard in inconsistent state
  89. S8215901: [TESTBUG] TestCheckedEnsureLocalCapacity.java fails intermittently
  90. S8215961: jdk/jfr/event/os/TestCPUInformation.java fails on AArch64
  91. S8215982: (tz) Upgrade time-zone data to tzdata2018i
  92. S8216039: TLS with BC and RSASSA-PSS breaks ECDHServerKeyExchange
  93. S8216046: test/jdk/java/beans/PropertyEditor/Test6397609.java failing
  94. S8216155: C4819 warning at libfreetype sources on Windows
  95. S8216199: Local variable arg defined but never used in BCEscapeAnalyzer::compute_escape_for_intrinsic()
  96. S8216205: Java API documentation formatting error in System.getEnv
  97. S8216261: Javap ignores default modifier on interfaces
  98. S8216326: SSLSocket stream close() does not close the associated socket
  99. S8216375: Revert JDK-8145579 after JDK-8076988 is resolved
  100. S8216401: Allow “file:” URLs in Class-Path of local JARs
  101. S8216427: ciMethodData::load_extra_data() does not always unpack the last entry
  102. S8216528: test/jdk/java/rmi/transport/runtimeThreadInheritanceLeak/RuntimeThreadInheritanceLeak.java failing with Xcomp
  103. S8216549: Mismatched unsafe access to non escaping object fails
  104. S8216562: UnknownBodyLength sometimes fails due to “Connection reset by peer”
  105. S8216987: ciMethodData::load_data() unpacks MDOs with non-atomic copy
  106. S8216989: CardTableBarrierSetAssembler::gen_write_ref_array_post_barrier() does not check for zero length on AARCH64
  107. S8217093: Support extended-length paths in parse_manifest.c on windows
  108. S8217344: Make comparison overflow-aware in ECDHKeyAgreement.engineGenerateSecret()
  109. S8217359: C2 compiler triggers SIGSEGV after transformation in ConvI2LNode::Ideal
  110. S8217364: Custom URLStreamHandler for jrt or file protocol can override default handler
  111. S8217366: ZoneStrings are not populated for all the Locales
  112. S8217368: AArch64: C2 recursive stack locking optimisation not triggered
  113. S8217371: Incorrect LP64 guard in x86.ad after JDK-8210764 (Update avx512 implementation)
  114. S8217576: C1 atomic access handlers use incorrect decorators
  115. S8217676: Upgrade libpng to 1.6.37
  116. S8217760: C2: Missing symbolic info on a call from intrinsics when invoked through MethodHandle
  117. S8217766: Container Support doesn’t work for some Join Controllers combinations
  118. S8217785: Padding ParallelTaskTerminator::_offered_termination variable
  119. S8217896: Make better use of LCPUs when building on AIX
  120. S8217990: C2 UseOptoBiasInlining: load of markword optimized to 0 if running with -XX:-EliminateLocks
  121. S8218163: C2: Continuous deoptimization w/ Reason_speculate_class_check and Action_none
  122. S8218185: aarch64: missing LoadStore barrier in TemplateTable::putfield_or_static
  123. S8218201: Failures when vmIntrinsics::_getClass is not inlined
  124. S8218280: LineNumberReader throws “Mark invalid” exception if CRLF straddles buffer.
  125. S8218553: Enhance keystore load debug output
  126. S8218558: NMT stack traces in output should show mt component for virtual memory allocations
  127. S8218566: NMT: missing memory tag for assert poison page
  128. S8218581: Incorrect exception message generation
  129. S8218682: [TEST_BUG] DashOffset fails in mach5
  130. S8218705: Test sun/tools/jcmd/TestJcmdDefaults.java fails on Linux
  131. S8218715: [TESTBUG] TestUseOptoBiasInliningWithoutEliminateLocks needs to unlock WhiteBoxAPI
  132. S8218721: C1’s CEE optimization produces safepoint poll with invalid debug information
  133. S8218723: Use SunJCE Mac in SecretKeyFactory PBKDF2 implementation
  134. S8218780: Update MUSCLE PCSC-Lite header files
  135. S8218879: Keep track of memory accesses originated from Unsafe
  136. S8218966: AArch64: String.compareTo() can read memory after string
  137. S8219013: Update Apache Santuario (XML Signature) to version 2.1.3
  138. S8219241: Provide basic virtualization related info in the hs_error file on linux/windows x86_64
  139. S8219244: NMT: Change ThreadSafepointState’s allocation type from mtInternal to mtThread
  140. S8219370: NMT: Move synchronization primitives from mtInternal to mtSynchronizer
  141. S8219513: compiler/codegen/aes/TestCipherBlockChainingEncrypt.java timeout on Solaris-sparc
  142. S8219517: assert(false) failed: infinite loop in PhaseIterGVN::optimize
  143. S8219562: Line of code in osContainer_linux.cpp L102 appears unreachable
  144. S8219583: Windows build failure after JDK-8214777 (Avoid some GCC 8.X strncpy() errors in HotSpot)
  145. S8219635: aarch64: missing LoadStore barrier in TemplateTable::fast_storefield
  146. S8219807: C2 crash in IfNode::up_one_dom(Node*, bool)
  147. S8219914: Change the environment variable for Java Access Bridge logging to have a directory.
  148. S8219919: RuntimeStub name lost with PrintFrameConverterAssembly
  149. S8219993: AArch64: Compiled CI stubs are unsafely modified
  150. S8219997: [TESTBUG] Create test for JFR events in Docker container: CPU, Memory and Process Info
  151. S8220037: Inconsistencies of generated timezone files between Windows and Linux
  152. S8220072: GCC 8.3 reports errors in java.base
  153. S8220173: assert(_handle_mark_nesting > 1) failed: memory leak: allocating handle outside HandleMark
  154. S8220227: Host Locale Provider getDisplayCountry returns error message under non-English Win10
  155. S8220313: [TESTBUG] Update base image for Docker testing to OL 7.6
  156. S8220341: Class redefinition fails with assert(!is_unloaded()) failed: unloaded method on the stack
  157. S8220355: Improve assertion texts and exception messages in eventHandlerVMInit
  158. S8220570: Additonal trace when native thread creation fails
  159. S8220579: [Containers] SubSystem.java out of sync with osContainer_linux.cpp
  160. S8220657: JFR.dump does not work when filename is set
  161. S8220672: [TESTBUG] TestCPUSets should check that cpuset does not exceed available cores
  162. S8220674: [TESTBUG] MetricsMemoryTester failcount test in docker container only works with debug JVMs
  163. S8220682: Heap dumping and inspection fails with JDK-8214712
  164. S8220690: ATTRIBUTE_ALIGNED requires GNU extensions enabled
  165. S8221120: CopyOnWriteArrayList.set should always have volatile write semantics
  166. S8221220: AArch64: Add StoreStore membar explicitly for Volatile Writes in TemplateTable
  167. S8221253: TLSv1.3 may generate TLSInnerPlainText longer than 2^14+1 bytes
  168. S8221325: Add information about swap space to print_memory_info() on MacOS
  169. S8221340: [TESTBUG] TestCgroupMetrics.java fails after fix for JDK-8219562
  170. S8221342: [TESTBUG] Generate Dockerfile for docker testing
  171. S8221407: Windows 32bit build error in libsunmscapi/security.cpp
  172. S8221408: Windows 32bit build build errors/warnings in hotspot
  173. S8221411: NullPointerException in RasterPrinterJob without PrinterResolution
  174. S8221434: Fix typo in lib-x11 autoconf error message about missing headers
  175. S8221480: jcmd VM.metaspace shall print limits in basic mode
  176. S8221527: [TESTBUG] DockerBasicTest.java contains hard-coded reference to JDK 10
  177. S8221529: [TESTBUG] Docker tests use old/deprecated image on AArch64
  178. S8221710: [TESTBUG] more configurable parameters for docker testing
  179. S8221725: AArch64 build failures after JDK-8221408 (Windows 32bit build build errors/warnings in hotspot)
  180. S8221730: jcmd process name matching broken
  181. S8221801: Update src/java.base/share/legal/public_suffix.md
  182. S8221892: ThreadPoolExecutor: Thread.isAlive() is not equivalent to not being startable
  183. S8221894: Add comments for docker tests in the test doc
  184. S8222108: Reduce minRefreshTime for updating remote printer list on Windows
  185. S8222154: upgrade gtest to 1.8.1
  186. S8222280: Provide virtualization related info in the hs_error file on AIX
  187. S8222299: [TESTBUG] move hotspot container tests to hotspot/containers
  188. S8222362: Upgrade to Freetype 2.10.0
  189. S8222387: Out-of-bounds access to CPU _family_id_xxx array
  190. S8222415: Xerces 2.12.0: Parsing Configuration
  191. S8222670: pathological case of JIT recompilation and code cache bloat
  192. S8222720: Provide extended VMWare/vSphere virtualization related info in the hs_error file on linux/windows x86_64
  193. S8222743: Xerces 2.12.0: DOM Implementation
  194. S8222914: Partial backport of JDK-8218266
  195. S8222968: ByteArrayPublisher is not thread-safe resulting in broken re-use of HttpRequests
  196. S8222980: Upgrade IANA Language Subtag Registry to Version 2019-04-03
  197. S8222987: sun/security/tools/keytool/PSS.java times out on Solaris-SPARC
  198. S8222991: Xerces 2.12.0: Validation
  199. S8223177: Data race on JvmtiEnvBase::_tag_map in double-checked locking
  200. S8223227: Rename acquire_tag_map() to tag_map_acquire() in jvmtiEnvBase
  201. S8223244: Fix usage of ARRAYCOPY_DISJOINT decorator
  202. S8223336: Assert in VirtualMemoryTracker::remove_released_region when running the SharedArchiveConsistency.java test with -XX:NativeMemoryTracking=detail
  203. S8223482: Unsupported ciphersuites may be offered by a TLS client
  204. S8223537: testlibrary_tests/ctw/ClassesListTest.java fails with Agent timeout frequently
  205. S8223553: Fix code constructs that do not compile with the Eclipse Java Compiler
  206. S8223572: ~ThreadInVMForHandshake() should call handle_special_runtime_exit_condition()
  207. S8223574: add more thread-related system settings info to hs_error file on AIX
  208. S8223660: jtreg: Decouple Unsafe from RTM tests
  209. S8223814: SA: jhsdb common help needs to be more detailed
  210. S8224033: os::snprintf should be used in virtualizationSupport.cpp
  211. S8224034: [TESTBUG] runtime/ErrorHandlerTest/ErrorHandler fails intermittently for case 13 on Windows
  212. S8224090: [PPC64] Fix SLP patterns for filling an array with double float literals
  213. S8224165: [TESTBUG] Docker tests produce excessive output
  214. S8224181: On child process spawn, child may write to random file descriptor instead of the fail pipe
  215. S8224202: Speed up Properties.load
  216. S8224221: add memprotect calls to event log
  217. S8224230: [PPC64, s390] Support AsyncGetCallTrace
  218. S8224252: [TESTBUG] hotspot/test/serviceability/sa/sadebugd/SADebugDTest.java is timing out again after fix for JDK-8163805
  219. S8224487: outputStream should not be copyable
  220. S8224531: SEGV while collecting Klass statistics
  221. S8224558: Fix replicateB encoding
  222. S8224560: (tz) Upgrade time-zone data to tzdata2019a
  223. S8224580: Matcher can cause oop field/array element to be reloaded
  224. S8224589: Improve startup behavior of SecurityProperties
  225. S8224658: Unsafe access C2 compile fails with assert(flat != TypePtr::BOTTOM) failed: cannot alias-analyze an untyped ptr: adr_type = NULL
  226. S8224698: ConcurrentSkipListMap.java does not compile with the Eclipse Java Compiler
  227. S8224825: java/awt/Color/AlphaColorTest.java fails in linux-x64 system
  228. S8224838: Bump update version for OpenJDK: jdk-11.0.5
  229. S8224991: Problemlist javax/net/ssl/ServerName/SSLEngineExplorerMatchedSNI.java
  230. S8225005: Xerces 2.12.0: License file
  231. S8225141: Better handling of classes in error state in fast class initialization checks
  232. S8225178: [Solaris] os::signal() should call sigaction() with SA_SIGINFO
  233. S8225189: Multiple JNI calls within critical region in ZIP Library
  234. S8225257: sun/security/tools/keytool/PSS.java timed out
  235. S8225347: [s390] Unexpected exit from stack overflow test
  236. S8225386: test for JDK-8216261 fails in Windows
  237. S8225388: Running jcmd Compiler.CodeHeap_Analytics all 0 cause crash.
  238. S8225390: ProblemList sun/security/pkcs11/sslecc/ClientJSSEServerJSSE.java due to JDK-8161536
  239. S8225423: GTK L&F: JSplitPane: There is no divider shown
  240. S8225425: java.lang.UnsatisfiedLinkError: net.dll: Can’t find dependent libraries
  241. S8225543: Jcmd fails to attach to the Java process on Linux using the main class name if whitespace options were used to launch the process
  242. S8225580: tzdata2018i integration causes test failures on jdk-13
  243. S8225636: SA can’t handle prelinked libraries
  244. S8225644: C1 dumps incorrect class name in ClassCastException message
  245. S8225663: [testbug] Missing JNIEXPORT in XAbortProvoker native function
  246. S8225715: jhsdb jmap fails to write binary heap dump of a jshell process
  247. S8226409: Enable argument profiling for sun.misc.Unsafe.put*/get*
  248. S8226468: [aix] loadquery failed error message displayed
  249. S8226530: ZipFile reads wrong entry size from ZIP64 entries
  250. S8226543: Reduce GC pressure during message digest calculations in password-based encryption
  251. S8226607: Inconsistent info between pcsclite.md and MUSCLE headers
  252. S8226798: JVM crash in klassItable::initialize_itable_for_interface(int, InstanceKlass*, bool, Thread*)
  253. S8226964: [Yaru] GTK L&F: There is no difference between menu selected and de-selected
  254. S8227011: Starting a JFR recording in response to JVMTI VMInit and / or Java agent premain corrupts memory
  255. S8227041: runtime/memory/RunUnitTestsConcurrently.java has a memory leak
  256. S8227117: normal interpreter table is not restored after single stepping with TLH
  257. S8227247: tools/sjavac/IdleShutdown.java fails with AssertionError: Error too big on windows
  258. S8227277: HeapInspection::find_instances_at_safepoint walks dead objects
  259. S8227392: Colors with alpha are painted incorrectly on Linux, after JDK-8214579
  260. S8227594: sadebugd/DebugdConnectTest.java fails due to “java.rmi.NotBoundException: SARemoteDebugger”
  261. S8227630: adjust format specifiers in loadlib_aix.cpp
  262. S8227834: build.log output from failing commands : include the hs_error file path in case of crashes in build
  263. S8227869: fix wrong format specifiers in os_aix.cpp
  264. S8227919: 8213232 causes crashes on solaris sparc64
  265. S8228337: problemList failing/ignored manual tests in security-libs
  266. S8228400: Remove built-in AArch64 simulator
  267. S8228469: (tz) Upgrade time-zone data to tzdata2019b
  268. S8228485: JVM crashes when bootstrap method for condy triggers loading of class whose static initializer throws exception
  269. S8228501: java_props_macosx.c - provide missing CFRelease for CFLocaleCopyCurrent
  270. S8228578: fix CFData object leak in macosx KeystoreImpl.m
  271. S8228585: jdk/internal/platform/cgroup/TestCgroupMetrics.java - NumberFormatException because of large long values (memory limit_in_bytes)
  272. S8228596: Class redefinition fails when condy instructions are removed
  273. S8228601: AArch64: Fix interpreter code at JVMCI deoptimization entry
  274. S8228618: s390: c1/c2 fail to add a metadata relocation in the static call stub.
  275. S8228649: [PPC64] SA reads wrong slots from interpreter frames
  276. S8228658: test GetTotalSafepointTime.java fails on fast Linux machines with Total safepoint time 0 ms
  277. S8228711: Path rendered incorrectly when it goes outside the clipping region
  278. S8228725: AArch64: Purge method call format support
  279. S8228764: New library dependencies due to JDK-8222720
  280. S8229118: [TESTBUG] serviceability/sa/ClhsdbFindPC fails on AArch64
  281. S8229352: Use of an uninitialized register in 32-bit ARM template interpreter
  282. S8229406: ZGC: Fix incorrect statistics
  283. S8229767: Typo in java.security: Sasl.createClient and Sasl.createServer
  284. S8229773: Resolve permissions for code source URLs lazily
  285. S8229887: (zipfs) zip file corruption when replacing an existing STORED entry
  286. S8229925: [s390, PPC64] Exception check missing in interpreter
  287. S8230085: (fs) FileStore::isReadOnly is always true on macOS Catalina
  288. S8230099: Prepare for backport of JDK-8217368
 2335 BeDesk-ExpressApplicationSpécificationCritiqueTrès hauteTous Mise à jour upstream OpenJDK 11.0.9.1 Fermée20.021.0
100%
Description de la tâche

Passage à OpenJDK 11.0.9.1:

https://www.oracle.com/java/technologies/javase/11-0-7-bugfixes.html https://www.oracle.com/java/technologies/javase/11-0-8-bugfixes.html https://www.oracle.com/java/technologies/javase/11-0-9-bugfixes.html

Cumulant en tout, plus de 425 correctifs.

 2365 BeDesk-ExpressApplicationSpécificationCritiqueHauteTous Migration de l'OpenJDK 11 vers l'OpenJDK 17 Fermée22.323.0
100%
Description de la tâche

Migration de l'OpenJDK 11 vers l'OpenJDK 17

Cette mise à jour est très importante car elle prépare le logiciel aux changements qui seront appliqués dans les futures versions de Mac OS et Windows.

Par exemple, le retrait de l’OpenGL est planifié sur macOS. Il faut que le logiciel soit adapté en conséquence.

En outre, OpenJDK 17 apporte un grand nombre d’améliorations par rapport à la version 11.



 2368 BeDesk-ExpressApplicationLégislation et normesCritiqueTrès hauteTous Changement des taux de TVA luxembourgeois pour janvier  ...Fermée22.323.0
100%
Description de la tâche

Les taux de TVA luxembourgeois diminuent de 1% le 1ier janvier 2023.

 2384 BeDesk-ExpressApplicationDéploiementCritiqueTrès hauteTous Déploiement : OpenJDK 17 Fermée22.323.0
100%
Description de la tâche

Disposer d’un paquet de déploiement pour chaque système d’exploitation incluant l’OpenJDK 17.

 620 BeDesk-ExpressApplicationBugHauteHauteTous Clic sur la liste des contacts lorsqu'il n'y en a qu'un ...Fermée
100%
Description de la tâche

Clic sur la liste des contacts lorsqu’il n’y en a qu’un indique “pas de contact dans la bd”.

 623 BeDesk-ExpressApplicationBugHauteHauteTous Clic sur liste des documents alors qu'on est en train d ...Fermée
100%
Description de la tâche

Clic sur liste des documents alors qu’on est en train d’éditeur le tout premier doc est accepté.
Document enregistré vide.


→ perte de focus!...

 626 BeDesk-ExpressApplicationBugHauteHauteTous Liste de documents affiche 2 fois le tout premier docum ...Fermée
100%
Description de la tâche

Liste de documents affiche 2 fois le tout premier document

 632 BeDesk-ExpressApplicationBugHauteHauteTous Si fermeture après la saisie d'un seul contact, sa fich ...Fermée
100%
Description de la tâche

Le logiciel reprenait par défaut la fiche du client du dernier document saisi. S’il n’y a pas de document, il faut prendre la dernière fiche de contact même sans document.

 722 BeDesk-ExpressApplicationBugHauteHauteTous Une erreur lors de l'envoi des documents par lot via la ...Fermée16.4 (fork)17.0
100%
Description de la tâche

Une erreur lors de l’envoi des documents par lot via la messagerie e-mail peut bloquer le programme:

En fait, la boite de progression reste ouverte car le nombre de document prévus n’est pas envoyé.


Corriger dans BeDesk-Express v 17.0

 1002 BeDesk-ExpressApplicationSpécificationHauteHauteTous Validation des documents obligatoire pour impression et ...Fermée17.018.x-dev
100%
Description de la tâche

La validation des documents devient obligatoire avant de pouvoir imprimer ou exporter un document.

Le but est de figer le document tel quel avant de pouvoir l”imprimer de manière à pouvoir le reproduire à l’identique ultérieurement.

La validation au aussi un effet sur la numérotation et la validation des acomptes déjà reçu au moment de la validation.

 1332 BeDesk-ExpressApplicationPaquet de transitionHauteHauteTous Désactivation et réactivation doivent être contrôlées Fermée17.717.10
100%
Description de la tâche

Lorsqu’une licence se désactive, la continuité du journal de réplication peut être corrompu.

Pour éviter cela, il faut améliorer le contrôle de désactivation et de réactivation.

La création d’un snapshot en fin de session ne présente aucun problème car en cas de réactivation sur une base de données corrompue, l’activation ne tient pas (mode par défaut).

Ainsi, le snapshot permet d’éviter de devoir absolument repartir d’une sauvegarde de sécurité à distance en restaurant les fichier systématiquement dans l’état d’origine (pour facilité).

En mode dégradé, les documents ne peuvent pas être modifiés. On peut toutefois les consulter et les imprimer tels quels.

 1338 BeDesk-ExpressApplicationBugHauteHauteTous En cas d'erreur de validation un contact avec un id=0 p ...Fermée17.717.8
100%
Description de la tâche

Lorsqu’une erreur de validation du dernier contact saisi, un enregistrement dont l’identifiant est zéro est effectivement ajouté.


En cas d’erreur de l’agent de réplication, la méthode _Trk4b_Tk.dispatchReplicationAgentError(e) n’est pas appelée correctement.

De cet fait, le dispatching de l’erreur ne se fait pas correctement.

Le fichier de contacts peut donc en être altéré.


Corrigé.

 1387 BeDesk-ExpressApplicationGarde-fouHauteHauteTous Signalement d'une erreur de chargement d'articles sur b ...Fermée17.817.9
100%
Description de la tâche

Lorsque les données ont été importées à partir d’une ancienne révision, les anciens fichiers ont normalement été supprimés.

Or, il peut rester quelques fichiers de configuration qui ont pas été correctement supprimés lors de l’opération.

C’est plus particulièrement le cas des articles avec le le fichier de configuration résiduel “dba.cfg” de l’ancien moteur B5F.

Ce garde-fou veille à supprimer ce fichier s’il est toujours présent.

 1847 BeDesk-ExpressApplicationSpécificationHauteHauteTous Fusion des modules starter.* et bedesk.* Fermée18.019.0
100%
Description de la tâche

Réduction de la complexité de l’application en fusionnant les modules starter.* et bedesk.*

Le nouveau paquetage résultant est bedesk.starter.*.

 2009 BeDesk-ExpressApplicationSpécificationHauteHauteTous Intégration RGPD au niveau du logiciel Fermée18.3
100%
Description de la tâche

Intégration du RGPD au niveau du logiciel.

  • Remplacement du lien menant à la police de protection de la vie privée.
  • Actualisation des conditions du contrat de licence.
 2026 BeDesk-ExpressApplicationGarde-fouHauteHauteTous Amélioration du contrôle du montant d'acompte Fermée18.4
100%
Description de la tâche

Amélioration du contrôle du montant de l’acompte en tenant compte de la formule:

( |ACOMPTE| <= |TOTAL| ) AND ( SGN(ACOMPTE)==0 OR SGN(ACOMPTE)==SGN(TOTAL) )
 2091 BeDesk-ExpressApplicationImplementationHauteHauteTous Création d'un nouvel exécutable et paquet d'installatio ...Fermée19.0
100%
Description de la tâche

Il est très facile d’inclure dans la distribution le paquet inchangé de l’OpenJDK original pour Windows.

L’appel de la machine virtuelle Java se faisant par simple ligne de commande, on respecte le contrat GPL.

Les liaisons bénéficient de l’exception du classpath associé au contrat.

Pour remplacer l’OpenJDK, il suffit de modifier la ligne de commande de l’appel ou de remplacer le contenu du sous dossier jdk-11 tout simplement. L’application BeDesk pouvant tout à fait fonctionner avec une autre JVM, l’indépendance est conservée. le paquet de l’OpenJDK est utilisé pour la facilité de l’utilisateur final et celui-ci conserve tous les droits de la licence originale de l’OpenJDK.

 2135 BeDesk-ExpressApplicationCorrectifHauteHauteTous Correctif: Suppression de l'image de fond du modèle de  ...Fermée19.0
100%
Description de la tâche

La suppression de l’image de fond des document entraîne une exception.

Un enregistrement “tombstone” remplace la suppression qui produit l’exception en mode réplication.

Le problème est résolu.

Tâches 1 - 50 sur 1307 Page 1 sur 271 - 2 - 3 - 4 - 5 - Dernier >>

Activer les raccourcis clavier

Liste des tâches

Détails de la tâche

Édition de la tâche