deri
|
|
@ -31,6 +31,8 @@ class ControleurAjaxeditioncarteassure extends Controleur
|
|||
return;
|
||||
}
|
||||
|
||||
include 'phpqrcode/qrlib.php';
|
||||
|
||||
$pdf = new FPDF_Protection('L', 'mm', array(85.6, 54));
|
||||
$pdf->SetAuthor('EBENE SOLUTIONS INFORMATIQUES');
|
||||
|
||||
|
|
@ -102,7 +104,6 @@ class ControleurAjaxeditioncarteassure extends Controleur
|
|||
$t_html .= '<i class="fas fa-eye me-2"></i>' . _("PRÉVISUALISER");
|
||||
$t_html .= '</a>';
|
||||
|
||||
|
||||
// Bouton CONFIRMER avec icône
|
||||
$t_html .= '<button type="button" class="btn btn-danger btn-lg d-flex align-items-center" onclick="javascript:confirmer_edition_carte();">';
|
||||
$t_html .= '<i class="fas fa-check-circle me-2"></i>' . _("CONFIRMER");
|
||||
|
|
@ -111,5 +112,4 @@ class ControleurAjaxeditioncarteassure extends Controleur
|
|||
$t_html .= '</div>';
|
||||
echo $t_html;
|
||||
}
|
||||
|
||||
}
|
||||
125
Controleur/ControleurAjaxeditioncarteassure_2026_02_17_06h.php
Executable file
|
|
@ -0,0 +1,125 @@
|
|||
<?php
|
||||
require_once 'Framework/Controleurrequete.php';
|
||||
require_once 'Modele/Carteassure.php';
|
||||
|
||||
class ControleurAjaxeditioncarteassure extends Controleur
|
||||
{
|
||||
private $carte;
|
||||
|
||||
public function __construct() {
|
||||
$this->carte = new Carteassure();
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
$idPolice = $this->requete->getParametreFormulaire("idPolice");
|
||||
|
||||
// 1. Récupération des assurés
|
||||
$assures = $this->carte->getListeEditionCarteAssure($idPolice);
|
||||
|
||||
// Vérification des données avant création PDF
|
||||
if (empty($assures)) {
|
||||
echo '<div class="alert alert-warning">'._("Aucun assuré trouvé pour les critères sélectionnés").'</div>';
|
||||
return;
|
||||
}
|
||||
|
||||
$logoSocietePath = $_SESSION['dossierLogo'];
|
||||
// $fondPath = $_SESSION['dossierSociete'] . '/Tarifs/Img/fond_carte.png';
|
||||
|
||||
if (!file_exists($_SESSION['dossierLogo'])) {
|
||||
echo '<div class="alert alert-warning">'._("Le logo de la société est introuvable").'</div>';
|
||||
return;
|
||||
}
|
||||
|
||||
// 1. Inclure la bibliothèque phpqrcode
|
||||
// Définir le dossier de log AVANT l'include
|
||||
/*
|
||||
if (!defined('QR_LOG_DIR')) {
|
||||
define('QR_LOG_DIR', sys_get_temp_dir() . '/');
|
||||
}
|
||||
*/
|
||||
|
||||
include 'phpqrcode/qrlib.php';
|
||||
|
||||
$pdf = new FPDF_Protection('L', 'mm', array(85.6, 54));
|
||||
$pdf->SetAuthor('EBENE SOLUTIONS INFORMATIQUES');
|
||||
|
||||
$userPassword = $_SESSION['motPassPdf'];
|
||||
$ownerPassword = null;
|
||||
$pdf->SetProtection(['print'], $userPassword, $ownerPassword);
|
||||
|
||||
$pdf->SetAutoPageBreak(false);
|
||||
$pdf->SetMargins(0, 0, 0);
|
||||
$pdf->SetCreator(_('Système d\'édition de cartes'));
|
||||
|
||||
// Vérification avant d'ajouter des pages
|
||||
$nombreAssures = count($assures);
|
||||
if ($nombreAssures == 0) {
|
||||
echo '<div class="alert alert-warning">'._("Aucune carte à générer").'</div>';
|
||||
return;
|
||||
}
|
||||
|
||||
// Définition de la colonne d'alignement pour les deux-points
|
||||
$colonneAlignement = 20; // Position X commune pour l'alignement des deux-points
|
||||
|
||||
// Traitement de chaque assuré
|
||||
$cartesGenerees = 0;
|
||||
foreach ($assures as $index => $assure) {
|
||||
|
||||
$idCarte = $assure['beneficiaire_carte_temp'];
|
||||
|
||||
// Vérification des données obligatoires
|
||||
if (empty($assure['nomBeneficiaire']) || empty($assure['prenomsBeneficiaire']) || !isset($assure['tauxCouverture'])) {
|
||||
// Empêcher la confirmation de cette carte
|
||||
$this->carte->selectionnerUnAssure($idCarte, '0');
|
||||
continue;
|
||||
}
|
||||
// Ajout d'une nouvelle page pour chaque carte
|
||||
$pdf->AddPage();
|
||||
$cartesGenerees++;
|
||||
|
||||
// kane 23/09/2025 => rendre la carte personalisable par societeuser
|
||||
require $_SESSION['dossierSociete'] . '/Tarifs/Controleur/Editioncarteassure.php';
|
||||
|
||||
// Vérification du nombre de pages (limite de sécurité)
|
||||
if ($pdf->PageNo() >= 100) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Vérification finale du nombre de pages générées
|
||||
if ($cartesGenerees == 0) {
|
||||
echo '<div class="alert alert-warning">'._("Aucune carte valide n'a pu être générée").'</div>';
|
||||
return;
|
||||
}
|
||||
|
||||
// création du fichier
|
||||
$uniqid = uniqid();
|
||||
$to_upload="Temp/TMP_CARTES_ASSURES_$uniqid.pdf";
|
||||
$fichierTemp="Temp/$uniqid.pdf";
|
||||
|
||||
$pdf->Output($fichierTemp,"F");
|
||||
|
||||
// $fichier = pdf_to_image($fichierTemp, $to_upload, $uniqid, "0"); // => Pour cnvertir en image => eviter la cibversion en Word
|
||||
$fichier = $fichierTemp;
|
||||
|
||||
// Lien de téléchargement
|
||||
$t_html = '<div id="div_export_b" class="alert alert-info d-flex align-items-center justify-content-between flex-wrap">';
|
||||
$t_html .= '<small class="me-3">' . sprintf(_("%d carte(s) générée(s) sur %d assuré(s)"), $cartesGenerees, $nombreAssures) . '</small>';
|
||||
$t_html .= '<div class="d-flex gap-2 mt-2">';
|
||||
// Bouton PRÉVISUALISER avec icône
|
||||
$t_html .= '<a href="' . $fichier . '" target="_blank" class="btn btn-info btn-lg d-flex align-items-center">';
|
||||
$t_html .= '<i class="fas fa-eye me-2"></i>' . _("PRÉVISUALISER");
|
||||
$t_html .= '</a>';
|
||||
|
||||
|
||||
// Bouton CONFIRMER avec icône
|
||||
$t_html .= '<button type="button" class="btn btn-danger btn-lg d-flex align-items-center" onclick="javascript:confirmer_edition_carte();">';
|
||||
$t_html .= '<i class="fas fa-check-circle me-2"></i>' . _("CONFIRMER");
|
||||
$t_html .= '</button>';
|
||||
$t_html .= '</div>';
|
||||
$t_html .= '</div>';
|
||||
echo $t_html;
|
||||
}
|
||||
|
||||
}
|
||||
35
Controleur/ControleurHtagcarte.php
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
<?php
|
||||
require_once 'Framework/Controleur.php';
|
||||
require_once 'Modele/Menuvueutilisateur.php';
|
||||
require_once 'Modele/Carteassure.php';
|
||||
|
||||
class ControleurHtagcarte extends Controleur {
|
||||
private $carte;
|
||||
|
||||
public function __construct() {
|
||||
$this->menuvue = new Menuvueutilisateur();
|
||||
$this->menuvue->getMenuVue('Htagcarte');
|
||||
|
||||
$this->carte = new Carteassure();
|
||||
}
|
||||
|
||||
public function index() {
|
||||
$idAdherent = $_SESSION['idAdherent_C'];
|
||||
$_SESSION['idAdherentCarte'] = $idAdherent;
|
||||
|
||||
$htagcartes = $this->carte->gethtagcartes($idAdherent);
|
||||
|
||||
$this->genererVue(array('htagcartes' => $htagcartes));
|
||||
}
|
||||
|
||||
public function revoquercarte()
|
||||
{
|
||||
$idHtagcarte = $this->requete->getParametreFormulaire("idHtagcarte", "numerique");
|
||||
$motifRevocation = $this->requete->getParametreFormulaire("motifRevocation");
|
||||
|
||||
$this->carte->revoquer_carte($idHtagcarte, $motifRevocation);
|
||||
|
||||
// $this->executerAction("index");
|
||||
$this->rediriger("Htagcarte");
|
||||
}
|
||||
}
|
||||
24
Controleur/ControleurMouvementsrh.php
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
<?php
|
||||
require_once 'Framework/Controleur.php';
|
||||
require_once 'Modele/Menuvueutilisateur.php';
|
||||
require_once 'Modele/Mouvementassure.php';
|
||||
|
||||
class ControleurMouvementsrh extends Controleur {
|
||||
private $mouvementassure;
|
||||
|
||||
public function __construct() {
|
||||
$this->menuvue = new Menuvueutilisateur();
|
||||
$this->menuvue->getMenuVue('Mouvementsrh');
|
||||
|
||||
$this->mouvementassure = new Mouvementassure();
|
||||
}
|
||||
|
||||
public function index() {
|
||||
$debut = $_SESSION['debutMois_C'];
|
||||
$fin = date("Y-m-d");
|
||||
|
||||
$mouvementassures = $this->mouvementassure->getapercumouvementassures($debut, $fin);
|
||||
|
||||
$this->genererVue(array('mouvementassures' => $mouvementassures));
|
||||
}
|
||||
}
|
||||
|
|
@ -1,14 +1,16 @@
|
|||
<?php
|
||||
require_once 'Functions.php';
|
||||
require_once 'Societeusercentral.php';
|
||||
|
||||
class Cronnettoyerfihierstemp
|
||||
{
|
||||
private $societeusercentral;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
// $this->societeusercentral = new Societeusercentral();
|
||||
}
|
||||
|
||||
// function suppression($dossier_traite , $extension_choisie, $age_requis)
|
||||
function suppression($dossier_traite , $age_requis)
|
||||
{
|
||||
$repertoire = opendir($dossier_traite);
|
||||
|
|
@ -56,11 +58,51 @@ class Cronnettoyerfihierstemp
|
|||
|
||||
}
|
||||
|
||||
$nettoyerfihierstemp = new Cronnettoyerfihierstemp();
|
||||
$nettoyerfihierstemp = new Cronnettoyerfihierstemp();
|
||||
$societeusercentral = (new Societeusercentral())->getSocieteuserSaas();
|
||||
|
||||
/* KANE => maj 14/02/2026
|
||||
$nettoyerfihierstemp->suppression( "../Temp" , "3600" );
|
||||
|
||||
$nettoyerfihierstemp->suppression( "../Temp/import" , "432000" );
|
||||
*/
|
||||
|
||||
$tempProduction = $societeusercentral['tempProduction'];
|
||||
$tempPrestation = $societeusercentral['tempPrestation'];
|
||||
$tempGarant = $societeusercentral['tempGarant'];
|
||||
$tempAssure = $societeusercentral['tempAssure'];
|
||||
$tempRh = $societeusercentral['tempRh'];
|
||||
|
||||
/*
|
||||
var_dump(
|
||||
array(
|
||||
"tempProduction" => $tempProduction,
|
||||
"tempPrestation" =>$tempPrestation,
|
||||
"tempGarant" => $tempGarant,
|
||||
"tempAssure" => $tempAssure,
|
||||
"tempRh" => $tempRh
|
||||
)
|
||||
);
|
||||
exit();
|
||||
*/
|
||||
|
||||
// Production
|
||||
$nettoyerfihierstemp->suppression($tempProduction."/Temp" , "3600" );
|
||||
$nettoyerfihierstemp->suppression($tempProduction."/Temp/import" , "432000" );
|
||||
|
||||
// Prestation
|
||||
$nettoyerfihierstemp->suppression($tempPrestation."/Temp" , "3600" );
|
||||
$nettoyerfihierstemp->suppression($tempPrestation."/Temp/import" , "432000" );
|
||||
|
||||
// Garant
|
||||
$nettoyerfihierstemp->suppression($tempGarant."/Temp" , "3600" );
|
||||
$nettoyerfihierstemp->suppression($tempGarant."/Temp/import" , "432000" );
|
||||
|
||||
// Assure
|
||||
$nettoyerfihierstemp->suppression($tempAssure."/Temp" , "3600" );
|
||||
$nettoyerfihierstemp->suppression($tempAssure."/Temp/import" , "432000" );
|
||||
|
||||
// RH
|
||||
$nettoyerfihierstemp->suppression($tempRh."/Temp" , "3600" );
|
||||
$nettoyerfihierstemp->suppression($tempRh."/Temp/import" , "432000" );
|
||||
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -91937,3 +91937,9 @@ function gerer_garant_defaut()
|
|||
function toggleSidebar() {
|
||||
document.body.classList.toggle('sidebar-collapsed');
|
||||
}
|
||||
|
||||
function init_revoquer_htagcarte(idHtagcarte) {
|
||||
$("#idHtagcarte").val(idHtagcarte);
|
||||
$("#div_revoquer_carte").modal({backdrop: 'static', keyboard: false, show: true });
|
||||
$("#div_revoquer_carte").modal("show");
|
||||
}
|
||||
|
|
@ -260,5 +260,27 @@ class Carteassure extends Modele {
|
|||
$this->executerRequete($sql, array($codeSociete, $idAdherent, $user, $idSaisie));
|
||||
}
|
||||
|
||||
public function enregistrerqrcodeath($idBeneficiaire, $qrCodePath){
|
||||
$sql = "UPDATE beneficiaire SET qr_code_path = ? WHERE id = ?;";
|
||||
|
||||
$this->executerRequete($sql, array($qrCodePath, $idBeneficiaire));
|
||||
}
|
||||
|
||||
public function gethtagcartes($idAdherent)
|
||||
{
|
||||
$sql = 'call sp_get_htagcartes(?)';
|
||||
|
||||
$resultat = $this->executerRequete($sql, array($idAdherent));
|
||||
|
||||
return $resultat->fetchAll(PDO::FETCH_ASSOC);
|
||||
}
|
||||
|
||||
public function revoquer_carte($idHtagcarte, $motifRevocation)
|
||||
{
|
||||
$user = $_SESSION['login'];
|
||||
|
||||
$sql = 'CALL sp_revoquer_carte(?, ?, ?);';
|
||||
|
||||
$this->executerRequete($sql, array($idHtagcarte, $user, $motifRevocation));
|
||||
}
|
||||
}
|
||||
BIN
Societes/ebene/Logos/fond.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 28 KiB |
BIN
Societes/ebene/Logos/logo_societe_ebene.png
Executable file
|
After Width: | Height: | Size: 70 KiB |
|
|
@ -1,37 +1,42 @@
|
|||
<?php
|
||||
$qrData = $assure['tagCarteQr'];
|
||||
|
||||
$qrFile = $assure['numeroBeneficiaire'] . '_' . time() . '.png';
|
||||
$qrCodePath = $_SESSION['dossierSociete'].'/qrcodes/' . $qrFile;
|
||||
|
||||
QRcode::png($qrData, $qrCodePath, QR_ECLEVEL_H, 4, 2); // recommandé pour cartes PVC
|
||||
|
||||
// kane 23/09/2025 => rendre la carte personalisable par societeuser
|
||||
// Fond blanc
|
||||
$pdf->SetFillColor(255, 255, 255);
|
||||
|
||||
$pdf->Rect(0, 0, 85.6, 54, 'F');
|
||||
|
||||
// LOGO SOCIÉTÉ en haut à gauche
|
||||
if (file_exists($logoSocietePath)) {
|
||||
$pdf->Image($logoSocietePath, 3, 3, 15);
|
||||
$pdf->Image($logoSocietePath, 3, 3, 15);
|
||||
}
|
||||
|
||||
$logoGarantPath = (!is_null($assure["logo_garant"])) ? $_SESSION['dossierSociete'] . '/Tarifs/Img/garants/'.$assure["logo_garant"] : '';
|
||||
$logoGarantPath = (!is_null($assure["logo_garant"])) ? $_SESSION['dossierSociete'] . '/Tarifs/Img/garants/'.$assure["logo_garant"] : $_SESSION['dossierSociete'] . '/Tarifs/Img/garants/logo_garant.png';
|
||||
|
||||
if (!is_file($logoGarantPath)) {
|
||||
$logoGarantPath = $_SESSION['dossierSociete'] . '/Tarifs/Img/garants/logo_garant.png';
|
||||
$logoGarantPath = $_SESSION['dossierSociete'] . '/Tarifs/Img/garants/logo_garant.png';
|
||||
}
|
||||
|
||||
// LOGO GARANT en haut à droite
|
||||
if (is_file($logoGarantPath)) {
|
||||
$pdf->Image($logoGarantPath, 67, 1, 15);
|
||||
$pdf->Image($logoGarantPath, 67, 1, 15);
|
||||
}
|
||||
|
||||
// EN-TÊTE : "CARTE D'ASSURANCE"
|
||||
$pdf->SetFont('Arial', 'B', 8);
|
||||
$pdf->SetTextColor(33, 46, 83);
|
||||
$pdf->SetXY(0, 5);
|
||||
// $pdf->Cell(85.6, 4, utf8_decode(_('CARTE SANTÉ')), 0, 1, 'C');
|
||||
$pdf->Cell(85.6, 4, mb_convert_encoding(_('CARTE SANTÉ'), "ISO-8859-1", "UTF-8"), 0, 1, 'C');
|
||||
$pdf->SetTextColor(0);
|
||||
|
||||
// Informations de contact de la société
|
||||
$pdf->SetFont('Arial', '', 5);
|
||||
$pdf->SetXY(0, 9);
|
||||
|
||||
$pdf->MultiCell(85.6, 3, mb_convert_encoding(_('Siège social').': '. $assure['adresseGeoSociete'].' ', "ISO-8859-1", "UTF-8"), 0, 'C');
|
||||
|
||||
$pdf->SetXY(0, 12);
|
||||
|
|
@ -42,14 +47,16 @@ $pdf->Line(5, 15, 80, 15);
|
|||
|
||||
// Section "Bénéficiaire"
|
||||
$pdf->SetFont('Arial', 'BUI', 7);
|
||||
$pdf->SetXY(5, 17);
|
||||
//$pdf->SetXY(5, 17);
|
||||
$pdf->SetXY(13, 16);
|
||||
$pdf->SetTextColor(33, 46, 83);
|
||||
$pdf->Cell(30, 4, mb_convert_encoding(_('Bénéficiaire'), "ISO-8859-1", "UTF-8"), 0, 1);
|
||||
$pdf->SetTextColor(0);
|
||||
|
||||
// Matricule - en gras et rouge
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 21);
|
||||
// $pdf->SetXY(5, 21);
|
||||
$pdf->SetXY(5, 19);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Matricule'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->SetTextColor(255, 0, 0);
|
||||
|
|
@ -58,67 +65,85 @@ $pdf->SetTextColor(0);
|
|||
|
||||
// Nom
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 24);
|
||||
$pdf->SetXY(5, 22);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Nom'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->Cell(30, 3, ' : '.substr(mb_convert_encoding($assure['nomBeneficiaire'], "ISO-8859-1", "UTF-8"), 0, 20), 0, 1);
|
||||
|
||||
// Prénoms
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 27);
|
||||
$pdf->SetXY(5, 25);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Prénoms'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->Cell(25, 3, ' : '.substr(mb_convert_encoding($assure['prenomsBeneficiaire'], "ISO-8859-1", "UTF-8"), 0, 20), 0, 1);
|
||||
|
||||
// Né(e) le - si disponible
|
||||
if (!empty($assure['dateNaissance'])) {
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 30);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Né(e) le'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->Cell(25, 3, ' : '.dateLang($assure['dateNaissance'], $_SESSION['lang']), 0, 1);
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 28);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Né(e) le'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->Cell(25, 3, ' : '.dateLang($assure['dateNaissance'], $_SESSION['lang']), 0, 1);
|
||||
}
|
||||
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 33);
|
||||
$pdf->SetXY(5, 31);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Statut'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->Cell(28, 3, ' : '.substr(mb_convert_encoding($assure['lienparente'], "ISO-8859-1", "UTF-8"), 0, 20), 0, 1);
|
||||
|
||||
/* kane 17/02/2026 à 06h => recherche meilleure place QR code*/
|
||||
// ============ AJOUT DU QR CODE ============
|
||||
if (file_exists($qrCodePath)) {
|
||||
$qrX = 5; // Position X (à droite)
|
||||
$qrY = 34; // Position Y (en bas)
|
||||
$qrSize = 18; // Taille du QR code (10mm)
|
||||
|
||||
$pdf->Image($qrCodePath, $qrX, $qrY, $qrSize, $qrSize);
|
||||
|
||||
$this->carte->enregistrerqrcodeath($assure['idBeneficiaire'], $qrFile);
|
||||
}
|
||||
// ==========================================
|
||||
|
||||
// Section "Assuré Principal"
|
||||
$pdf->SetFont('Arial', 'BUI', 7);
|
||||
$pdf->SetXY(5, 38);
|
||||
$pdf->SetXY(28, 37);
|
||||
$pdf->SetTextColor(33, 46, 83);
|
||||
$pdf->Cell(30, 4, mb_convert_encoding(_('Assuré Principal'), "ISO-8859-1", "UTF-8"), 0, 1);
|
||||
$pdf->SetTextColor(0);
|
||||
|
||||
// Numéro assuré - en gras et rouge
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 42);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Matricule'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetXY(25, 41);
|
||||
$pdf->Cell(10, 3, mb_convert_encoding(_('Matricule'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->SetTextColor(255, 0, 0);
|
||||
$pdf->Cell(25, 3, ' : '.$assure['numeroAdherent'], 0, 1);
|
||||
$pdf->Cell(0, 3, ' : '.$assure['numeroAdherent'], 0, 1);
|
||||
$pdf->SetTextColor(0);
|
||||
|
||||
// Nom et Prénoms assuré
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 45);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Nom & prénoms'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetXY(25, 44);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->Cell(15, 3, ' : '.substr(mb_convert_encoding($assure['adherent'], "ISO-8859-1", "UTF-8"), 0, 15), 0, 1);
|
||||
$pdf->Cell(0, 3, substr(mb_convert_encoding($assure['adherent'], "ISO-8859-1", "UTF-8"), 0, 15), 0, 1);
|
||||
|
||||
// Photo de l'assuré (positionnée à droite) - taille réduite
|
||||
// $photoPath = $_SESSION['dossierPhoto_C'].$_SESSION['dossierSociete'].'/Photos/'.$assure['lienPhoto'];
|
||||
$photo=$assure['lienPhoto'];
|
||||
$faceRegistered=$assure['faceRegistered'];
|
||||
|
||||
$photoPath = $_SESSION['lienPhotoFace'].$assure['lienPhoto'];
|
||||
$photoPath = "";
|
||||
$photoX = 57;
|
||||
$photoY = 17;
|
||||
|
||||
if($faceRegistered=="1" && file_exists($photoPath))
|
||||
// Vérifier si l'URL est accessible
|
||||
$headers = null;
|
||||
$temp = "";
|
||||
if($photo>" " && $faceRegistered=="1")
|
||||
{
|
||||
$photoPath = $_SESSION['dossierPhoto_C'].$_SESSION['dossierSociete'].'/Photos/'.$assure['lienPhoto'];
|
||||
$headers = @get_headers($photoPath);
|
||||
}
|
||||
|
||||
if ($headers) {
|
||||
$data = decryptImage($photoPath);
|
||||
$data = base64_decode($data);
|
||||
$temp = $_SESSION['lienPhotoFace'].'tmp_'.uniqid().'.jpg';
|
||||
|
|
@ -126,16 +151,26 @@ if($faceRegistered=="1" && file_exists($photoPath))
|
|||
$pdf->Image($temp, $photoX, $photoY, 25, 25); // Réduction de 30x30 à 25x25
|
||||
unlink($temp);
|
||||
} else {
|
||||
// Cadre pour la photo si non disponible
|
||||
$pdf->Rect($photoX, $photoY, 25, 25);
|
||||
$pdf->SetFont('Arial', '', 4);
|
||||
$pdf->SetXY($photoX, $photoY + 12);
|
||||
// $messagePhotoManquant=_('Photo non disponible');
|
||||
$messagePhotoManquant="X";
|
||||
$pdf->Cell(25, 3, mb_convert_encoding($messagePhotoManquant, "ISO-8859-1", "UTF-8"), 0, 1, 'C');
|
||||
// Cadre pour la photo si non disponible
|
||||
$pdf->Rect($photoX, $photoY, 25, 25);
|
||||
$pdf->SetFont('Arial', '', 4);
|
||||
$pdf->SetXY($photoX, $photoY + 12);
|
||||
$pdf->Cell(25, 3, mb_convert_encoding(_('Photo non disponible'), "ISO-8859-1", "UTF-8"), 0, 1, 'C');
|
||||
}
|
||||
|
||||
/*
|
||||
var_dump(
|
||||
array(
|
||||
"faceRegistered" => $faceRegistered,
|
||||
"photoPath" => $photoPath,
|
||||
"temp" => $temp,
|
||||
)
|
||||
);
|
||||
echo "<br> <br>";
|
||||
*/
|
||||
|
||||
// Nom du souscripteur en bas
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->SetXY(0, 49);
|
||||
$pdf->Cell(85.6, 3, mb_convert_encoding($assure['souscripteur'], "ISO-8859-1", "UTF-8"), 0, 1, 'C');
|
||||
?>
|
||||
141
Societes/ebene/Tarifs/Controleur/Editioncarteassure_2026_02_16.php
Executable file
|
|
@ -0,0 +1,141 @@
|
|||
<?php
|
||||
// kane 23/09/2025 => rendre la carte personalisable par societeuser
|
||||
// Fond blanc
|
||||
$pdf->SetFillColor(255, 255, 255);
|
||||
|
||||
$pdf->Rect(0, 0, 85.6, 54, 'F');
|
||||
|
||||
// LOGO SOCIÉTÉ en haut à gauche
|
||||
if (file_exists($logoSocietePath)) {
|
||||
$pdf->Image($logoSocietePath, 3, 3, 15);
|
||||
}
|
||||
|
||||
$logoGarantPath = (!is_null($assure["logo_garant"])) ? $_SESSION['dossierSociete'] . '/Tarifs/Img/garants/'.$assure["logo_garant"] : '';
|
||||
|
||||
if (!is_file($logoGarantPath)) {
|
||||
$logoGarantPath = $_SESSION['dossierSociete'] . '/Tarifs/Img/garants/logo_garant.png';
|
||||
}
|
||||
|
||||
if (is_file($logoGarantPath)) {
|
||||
$pdf->Image($logoGarantPath, 67, 1, 15);
|
||||
}
|
||||
|
||||
// EN-TÊTE : "CARTE D'ASSURANCE"
|
||||
$pdf->SetFont('Arial', 'B', 8);
|
||||
$pdf->SetTextColor(33, 46, 83);
|
||||
$pdf->SetXY(0, 5);
|
||||
// $pdf->Cell(85.6, 4, utf8_decode(_('CARTE SANTÉ')), 0, 1, 'C');
|
||||
$pdf->Cell(85.6, 4, mb_convert_encoding(_('CARTE SANTÉ'), "ISO-8859-1", "UTF-8"), 0, 1, 'C');
|
||||
$pdf->SetTextColor(0);
|
||||
|
||||
// Informations de contact de la société
|
||||
$pdf->SetFont('Arial', '', 5);
|
||||
$pdf->SetXY(0, 9);
|
||||
|
||||
$pdf->MultiCell(85.6, 3, mb_convert_encoding(_('Siège social').': '. $assure['adresseGeoSociete'].' ', "ISO-8859-1", "UTF-8"), 0, 'C');
|
||||
|
||||
$pdf->SetXY(0, 12);
|
||||
$pdf->Cell(85.6, 3, mb_convert_encoding(_('Tél.').': '.$assure['telephoneSociete'], "ISO-8859-1", "UTF-8"), 0, 1, 'C');
|
||||
|
||||
// Ligne séparatrice
|
||||
$pdf->Line(5, 15, 80, 15);
|
||||
|
||||
// Section "Bénéficiaire"
|
||||
$pdf->SetFont('Arial', 'BUI', 7);
|
||||
$pdf->SetXY(5, 17);
|
||||
$pdf->SetTextColor(33, 46, 83);
|
||||
$pdf->Cell(30, 4, mb_convert_encoding(_('Bénéficiaire'), "ISO-8859-1", "UTF-8"), 0, 1);
|
||||
$pdf->SetTextColor(0);
|
||||
|
||||
// Matricule - en gras et rouge
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 21);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Matricule'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->SetTextColor(255, 0, 0);
|
||||
$pdf->Cell(25, 3, ' : '.$assure['numeroBeneficiaire'], 0, 1);
|
||||
$pdf->SetTextColor(0);
|
||||
|
||||
// Nom
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 24);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Nom'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->Cell(30, 3, ' : '.substr(mb_convert_encoding($assure['nomBeneficiaire'], "ISO-8859-1", "UTF-8"), 0, 20), 0, 1);
|
||||
|
||||
// Prénoms
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 27);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Prénoms'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->Cell(25, 3, ' : '.substr(mb_convert_encoding($assure['prenomsBeneficiaire'], "ISO-8859-1", "UTF-8"), 0, 20), 0, 1);
|
||||
|
||||
// Né(e) le - si disponible
|
||||
if (!empty($assure['dateNaissance'])) {
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 30);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Né(e) le'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->Cell(25, 3, ' : '.dateLang($assure['dateNaissance'], $_SESSION['lang']), 0, 1);
|
||||
}
|
||||
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 33);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Statut'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->Cell(28, 3, ' : '.substr(mb_convert_encoding($assure['lienparente'], "ISO-8859-1", "UTF-8"), 0, 20), 0, 1);
|
||||
|
||||
// Section "Assuré Principal"
|
||||
$pdf->SetFont('Arial', 'BUI', 7);
|
||||
$pdf->SetXY(5, 38);
|
||||
$pdf->SetTextColor(33, 46, 83);
|
||||
$pdf->Cell(30, 4, mb_convert_encoding(_('Assuré Principal'), "ISO-8859-1", "UTF-8"), 0, 1);
|
||||
$pdf->SetTextColor(0);
|
||||
|
||||
// Numéro assuré - en gras et rouge
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 42);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Matricule'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->SetTextColor(255, 0, 0);
|
||||
$pdf->Cell(25, 3, ' : '.$assure['numeroAdherent'], 0, 1);
|
||||
$pdf->SetTextColor(0);
|
||||
|
||||
// Nom et Prénoms assuré
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 45);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Nom & prénoms'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->Cell(15, 3, ' : '.substr(mb_convert_encoding($assure['adherent'], "ISO-8859-1", "UTF-8"), 0, 15), 0, 1);
|
||||
|
||||
// Photo de l'assuré (positionnée à droite) - taille réduite
|
||||
// $photoPath = $_SESSION['dossierPhoto_C'].$_SESSION['dossierSociete'].'/Photos/'.$assure['lienPhoto'];
|
||||
$photo=$assure['lienPhoto'];
|
||||
$faceRegistered=$assure['faceRegistered'];
|
||||
|
||||
$photoPath = $_SESSION['lienPhotoFace'].$assure['lienPhoto'];
|
||||
$photoX = 57;
|
||||
$photoY = 17;
|
||||
|
||||
if($faceRegistered=="1" && file_exists($photoPath))
|
||||
{
|
||||
$data = decryptImage($photoPath);
|
||||
$data = base64_decode($data);
|
||||
$temp = $_SESSION['lienPhotoFace'].'tmp_'.uniqid().'.jpg';
|
||||
file_put_contents($temp, $data);
|
||||
$pdf->Image($temp, $photoX, $photoY, 25, 25); // Réduction de 30x30 à 25x25
|
||||
unlink($temp);
|
||||
} else {
|
||||
// Cadre pour la photo si non disponible
|
||||
$pdf->Rect($photoX, $photoY, 25, 25);
|
||||
$pdf->SetFont('Arial', '', 4);
|
||||
$pdf->SetXY($photoX, $photoY + 12);
|
||||
// $messagePhotoManquant=_('Photo non disponible');
|
||||
$messagePhotoManquant="X";
|
||||
$pdf->Cell(25, 3, mb_convert_encoding($messagePhotoManquant, "ISO-8859-1", "UTF-8"), 0, 1, 'C');
|
||||
}
|
||||
|
||||
// Nom du souscripteur en bas
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->SetXY(0, 49);
|
||||
$pdf->Cell(85.6, 3, mb_convert_encoding($assure['souscripteur'], "ISO-8859-1", "UTF-8"), 0, 1, 'C');
|
||||
158
Societes/ebene/Tarifs/Controleur/Editioncarteassure_2026_02_17_06h.php
Executable file
|
|
@ -0,0 +1,158 @@
|
|||
<?php
|
||||
$qrData = $assure['tagCarteQr'];
|
||||
|
||||
$qrFile = $assure['numeroBeneficiaire'] . '_' . time() . '.png';
|
||||
// $qrCodePath = $_SESSION['dossierSociete'].'/qrcodes/' . $assure['numeroBeneficiaire'] . '_' . time() . '.png';
|
||||
$qrCodePath = $_SESSION['dossierSociete'].'/qrcodes/' . $qrFile;
|
||||
|
||||
QRcode::png($qrData, $qrCodePath, QR_ECLEVEL_H, 4, 2); // recommandé pour cartes PVC
|
||||
|
||||
// kane 23/09/2025 => rendre la carte personalisable par societeuser
|
||||
// Fond blanc
|
||||
$pdf->SetFillColor(255, 255, 255);
|
||||
$pdf->Rect(0, 0, 85.6, 54, 'F');
|
||||
|
||||
// LOGO SOCIÉTÉ en haut à gauche
|
||||
if (file_exists($logoSocietePath)) {
|
||||
$pdf->Image($logoSocietePath, 3, 3, 15);
|
||||
}
|
||||
|
||||
$logoGarantPath = (!is_null($assure["logo_garant"])) ? $_SESSION['dossierSociete'] . '/Tarifs/Img/garants/'.$assure["logo_garant"] : $_SESSION['dossierSociete'] . '/Tarifs/Img/garants/logo_garant.png';
|
||||
|
||||
if (!is_file($logoGarantPath)) {
|
||||
$logoGarantPath = $_SESSION['dossierSociete'] . '/Tarifs/Img/garants/logo_garant.png';
|
||||
}
|
||||
|
||||
// LOGO GARANT en haut à droite
|
||||
if (is_file($logoGarantPath)) {
|
||||
$pdf->Image($logoGarantPath, 67, 1, 15);
|
||||
}
|
||||
|
||||
// EN-TÊTE : "CARTE D'ASSURANCE"
|
||||
$pdf->SetFont('Arial', 'B', 8);
|
||||
$pdf->SetTextColor(33, 46, 83);
|
||||
$pdf->SetXY(0, 5);
|
||||
$pdf->Cell(85.6, 4, mb_convert_encoding(_('CARTE SANTÉ'), "ISO-8859-1", "UTF-8"), 0, 1, 'C');
|
||||
$pdf->SetTextColor(0);
|
||||
|
||||
// Informations de contact de la société
|
||||
$pdf->SetFont('Arial', '', 5);
|
||||
$pdf->SetXY(0, 9);
|
||||
$pdf->MultiCell(85.6, 3, mb_convert_encoding(_('Siège social').': '. $assure['adresseGeoSociete'].' ', "ISO-8859-1", "UTF-8"), 0, 'C');
|
||||
|
||||
$pdf->SetXY(0, 12);
|
||||
$pdf->Cell(85.6, 3, mb_convert_encoding(_('Tél.').': '.$assure['telephoneSociete'], "ISO-8859-1", "UTF-8"), 0, 1, 'C');
|
||||
|
||||
// Ligne séparatrice
|
||||
$pdf->Line(5, 15, 80, 15);
|
||||
|
||||
// Section "Bénéficiaire"
|
||||
$pdf->SetFont('Arial', 'BUI', 7);
|
||||
$pdf->SetXY(5, 17);
|
||||
$pdf->SetTextColor(33, 46, 83);
|
||||
$pdf->Cell(30, 4, mb_convert_encoding(_('Bénéficiaire'), "ISO-8859-1", "UTF-8"), 0, 1);
|
||||
$pdf->SetTextColor(0);
|
||||
|
||||
// Matricule - en gras et rouge
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 21);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Matricule'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->SetTextColor(255, 0, 0);
|
||||
$pdf->Cell(25, 3, ' : '.$assure['numeroBeneficiaire'], 0, 1);
|
||||
$pdf->SetTextColor(0);
|
||||
|
||||
// Nom
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 24);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Nom'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->Cell(30, 3, ' : '.substr(mb_convert_encoding($assure['nomBeneficiaire'], "ISO-8859-1", "UTF-8"), 0, 20), 0, 1);
|
||||
|
||||
// Prénoms
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 27);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Prénoms'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->Cell(25, 3, ' : '.substr(mb_convert_encoding($assure['prenomsBeneficiaire'], "ISO-8859-1", "UTF-8"), 0, 20), 0, 1);
|
||||
|
||||
// Né(e) le - si disponible
|
||||
if (!empty($assure['dateNaissance'])) {
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 30);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Né(e) le'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->Cell(25, 3, ' : '.dateLang($assure['dateNaissance'], $_SESSION['lang']), 0, 1);
|
||||
}
|
||||
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 33);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Statut'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->Cell(28, 3, ' : '.substr(mb_convert_encoding($assure['lienparente'], "ISO-8859-1", "UTF-8"), 0, 20), 0, 1);
|
||||
|
||||
// Section "Assuré Principal"
|
||||
$pdf->SetFont('Arial', 'BUI', 7);
|
||||
$pdf->SetXY(5, 38);
|
||||
$pdf->SetTextColor(33, 46, 83);
|
||||
$pdf->Cell(30, 4, mb_convert_encoding(_('Assuré Principal'), "ISO-8859-1", "UTF-8"), 0, 1);
|
||||
$pdf->SetTextColor(0);
|
||||
|
||||
// Numéro assuré - en gras et rouge
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 42);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Matricule'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->SetTextColor(255, 0, 0);
|
||||
$pdf->Cell(25, 3, ' : '.$assure['numeroAdherent'], 0, 1);
|
||||
$pdf->SetTextColor(0);
|
||||
|
||||
// Nom et Prénoms assuré
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 45);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Nom & prénoms'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->Cell(15, 3, ' : '.substr(mb_convert_encoding($assure['adherent'], "ISO-8859-1", "UTF-8"), 0, 15), 0, 1);
|
||||
|
||||
// Photo de l'assuré (positionnée à droite) - taille réduite
|
||||
$photoPath = $_SESSION['dossierPhoto_C'].$_SESSION['dossierSociete'].'/Photos/'.$assure['lienPhoto'];
|
||||
$photoX = 57;
|
||||
$photoY = 17;
|
||||
|
||||
// Vérifier si l'URL est accessible
|
||||
$headers = @get_headers($photoPath);
|
||||
|
||||
if (!empty($assure['lienPhoto']) && $headers && strpos($headers[0], '200')) {
|
||||
$pdf->Image($photoPath, $photoX, $photoY, 25, 25);
|
||||
} else {
|
||||
// Cadre pour la photo si non disponible
|
||||
$pdf->Rect($photoX, $photoY, 25, 25);
|
||||
$pdf->SetFont('Arial', '', 4);
|
||||
$pdf->SetXY($photoX, $photoY + 12);
|
||||
$pdf->Cell(25, 3, mb_convert_encoding(_('Photo non disponible'), "ISO-8859-1", "UTF-8"), 0, 1, 'C');
|
||||
}
|
||||
|
||||
// ============ AJOUT DU QR CODE ============
|
||||
// Position : en bas à droite de la carte
|
||||
if (file_exists($qrCodePath)) {
|
||||
$qrX = 60; // Position X (à droite)
|
||||
$qrY = 43; // Position Y (en bas)
|
||||
$qrSize = 10; // Taille du QR code (10mm)
|
||||
|
||||
$pdf->Image($qrCodePath, $qrX, $qrY, $qrSize, $qrSize);
|
||||
|
||||
/*
|
||||
// Supprimer le fichier temporaire après utilisation
|
||||
@unlink($qrCodePath);
|
||||
*/
|
||||
// Enregistrer le qrCodePath dans la BDD
|
||||
// $this->carte->enregistrerqrcodeath($assure['idBeneficiaire'], $qrCodePath);
|
||||
$this->carte->enregistrerqrcodeath($assure['idBeneficiaire'], $qrFile);
|
||||
}
|
||||
// ==========================================
|
||||
|
||||
// Nom du souscripteur en bas
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->SetXY(0, 49);
|
||||
$pdf->Cell(85.6, 3, mb_convert_encoding($assure['souscripteur'], "ISO-8859-1", "UTF-8"), 0, 1, 'C');
|
||||
?>
|
||||
162
Societes/ebene/Tarifs/Controleur/Editioncarteassure_claude.php
Executable file
|
|
@ -0,0 +1,162 @@
|
|||
<?php
|
||||
// À ajouter en haut de votre fichier, avant la génération du PDF
|
||||
|
||||
// 1. Inclure la bibliothèque phpqrcode
|
||||
include 'phpqrcode/qrlib.php';
|
||||
|
||||
// 2. Préparer les données pour le QR code
|
||||
$qrData = "SVMx|" . base64_encode($assure['numeroBeneficiaire']) . "|" .
|
||||
base64_encode($assure['numeroAdherent']) . "|" .
|
||||
$assure['uuid']; // ou un identifiant unique
|
||||
|
||||
// 3. Générer le QR code temporaire
|
||||
$qrCodePath = sys_get_temp_dir() . '/qrcode_' . $assure['numeroBeneficiaire'] . '.png';
|
||||
// QRcode::png($qrData, $qrCodePath, QR_ECLEVEL_M, 4, 2);
|
||||
QRcode::png($qrData, $qrCodePath, QR_ECLEVEL_H, 4, 2); // recommandé pour cartes PVC
|
||||
|
||||
// ... Votre code existant pour le PDF ...
|
||||
|
||||
// kane 23/09/2025 => rendre la carte personalisable par societeuser
|
||||
// Fond blanc
|
||||
$pdf->SetFillColor(255, 255, 255);
|
||||
$pdf->Rect(0, 0, 85.6, 54, 'F');
|
||||
|
||||
// LOGO SOCIÉTÉ en haut à gauche
|
||||
if (file_exists($logoSocietePath)) {
|
||||
$pdf->Image($logoSocietePath, 3, 3, 15);
|
||||
}
|
||||
|
||||
$logoGarantPath = (!is_null($assure["logo_garant"])) ? $_SESSION['dossierSociete'] . '/Tarifs/Img/garants/'.$assure["logo_garant"] : $_SESSION['dossierSociete'] . '/Tarifs/Img/garants/logo_garant.png';
|
||||
|
||||
if (!is_file($logoGarantPath)) {
|
||||
$logoGarantPath = $_SESSION['dossierSociete'] . '/Tarifs/Img/garants/logo_garant.png';
|
||||
}
|
||||
|
||||
// LOGO GARANT en haut à droite
|
||||
if (is_file($logoGarantPath)) {
|
||||
$pdf->Image($logoGarantPath, 67, 1, 15);
|
||||
}
|
||||
|
||||
// EN-TÊTE : "CARTE D'ASSURANCE"
|
||||
$pdf->SetFont('Arial', 'B', 8);
|
||||
$pdf->SetTextColor(33, 46, 83);
|
||||
$pdf->SetXY(0, 5);
|
||||
$pdf->Cell(85.6, 4, mb_convert_encoding(_('CARTE SANTÉ'), "ISO-8859-1", "UTF-8"), 0, 1, 'C');
|
||||
$pdf->SetTextColor(0);
|
||||
|
||||
// Informations de contact de la société
|
||||
$pdf->SetFont('Arial', '', 5);
|
||||
$pdf->SetXY(0, 9);
|
||||
$pdf->MultiCell(85.6, 3, mb_convert_encoding(_('Siège social').': '. $assure['adresseGeoSociete'].' ', "ISO-8859-1", "UTF-8"), 0, 'C');
|
||||
|
||||
$pdf->SetXY(0, 12);
|
||||
$pdf->Cell(85.6, 3, mb_convert_encoding(_('Tél.').': '.$assure['telephoneSociete'], "ISO-8859-1", "UTF-8"), 0, 1, 'C');
|
||||
|
||||
// Ligne séparatrice
|
||||
$pdf->Line(5, 15, 80, 15);
|
||||
|
||||
// Section "Bénéficiaire"
|
||||
$pdf->SetFont('Arial', 'BUI', 7);
|
||||
$pdf->SetXY(5, 17);
|
||||
$pdf->SetTextColor(33, 46, 83);
|
||||
$pdf->Cell(30, 4, mb_convert_encoding(_('Bénéficiaire'), "ISO-8859-1", "UTF-8"), 0, 1);
|
||||
$pdf->SetTextColor(0);
|
||||
|
||||
// Matricule - en gras et rouge
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 21);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Matricule'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->SetTextColor(255, 0, 0);
|
||||
$pdf->Cell(25, 3, ' : '.$assure['numeroBeneficiaire'], 0, 1);
|
||||
$pdf->SetTextColor(0);
|
||||
|
||||
// Nom
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 24);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Nom'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->Cell(30, 3, ' : '.substr(mb_convert_encoding($assure['nomBeneficiaire'], "ISO-8859-1", "UTF-8"), 0, 20), 0, 1);
|
||||
|
||||
// Prénoms
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 27);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Prénoms'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->Cell(25, 3, ' : '.substr(mb_convert_encoding($assure['prenomsBeneficiaire'], "ISO-8859-1", "UTF-8"), 0, 20), 0, 1);
|
||||
|
||||
// Né(e) le - si disponible
|
||||
if (!empty($assure['dateNaissance'])) {
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 30);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Né(e) le'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->Cell(25, 3, ' : '.dateLang($assure['dateNaissance'], $_SESSION['lang']), 0, 1);
|
||||
}
|
||||
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 33);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Statut'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->Cell(28, 3, ' : '.substr(mb_convert_encoding($assure['lienparente'], "ISO-8859-1", "UTF-8"), 0, 20), 0, 1);
|
||||
|
||||
// Section "Assuré Principal"
|
||||
$pdf->SetFont('Arial', 'BUI', 7);
|
||||
$pdf->SetXY(5, 38);
|
||||
$pdf->SetTextColor(33, 46, 83);
|
||||
$pdf->Cell(30, 4, mb_convert_encoding(_('Assuré Principal'), "ISO-8859-1", "UTF-8"), 0, 1);
|
||||
$pdf->SetTextColor(0);
|
||||
|
||||
// Numéro assuré - en gras et rouge
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 42);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Matricule'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->SetTextColor(255, 0, 0);
|
||||
$pdf->Cell(25, 3, ' : '.$assure['numeroAdherent'], 0, 1);
|
||||
$pdf->SetTextColor(0);
|
||||
|
||||
// Nom et Prénoms assuré
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 45);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Nom & prénoms'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->Cell(15, 3, ' : '.substr(mb_convert_encoding($assure['adherent'], "ISO-8859-1", "UTF-8"), 0, 15), 0, 1);
|
||||
|
||||
// Photo de l'assuré (positionnée à droite) - taille réduite
|
||||
$photoPath = $_SESSION['dossierPhoto_C'].$_SESSION['dossierSociete'].'/Photos/'.$assure['lienPhoto'];
|
||||
$photoX = 57;
|
||||
$photoY = 17;
|
||||
|
||||
// Vérifier si l'URL est accessible
|
||||
$headers = @get_headers($photoPath);
|
||||
|
||||
if (!empty($assure['lienPhoto']) && $headers && strpos($headers[0], '200')) {
|
||||
$pdf->Image($photoPath, $photoX, $photoY, 25, 25);
|
||||
} else {
|
||||
// Cadre pour la photo si non disponible
|
||||
$pdf->Rect($photoX, $photoY, 25, 25);
|
||||
$pdf->SetFont('Arial', '', 4);
|
||||
$pdf->SetXY($photoX, $photoY + 12);
|
||||
$pdf->Cell(25, 3, mb_convert_encoding(_('Photo non disponible'), "ISO-8859-1", "UTF-8"), 0, 1, 'C');
|
||||
}
|
||||
|
||||
// ============ AJOUT DU QR CODE ============
|
||||
// Position : en bas à droite de la carte
|
||||
if (file_exists($qrCodePath)) {
|
||||
$qrX = 60; // Position X (à droite)
|
||||
$qrY = 43; // Position Y (en bas)
|
||||
$qrSize = 10; // Taille du QR code (10mm)
|
||||
|
||||
$pdf->Image($qrCodePath, $qrX, $qrY, $qrSize, $qrSize);
|
||||
|
||||
// Supprimer le fichier temporaire après utilisation
|
||||
@unlink($qrCodePath);
|
||||
}
|
||||
// ==========================================
|
||||
|
||||
// Nom du souscripteur en bas
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->SetXY(0, 49);
|
||||
$pdf->Cell(85.6, 3, mb_convert_encoding($assure['souscripteur'], "ISO-8859-1", "UTF-8"), 0, 1, 'C');
|
||||
?>
|
||||
168
Societes/ebene/Tarifs/Controleur/Editioncarteassure_erreur_adiafi.php
Executable file
|
|
@ -0,0 +1,168 @@
|
|||
<?php
|
||||
$qrData = $assure['tagCarteQr'];
|
||||
|
||||
$qrFile = $assure['numeroBeneficiaire'] . '_' . time() . '.png';
|
||||
// $qrCodePath = $_SESSION['dossierSociete'].'/qrcodes/' . $assure['numeroBeneficiaire'] . '_' . time() . '.png';
|
||||
$qrCodePath = $_SESSION['dossierSociete'].'/qrcodes/' . $qrFile;
|
||||
|
||||
QRcode::png($qrData, $qrCodePath, QR_ECLEVEL_H, 4, 2); // recommandé pour cartes PVC
|
||||
|
||||
// kane 23/09/2025 => rendre la carte personalisable par societeuser
|
||||
// Fond blanc
|
||||
$pdf->SetFillColor(255, 255, 255);
|
||||
$pdf->Rect(0, 0, 85.6, 54, 'F');
|
||||
|
||||
// LOGO SOCIÉTÉ en haut à gauche
|
||||
if (file_exists($logoSocietePath)) {
|
||||
$pdf->Image($logoSocietePath, 3, 3, 15);
|
||||
}
|
||||
|
||||
$logoGarantPath = (!is_null($assure["logo_garant"])) ? $_SESSION['dossierSociete'] . '/Tarifs/Img/garants/'.$assure["logo_garant"] : $_SESSION['dossierSociete'] . '/Tarifs/Img/garants/logo_garant.png';
|
||||
|
||||
if (!is_file($logoGarantPath)) {
|
||||
$logoGarantPath = $_SESSION['dossierSociete'] . '/Tarifs/Img/garants/logo_garant.png';
|
||||
}
|
||||
|
||||
// LOGO GARANT en haut à droite
|
||||
if (is_file($logoGarantPath)) {
|
||||
$pdf->Image($logoGarantPath, 67, 1, 15);
|
||||
}
|
||||
|
||||
// EN-TÊTE : "CARTE D'ASSURANCE"
|
||||
$pdf->SetFont('Arial', 'B', 8);
|
||||
$pdf->SetTextColor(33, 46, 83);
|
||||
$pdf->SetXY(0, 5);
|
||||
$pdf->Cell(85.6, 4, mb_convert_encoding(_('CARTE SANTÉ'), "ISO-8859-1", "UTF-8"), 0, 1, 'C');
|
||||
$pdf->SetTextColor(0);
|
||||
|
||||
// Informations de contact de la société
|
||||
$pdf->SetFont('Arial', '', 5);
|
||||
$pdf->SetXY(0, 9);
|
||||
$pdf->MultiCell(85.6, 3, mb_convert_encoding(_('Siège social').': '. $assure['adresseGeoSociete'].' ', "ISO-8859-1", "UTF-8"), 0, 'C');
|
||||
|
||||
$pdf->SetXY(0, 12);
|
||||
$pdf->Cell(85.6, 3, mb_convert_encoding(_('Tél.').': '.$assure['telephoneSociete'], "ISO-8859-1", "UTF-8"), 0, 1, 'C');
|
||||
|
||||
// Ligne séparatrice
|
||||
$pdf->Line(5, 15, 80, 15);
|
||||
|
||||
// Section "Bénéficiaire"
|
||||
$pdf->SetFont('Arial', 'BUI', 7);
|
||||
//$pdf->SetXY(5, 17);
|
||||
$pdf->SetXY(13, 16);
|
||||
$pdf->SetTextColor(33, 46, 83);
|
||||
$pdf->Cell(30, 4, mb_convert_encoding(_('Bénéficiaire'), "ISO-8859-1", "UTF-8"), 0, 1);
|
||||
$pdf->SetTextColor(0);
|
||||
|
||||
// Matricule - en gras et rouge
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
// $pdf->SetXY(5, 21);
|
||||
$pdf->SetXY(5, 19);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Matricule'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->SetTextColor(255, 0, 0);
|
||||
$pdf->Cell(25, 3, ' : '.$assure['numeroBeneficiaire'], 0, 1);
|
||||
$pdf->SetTextColor(0);
|
||||
|
||||
// Nom
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 22);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Nom'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->Cell(30, 3, ' : '.substr(mb_convert_encoding($assure['nomBeneficiaire'], "ISO-8859-1", "UTF-8"), 0, 20), 0, 1);
|
||||
|
||||
// Prénoms
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 25);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Prénoms'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->Cell(25, 3, ' : '.substr(mb_convert_encoding($assure['prenomsBeneficiaire'], "ISO-8859-1", "UTF-8"), 0, 20), 0, 1);
|
||||
|
||||
// Né(e) le - si disponible
|
||||
if (!empty($assure['dateNaissance'])) {
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 28);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Né(e) le'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->Cell(25, 3, ' : '.dateLang($assure['dateNaissance'], $_SESSION['lang']), 0, 1);
|
||||
}
|
||||
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 31);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Statut'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->Cell(28, 3, ' : '.substr(mb_convert_encoding($assure['lienparente'], "ISO-8859-1", "UTF-8"), 0, 20), 0, 1);
|
||||
|
||||
/* kane 17/02/2026 à 06h => recherche meilleure place QR code*/
|
||||
// ============ AJOUT DU QR CODE ============
|
||||
// Position : en bas à droite de la carte
|
||||
// Position : en bas à gauche de la carte
|
||||
if (file_exists($qrCodePath)) {
|
||||
/*
|
||||
$qrX = 60; // Position X (à droite)
|
||||
$qrY = 43; // Position Y (en bas)
|
||||
$qrSize = 10; // Taille du QR code (10mm)
|
||||
*/
|
||||
|
||||
$qrX = 5; // Position X (à droite)
|
||||
$qrY = 34; // Position Y (en bas)
|
||||
$qrSize = 18; // Taille du QR code (10mm)
|
||||
|
||||
$pdf->Image($qrCodePath, $qrX, $qrY, $qrSize, $qrSize);
|
||||
|
||||
/*
|
||||
// Supprimer le fichier temporaire après utilisation
|
||||
@unlink($qrCodePath);
|
||||
*/
|
||||
// Enregistrer le qrCodePath dans la BDD
|
||||
// $this->carte->enregistrerqrcodeath($assure['idBeneficiaire'], $qrCodePath);
|
||||
$this->carte->enregistrerqrcodeath($assure['idBeneficiaire'], $qrFile);
|
||||
}
|
||||
// ==========================================
|
||||
|
||||
// Section "Assuré Principal"
|
||||
$pdf->SetFont('Arial', 'BUI', 7);
|
||||
$pdf->SetXY(28, 37);
|
||||
$pdf->SetTextColor(33, 46, 83);
|
||||
$pdf->Cell(30, 4, mb_convert_encoding(_('Assuré Principal'), "ISO-8859-1", "UTF-8"), 0, 1);
|
||||
$pdf->SetTextColor(0);
|
||||
|
||||
// Numéro assuré - en gras et rouge
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(25, 41);
|
||||
$pdf->Cell(10, 3, mb_convert_encoding(_('Matricule'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->SetTextColor(255, 0, 0);
|
||||
$pdf->Cell(0, 3, ' : '.$assure['numeroAdherent'], 0, 1);
|
||||
$pdf->SetTextColor(0);
|
||||
|
||||
// Nom et Prénoms assuré
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(25, 44);
|
||||
// $pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Nom & prénoms'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->Cell(0, 3, substr(mb_convert_encoding($assure['adherent'], "ISO-8859-1", "UTF-8"), 0, 15), 0, 1);
|
||||
|
||||
// Photo de l'assuré (positionnée à droite) - taille réduite
|
||||
$photoPath = $_SESSION['dossierPhoto_C'].$_SESSION['dossierSociete'].'/Photos/'.$assure['lienPhoto'];
|
||||
$photoX = 57;
|
||||
$photoY = 17;
|
||||
|
||||
// Vérifier si l'URL est accessible
|
||||
$headers = @get_headers($photoPath);
|
||||
|
||||
if (!empty($assure['lienPhoto']) && $headers && strpos($headers[0], '200')) {
|
||||
$pdf->Image($photoPath, $photoX, $photoY, 25, 25);
|
||||
} else {
|
||||
// Cadre pour la photo si non disponible
|
||||
$pdf->Rect($photoX, $photoY, 25, 25);
|
||||
$pdf->SetFont('Arial', '', 4);
|
||||
$pdf->SetXY($photoX, $photoY + 12);
|
||||
$pdf->Cell(25, 3, mb_convert_encoding(_('Photo non disponible'), "ISO-8859-1", "UTF-8"), 0, 1, 'C');
|
||||
}
|
||||
|
||||
// Nom du souscripteur en bas
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->SetXY(0, 49);
|
||||
$pdf->Cell(85.6, 3, mb_convert_encoding($assure['souscripteur'], "ISO-8859-1", "UTF-8"), 0, 1, 'C');
|
||||
?>
|
||||
180
Societes/ebene/Tarifs/Controleur/Editioncarteassure_new_bon.php
Executable file
|
|
@ -0,0 +1,180 @@
|
|||
<?php
|
||||
$qrData = $assure['tagCarteQr'];
|
||||
|
||||
$qrFile = $assure['numeroBeneficiaire'] . '_' . time() . '.png';
|
||||
// $qrCodePath = $_SESSION['dossierSociete'].'/qrcodes/' . $assure['numeroBeneficiaire'] . '_' . time() . '.png';
|
||||
$qrCodePath = $_SESSION['dossierSociete'].'/qrcodes/' . $qrFile;
|
||||
|
||||
QRcode::png($qrData, $qrCodePath, QR_ECLEVEL_H, 4, 2); // recommandé pour cartes PVC
|
||||
|
||||
// kane 23/09/2025 => rendre la carte personalisable par societeuser
|
||||
// Fond blanc
|
||||
$pdf->SetFillColor(255, 255, 255);
|
||||
$pdf->Rect(0, 0, 85.6, 54, 'F');
|
||||
|
||||
// LOGO SOCIÉTÉ en haut à gauche
|
||||
if (file_exists($logoSocietePath)) {
|
||||
$pdf->Image($logoSocietePath, 3, 3, 15);
|
||||
}
|
||||
|
||||
$logoGarantPath = (!is_null($assure["logo_garant"])) ? $_SESSION['dossierSociete'] . '/Tarifs/Img/garants/'.$assure["logo_garant"] : $_SESSION['dossierSociete'] . '/Tarifs/Img/garants/logo_garant.png';
|
||||
|
||||
if (!is_file($logoGarantPath)) {
|
||||
$logoGarantPath = $_SESSION['dossierSociete'] . '/Tarifs/Img/garants/logo_garant.png';
|
||||
}
|
||||
|
||||
// LOGO GARANT en haut à droite
|
||||
if (is_file($logoGarantPath)) {
|
||||
$pdf->Image($logoGarantPath, 67, 1, 15);
|
||||
}
|
||||
|
||||
// EN-TÊTE : "CARTE D'ASSURANCE"
|
||||
$pdf->SetFont('Arial', 'B', 8);
|
||||
$pdf->SetTextColor(33, 46, 83);
|
||||
$pdf->SetXY(0, 5);
|
||||
$pdf->Cell(85.6, 4, mb_convert_encoding(_('CARTE SANTÉ'), "ISO-8859-1", "UTF-8"), 0, 1, 'C');
|
||||
$pdf->SetTextColor(0);
|
||||
|
||||
// Informations de contact de la société
|
||||
$pdf->SetFont('Arial', '', 5);
|
||||
$pdf->SetXY(0, 9);
|
||||
$pdf->MultiCell(85.6, 3, mb_convert_encoding(_('Siège social').': '. $assure['adresseGeoSociete'].' ', "ISO-8859-1", "UTF-8"), 0, 'C');
|
||||
|
||||
$pdf->SetXY(0, 12);
|
||||
$pdf->Cell(85.6, 3, mb_convert_encoding(_('Tél.').': '.$assure['telephoneSociete'], "ISO-8859-1", "UTF-8"), 0, 1, 'C');
|
||||
|
||||
// Ligne séparatrice
|
||||
$pdf->Line(5, 15, 80, 15);
|
||||
|
||||
// Section "Bénéficiaire"
|
||||
$pdf->SetFont('Arial', 'BUI', 7);
|
||||
//$pdf->SetXY(5, 17);
|
||||
$pdf->SetXY(13, 16);
|
||||
$pdf->SetTextColor(33, 46, 83);
|
||||
$pdf->Cell(30, 4, mb_convert_encoding(_('Bénéficiaire'), "ISO-8859-1", "UTF-8"), 0, 1);
|
||||
$pdf->SetTextColor(0);
|
||||
|
||||
// Matricule - en gras et rouge
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
// $pdf->SetXY(5, 21);
|
||||
$pdf->SetXY(5, 19);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Matricule'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->SetTextColor(255, 0, 0);
|
||||
$pdf->Cell(25, 3, ' : '.$assure['numeroBeneficiaire'], 0, 1);
|
||||
$pdf->SetTextColor(0);
|
||||
|
||||
// Nom
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 22);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Nom'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->Cell(30, 3, ' : '.substr(mb_convert_encoding($assure['nomBeneficiaire'], "ISO-8859-1", "UTF-8"), 0, 20), 0, 1);
|
||||
|
||||
// Prénoms
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 25);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Prénoms'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->Cell(25, 3, ' : '.substr(mb_convert_encoding($assure['prenomsBeneficiaire'], "ISO-8859-1", "UTF-8"), 0, 20), 0, 1);
|
||||
|
||||
// Né(e) le - si disponible
|
||||
if (!empty($assure['dateNaissance'])) {
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 28);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Né(e) le'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->Cell(25, 3, ' : '.dateLang($assure['dateNaissance'], $_SESSION['lang']), 0, 1);
|
||||
}
|
||||
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(5, 31);
|
||||
$pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Statut'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->Cell(28, 3, ' : '.substr(mb_convert_encoding($assure['lienparente'], "ISO-8859-1", "UTF-8"), 0, 20), 0, 1);
|
||||
|
||||
/* kane 17/02/2026 à 06h => recherche meilleure place QR code*/
|
||||
// ============ AJOUT DU QR CODE ============
|
||||
// Position : en bas à droite de la carte
|
||||
// Position : en bas à gauche de la carte
|
||||
if (file_exists($qrCodePath)) {
|
||||
/*
|
||||
$qrX = 60; // Position X (à droite)
|
||||
$qrY = 43; // Position Y (en bas)
|
||||
$qrSize = 10; // Taille du QR code (10mm)
|
||||
*/
|
||||
|
||||
$qrX = 5; // Position X (à droite)
|
||||
$qrY = 34; // Position Y (en bas)
|
||||
$qrSize = 18; // Taille du QR code (10mm)
|
||||
|
||||
$pdf->Image($qrCodePath, $qrX, $qrY, $qrSize, $qrSize);
|
||||
|
||||
/*
|
||||
// Supprimer le fichier temporaire après utilisation
|
||||
@unlink($qrCodePath);
|
||||
*/
|
||||
// Enregistrer le qrCodePath dans la BDD
|
||||
// $this->carte->enregistrerqrcodeath($assure['idBeneficiaire'], $qrCodePath);
|
||||
$this->carte->enregistrerqrcodeath($assure['idBeneficiaire'], $qrFile);
|
||||
}
|
||||
// ==========================================
|
||||
|
||||
// Section "Assuré Principal"
|
||||
$pdf->SetFont('Arial', 'BUI', 7);
|
||||
$pdf->SetXY(28, 37);
|
||||
$pdf->SetTextColor(33, 46, 83);
|
||||
$pdf->Cell(30, 4, mb_convert_encoding(_('Assuré Principal'), "ISO-8859-1", "UTF-8"), 0, 1);
|
||||
$pdf->SetTextColor(0);
|
||||
|
||||
// Numéro assuré - en gras et rouge
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(25, 41);
|
||||
$pdf->Cell(10, 3, mb_convert_encoding(_('Matricule'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->SetTextColor(255, 0, 0);
|
||||
$pdf->Cell(0, 3, ' : '.$assure['numeroAdherent'], 0, 1);
|
||||
$pdf->SetTextColor(0);
|
||||
|
||||
// Nom et Prénoms assuré
|
||||
$pdf->SetFont('Arial', '', 6);
|
||||
$pdf->SetXY(25, 44);
|
||||
// $pdf->Cell($colonneAlignement - 5, 3, mb_convert_encoding(_('Nom & prénoms'), "ISO-8859-1", "UTF-8"), 0, 0);
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->Cell(0, 3, substr(mb_convert_encoding($assure['adherent'], "ISO-8859-1", "UTF-8"), 0, 15), 0, 1);
|
||||
|
||||
// Photo de l'assuré (positionnée à droite) - taille réduite
|
||||
// $photoPath = $_SESSION['dossierPhoto_C'].$_SESSION['dossierSociete'].'/Photos/'.$assure['lienPhoto'];
|
||||
$photo=$assure['lienPhoto'];
|
||||
$faceRegistered=$assure['faceRegistered'];
|
||||
|
||||
$photoPath = $_SESSION['lienPhotoFace'].$assure['lienPhoto'];
|
||||
$photoX = 57;
|
||||
$photoY = 17;
|
||||
|
||||
// Vérifier si l'URL est accessible
|
||||
$headers = @get_headers($photoPath);
|
||||
|
||||
//if($faceRegistered=="1" && file_exists($photoPath))
|
||||
// if (!empty($assure['lienPhoto']) && $headers && strpos($headers[0], '200')) {
|
||||
if ($faceRegistered=="1" && !empty($assure['lienPhoto']) && $headers && strpos($headers[0], '200')) {
|
||||
$data = decryptImage($photoPath);
|
||||
$data = base64_decode($data);
|
||||
$temp = $_SESSION['lienPhotoFace'].'tmp_'.uniqid().'.jpg';
|
||||
file_put_contents($temp, $data);
|
||||
// $pdf->Image($photoPath, $photoX, $photoY, 25, 25);
|
||||
$pdf->Image($temp, $photoX, $photoY, 25, 25); // Réduction de 30x30 à 25x25
|
||||
unlink($temp);
|
||||
} else {
|
||||
// Cadre pour la photo si non disponible
|
||||
$pdf->Rect($photoX, $photoY, 25, 25);
|
||||
$pdf->SetFont('Arial', '', 4);
|
||||
$pdf->SetXY($photoX, $photoY + 12);
|
||||
$pdf->Cell(25, 3, mb_convert_encoding(_('Photo non disponible'), "ISO-8859-1", "UTF-8"), 0, 1, 'C');
|
||||
}
|
||||
|
||||
// Nom du souscripteur en bas
|
||||
$pdf->SetFont('Arial', 'B', 6);
|
||||
$pdf->SetXY(0, 49);
|
||||
$pdf->Cell(85.6, 3, mb_convert_encoding($assure['souscripteur'], "ISO-8859-1", "UTF-8"), 0, 1, 'C');
|
||||
?>
|
||||
|
Before Width: | Height: | Size: 753 B |
|
Before Width: | Height: | Size: 755 B |
|
Before Width: | Height: | Size: 773 B |
|
Before Width: | Height: | Size: 755 B |
|
Before Width: | Height: | Size: 775 B |
|
Before Width: | Height: | Size: 759 B |
|
Before Width: | Height: | Size: 769 B |
|
Before Width: | Height: | Size: 856 B |
|
Before Width: | Height: | Size: 858 B |
|
Before Width: | Height: | Size: 881 B |
|
Before Width: | Height: | Size: 875 B |
|
Before Width: | Height: | Size: 866 B |
|
Before Width: | Height: | Size: 866 B |
|
Before Width: | Height: | Size: 861 B |
|
Before Width: | Height: | Size: 854 B |
|
Before Width: | Height: | Size: 854 B |
|
Before Width: | Height: | Size: 849 B |
|
Before Width: | Height: | Size: 852 B |
|
Before Width: | Height: | Size: 862 B |
|
Before Width: | Height: | Size: 875 B |
|
Before Width: | Height: | Size: 871 B |
|
Before Width: | Height: | Size: 864 B |
|
Before Width: | Height: | Size: 863 B |
|
Before Width: | Height: | Size: 865 B |
|
Before Width: | Height: | Size: 877 B |
|
Before Width: | Height: | Size: 853 B |
|
Before Width: | Height: | Size: 871 B |
|
Before Width: | Height: | Size: 860 B |
|
Before Width: | Height: | Size: 862 B |
|
Before Width: | Height: | Size: 866 B |
|
Before Width: | Height: | Size: 836 B |
|
Before Width: | Height: | Size: 860 B |
|
Before Width: | Height: | Size: 864 B |
|
Before Width: | Height: | Size: 866 B |
|
Before Width: | Height: | Size: 866 B |
|
Before Width: | Height: | Size: 864 B |
|
Before Width: | Height: | Size: 858 B |
|
Before Width: | Height: | Size: 848 B |
|
Before Width: | Height: | Size: 862 B |
|
Before Width: | Height: | Size: 860 B |
|
Before Width: | Height: | Size: 840 B |
|
Before Width: | Height: | Size: 864 B |
|
Before Width: | Height: | Size: 851 B |
|
Before Width: | Height: | Size: 860 B |
|
Before Width: | Height: | Size: 862 B |
|
Before Width: | Height: | Size: 855 B |
|
Before Width: | Height: | Size: 866 B |
|
Before Width: | Height: | Size: 859 B |
|
Before Width: | Height: | Size: 864 B |
|
Before Width: | Height: | Size: 844 B |
|
Before Width: | Height: | Size: 859 B |
|
Before Width: | Height: | Size: 867 B |
|
Before Width: | Height: | Size: 862 B |
|
Before Width: | Height: | Size: 868 B |
|
Before Width: | Height: | Size: 857 B |
|
Before Width: | Height: | Size: 867 B |
|
Before Width: | Height: | Size: 867 B |
|
Before Width: | Height: | Size: 873 B |
|
Before Width: | Height: | Size: 870 B |
|
Before Width: | Height: | Size: 851 B |
|
Before Width: | Height: | Size: 871 B |
|
Before Width: | Height: | Size: 857 B |
|
Before Width: | Height: | Size: 864 B |
|
Before Width: | Height: | Size: 852 B |
|
Before Width: | Height: | Size: 851 B |
|
Before Width: | Height: | Size: 863 B |
|
Before Width: | Height: | Size: 864 B |
|
Before Width: | Height: | Size: 863 B |
|
Before Width: | Height: | Size: 862 B |
|
Before Width: | Height: | Size: 842 B |
|
Before Width: | Height: | Size: 867 B |
|
Before Width: | Height: | Size: 855 B |
|
Before Width: | Height: | Size: 865 B |
|
Before Width: | Height: | Size: 862 B |
|
Before Width: | Height: | Size: 864 B |
|
Before Width: | Height: | Size: 855 B |
|
Before Width: | Height: | Size: 857 B |
|
Before Width: | Height: | Size: 848 B |
|
Before Width: | Height: | Size: 869 B |
|
Before Width: | Height: | Size: 847 B |
|
Before Width: | Height: | Size: 860 B |
|
Before Width: | Height: | Size: 857 B |
|
Before Width: | Height: | Size: 853 B |
|
Before Width: | Height: | Size: 862 B |