Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[TRA 15647 fix] Résolution de problème d'indexation de BSVHU #3897

Open
wants to merge 2 commits into
base: dev
Choose a base branch
from

Conversation

silto
Copy link
Collaborator

@silto silto commented Jan 11, 2025

Contexte

Le BSVHU ne remontait pas correctement dans les bordereaux à collecter du transporteur lorsque l'émetteur n'est pas inscrit sur TD. Celà arrivait uniquement si le bordereau était créé en brouillon puis publié.

Après investigation, le problème était double:
1er problème: la liste des champs scellés utilise currentSignatureType qui est à EMISSION à la publication, et qui bloque le sirenify sur l'emetteur. C'était passé inaperçu parce que ces champs scellés ne sont pas appliqués si l'émetteur est une entreprise de l'utilisateur, ce qui est souvent le cas lors de nos tests. Mais lorsque le bordereau est créé en brouillon, aucun champ n'est scellé, ce qui créait un comportement différent sur sirenify.

2e problème: la recherche d'entreprise faite dans sirenify trouve en fait les entreprises qui ne sont pas sur TD, donc setterIfNotFound n'était pas exécuté, l'entreprise était donc considérée comme trouvée, le flag emitterNotOnTD pas mis à true, donc la règle d'indexation n'était pas utilisée.

La résolution a donc consisté à:

  • ajouter un flag "unsealed" dans le contexte de validation afin de ne pas sceller les champs lors de la création, tout en gardant les règles de validation (champs requis) correspondants à une signature émetteur, pour remonter les erreurs
  • modifier la façon dont est traité le cas des entreprises non inscrites, pour exécuter setterIfNotFound (renommée en setterIfNotRegistered) uniquement lorsqu'on a fait une recherche d'entreprise (il y a un siret et pas skip) et qu'elle est soit non trouvée soit trouvée mais pas sur TD.

Points de vigilance pour les intégrateurs

a priori aucun, pour être parfait il faudrait modifier quelques bordereaux en DB et les réindexer mais étant donné que le seul impact est en recette et n'est qu'une histoire d'affichage, ça ne me semble pas utile.

Démo

Ticket Favro

Titre

Checklist

  • Mettre à jour la documentation
  • Mettre à jour le change log
  • Documenter les manipulations à faire lors de la mise en production (sur le ticket Favro de release)
  • Informer le data engineer de tout changement de schéma DB

Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant