115 lines
4.5 KiB
PHP
Executable File
115 lines
4.5 KiB
PHP
Executable File
<?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;
|
|
}
|
|
|
|
$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;
|
|
}
|
|
|
|
} |