Projet

Général

Profil

Actions

Anomalie #19591

fermé

Erreur SQL dans le parapheur en mode Griffe après erreur en signature

Ajouté par Etienne FAMERY il y a presque 3 ans. Mis à jour il y a presque 2 ans.

Statut:
R&D - Terminé
Priorité:
2-Sérieux
Assigné à:
Mathieu PIONNIER
Version cible:
Début:
24/01/2022
Echéance:

Description

Lorsque l'on souhaite signer un document dans le parapheur interne de MaarchCourrier, si une précédente tentative de signature a échouée, alors une erreur SQL survient, empêchant la création du document signé.

Analyse :

Dans MergeController.php ,on récupère la version du courrier :
Ligne 639 :

$document = ResModel::getById(['select' => ['docserver_id', 'path', 'filename', 'category_id', 'version', 'fingerprint', 'format', 'version'], 'resId' => $args['resId']]);

Et on crée une nouvelle version du document de type TMP :
Ligne 755 :

            AdrModel::createDocumentAdr([
                'resId'       => $args['resId'],
                'type'        => 'TMP',
                'docserverId' => $storeResult['docserver_id'],
                'path'        => $storeResult['destination_dir'],
                'filename'    => $storeResult['file_destination_name'],
                'version'     => $document['version'] + 1,    => ici on prend la valeur version du document pour créer le document TMP.
                'fingerprint' => $storeResult['fingerPrint']
            ]);

Version du document en base :

gpseo=# select res_id,subject,version,filename from res_letterbox where res_id=1975;
-[ RECORD 1 ]--------------------------------------------------------------
res_id   | 1975
subject  | XXXXXXXXXXXX
version  | 5
filename | 0131_1925649984.docx

Cependant, la version du document indiquée dans res_letterbox semble correspondre uniquement aux versions de type PDF du document et pas aux versions TMP, or dans notre table adr_letterbox, on a une version 6 du document de type TMP.

gpseo=# select * from adr_letterbox where res_id=1975 and version >4;
-[ RECORD 1 ]+-----------------------------------------------------------------
id           | 7148
res_id       | 1975
type         | PDF
version      | 5
docserver_id | CONVERT_MLB
path         | 2022/01/0002/
filename     | 0152_2082439115.pdf
fingerprint  | 23699e7011a9b7317716a5bd552f7fd9c7578e5d8a935ff017bf5e29dcfcc4b9
-[ RECORD 2 ]+-----------------------------------------------------------------
id           | 6139
res_id       | 1975
type         | TMP
version      | 5
docserver_id | CONVERT_MLB
path         | 2022/01/0001/
filename     | 0640_56955514.pdf
fingerprint  | 6dc608263e3917870747f243ecad7c18ed56349527a29c1e0221af5daf727550
-[ RECORD 3 ]+-----------------------------------------------------------------
id           | 7149
res_id       | 1975
type         | TMP
version      | 6
docserver_id | CONVERT_MLB
path         | 2022/01/0002/
filename     | 0153_2133524773.pdf
fingerprint  | 4aa477931ef99c9057c0b4ca5056bbe9c823c0774bf3a63c3fb0efe8ccc115ff

On essaye donc de créer de nouveau une version 6 de type TMP qui existe déjà car on prend pour référence la valeur version de la table res_letterbox.

Conclusion :

Lorsqu'une erreur survient à la signature, le document TMP est conservé mais la variable version du document n'est pas incrémenté. Une erreur survient lorsque l'on souhaite signer de nouveau.
Contournement : Suppresion des fichiers tmp dans la table adr_letterbox.


Fichiers

3.png (39,1 ko) 3.png Etienne FAMERY, 24/01/2022 15:19

Sous-tâches 2 (0 ouverte2 fermées)

Anomalie #19979: Erreur SQL dans le parapheur en mode Griffe après erreur en signature (21.03)R&D - TerminéMathieu PIONNIER01/03/2022Actions
Anomalie #19980: Erreur SQL dans le parapheur en mode Griffe après erreur en signature (develop)R&D - TerminéMathieu PIONNIER01/03/2022Actions
Actions

Formats disponibles : Atom PDF