radiantprestation/Controleur/ControleurKinecso.php

219 lines
6.7 KiB
PHP

<?php
require_once 'Framework/Controleur.php';
require_once 'Modele/Menuvueutilisateur.php';
require_once 'Modele/Beneficiaire.php';
require_once 'Modele/Seance_temp.php';
require_once 'Modele/Detailseance.php';
require_once 'Modele/Prestationactes.php';
require_once 'Modele/Finger.php';
require_once 'Modele/Bonpec.php';
require 'vendor/autoload.php';
use Aws\Rekognition\RekognitionClient;
class ControleurKinecso extends Controleur {
private $beneficiaire;
private $prescription;
private $detailprescription;
private $prestation;
private $finger;
private $bonpec;
public function __construct()
{
$this->menuvue = new Menuvueutilisateur();
$this->menuvue->getMenuVue('Kinecso');
$this->prescription = new Seance_temp();
$this->detailprescription = new Detailseance();
$this->prestation = new Prestationactes();
$this->beneficiaire = new Beneficiaire();
$this->bonpec = new Bonpec();
viderContexte();
$_SESSION['p_okId'] = "-1";
$this->finger = new Finger();
$_SESSION['p_codeTypeFacture_C'] = "SEACSO";
}
public function index()
{
$faceRegistered = '0';
$codePrestataire = $_SESSION['p_codePrestataire_C'];
$codeTypeBon = "CONS";
$nbBonsCons = $this->bonpec->getNbBonPrestataireDisponible($codePrestataire, $codeTypeBon);
// $codeGestionBon = $this->bonpec->getCodeGestionBon($codeTypeBon);
$codeGestionBon = $this->bonpec->getCodeGestionBonPrestataire();
$typeGestionbon = $this->bonpec->getGestionBon($codeGestionBon);
$garantieadherent_temp = null;
$limite_beneficiaire = null;
$numeroBonKine = $_SESSION['p_numeroBonKine_C'];
$numeroBonKineSearch = $numeroBonKine;
$_SESSION['p_numeroBonSeance_C'] = "-1";
if($numeroBonKine=="-1")
{
$this->genererVue(array('numeroBonKineSearch' => $numeroBonKineSearch,
'nbBonsCons' => $nbBonsCons, 'codeGestionBon' => $codeGestionBon, 'typeGestionbon' => $typeGestionbon));
}
else
{
$numeroBonKineSearch = $numeroBonKine;
$resultat = $this->beneficiaire->getBeneficiaireOrdonnanceSea($numeroBonKine);
$_SESSION['p_hospitalisation_C'] = $resultat['hospitalisation'];
$idBeneficiaire = $resultat['idBeneficiaire'];
$beneficiaire = $this->beneficiaire->getContexteBeneficiaireId($idBeneficiaire);
$faceRegistered = $beneficiaire['faceRegistered'];
if($_SESSION['p_hospitalisation_C']>0 && $_SESSION['p_appliquerTmHospit_C']>0)
{
$_SESSION['p_tm_C'] = "0";
}
$this->prescription->initseancekine_sea($codeGestionBon);
$prescription = $this->prescription->getprescription_sea($numeroBonKine);
$detailseances = $this->detailprescription->getdetailseancefeuille();
$user_id = $_SESSION['p_user_id_C'];
$this->finger->vider_finger_temp($user_id);
$facture = $prescription['facture'];
$nbRestantOld = $prescription['nbRestantOld'];
$numeroFeuilleMaladie = $prescription['numeroFeuilleMaladie'];
$this->prestation->vider_garantieadherent_temp($numeroFeuilleMaladie, $codePrestataire);
if($nbRestantOld>0)
{
$this->prestation->init_garantieadherent_temp_simple($numeroFeuilleMaladie, $codePrestataire);
$this->beneficiaire->controlerplafondbeneficiaireannuel($idBeneficiaire);
$limite_beneficiaire = $this->prestation->getLimitesBeneficiaireTemp();
}
$this->genererVue(array('prescription' => $prescription, 'detailseances' => $detailseances,
'numeroBonKineSearch' => $numeroBonKineSearch, 'nbBonsCons' => $nbBonsCons,
'codeGestionBon' => $codeGestionBon, 'typeGestionbon' => $typeGestionbon,
'limite_beneficiaire' => $limite_beneficiaire, 'faceRegistered' => $faceRegistered));
}
}
public function confirmerface()
{
$_SESSION['p_messageFace'] = "";
$compare_face = $_POST['compare_face'];
if(isset($_POST['image_face']))
{
$_SESSION['p_okId_face'] = "-1";
$_SESSION['p_okId'] = "-1";
$path = "Temp/";
$extension = "jpeg";
$data = $_POST['image_face'];
$data = str_replace('data:image/jpeg;base64,', '', $data);
$data = base64_decode($data);
$username = $_SESSION['p_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;
$this->beneficiaire->init_traiterlaface('2');
$arrgs = [
'credentials' => [
'key' => 'AKIA2O2PTXQ7XN5OATO3',
'secret' => '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',
],
'version' => 'latest',
'region' => 'us-west-2'
];
$client = new RekognitionClient($arrgs);
$sourceImage = $chemin;
$targetImage = $_SESSION['p_dossierPhoto_C'].$_SESSION['p_dossierSociete'].'/Photos/'.$_SESSION['p_lienPhoto_C'];
try
{
$result = $client->compareFaces
(
[
'SimilarityThreshold' => 80,
'SourceImage' => [
'Bytes' => file_get_contents($sourceImage)
],
'TargetImage' => [
'Bytes' => file_get_contents($targetImage)
],
]
);
$faceMatches = count($result['FaceMatches']);
if ($faceMatches==0)
{
$_SESSION['p_messageFace'] = "Les faces ne correspondent pas! / The faces do not match!";
$this->beneficiaire->resultat_traitement_face($username, '0', $_SESSION['p_messageFace']);
$this->genererVueAjax(array('messageFace' => $_SESSION['p_messageFace'], 'msgErreur' => $_SESSION['p_messageFace'], 'photo_succes' => "0"));
}
else
{
$this->beneficiaire->resultat_traitement_face($username, '1', '');
$_SESSION['p_okId_face'] = "1";
$_SESSION['p_messageFace'] = "Face confirmée! / Face confirmed!";
/*
var_dump
(
array
(
"p_okId_face" => $_SESSION['p_okId_face'],
"p_messageFace" => $_SESSION['p_messageFace'],
)
);
exit();
*/
$this->genererVueAjax(array('messageFace' => $_SESSION['p_messageFace'], 'msgErreur' => $_SESSION['p_messageFace'], 'photo_succes' => "1"));
}
}
catch (Exception $e)
{
// echo 'Message: ' .$e->getMessage();
// exit();
$msgErreur = $e->getMessage();
$_SESSION['p_messageFace'] = "Un problème lors du traitement! / A problem during treatment!";
$this->beneficiaire->resultat_traitement_face($username, '9', $msgErreur);
$this->genererVueAjax(array('messageFace' => $_SESSION['p_messageFace'], 'msgErreur' => $_SESSION['p_messageFace'], 'photo_succes' => "0"));
}
}
unlink($chemin);
}
}