production/Controleur/ControleurFichebeneficiaire.php
2025-12-02 11:29:44 +00:00

251 lines
10 KiB
PHP
Executable File

<?php
require_once 'Framework/Controleur.php';
require_once 'Modele/Menuvueutilisateur.php';
require_once 'Modele/Beneficiaire.php';
require_once 'Modele/Police.php';
require_once 'Modele/Garantieadherent.php';
require_once 'Modele/Tarifsactes.php';
class ControleurFichebeneficiaire extends Controleur
{
private $menuvue;
private $beneficiaire;
private $police;
private $garantieadherent;
private $tarif;
public function __construct() {
$this->menuvue = new Menuvueutilisateur();
$this->menuvue->getMenuVue('Fichebeneficiaire');
$this->beneficiaire = new Beneficiaire();
$this->police = new Police();
$this->garantieadherent = new Garantieadherent();
$this->tarif = new Tarifsactes();
$_SESSION['modeDevis'] = "0";
$_SESSION['retour'] = "Fichebeneficiaire";
}
public function index()
{
$this->beneficiaire->getModeBiometrie();
$codeSociete = $this->requete->getSession()->getAttribut('codeSociete');
$id = $this->requete->getParametre("id");
$idBeneficiaire = $id;
// $this->beneficiaire->getContexteBeneficiaireId($id);
// $idPolice = $_SESSION['idPolice_C'];
$idPolice = $this->beneficiaire->getIdPoliceBeneficiaire($idBeneficiaire);
$this->police->getContextePoliceId($idPolice);
$police = $this->police->getPoliceId($idPolice);
$nomGarant = $this->police->getNomGarant($police['codeGcAssureur']);
$_SESSION['nomGcAssureur_C'] = $nomGarant;
$this->beneficiaire->getContexteBeneficiaireId($idBeneficiaire);
$idAdherent = $_SESSION['idAdherent_C'];
$garantieadherents = $this->garantieadherent->getGarantieBeneficiaire($idBeneficiaire);
$message = "";
$nouveau_fichier = "Rien";
if(!empty($_POST))
{
define('TARGET', $_SESSION['lienPhotoFace']); // Repertoire cible
define('MAX_SIZE', 100000); // Taille max en octets du fichier
define('WIDTH_MAX', 800); // Largeur max de l'image en pixels
define('HEIGHT_MAX', 800); // Hauteur max de l'image en pixels
$tabExt = array('jpg','png','jpeg'); // Extensions autorisees
$infosImg = array();
$extension = '';
$nomImage = '';
$nomImageCrypte = '';
if(!is_dir(TARGET))
{
if(!mkdir(TARGET, 0755))
{
$message = 'Erreur : le répertoire cible ne peut-être créé ! Vérifiez que vous diposiez des droits suffisants pour le faire ou créez le manuellement !';
}
}
if(!empty($_FILES['fichier_image_a_uploader']['name']))
{
if(!empty($_FILES['fichier_image_a_uploader']['tmp_name']))
{
$extension = pathinfo($_FILES['fichier_image_a_uploader']['name'], PATHINFO_EXTENSION);
if(in_array(strtolower($extension),$tabExt))
{
$infosImg = getimagesize($_FILES['fichier_image_a_uploader']['tmp_name']);
if($infosImg[2] >= 1 && $infosImg[2] <= 14)
{
if(isset($_FILES['fichier_image_a_uploader']['error'])
&& UPLOAD_ERR_OK === $_FILES['fichier_image_a_uploader']['error'])
{
$rand = rand(1,1000000);
$nomImageTemp = $_SESSION['numeroBeneficiaire_C']."_".$rand.'.'. $extension;
if(move_uploaded_file($_FILES['fichier_image_a_uploader']['tmp_name'], TARGET.$nomImageTemp))
{
$src = TARGET.$nomImageTemp;
$rand = rand(1,1000000);
$nomImage = $_SESSION['numeroBeneficiaire_C']."_".$rand.'.jpg';
$nomImageCrypte = $_SESSION['numeroBeneficiaire_C']."_".$rand.'.bin';
$imgtype = image_type_to_mime_type($infosImg[2]);
switch ($imgtype) {
case 'image/jpeg':
$source_image = imagecreatefromjpeg($src);
break;
case 'image/jpg':
$source_image = imagecreatefromjpeg($src);
break;
case 'image/png':
$source_image = imagecreatefrompng($src);
break;
}
$width = imagesx($source_image);
$desired_width = $width;
if($desired_width > $_SESSION['largeurPhoto'])
{
$desired_width = $_SESSION['largeurPhoto'];
}
$height = imagesy($source_image);
$desired_height = floor($height * ($desired_width / $width));
$virtual_image = imagecreatetruecolor($desired_width, $desired_height);
imagecopyresampled($virtual_image, $source_image, 0, 0, 0, 0, $desired_width, $desired_height, $width, $height);
imagejpeg($virtual_image, TARGET.$nomImage, -1);
encryptImage(TARGET.$nomImage, TARGET.$nomImageCrypte);
// $nouveau_fichier = $nomImage;
$nouveau_fichier = $nomImageCrypte;
$message = 'Chargement réussi !';
// $this->beneficiaire->changerPhoto($id, $nomImage);
$this->beneficiaire->changerPhoto($id, $nomImageCrypte);
$this->beneficiaire->registerface($_SESSION['numeroBeneficiaire_C']);
// $_SESSION['lienPhoto_C'] = $nomImage;
$_SESSION['lienPhoto_C'] = $nomImageCrypte;
unlink(TARGET.$nomImageTemp);
unlink(TARGET.$nomImage);
$this->rediriger("Fichebeneficiaire/".$idBeneficiaire);
}
else
{
$message = 'Problème lors du chargement !';
}
}
else
{
$message = 'Une erreur interne a empêché le chargement';
}
}
else
{
$message = 'Le fichier à charger n\'est pas une image !';
}
}
else
{
$message = 'L\'extension du fichier est incorrecte !';
}
}
else
{
$message = 'Revoir votre fichier image!';
}
}
else
{
$message = 'Veuillez sélectionner un fichier SVP !';
}
} //
$beneficiaire = $this->beneficiaire->getBeneficiaireId($id);
$_SESSION['idBeneficiaire_C'] = $id;
$police = $this->beneficiaire->getSituationPolice($idBeneficiaire);
$college = $this->beneficiaire->getSituationCollege($idBeneficiaire);
$_SESSION['dateEffetCouvert'] = $beneficiaire['dateEffetCouvert'];
$codeTypeTarifActe = "TBEN";
$tarifActe = $this->tarif->getTarifActeByType($codeTypeTarifActe);
$prestationsParMois = $this->beneficiaire->getPrestationsmensuelles($idBeneficiaire);
$tabConsoParMois = [
'mois' => [],
'consos' => []
];
$tabConsoParGaranties = [
'garanties' => [],
'depenses' => [],
'plafonds' => []
];
foreach($prestationsParMois as $v) {
$tabConsoParMois['mois'][] = $v['mois'];
$tabConsoParMois['consos'][] = $v['consommationBeneficiaire'];
}
foreach($garantieadherents as $v) {
$tabConsoParGaranties['garanties'][] = $v['codeGarantie'];
$tabConsoParGaranties['depenses'][] = $v['consommation'];
$tabConsoParGaranties['plafonds'][] = $v['plafond'];
}
$dataConsoParMois = json_encode($tabConsoParMois,JSON_NUMERIC_CHECK);
$dataConsoParGaranties = json_encode($tabConsoParGaranties,JSON_NUMERIC_CHECK);
$prestationPossible = $this->beneficiaire->prestationPossible($idBeneficiaire);
$this->genererVue
(
array
(
'beneficiaire' => $beneficiaire,
'message' => $message,
'nouveau_fichier' => $nouveau_fichier,
'garantieadherents' => $garantieadherents,
'police' => $police,
'college' => $college,
'tarifActe' => $tarifActe,
'dataConsoParMois' => $dataConsoParMois,
'dataConsoParGaranties' => $dataConsoParGaranties,
'prestationPossible' => $prestationPossible
)
);
}
public function supprimer() {
$id = $this->requete->getParametre("id");
$this->beneficiaire->supprimer($id);
$this->rediriger("Ficheadherent/".$_SESSION['idAdherent_C']);
}
}