This commit is contained in:
KANE LAZENI 2026-07-27 00:11:18 +00:00
parent 8ee52a2a85
commit 52b5ce4c51
8 changed files with 109 additions and 122 deletions

View File

@ -32,7 +32,6 @@ class ControleurFeuillemaladie extends Controleur {
$this->obs = new Miseenobservation();
$_SESSION['p_codeTypeFacture_C'] = "CSO";
}
public function index()
@ -154,7 +153,7 @@ class ControleurFeuillemaladie extends Controleur {
$login = $_SESSION['p_login'];
$otpValueSaisi = $this->requete->getParametre("otpValue");
$otpArray = $this->feuillemaladie->get_otp_value();
$otpArray = $this->feuillemaladie->get_otp_value("CSO");
$otpValueRequis = $otpArray['otpValue'];
$idOtpFacturePrestation = $otpArray['idOtpFacturePrestation'];

View File

@ -53,11 +53,8 @@ class ControleurPharmacien extends Controleur {
{
$garantieadherent_temp = null;
$codePrestataire = $_SESSION['p_codePrestataire_C'];
$numeroBonOrdonnance = $_SESSION['p_numeroBonOrdonnance_C'];
if($numeroBonOrdonnance=="-1")
{
// $this->genererVue();
@ -69,14 +66,12 @@ class ControleurPharmacien extends Controleur {
{
$resultat = $this->beneficiaire->getBeneficiaireOrdonnancePha($numeroBonOrdonnance);
$numeroPrescription = $_SESSION['p_numeroPrescription_C'];
$idBeneficiaire = $resultat['idBeneficiaire'];
$beneficiaire = $this->beneficiaire->getContexteBeneficiaireId($idBeneficiaire);
$this->prescription->initpharmacie_pha($numeroBonOrdonnance);
$prescription = $this->prescription->getprescription_pha($numeroBonOrdonnance);
@ -92,7 +87,6 @@ class ControleurPharmacien extends Controleur {
$datePrestation = $this->prescription->getDatePrestation($numeroFeuilleMaladie);
$_SESSION['datePrestation'] = $datePrestation;
$codeActe = "PH";
@ -103,16 +97,8 @@ class ControleurPharmacien extends Controleur {
$baremesolde = $this->garantie->getbaremesoldeacte($idBeneficiaire,$codeActe,$codeGarantie,$datePrestation);
$statut = $this->garantie->getstatutacte($idBeneficiaire,$codeActe,$codeGarantie);
$dateFinDelaiCarenceActe = $_SESSION['p_bareme']['bareme_finDelaiCarence'];//$this->acte->getDateFinDelaiCarenceActe();
/*
$situation = $this->acte->getSituationActeBeneficiaire($codeActe, $datePrestation);
$situationGarantie = $this->acte->getSituationGarantieBeneficiaire($codeGarantie, $datePrestation);
$situationAnnuelle = $this->acte->getSituationAnnuelleBeneficiaire($datePrestation);
$situationFamille = $this->acte->getSituationFamilleBeneficiaire($datePrestation);
*/
$soldeConsommation = $baremesolde['soldeConsommation'];
$soldeNbreTransaction = $baremesolde['soldeNbreTransaction'];
@ -126,33 +112,24 @@ class ControleurPharmacien extends Controleur {
$soldeNbreTransaction = 0;
}
$detailprescriptions = $this->detailprescription->getdetailprescription_pha($numeroBonOrdonnance);
$marges = $this->detailprescription->getMarges();
$detailnonlivres = $this->prescription->getdetailnonlivre();
//var_dump($detailnonlivres); die();
// $detaillivres = $this->prescription->getdetaillivre();
$detaillivres = $this->prescription->getdetaillivrepha();
$factures = $this->prescription->getfactures_ordonnance($numeroBonOrdonnance);
$factures_toal = $this->prescription->getfactures_total_ordonnance($numeroBonOrdonnance);
$user_id = $_SESSION['p_user_id_C'];
$this->finger->vider_finger_temp($user_id);
$facturable=($numeroRemplace != $numeroBonOrdonnance);
$this->prestation->vider_garantieadherent_temp($numeroFeuilleMaladie, $codePrestataire);
// if($idPrestationactes==0)
// if($idPrestationactes==0 && $facturable)
if($facturable)
{
$garantieadherent_temp = $this->prestation->init_garantieadherent_temp_pha($numeroFeuilleMaladie, $codePrestataire);
@ -161,8 +138,6 @@ class ControleurPharmacien extends Controleur {
unset($_FILES['fichier_upload']);
$geds = $this->ged->getgedpharmacie();
$_SESSION['p_numeroFeuilleMaladie_C'] = $numeroFeuilleMaladie;
$_SESSION['p_idMedicament_C'] = "0";
@ -184,15 +159,12 @@ class ControleurPharmacien extends Controleur {
$tauxAvecReferencement = $referencementpolice['tauxAvecReferencement'];
$tauxSansReferencement = $referencementpolice['tauxSansReferencement'];
//$tMacte = $_SESSION['p_bareme']['bareme_ticketModerateur'];//$this->prescription->ticketModerateurActeBeneficiaire($codeActe);
$tMacte = $this->acte->ticketModerateurDefinitif($codeGarantie, $codeActe, $datePrestation);
$tmDerogation = $this->acte->getTmDerogation($codeGarantie);
$tmAffection = $this->prestation->getTmAffection($numeroFeuilleMaladie);
$dateRef = $beneficiaire['dateReference'];
$bool = true;
@ -254,4 +226,37 @@ class ControleurPharmacien extends Controleur {
'statut' => $statut, 'contestation' => $contestation, 'prixZero' => $prixZero));
}
}
public function confirmerotp()
{
if ($this->requete->existeParametre("otpValue"))
{
$login = $_SESSION['p_login'];
$otpValueSaisi = $this->requete->getParametre("otpValue");
$otpArray = $this->feuillemaladie->get_otp_value("PHAR");
$otpValueRequis = $otpArray['otpValue'];
$idOtpFacturePrestation = $otpArray['idOtpFacturePrestation'];
if ( (password_verify($otpValueSaisi, $otpValueRequis)) && (strlen($otpValueSaisi)=='6') )
{
$this->feuillemaladie->maj_otp($idOtpFacturePrestation, '1'); // validé
}
else
{
$this->feuillemaladie->maj_otp($idOtpFacturePrestation, '9'); // incorrect
}
$this->rediriger("Pharmacien");
}
}
public function envoyerotp()
{
$otpValue = mt_rand(100000, 999999);
$this->feuillemaladie->envoyer_otp($otpValue);
$this->rediriger("Pharmacien");
}
}

View File

@ -5498,7 +5498,6 @@ async function facturer_feuillemaladie() {
function facturer_pha()
{
//
var div_messages = $('#div_messages');
div_messages.html('');
@ -5516,10 +5515,6 @@ function facturer_pha()
coutprescription = $("#coutprescription").val();
//alert(coutprescription);
//return;
montantTm = $("#montantTm").val();
cout = $("#cout").val();
@ -5533,30 +5528,29 @@ function facturer_pha()
numeroFeuilleMaladie = $("#numeroFeuilleMaladie_C").val();
codePrestataire = $("#codePrestataire_C").val();
donnees_sav = 'numeroFeuilleMaladie='+numeroFeuilleMaladie+'&codePrestataire='+codePrestataire+'&typeMail=mailpharmacie';
typeSms = "facturer_pha";
donnees = charger_csrf_token("");
alert(donnees);
$.ajax({
url: $("#racineWeb").val()+"Ajaxdetailpharmacien/enregistrerpharmacie/",
type: 'POST',
data: donnees,
success: function(data) {
// KANE 17/03/2025 => ne pas envoyer de SMS d'alerte de facturation
// preparesms_adherent(typeSms);
},
error: function(data) {
},
complete: function() {
// KANE 17/03/2025 => ne pas envoyer de mail d'alerte de facturation
// preparemail_adherent(typeSms);
v_msg="Facturation effectu\u00e9e avec succès!";
v_msgEng="Billing done successfully!";
alert_ebene(v_msg, v_msgEng);
window.location.assign($("#racineWeb" ).val()+"Pharmacien/");
}
});
}
@ -28829,7 +28823,6 @@ function charger_csrf_token(v_data)
}else{
v_data += '&csrf_token=' + csrf_token;
}
// alert("charger_csrf_token => "+v_data);
return v_data;
}

View File

@ -178,12 +178,6 @@ class Feuillemaladie extends Modele {
$codeMedecin = contruireParamLike($codeMedecin);
$codeTypePrestataire = contruireParamLike($codeTypePrestataire);
$codeRaisonConsultation = contruireParamLike($codeRaisonConsultation);
/*
$hospitalisation = contruireParamLike($hospitalisation);
$numeroChambre = contruireParamLike($numeroChambre);
$chirurgie = contruireParamLike($chirurgie);
$facture = contruireParamLike($facture);
*/
$adherent = contruireParamLike($adherent);
$beneficiaire = contruireParamLike($beneficiaire);
@ -206,12 +200,6 @@ class Feuillemaladie extends Modele {
$codeMedecin = contruireParamLike($codeMedecin);
$codeTypePrestataire = contruireParamLike($codeTypePrestataire);
$codeRaisonConsultation = contruireParamLike($codeRaisonConsultation);
/*
$hospitalisation = contruireParamLike($hospitalisation);
$numeroChambre = contruireParamLike($numeroChambre);
$chirurgie = contruireParamLike($chirurgie);
$facture = contruireParamLike($facture);
*/
$adherent = contruireParamLike($adherent);
$beneficiaire = contruireParamLike($beneficiaire);
@ -222,7 +210,6 @@ class Feuillemaladie extends Modele {
$codeTypePrestataire, $numeroDecompte1, $numeroDecompte2, $codeRaisonConsultation, $hospitalisation, $numeroChambre, $chirurgie, $facture, $adherent, $beneficiaire));
return $resultat->fetch(PDO::FETCH_ASSOC);
}
public function requetesfeuillesmaladieexport($codePrestataire, $dateConsultation1, $dateConsultation2, $numeroAdherent, $numeroBeneficiaire,
@ -235,12 +222,6 @@ class Feuillemaladie extends Modele {
$codeMedecin = contruireParamLike($codeMedecin);
$codeTypePrestataire = contruireParamLike($codeTypePrestataire);
$codeRaisonConsultation = contruireParamLike($codeRaisonConsultation);
/*
$hospitalisation = contruireParamLike($hospitalisation);
$numeroChambre = contruireParamLike($numeroChambre);
$chirurgie = contruireParamLike($chirurgie);
$facture = contruireParamLike($facture);
*/
$adherent = contruireParamLike($adherent);
$beneficiaire = contruireParamLike($beneficiaire);
@ -279,7 +260,6 @@ class Feuillemaladie extends Modele {
$resultat = $this->executerRequete($sql, array($numeroFeuilleMaladie));
return $resultat->fetch(PDO::FETCH_ASSOC);
}
public function enregistreraffection($numeroFeuilleMaladie, $codeAffection)
@ -357,20 +337,13 @@ class Feuillemaladie extends Modele {
$resultat = $this->executerRequete($sql, array($idPolice));
return $resultat->fetch();
}
public function majmotif($motifHospitalisation)
{
$numeroFeuilleMaladie = $_SESSION['p_numeroFeuilleMaladie_C'];
$sql = 'call sp_p_majmotifhospitalisation(?, ?, ?, ?, ?, ?)';
$this->executerRequete($sql, array($numeroFeuilleMaladie, $motifHospitalisation));
$numeroFeuilleMaladie = $_SESSION['p_numeroFeuilleMaladie_C'];
$sql = 'call sp_p_majmotifhospitalisation(?, ?, ?, ?, ?, ?)';
$this->executerRequete($sql, array($numeroFeuilleMaladie, $motifHospitalisation));
}
public function getDateFinDelaiCarenceGarantie($codeGarantie)
@ -382,12 +355,9 @@ class Feuillemaladie extends Modele {
$resultat = $this->executerRequete($sql, array($_SESSION['p_idBeneficiaire_C'], $codeGarantie));
$ligne = $resultat->fetch(PDO::FETCH_ASSOC);
return $ligne['dateFinDelaiCarenceGarantie'];
}
// 28-10-2022
public function getFeuillemaladiehospitalisation()
{
$numeroFeuilleMaladie = $_SESSION['p_numeroFeuilleMaladie_C'];
@ -397,7 +367,6 @@ class Feuillemaladie extends Modele {
$resultat = $this->executerRequete($sql, array($numeroFeuilleMaladie));
return $resultat->fetch(PDO::FETCH_ASSOC);
}
public function getListeProlongations($numeroFeuilleMaladie)
@ -411,28 +380,18 @@ class Feuillemaladie extends Modele {
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
//31-10-2022
public function majnochambre($noChambre)
{
$numeroFeuilleMaladie = $_SESSION['p_numeroFeuilleMaladie_C'];
$sql = 'CALL sp_p_majnochambre(?, ?);';
$this->executerRequete($sql, array($noChambre, $numeroFeuilleMaladie));
}
public function majChambreProrogation($idProlongation, $noChambrePro)
{
//var_dump($idProlongation, $noChambrePro);
$sql = 'CALL sp_p_majchambreprorogation(?, ?);';
$this->executerRequete($sql, array($idProlongation, $noChambrePro));
}
public function getDateFinDerniereProlongation()
@ -446,32 +405,25 @@ class Feuillemaladie extends Modele {
$ligne = $resultat->fetch(PDO::FETCH_ASSOC);
return $ligne['dateFinDerniereProlongation'];
}
public function majdebut($dateDebutHospit, $dureeHospit, $dureeCorrigeeHospit)
{
$numeroFeuilleMaladie = $_SESSION['p_numeroFeuilleMaladie_C'];
$sql = 'CALL sp_p_majdatedebuthospitalisation(?, ?, ?, ?);';
$this->executerRequete($sql, array($dateDebutHospit, $dureeHospit, $numeroFeuilleMaladie, $dureeCorrigeeHospit));
}
public function majduree($dureeHospit)
{
$numeroFeuilleMaladie = $_SESSION['p_numeroFeuilleMaladie_C'];
$sql = 'call sp_p_majdureehospitalisation(?, ?);';
$this->executerRequete($sql, array($dureeHospit, $numeroFeuilleMaladie));
}
public function getdateFinHospitalisation()
@ -500,7 +452,6 @@ class Feuillemaladie extends Modele {
}
public function ticketModerateurCollege($idBeneficiaire, $datePrestation)
{
@ -656,12 +607,12 @@ class Feuillemaladie extends Modele {
$this->executerRequete($sql, array($codeSociete, $codePrestataire, $idBeneficiaire, $numeroFeuilleMaladie, $codeTypeFacture, $otpValue, $user, $hash));
}
public function get_otp_value()
public function get_otp_value($codeTypeFacture)
{
$codePrestataire = $_SESSION['p_codePrestataire_C'];
$idBeneficiaire = $_SESSION['p_idBeneficiaire_C'];
$numeroFeuilleMaladie = $_SESSION['p_numeroFeuilleMaladie_C'];
$codeTypeFacture = "CSO";
// $codeTypeFacture = "CSO";
$sql = 'CALL sp_p_get_otp_facture_prestation(?, ?, ?, ?);';
$resultat = $this->executerRequete($sql, array($codePrestataire, $idBeneficiaire, $numeroFeuilleMaladie, $codeTypeFacture));

View File

@ -32,6 +32,7 @@ class Prescription_temp extends Modele {
$_SESSION['p_numeroPrescription_C'] = $ligne['numeroPrescription'];
$_SESSION['p_numeroFeuilleMaladie_C'] = $ligne['numeroFeuilleMaladie'];
$_SESSION['p_idFacture_C'] = $ligne['idFacture'];
$_SESSION['p_activerOtpFacturePrestations_C'] = $ligne['activerOtpFacturePrestations'];
return $ligne;
}

View File

@ -647,9 +647,9 @@
<h5 class="alert alert-danger" style="height:35px; padding:5px; text-align:center; margin-bottom:5px;"> <?= $messageOtp ?> </h5>
<?php if($otpStatus=='0') : ?>
<form action="Feuillemaladie/envoyerotp" method="post">
<form action="Pharmacien/envoyerotp" method="post">
<?php else: ?>
<form action="Feuillemaladie/confirmerotp" method="post">
<form action="Pharmacien/confirmerotp" method="post">
<?php endif; ?>
<table class="table table-responsive table-condensed" style='font-size:10pt;'>
<tbody>

View File

@ -20,6 +20,8 @@
$bareme_finDelaiCarence = $_SESSION['p_bareme']['bareme_finDelaiCarence'];
$activerOtp = $_SESSION['p_activerOtpFacturePrestations_C'];
$token = $_SESSION['csrf_token_submieted'];
?>
@ -71,9 +73,7 @@
<div id="ordonnance">
</div>
<div id="livraison">
<div id="non_livre">
@ -83,28 +83,35 @@
</div>
</div>
<?php else: ?>
<input class="sr-only" type="text" id="margePrixMedicament" name="margePrixMedicament" value="<?= $this->nettoyer($marges['margePrixMedicament']) ?>">
<input class="sr-only" type="text" id="appliquerMargePrixMedicament" name="appliquerMargePrixMedicament" value="<?= $this->nettoyer($marges['appliquerMargePrixMedicament']) ?>">
<input class="sr-only" type="text" id="typeMargePrixMedicament" name="typeMargePrixMedicament" value="<?= $this->nettoyer($marges['typeMargePrixMedicament']) ?>">
<?php if ($numeroPrescription>" " && $contestation=="0") : ?>
<?php
$estRempalace =($prescription['numeroRemplace'] == $numeroBonOrdonnance);
$agePrescription = $this->nettoyer($prescription['agePrescription']);
$bonCaduc = $this->nettoyer($prescription['bonCaduc']);
$nbMedicamentSaisie = $prescription['nbMedicamentSaisie'];
$otpStatus = $this->nettoyer($prescription['otpStatus']);
if($modeSaisieFacture=="1")
{
$bonCaduc = "0";
}
$bonCaduc = "0";
$otpStatus = -1; // Pas OTP en mode Décompte
}
var_dump(
array(
"otpStatus" => $otpStatus,
)
);
?>
<input class="sr-only" id="bonCaduc" name="bonCaduc" type="text" value= "<?= $bonCaduc ?>" >
<!-- <input class="sr-only" id="otpStatus" name="otpStatus" type="text" value= "<?= $otpStatus ?>" > -->
<input class="form-control" TYPE="text" id="otpStatus" name="otpStatus" value= "<?= $otpStatus ?>" >
<div id="pharmacien">
<?php if($estRempalace) : ?>
@ -141,8 +148,6 @@
</tbody>
</table>
<table class="table table-responsive table-condensed" style='font-size:9pt;' >
<tbody>
<tr>
@ -157,21 +162,62 @@
</tr>
</tbody>
</table>
</div>
<div class="alert alert-danger" style="text-align:center; height:38px; padding:5px;" >
<H4><?= _("Prescrit à").": ".$this->nettoyer($prescription['prestataire']) ?></H4>
</div>
<div id="div_facture_definitive">
</div>
<div >
<input class="form-control" style="text-align: center; font-size: 12pt;font-weight: bold;" type="text" value="<?= _("Facturation") ?>" readonly >
<!-- 26/07/2026 => DEBUT gérer les OTP ici -->
<?php if($otpStatus=="-1" || $otpStatus=="1"): ?>
<input style='font-size:10pt;' class="form-control btn btn-info" type="button" onclick="valider_pharmacie_pha()" value="<?= _("Facturer") ?>" />
<?php else:
switch ($otpStatus) {
case 0:
$messageOtp = "Veuillez envoyer un code de vérification à l'assuré!";
break;
case 2:
$messageOtp = "Veuillez saisir le code de vérification reçu par l'assuré sur son téléphone portable ou son adresse e-mail!";
break;
case 9:
$messageOtp = "Code incorrect, veuillez réessayer!";
break;
default:
$messageOtp = "Veuillez envoyer un code de vérification à l'assuré!";
}
?>
<h5 class="alert alert-danger" style="height:35px; padding:5px; text-align:center; margin-bottom:5px;"> <?= $messageOtp ?> </h5>
<?php if($otpStatus=='0') : ?>
<form action="Feuillemaladie/envoyerotp" method="post">
<?php else: ?>
<form action="Feuillemaladie/confirmerotp" method="post">
<?php endif; ?>
<table class="table table-responsive table-condensed" style='font-size:10pt;'>
<tbody>
<tr>
<?php if($otpStatus=='0') : ?>
<td> <input style='font-size:10pt;' class="form-control btn btn-info" type="submit" name="submit" value="<?= _("Envoyer Code") ?>" /> </td>
<?php elseif($otpStatus=='2'): ?>
<td> <INPUT style='font-size:10pt; text-align:center;' class="form-control" type="text" id="otpValue" name="otpValue" required AUTOCOMPLETE="OFF" autofocus > </td>
<td> <input style='font-size:10pt;' class="form-control btn btn-primary" type="submit" name="submit" value="<?= _("Vérifier Code") ?>" /> </td>
<?php else: ?>
<td> <INPUT style='font-size:10pt; text-align:center;' class="form-control" type="text" id="otpValue" name="otpValue" required AUTOCOMPLETE="OFF" autofocus > </td>
<td> <input style='font-size:10pt;' class="form-control btn btn-warning" type="submit" name="submit" value="<?= _("Vérifier Code à nouveau") ?>" /> </td>
<?php endif; ?>
</tr>
</tbody>
</table>
</form>
<?php endif; ?>
<!-- 26/07/2026 => FIN gérer les OTP ici -->
</div>
<table class="table table-striped table-bordered table-hover table-condensed table-responsive" style="font-size:9pt;">
@ -204,7 +250,6 @@
<tr valign="top">
<td align='center'> <?= dateheureLang($this->nettoyer($une_facture['dateSysteme'])) ?> </td>
<!-- <td align='center'> <?= $this->nettoyer($une_facture['idFacture']) ?> </td> -->
<td align='center'>
<input
class = "form-control btn btn-primary"
@ -225,7 +270,6 @@
</tbody>
</table>
<?php if($idPrestationactes>"0") : ?>
<div id="recap">
<table class="table table-responsive table-condensed" style='font-size:12pt;' >
@ -257,12 +301,6 @@
<?php endif; ?>
<!--
<div id="content">
<?php include 'flexcode/include/global.php'; ?>
</div>
-->
<div id ="div_wait">
</div>

View File

@ -885,7 +885,7 @@
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/toastr@2.1.4/build/toastr.min.css" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/toastr@2.1.4/build/toastr.min.js" crossorigin="anonymous"></script>
<script src="Js/fonctions.js?ver=2026.07.26.07"></script>
<script src="Js/fonctions.js?ver=2026.07.26.08"></script>
<script src="Bootstrap/js/bootstrap.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue@3/dist/vue.global.prod.js"></script>