Facture PDF/A

Merci @philazerty,

mais forcement, ca ne fonctionnait pas :unhappy: du coup je ne sais plus dire pourquoi mais déjà, le placement dans le fichier faisait que ca n’affichait pas l’image, et au niveau du placement du logo, ca na marche pas non plus parce qu’à ce moment là l’user ID est vide… :pinch:

Donc, je fais un petit résumé:

1 - On créaient un dossier /certificates sous documents/users/(ID utilisateur)/
2 - On y place notre certificat « signature.crt » et un .png (signature.png) si on souhaites apposer sa signature sur le document.

Pour la génération:
openssl req -x509 -nodes -days 365000 -newkey rsa:2048 -keyout signature.crt -out signature.crt
openssl pkcs12 -export -in signature.crt -out signature.p12 

3- Dans notre modèle de facture on ajoute les lignes suivantes: (vers la ligne 700, avant « // Show square »

//**************** Signature ******************************
$cert=file_get_contents(DOL_DATA_ROOT."/users/".$user->id."/certificates/signature.crt");
// si l'utilisateur n'a pas de certificat, on prend le certificat
if (!$cert)
	$cert=file_get_contents(DOL_DATA_ROOT."/mycompany/certificates/signature.crt");
if ($cert) {
	$info = array(
		'Name' => $this->emetteur->name, 
		'Location' => getCountry($this->emetteur->country_code, 0),
		'Reason' => 'FACTURE',
		'ContactInfo' => $this->emetteur->email);

	$pdf->setSignature($cert, $cert, $this->emetteur->name, '', 2, $info);

         //******* signature .png **************
        $sign=(DOL_DATA_ROOT."/users/".$user->id."/certificates/signature.png");
        if (is_readable($sign)){
	       $height=pdf_getHeightForLogo($sign);
	       $pdf->Image($sign, 150, 235, 0, $height);	// width=0 (auto)
               }
	}
//******************************************************************
// Show square

Tu ne peux pas le mettre là. Tu es au niveau de la définition du pdf
Plutot dans le pied de page ? Ligne 730 environ.

[code]
// Pied de page
$this->_pagefoot($pdf,$object,$outputlangs);
if (method_exists($pdf,‹ AliasNbPages ›)) $pdf->AliasNbPages();

			// Add by Philazerty for eletronic signature stamp
			// Update : 11/11/2019
			//******* signature.png est carré **************
			$imgsignature=(DOL_DATA_ROOT."/mycompany/certificates/signature.png");
			if (is_readable($imgsignature)){
				$height=pdf_getHeightForLogo($imgsignature);
				$pdf->Image($imgsignature, $this->page_largeur-$this->marge_droite-16, $this->page_hauteur-$this->marge_basse-16, 0, 16);	// width=0 (auto)
			}[/code]

@+

Ici, on est dans la fonction « write_file », qu’est ce qui pose problème ? :unhappy:

J’ai essayé de placé tout ca dans « _pagefoot » mais ca ne marche pas :unsure:

cette histoire de signature est-elle obligatoire sur le pdf dans le cas du format pdf/A?

Non, je ne penses pas… Mais au moins c’est prévu :tongue:
C’est la loi de Murphy, il suffit de na pas le prévoir pour qu’on la demande :wink:

@defrance
Obligation à compter de 2020. Pour les administrations Et entreprise. Encore une veille juridique zappée.
Il faut pouvoir prouver l’authenticité de l’origine d’une facture. Seul la signature le permet avec un vrai certificat et non un autosigné.
Le pdfa permet surtout la portabilité des pdf et l’archivage. Il n’y a aucune sécurité. Je peut en prendre un le modifier et refaire un pdfa avec.
@+

Édit : loi du 6 août 2015 applicables à toutes les entreprises à compter de 2020

Les textes valables pour tout le monde en 2020 ne concernent que l’obligation d’accepter la réception des factures au format électronique.
Rien pour leur émission (à part pour l’administration, cf chorus)

Mais mieux vaut s’en occuper maintenant car c’est une pratique qui va rapidement se généraliser (sans parler des entreprises qui « l’imposeront » à leurs fournisseurs)

Un résumé assez bien fait :

@arre
Chorus n’oblige pas la signature puisque considéré comme édi. Il te faut un compte pour déposer une facture donc l’origine est connue.

Pour les entreprises il faut pouvoir certifier l’origine d’une facture. A part l’edi il 'y a que la signature ou le retour au papier.

On a maintenant La solution Mais dommage encore une fois que rien ne soit anticipé Au niveau de l’association.
@+

Bonjour,
il faudrait à priori avoir un pdf/3A
(source : Une facture de vente en format électronique (CGI art. 289, VI) est une facture ou un flux de factures créé, transmis, reçu et archivé sous forme électronique, quelle qu’elle soit (BOFiP-TVA-DECLA-30-20-30-10-§ 70-07/02/2018). Cela suppose que l’intégralité du processus de facturation soit électronique. Aussi, une facture initialement conçue sur support papier puis numérisée, envoyée et reçue par courrier électronique ne constitue pas une facture électronique mais une facture papier (BOFiP-TVA-DECLA-30-20-30-10-§ 80-07/02/2018).)
Cela ne semble pas être le cas dans Dolibarr
Cordialement

Bonjour,
j’ai généré en validant le paramètre 1 pour PDF_USE_1A
les factures générées par Dolibarr sont reconnues comme telles par Acrobat:


mais lorsque je fais le test de compatibilité sur internet par https://www.pdfen.com/pdf-a-validator (par exemple): voici ce qu’il rapporte:
image
si je le convertis en pdf/A sur le même site (https://www.pdfen.com/convert-to-pdfa)
alors après cela fonctionne
image

même constatation sur d’autres sites comme par exemple

image

et auparavant!

Y-a-t-il une explication?
D’avance merci
Cordialement

Bonjour,

La norme PDF/A est un vrai sac de noeud :thinking:
Il y a x versions… 1, 2, A, B, et toute ne sont pas "compatibles entre elles…

Cf. Wikipedia: " La validation des documents PDF/A tente de découvrir si un fichier produit est réellement un fichier PDF/A ou non. Malheureusement, les validateurs PDF/A sont souvent en désaccord, parce que l’interprétation des normes PDF/A n’est pas toujours claire"

Peut-être parce que les sites que tu utilises regarde la norme pdf/a 1b ?

Personnellement, si acrobat dit ok, pour moi c’est ok :+1:

Bonjour,
Merci pour cette réponse et c’est la position que je prendrai en cas de contrôle…
Cordialement

Bonjour :slightly_smiling_face:
un peu tard dans la discussion je sais
Pour le certificat .crt peut-on uliliser le certificat généré par son hébergeur ?

Le soucis avec de l’autosigné c’est que ce n’est pas reconnu comme une signature légale il faut donc un vrai certificat de signature. J’ai un peu travaillé sur le sujet mais abandonné car pas nécessaire avec mes clients.
@+

1 « J'aime »

Salut,

non tu ne peux pas, ça ne sont pas les même « notions ».
De plus il existe plusieurs niveaux de certificats (ceux reconnu pour la signature électronique de doc électroniques)
Moi je suis chez certeurop par exemple, mais ils y en a surement plein d’autres (préfère quand même un certificateur français ou au moins européen… sait on jamais)

1 « J'aime »

Bonjour,
En fait, tout dépend du niveau de certification de la signature qui t’es demandé par tes clients. Certifié ou non, etc… Un certificat de ton héberger j’ai envie de dire pourquoi pas, vu que ton hebergeur te connaît il certifie donc que c’est bien toi qui signe, il connaît ton nom et ton adresse… Pour ma part, mes client veulent que les pdf soient signés numériquement mais n’imposent pas de certificat. Donc un certificat auto generé est suffisant. Je te conseil de leur demander ce qu’ils veulent exactement.

1 « J'aime »

Une ordonnance, publiée au Journal Officiel du 16 septembre 2021, définit le cadre juridique nécessaire à la généralisation de la facturation électronique dans les échanges entre les entreprises assujetties à la taxe à la valeur ajoutée (TVA) domiciliées en France. Initialement prévu à compter du 1er juillet 2023, le dispositif se déploiera de manière progressive à partir du 1er juillet 2024, en tenant compte de la taille des sociétés. À cette date, l’obligation de facturation par voie électronique sera d’abord imposée en réception à l’ensemble des assujettis et, en transmission, aux grandes entreprises. Elle s’appliquera ensuite aux entreprises de taille intermédiaire (ETI) à compter du 1er janvier 2025. Enfin, les petites et moyennes entreprises (PME) et les microentreprises devront se conformer à cette règle à partir du 1er janvier 2026. L’ordonnance précise, par ailleurs, que les assujettis seront libres de recourir soit à une plateforme de dématérialisation partenaire de l’administration - à qui l’administration fiscale aura délivré un numéro d’immatriculation pour une durée de trois ans renouvelable -, soit directement au portail public de facturation.

2 « J'aime »

Bonjour :slightly_smiling_face:
@Arre & @Philazerty mon serveur est chez un hébergeur qui certifie mes domaines via let’s encrypt ce n’est donc pas moi qui atteste mais bien un tiers non ?

mes certicats sont accessibles sur mon serveur avec un adresse du type :

/ssl/certs/domain_com_XXX.crt

L’hébergeur sécurise votre hébergement via le certificat lets encrypt. Rien n’est certifié, pour ça il faudrait un certificat plus cher avec reconnaissance de l’entreprise etc.

Ce certificat ne permet pas de signer vos pdf.
@+

1 « J'aime »

@Philazerty merci pour ces précisions :wink:
J’avais pas vu pourtant ça date d’octobre :rofl: : NEW: add setting to create PDF in PDF/A - 1b format #18990 by FHenry · Pull Request #18991 · Dolibarr/dolibarr · GitHub