336 lines
10 KiB
PHP
Executable File
336 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['retour'] = "Fichebeneficiaire";
|
|
}
|
|
|
|
public function index()
|
|
{
|
|
$codeSociete = $this->requete->getSession()->getAttribut('codeSociete');
|
|
$id = $this->requete->getParametre("id");
|
|
$idBeneficiaire = $id;
|
|
|
|
$beneficiaire_existe = $this->beneficiaire->getContexteBeneficiaireId($id);
|
|
|
|
if ($beneficiaire_existe)
|
|
{
|
|
$beneficiaire = $this->beneficiaire->getBeneficiaireId($id);
|
|
|
|
$_SESSION['idBeneficiaire_C'] = $id;
|
|
|
|
$police = $this->beneficiaire->getSituationPolice($idBeneficiaire); // plafond Famille
|
|
|
|
$college = $this->beneficiaire->getSituationCollege($idBeneficiaire); // Plafond Beneficiaire
|
|
|
|
|
|
$this->beneficiaire->getContexteBeneficiaireId($idBeneficiaire);
|
|
|
|
$idAdherent = $_SESSION['idAdherent_C'];
|
|
|
|
$_SESSION['lienPhoto_C'] = $beneficiaire['lienPhoto'];
|
|
|
|
$garantieadherents = $this->garantieadherent->getGarantieBeneficiaire($idBeneficiaire);
|
|
|
|
$message = "";
|
|
$nouveau_fichier = "Rien";
|
|
|
|
if(!empty($_POST) && $_SESSION['faceRegistered_C'] != '1' && $_SESSION['assureAjoutPhoto']=="1")
|
|
{
|
|
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_upload']['name']))
|
|
{
|
|
|
|
if(!empty($_FILES['fichier_upload']['tmp_name']))
|
|
{
|
|
$extension = pathinfo($_FILES['fichier_upload']['name'], PATHINFO_EXTENSION);
|
|
|
|
if(in_array(strtolower($extension),$tabExt))
|
|
{
|
|
$infosImg = getimagesize($_FILES['fichier_upload']['tmp_name']);
|
|
|
|
if($infosImg[2] >= 1 && $infosImg[2] <= 14)
|
|
{
|
|
if(isset($_FILES['fichier_upload']['error'])
|
|
&& UPLOAD_ERR_OK === $_FILES['fichier_upload']['error'])
|
|
{
|
|
$rand = rand(1,1000000);
|
|
$nomImageTemp = $_SESSION['numeroBeneficiaire_C']."_".$rand.'.'. $extension;
|
|
|
|
|
|
if(move_uploaded_file($_FILES['fichier_upload']['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 = $nomImageCrypte;
|
|
|
|
$message = 'Chargement réussi !';
|
|
$this->beneficiaire->changerPhoto($id, $nomImageCrypte);
|
|
|
|
$this->beneficiaire->registerface($_SESSION['numeroBeneficiaire_C']);
|
|
$_SESSION['lienPhoto_C'] = $nomImageCrypte;
|
|
|
|
unlink(TARGET.$nomImageTemp);
|
|
|
|
// $this->index();
|
|
$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 !';
|
|
}
|
|
}
|
|
|
|
$_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);
|
|
|
|
|
|
$this->genererVue
|
|
(
|
|
array
|
|
(
|
|
'beneficiaire' => $beneficiaire,
|
|
'message' => $message,
|
|
'garantieadherents' => $garantieadherents,
|
|
'police' => $police,
|
|
'college' => $college,
|
|
'tarifActe' => $tarifActe,
|
|
'dataConsoParMois' => $dataConsoParMois,
|
|
'dataConsoParGaranties' => $dataConsoParGaranties
|
|
)
|
|
);
|
|
}
|
|
|
|
}
|
|
|
|
// 26/09/2025
|
|
public function ebeneenregistrerface()
|
|
{
|
|
$_SESSION['p_messageFace'] = "";
|
|
|
|
if(isset($_POST['image_face']))
|
|
{
|
|
$_SESSION['okId_face'] = "-1";
|
|
$_SESSION['okId'] = "-1";
|
|
|
|
$path = "Temp/";
|
|
$extension = "jpeg";
|
|
|
|
$data = $_POST['image_face'];
|
|
|
|
$data = str_replace('data:image/jpeg;base64,', '', $data);
|
|
|
|
$data = base64_decode($data);
|
|
|
|
$username = $_SESSION['numeroBeneficiaire_C'];
|
|
|
|
$date = date('YmdHis');
|
|
$file_name = "img_v_".$date.uniqid().".".$extension;
|
|
$chemin = $path.$file_name;
|
|
|
|
file_put_contents($chemin, $data);
|
|
|
|
$rand = rand(1,1000000);
|
|
$nomImage = $username."_".$rand.'.'. $extension;
|
|
$nomImageCrypte_0 = $username."_".$rand.'.bin';
|
|
$nomImageCrypte = $_SESSION['lienPhotoFace'] . $nomImageCrypte_0;
|
|
|
|
$this->beneficiaire->init_traiterlaface('1');
|
|
|
|
$cheminNew = $_SESSION['lienPhotoFace'] . $nomImage;
|
|
|
|
// echo "chemin=>$chemin ; cheminNew=>$cheminNew";
|
|
// exit();
|
|
|
|
$_SESSION['okId_face'] = "1";
|
|
|
|
// réduction de la taille de l'immage
|
|
$infosImg = getimagesize($chemin);
|
|
$src = $chemin;
|
|
$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);
|
|
|
|
if (imagejpeg($virtual_image, $cheminNew, -1))
|
|
{
|
|
encryptImage($cheminNew, $nomImageCrypte);
|
|
|
|
unlink($cheminNew);
|
|
|
|
$this->beneficiaire->registerface($username);
|
|
|
|
$idBeneficiaire = $_SESSION['idBeneficiaire_C'];
|
|
// $this->beneficiaire->changerPhoto($idBeneficiaire, $nomImage);
|
|
$this->beneficiaire->changerPhoto($idBeneficiaire, $nomImageCrypte_0);
|
|
|
|
$_SESSION['p_messageFace'] = "Enrôlement effectué avec succès! / Enrollment completed successfully!!";
|
|
$this->genererVueAjax(array('messageFace' => $_SESSION['p_messageFace'], 'msgErreur' => $_SESSION['p_messageFace'], 'photo_succes' => "1"));
|
|
}
|
|
$this->beneficiaire->resultat_traitement_face($username, '1', '');
|
|
unlink($chemin);
|
|
}
|
|
}
|
|
|
|
} |