diff --git a/Controleur/ControleurRechercheparcarte.php b/Controleur/ControleurRechercheparcarte.php new file mode 100755 index 00000000..9b09afb5 --- /dev/null +++ b/Controleur/ControleurRechercheparcarte.php @@ -0,0 +1,190 @@ +menuvue = new Menuvueutilisateur(); + $this->menuvue->getMenuVue("Rechercheparcarte"); + + $this->beneficiaire = new Beneficiaire(); + + viderContexte(); + + $_SESSION['p_numeroBonOrdonnance_C'] = "-1"; + $_SESSION['p_numeroBonExamen_C'] = "-1"; + $_SESSION['p_numeroBonOptique_C'] = "-1"; + $_SESSION['p_numeroBonKine_C'] = "-1"; + + $_SESSION['p_okId'] = "-1"; + $_SESSION['p_okId_face'] = "-1"; + + $_SESSION["proforma"] = "0"; + + } + + public function index() + { + $donneesCarte=""; + + if (!isset($msgErreur)){ + $msgErreur=""; + } + + /* + var_dump( + array( + "msgErreur" => $msgErreur, + ) + ); + exit(); + */ + + $this->beneficiaire->getModeBiometrie(); + + $_SESSION['p_okId'] = "-1"; + $_SESSION['p_okId_face'] = "-1"; + + $_SESSION['p_vueRetour'] = "Recherche"; + + $derniernumerobeneficiaires = 0; + + $_SESSION['p_d1m_C'] = isset($_SESSION['p_d1m_C']) ? $_SESSION['p_d1m_C'] : $_SESSION['p_debutMois_C'] ; + $_SESSION['p_d2_C'] = isset($_SESSION['p_d2_C']) ? $_SESSION['p_d2_C'] : date('Y-m-d'); + $_SESSION['etatFeuille'] = isset($_SESSION['etatFeuille']) ? $_SESSION['etatFeuille'] : '2'; + + $_SESSION['p_dEntente_C'] = isset($_SESSION['p_dEntente_C']) ? $_SESSION['p_dEntente_C'] : $_SESSION['p_debutMois_C'] ; + $_SESSION['etatEntente'] = isset($_SESSION['etatEntente']) ? $_SESSION['etatEntente'] : '2'; + + if(isset($_POST['donneesCarte'])) + { + $versionTagCarteEncours = $this->beneficiaire->getVersionTagCarteEncours(); + $donneesCarte = $_POST['donneesCarte']; // ex: "IS1|ebene|ESI6936000602|b18e7d5e-0ac2-11f1-a875-d05099ffadf8"|nfc => SVMx|ZWJlbmU=|RVNJNjkzNjAwMTcwMw==|b18e7d5e-0ac2-11f1-a875-d05099ffadf8|nfc + $parts = explode('|', $donneesCarte); + + /* + var_dump( + array( + // "POST" => $_POST, + // "donneesCarte" => $donneesCarte, + "parts" => $parts, + ) + ); + exit(); + */ + + $versionTagCarte = base64_decode($parts[0]); + $codeEntite = base64_decode($parts[1]); + + /* + var_dump( + array( + "donneesCarte" => $donneesCarte, + "parts" => $parts, + "count_parts" => count($parts), + "versionTagCarte" => $versionTagCarte, + "versionTagCarteEncours" => $versionTagCarteEncours, + "codeEntite" => $codeEntite, + "codeSociete" => $_SESSION['p_codeSociete'], + // "numeroBeneficiaireCarte" => $numeroBeneficiaireCarte, + // "tagUuid" => $tagUuid, + ) + ); + exit(); + */ + + if (count($parts) !== 5 || $versionTagCarte !== $versionTagCarteEncours || $codeEntite != $_SESSION['p_codeSociete']) { + // if ($versionTagCarte !== $versionTagCarteEncours || $codeEntite != $_SESSION['p_codeSociete']) { + $msgErreur = 'KANE 01 Carte invalide / Invalid card'; + } + else{ + $numeroBeneficiaireCarte = base64_decode($parts[2]); + $tagUuid = $parts[3]; + + /* + var_dump( + array( + "versionTagCarteEncours" => $versionTagCarteEncours, + "versionTagCarte" => $versionTagCarte, + "codeEntite" => $codeEntite, + "numeroBeneficiaireCarte" => $numeroBeneficiaireCarte, + "tagUuid" => $tagUuid, + ) + ); + exit(); + */ + + if($codeEntite<=" " || $numeroBeneficiaireCarte<=" " || $tagUuid<=" ") + { + $msgErreur = 'KANE 02 Carte invalide / Invalid card'; + } + else + { + $derniernumerobeneficiaires = $this->beneficiaire->getnumerobeneficiairesperdu($numeroBeneficiaireCarte); + + /* + var_dump( + array( + "versionTagCarte" => $versionTagCarte, + "codeEntite" => $codeEntite, + "numeroBeneficiaireCarte" => $numeroBeneficiaireCarte, + "tagUuid" => $tagUuid, + ) + ); + exit(); + */ + + $beneficiaires = $this->beneficiaire->getBeneficiaireTag($versionTagCarte, $codeEntite, $numeroBeneficiaireCarte, $tagUuid); + + $nbLignes = $beneficiaires->rowCount(); + + if($nbLignes==0) + { + $beneficiaires->closeCursor(); // Fermer le curseur + $msgErreur = "$numeroBeneficiaireCarte : Carte introuvable / Card not found"; + + /* + var_dump( + array( + "nbLignes" => $nbLignes, + "msgErreur" => $msgErreur, + ) + ); + exit(); + */ + } + else + { + $beneficiaire = $beneficiaires->fetch(PDO::FETCH_ASSOC); + + $beneficiaires->closeCursor(); // Fermer le curseur + + /* + var_dump( + array( + "beneficiaire" => $beneficiaire, + "nbLignes" => $nbLignes, + ) + ); + exit(); + */ + + $_SESSION['p_idBeneficiaire_C'] = $beneficiaire['idBeneficiaire']; + $_SESSION['p_idBeneficiaire_sav'] = $_SESSION['p_idBeneficiaire_C']; + + $this->rediriger("Fichebeneficiaire"); + } + } + } + } + + // var_dump($msgErreur); + // exit(); + + $this->genererVue(array('msgErreur' => $msgErreur)); + } +} \ No newline at end of file diff --git a/Modele/Beneficiaire.php b/Modele/Beneficiaire.php index 2713c1e2..3ac0d571 100755 --- a/Modele/Beneficiaire.php +++ b/Modele/Beneficiaire.php @@ -2670,5 +2670,92 @@ class Beneficiaire extends Modele { return $ligne['idPolice']; } + + // Ajout KANE 27/02/2026 => Recherche par carte à puce + public function getVersionTagCarteEncours() { + $sql = 'SELECT versionTagCarte FROM societeuser LIMIT 1;'; + $resultat = $this->executerRequete($sql); + $ligne = $resultat->fetch(PDO::FETCH_ASSOC); + return $ligne['versionTagCarte']; + } + + public function getBeneficiaireTag($versionTagCarte, $codeEntite, $numeroBeneficiaireCarte, $tagUuid) + { + $sql = 'call sp_p_get_beneficiaire_tag(?, ?, ?, ?);'; + $beneficiaire = $this->executerRequete($sql, array($versionTagCarte, $codeEntite, $numeroBeneficiaireCarte, $tagUuid)); + return $beneficiaire; + } + + public function demandereconnaissancefaciale($telephoneAutre) + { + $codeSociete = $_SESSION['codeSociete']; + $codePrestataire = $_SESSION['codePrestataire_C']; + $idBeneficiaire = $_SESSION['idBeneficiaire_C']; + $user = $_SESSION['login']; + + $sql = 'call sp_p_demandereconnaissancefaciale(?, ?, ?, ?, ?);'; + $this->executerRequete($sql, array($codeSociete, $codePrestataire, $idBeneficiaire, $telephoneAutre, $user)); + } + + public function checkdemandereconnaissancefaciale() + { + $codeSociete = $_SESSION['codeSociete']; + $codePrestataire = $_SESSION['codePrestataire_C']; + $idBeneficiaire = $_SESSION['idBeneficiaire_C']; + + $sql = 'call sp_p_checkdemandereconnaissancefaciale(?, ?, ?);'; + $resultat = $this->executerRequete($sql, array($codeSociete, $codePrestataire, $idBeneficiaire)); + $ligne = $resultat->fetch(PDO::FETCH_ASSOC); + return $ligne; + } + + public function fn_etat_demandereconnaissancefaciale() + { + $codeSociete = $_SESSION['codeSociete']; + $codePrestataire = $_SESSION['codePrestataire_C']; + $idBeneficiaire = $_SESSION['idBeneficiaire_C']; + + $sql = 'select fn_etat_demandereconnaissancefaciale(?, ?, ?) as etatDemanderecFac'; + + $resultat = $this->executerRequete($sql, array($codeSociete, $codePrestataire, $idBeneficiaire)); + + $ligne = $resultat->fetch(PDO::FETCH_ASSOC); + + + return $ligne['etatDemanderecFac']; + } + + public function fn_libelle_etat_demandereconnaissancefaciale() + { + $codeSociete = $_SESSION['codeSociete']; + $codePrestataire = $_SESSION['codePrestataire_C']; + $idBeneficiaire = $_SESSION['idBeneficiaire_C']; + + $sql = 'select fn_libelle_etat_demandereconnaissancefaciale(?, ?, ?, ?) as libelleEtatDemanderecFac'; + + $resultat = $this->executerRequete($sql, array($codeSociete, $codePrestataire, $idBeneficiaire, $_SESSION['lang'])); + + $ligne = $resultat->fetch(PDO::FETCH_ASSOC); + + + return $ligne['libelleEtatDemanderecFac']; + } + + public function fn_message_demandereconnaissancefaciale() + { + $codeSociete = $_SESSION['codeSociete']; + $codePrestataire = $_SESSION['codePrestataire_C']; + $idBeneficiaire = $_SESSION['idBeneficiaire_C']; + + $sql = 'select fn_message_demandereconnaissancefaciale(?, ?, ?, ?) as messagePrestataireRecFac'; + + $resultat = $this->executerRequete($sql, array($codeSociete, $codePrestataire, $idBeneficiaire, $_SESSION['lang'])); + + $ligne = $resultat->fetch(PDO::FETCH_ASSOC); + + + return $ligne['messagePrestataireRecFac']; + } + } \ No newline at end of file diff --git a/Modele/Pbeneficiaire.php b/Modele/Pbeneficiaire.php index b28a0af8..6af2a495 100755 --- a/Modele/Pbeneficiaire.php +++ b/Modele/Pbeneficiaire.php @@ -629,4 +629,92 @@ class Pbeneficiaire extends Modele { return $ligne['idPolice']; } + // Ajout KANE 27/02/2026 => Recherche par carte à puce + + public function getVersionTagCarteEncours() { + $sql = 'SELECT versionTagCarte FROM societeuser LIMIT 1;'; + $resultat = $this->executerRequete($sql); + $ligne = $resultat->fetch(PDO::FETCH_ASSOC); + return $ligne['versionTagCarte']; + } + + public function getBeneficiaireTag($versionTagCarte, $codeEntite, $numeroBeneficiaireCarte, $tagUuid) + { + $sql = 'call sp_p_get_beneficiaire_tag(?, ?, ?, ?);'; + $beneficiaire = $this->executerRequete($sql, array($versionTagCarte, $codeEntite, $numeroBeneficiaireCarte, $tagUuid)); + return $beneficiaire; + } + + public function demandereconnaissancefaciale($telephoneAutre) + { + $codeSociete = $_SESSION['codeSociete']; + $codePrestataire = $_SESSION['codePrestataire_C']; + $idBeneficiaire = $_SESSION['idBeneficiaire_C']; + $user = $_SESSION['login']; + + $sql = 'call sp_p_demandereconnaissancefaciale(?, ?, ?, ?, ?);'; + $this->executerRequete($sql, array($codeSociete, $codePrestataire, $idBeneficiaire, $telephoneAutre, $user)); + } + + public function checkdemandereconnaissancefaciale() + { + $codeSociete = $_SESSION['codeSociete']; + $codePrestataire = $_SESSION['codePrestataire_C']; + $idBeneficiaire = $_SESSION['idBeneficiaire_C']; + + $sql = 'call sp_p_checkdemandereconnaissancefaciale(?, ?, ?);'; + $resultat = $this->executerRequete($sql, array($codeSociete, $codePrestataire, $idBeneficiaire)); + $ligne = $resultat->fetch(PDO::FETCH_ASSOC); + return $ligne; + } + + public function fn_etat_demandereconnaissancefaciale() + { + $codeSociete = $_SESSION['codeSociete']; + $codePrestataire = $_SESSION['codePrestataire_C']; + $idBeneficiaire = $_SESSION['idBeneficiaire_C']; + + $sql = 'select fn_etat_demandereconnaissancefaciale(?, ?, ?) as etatDemanderecFac'; + + $resultat = $this->executerRequete($sql, array($codeSociete, $codePrestataire, $idBeneficiaire)); + + $ligne = $resultat->fetch(PDO::FETCH_ASSOC); + + + return $ligne['etatDemanderecFac']; + } + + public function fn_libelle_etat_demandereconnaissancefaciale() + { + $codeSociete = $_SESSION['codeSociete']; + $codePrestataire = $_SESSION['codePrestataire_C']; + $idBeneficiaire = $_SESSION['idBeneficiaire_C']; + + $sql = 'select fn_libelle_etat_demandereconnaissancefaciale(?, ?, ?, ?) as libelleEtatDemanderecFac'; + + $resultat = $this->executerRequete($sql, array($codeSociete, $codePrestataire, $idBeneficiaire, $_SESSION['lang'])); + + $ligne = $resultat->fetch(PDO::FETCH_ASSOC); + + + return $ligne['libelleEtatDemanderecFac']; + } + + public function fn_message_demandereconnaissancefaciale() + { + $codeSociete = $_SESSION['codeSociete']; + $codePrestataire = $_SESSION['codePrestataire_C']; + $idBeneficiaire = $_SESSION['idBeneficiaire_C']; + + $sql = 'select fn_message_demandereconnaissancefaciale(?, ?, ?, ?) as messagePrestataireRecFac'; + + $resultat = $this->executerRequete($sql, array($codeSociete, $codePrestataire, $idBeneficiaire, $_SESSION['lang'])); + + $ligne = $resultat->fetch(PDO::FETCH_ASSOC); + + + return $ligne['messagePrestataireRecFac']; + } + + } \ No newline at end of file diff --git a/Vue/Rechercheparcarte/index.php b/Vue/Rechercheparcarte/index.php new file mode 100755 index 00000000..84e8b680 --- /dev/null +++ b/Vue/Rechercheparcarte/index.php @@ -0,0 +1,330 @@ +titre = "INTER-SANTE - "._("Recherche du patient par carte") ; +?> + + + +
+ + + + " "): ?> +