280 lines
9.1 KiB
PHP
Executable File
280 lines
9.1 KiB
PHP
Executable File
<?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);
|
|
}
|
|
?>
|