Bonjour à tous,
Suite à la discussion Covid - générateur d'attestation de déplacements - #103 par seb821
je vous propose ma petite contribution pour mettre en place l’envoi d’une attestation pdf directement depuis jeedom ( vers telegram pour moi).
[edit] au format plugin : gitHub
Dispo sur le market!
[/edit]
Je suis parti du principe qu’on peux écrire à la main une attestation, donc pas besoin d’avoir le script de validation du document du site du gouvernement qu’utilise GetLucko
.
J’utilise FPDF et FPDI plus phpqrcode (merci naboleo) avec une petit classe person pour rester en full php.
un petit include, quelque variables et le tour est joué.
Les fichiers en bas du post.
A décompresser dans un sous répertoire de jeedom, il faudra adapter l’include dans le bloc code (chez mois dans script/customs_scripts/
)
La classe ATTESTGEN à appeler :
require_once dirname(__FILE__) . '/../../script/customs_scripts/PDF_Gen/AttestGen.class.php';
$ag = new ATTESTGEN();
// =génération du pdf, retourne l'url du document, va dans le sous répoertoire 'EXPORT' du dossier précédent
$pdfURL = $ag->generate_attest($nom, $prenom, $date_naissance,$lieu_naissance,$adresse,$code_postal,$ville, array($motif)); // les noms des variables me semblent explicites
// pour récupérer l'URL du qrcode généré, même endroit
$pngURL = $ag->getPNGURL();
les motifs sont tels que :
const TRAVAIL = 'travail';
const ENFANT = 'enfant';
const LOISIR = 'loisir';
const ACHAT = 'Achats';
const SANTE = 'Soins';
const FAMILLE = 'Famille';
const HANDI = 'handicap';
const JUDIC = 'judiciaire';
const MIG = 'mission';
a appeler par ATTESTGEN::TRAVAIL
par exemple
Le constructeur du pdf demande un array pour les motifs => possibilité d’en cocher plusieurs!
[EDIT] ajout des fonction de suppression des fichiers :
$success_Delete = $ag->deletePDFFile(); // renvoie true/false
$success_Delete = $ag->deleteQRFile(); // renvoie true/false
$success_Delete = $ag->deleteAllFiles(); // renvoie true/false
et pour le passer à telegram
$strOption='file='.$pdfURL;// specifie le chemin du fichier
//ou encore
$strOption='file='.$pngURL.','.$pdfURL;// pour avoir le QR code + le pdf
$messCol= array('title'=>$strOption, 'message'=> 'Attestation COVID du '.$date_time.' / '.$motif);
$cmd=cmd::byString("#[OBJET][Equipement Telegram][user]#");
$cmd->execCmd($messCol, $cache=0);
// et on supprime les fichier s
$successDelete=$ag->deleteAllFiles();
perso, je passe par un ask télégram (et/ou une interaction pour lui demander directement) quand je sort de chez moi, en demandant le type d’attestation voulue et j’appelle un scénario avec le bloc code pour me remplir les données d’identification et de motif.
v
et dans mon scénario j’ai des array en fonction du motif et de la personne du type
$motifArray=array('Travail'=>ATTESTGEN::TRAVAIL,
'Ecole'=>ATTESTGEN::ENFANT,
'Sortie'=>ATTESTGEN::LOISIR,
'Achats'=>ATTESTGEN::ACHAT,
'Soins'=>ATTESTGEN::SANTE,
'Famille'=>ATTESTGEN::FAMILLE
);
$infosArray=array(
'Ben'=>array('nom'=>'MON NOM','prenom'=>'Ben', 'ddn'=>'01/01/1970','lieu_naiss'=>'Trouduc','adresse'=>'25 rue pas loin','ville'=>'poilauc', 'code_postal'=>'00001'),
'maFemme'=>array('nom'=>'SON NOM','prenom'=>'Jeluidemanderai', 'ddn'=>'çanesemdemandepas','lieu_naiss'=>'Pas ICI','adresse'=>'25 rue pas loin','ville'=>'poilauc', 'code_postal'=>'00001')
);
et plus qu’à selectionner pour appeler la fonction de construction du pdf, envoi à telegram et hop!
Enjoy It!
Disclaimer : Je ne suis pas dev, y’a forcément des mauvaise pratiques, je prends toutes les remarques bienveillantes!
Les fichiers : Lien Github
[edit] ajout des fonctions de suppressions des fichiers histoire que ça ne traine pas pour rien dans les exports
[edit 2] avec un arborescence plus évidente, et sans le sfichier inutiles des lib (ceux que j’ai identifiés)
[edit 3] avec une vérif sur l’existence du dossier d’export