assure/Contestation/Validercontestation.php
2025-12-01 19:07:16 +00:00

280 lines
9.1 KiB
PHP

<?php
session_start();
// Fonction pour afficher les messages avec un style cohérent
function afficherMessage($message, $estErreur = true) {
$couleur = $estErreur ? "#d9534f" : "#5cb85c"; // Rouge pour erreur, vert pour succès
?>
<!DOCTYPE html>
<html lang="<?= isset($codeLangue) ? $codeLangue : 'fr_FR' ?>">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" href="/Contestation/favicon.ico" />
<title><?= htmlspecialchars($title ?? 'Contestation') ?></title>
<style>
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 20px;
background-color: #f5f5f5;
}
.container {
max-width: 800px;
margin: 50px auto;
background: white;
padding: 30px;
border-radius: 5px;
box-shadow: 0 0 15px rgba(0,0,0,0.1);
text-align: center;
}
.message {
color: white;
background-color: <?= $couleur ?>;
padding: 15px;
border-radius: 4px;
font-size: 18px;
margin: 20px 0;
}
.logo {
margin-bottom: 20px;
}
</style>
</head>
<body>
<div class="container">
<div class="logo">
<!-- Vous pouvez ajouter un logo ici si nécessaire -->
</div>
<div class="message">
<?= $message ?>
</div>
</div>
</body>
</html>
<?php
exit();
}
// Configuration de la langue
if (!isset($_SESSION['codeLangue'])) {
afficherMessage("<strong>Paramètre langue absent de la requête!</strong>");
}
$codeLangue = base64_decode($_SESSION['codeLangue']);
$tab_code_langue = ["fr_FR", "en_US"];
if(!in_array($codeLangue, $tab_code_langue)) {
afficherMessage("<strong>Langue inconnue!</strong>");
}
// Définition du titre selon la langue
$title = ($codeLangue == 'en_US') ? "Contest a health record" : "Contester un dossier maladie";
// Vérification des paramètres requis
$requiredParams = [
'codeEntite' => [
'en' => "Entity parameter missing from query!",
'fr' => "Paramètre entité absent de la requête!"
],
'idAdherent' => [
'en' => "Family parameter missing from query!",
'fr' => "Paramètre famille absent de la requête!"
],
'dossier' => [
'en' => "Folder parameter missing from query!",
'fr' => "Paramètre dossier absent de la requête!"
]
];
foreach ($requiredParams as $param => $messages) {
if (!isset($_SESSION[$param])) {
$message = $codeLangue == 'en_US' ? $messages['en'] : $messages['fr'];
afficherMessage("<strong>$message</strong>");
}
}
if (!isset($_POST['motifContestation'])) {
afficherMessage("<strong>Paramètre motif absent de la requête!</strong>");
}
// Récupération des données
$codeSociete = base64_decode($_SESSION['codeEntite']);
$idAdherent = base64_decode($_SESSION['idAdherent']);
$numeroFeuilleMaladie = base64_decode($_SESSION['dossier']);
$motifContestation = $_POST['motifContestation'];
$codeBdd = $codeSociete;
require_once "Modelecontestation.php";
class Validercontestation extends Modelecontestation {
public function existeligne($codeSociete)
{
$sql = 'select id FROM societeuser WHERE (codeSociete=? and actif="1")';
$resultat = $this->executerRequete($sql, array($codeSociete));
return ($resultat->rowCount() > 0);
}
public function existeligneconnexion($codeSociete)
{
$sql = 'select count(0) as nb FROM societeuser WHERE (codeSociete=?);';
$resultat = $this->executerRequete($sql, array($codeSociete))->fetch(PDO::FETCH_ASSOC);
$nb = $resultat['nb'];
return ($nb > 0);
}
public function getTauxPaypal()
{
$sql = 'SELECT tauxVariablePaypal, tauxFixeDevisePaypal
FROM societeusersas LIMIT 1;';
$resultat = $this->executerRequete($sql);
return $resultat->fetch(PDO::FETCH_ASSOC);
}
public function viderTablesTemporairesUser($login)
{
$sql = "call viderTablesTemporairesUser_saas(?)";
$this->executerRequete($sql, array($login));
}
public function getResultatRequete($requete)
{
$sql = 'call sp_executer_requete(?)';
$resultat = $this->executerRequeteAdin($sql, array($requete));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function getTablesbd()
{
$sql = 'call sp_get_tables_bdd()';
$resultat = $this->executerRequeteAdin($sql);
$donnes = $resultat->fetchAll(PDO::FETCH_ASSOC);
return $donnes;
}
public function describeTable($tableName)
{
$sql = 'call sp_describe_table(?)';
$resultat = $this->executerRequeteAdin($sql, array($tableName));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function geUneBd($codeBdd)
{
$sql = 'CALL sp_une_bd_saas(?);';
$resultat = $this->executerRequete($sql, array($codeBdd));
return $resultat->fetch(PDO::FETCH_ASSOC);
}
public function feuilleMaladieExiste($codeSociete, $idAdherent, $numeroFeuilleMaladie)
{
$sql = 'select id FROM p_feuillemaladie where (codeSociete=? and idAdherent=? and numeroFeuilleMaladie=?);';
$resultat = $this->executerRequeteAdin($sql, array($codeSociete, $idAdherent, $numeroFeuilleMaladie));
return ($resultat->rowCount() > 0);
}
public function feuilleMaladieEncours($codeSociete, $idAdherent, $numeroFeuilleMaladie)
{
$sql = 'select id FROM p_feuillemaladie where (codeSociete=? and idAdherent=? and numeroFeuilleMaladie=? and date(dateSysteme)=curdate());';
$resultat = $this->executerRequeteAdin($sql, array($codeSociete, $idAdherent, $numeroFeuilleMaladie));
return ($resultat->rowCount() > 0);
}
public function feuilleContestee($codeSociete, $idAdherent, $numeroFeuilleMaladie)
{
$sql = 'select id FROM p_feuillemaladie where (codeSociete=? and idAdherent=? and numeroFeuilleMaladie=? and contestation="1");';
$resultat = $this->executerRequeteAdin($sql, array($codeSociete, $idAdherent, $numeroFeuilleMaladie));
return ($resultat->rowCount() > 0);
}
public function feuilleFacturee($codeSociete, $idAdherent, $numeroFeuilleMaladie)
{
$sql = 'select id FROM p_feuillemaladie where (codeSociete=? and idAdherent=? and numeroFeuilleMaladie=? and facture="1");';
$resultat = $this->executerRequeteAdin($sql, array($codeSociete, $idAdherent, $numeroFeuilleMaladie));
return ($resultat->rowCount() > 0);
}
public function contester($codeSociete, $idAdherent, $numeroFeuilleMaladie, $motifContestation)
{
$sql = 'call sp_a_contester_feuille(?, ?, ?, ?)';
$this->executerRequeteAdin($sql, array($codeSociete, $idAdherent, $numeroFeuilleMaladie, $motifContestation));
}
}
// Execution
$validercontestation = new Validercontestation();
$_SESSION['codeBdd'] = $codeBdd;
$bdd = $validercontestation->geUneBd($codeBdd);
if(!$bdd) {
$message = $codeLangue == 'en_US' ? "Entity not found!" : "Entité introuvable!";
afficherMessage("<strong>$message</strong>");
}
$_SESSION['BdName'] = $bdd['BdName'];
$_SESSION['BdLogin'] = $bdd['BdLogin'];
$_SESSION['BdMdp'] = $bdd['BdMdp'];
if($validercontestation->existeligne($codeSociete)) {
$feuilleMaladieExiste = $validercontestation->feuilleMaladieExiste($codeSociete, $idAdherent, $numeroFeuilleMaladie);
if(!$feuilleMaladieExiste) {
$message = $codeLangue == 'en_US' ? "Health file not found!" : "Dossier maladie introuvable!";
afficherMessage("<strong>$message</strong>");
}
$feuilleMaladieEncours = $validercontestation->feuilleMaladieEncours($codeSociete, $idAdherent, $numeroFeuilleMaladie);
if(!$feuilleMaladieEncours) {
$message = $codeLangue == 'en_US' ? "Deadline for appeal has passed!" : "Delai de contestation dépassé!";
afficherMessage("<strong>$message</strong>");
}
$feuilleDejaContestee = $validercontestation->feuilleContestee($codeSociete, $idAdherent, $numeroFeuilleMaladie);
if($feuilleDejaContestee) {
$message = $codeLangue == 'en_US' ? "File already contested!" : "Dossier déjà contesté!";
afficherMessage("<strong>$message</strong>");
}
$feuilleDejaFacturee = $validercontestation->feuilleFacturee($codeSociete, $idAdherent, $numeroFeuilleMaladie);
if($feuilleDejaFacturee) {
$message = $codeLangue == 'en_US' ? "File already invoiced!" : "Dossier déjà facturé!";
afficherMessage("<strong>$message</strong>");
}
$validercontestation->contester($codeSociete, $idAdherent, $numeroFeuilleMaladie, $motifContestation);
$message = $codeLangue == 'en_US'
? "Medical record successfully contested!"
: "Dossier médical contesté avec succès!";
afficherMessage("<strong>$message</strong>", false);
}
?>