executerRequete($sql, array($codePrestataire)); return $bonpecs; } public function afficherBonpecs($codePrestataire, $codeTypeBon, $codeEtatBon, $noDepart, $noFin) { $codeEtatBon = contruireParamLike($codeEtatBon); $sql = 'call sp_afficher_bonpecs(?, ?, ?, ?, ?, ?)'; $bonpecs = $this->executerRequete($sql, array($_SESSION['p_codeSociete'], $codePrestataire, $codeTypeBon, $codeEtatBon, $noDepart, $noFin)); return $bonpecs->fetchAll(PDO::FETCH_ASSOC); } public function getBonId($id) { $sql = 'select A.*, A.id as IdBon, B.libelle as typeBon, C.libelle as etatBon , IFNULL(concat(nomBeneficiaire, " ",prenomsBeneficiaire),"") as beneficiaire from p_bonpec A left join typebon B on (B.codeTypeBon=A.codeTypeBon) left join etatbon C on (C.codeEtatBon=A.codeEtatBon) left join beneficiaire D on (D.numeroBeneficiaire=A.numeroBeneficiaire) WHERE (A.id=?)'; $bonpec = $this->executerRequete($sql, array($id)); if ($bonpec->rowCount() > 0) return $bonpec->fetch(PDO::FETCH_ASSOC); else throw new Exception("Aucun profil ne correspond à cet id : '$id'"); } public function getBonNumeroBon($numeroBon) { $sql = 'select A.*, A.id as IdBon, B.libelle as typeBon, C.libelle as etatBon , IFNULL(concat(nomBeneficiaire, " ",prenomsBeneficiaire),"") as beneficiaire from p_bonpec A left join typebon B on (B.codeTypeBon=A.codeTypeBon) left join etatbon C on (C.codeEtatBon=A.codeEtatBon) left join beneficiaire D on (D.numeroBeneficiaire=A.numeroBeneficiaire) WHERE (A.numeroBon=?)'; $bonpec = $this->executerRequete($sql, array($numeroBon)); if ($bonpec->rowCount() > 0) return $bonpec->fetch(PDO::FETCH_ASSOC); else throw new Exception("Aucun profil ne correspond à cet N° : '$numeroBon'"); } public function genererBon($codePrestataire, $codeTypeBon, $noDepart, $noFin) { $dj = date('Y-m-d'); $numeroBon = "0"; for ($numeroBon = $noDepart; $numeroBon <= $noFin; $numeroBon++) { $sql = 'insert into p_bonpec (codeSociete, codeTypeBon, codePrestataire, numeroBon, dateGeneration, codeUtilisateurGeneration) values (?, ?, ?, ?, ?, ?);'; $this->executerRequete($sql, array($_SESSION['p_codeSociete'], $codeTypeBon, $codePrestataire, $numeroBon, $dj, $_SESSION['p_login'])); } $sql = 'call sp_set_dernier_numero_pec(?, ?, ?)'; $this->executerRequete($sql, array($_SESSION['p_codeSociete'], $codeTypeBon, $numeroBon-1)); } public function plageLibre($codeTypeBon, $noDepart, $noFin) { $sql = 'select id FROM p_bonpec WHERE (codeSociete=?) and (codeTypeBon=?) and (numeroBon between ? and ?) limit 1'; $resultat = $this->executerRequete($sql, array($_SESSION['p_codeSociete'], $codeTypeBon, $noDepart, $noFin)); return ($resultat->rowCount() == 0); } public function getDenierNumeroBon($codeTypeBon) { $sql = 'select fn_getDenierNumeroBon(?, ?) as denierNumeroBon'; $resultat = $this->executerRequete($sql, array($_SESSION['p_codeSociete'], $codeTypeBon)); $ligne = $resultat->fetch(PDO::FETCH_ASSOC); return $ligne['denierNumeroBon']; } public function receptionnerBon($codePrestataire, $codeTypeBon, $noDepart, $noFin) { $codeUtilisateurReception = $_SESSION['p_login']; $sql = 'UPDATE p_bonpec SET codeEtatBon="1", dateReception=curdate(), codeUtilisateurReception=?, heureReception=now() WHERE (codePrestataire=?) AND (codeTypeBon=?) AND (numeroBon between ? and ?) AND (codeEtatBon="0")'; $this->executerRequete($sql, array($codeUtilisateurReception, $codePrestataire, $codeTypeBon, $noDepart, $noFin)); } public function supprimerBon($noDepart, $noFin) { $sql = 'DELETE FROM p_bonpec WHERE (numeroBon between ? and ? AND codeEtatBon="0" )'; $this->executerRequete($sql, array($noDepart, $noFin)); } public function annulerBonId($idBon, $motifAnnulation) { $dateAnnulation = date('Y-m-d'); $codeUtilisateurAnnulation = $_SESSION['p_login']; $sql = 'UPDATE p_bonpec SET codeEtatBon="3", motifAnnulation=?, dateAnnulation=?, codeUtilisateurAnnulation=? WHERE (id=?)'; $this->executerRequete($sql, array($motifAnnulation, $dateAnnulation, $codeUtilisateurAnnulation, $idBon)); } public function demanderAnnulationBonId($idBon, $motifAnnulation) { $sql = 'call sp_p_demande_annulation_bon(?, ?)'; $this->executerRequete($sql, array($idBon, $motifAnnulation)); } public function estdisponible($codePrestataire, $numeroBon) { $sql = 'select id FROM p_bonpec WHERE (codeEtatBon="1") AND (codePrestataire=?) AND (numeroBon=?)'; $resultat = $this->executerRequete($sql, array($codePrestataire, $numeroBon)); return ($resultat->rowCount() == 1); } public function getetatbon($codePrestataire, $codeTypeBon, $numeroBon) { if (isset($_SESSION['p_lang']) && $_SESSION['p_lang']=="en_US") { $sql = 'call sp_p_infos_bon_eng(?, ?, ?)'; $resultat = $this->executerRequete($sql, array($codePrestataire, $codeTypeBon, $numeroBon)); if($resultat->rowCount() > 0) { // return $resultat->fetch(PDO::FETCH_ASSOC); return $resultat->fetch(); } else return array('-1','Not Found'); } else { $sql = 'call sp_p_infos_bon(?, ?, ?)'; $resultat = $this->executerRequete($sql, array($codePrestataire, $codeTypeBon, $numeroBon)); if($resultat->rowCount() > 0) { // return $resultat->fetch(PDO::FETCH_ASSOC); return $resultat->fetch(); } else return array('-1','Introuvable'); } /* $sql = 'call sp_p_infos_bon(?, ?, ?)'; $resultat = $this->executerRequete($sql, array($codePrestataire, $codeTypeBon, $numeroBon)); if($resultat->rowCount() > 0) { return $resultat->fetch(PDO::FETCH_ASSOC); } else return array('-1','Introuvable / Not Found'); */ } public function imrimerBon($numeroBon) { $sql = 'SELECT A.numeroBon, A.numeroBeneficiaire, BN.numeroAdherent, A.codeActe, C.codeActeVisible, BN.codeSexe, BN.dateNaissance, B.libelle AS prestataire, C.libelle AS acte, IFNULL(CONCAT("Dr ", D.nom, " ", D.prenoms),"") AS medecin, A.montantacte, A.tauxCouverture, A.montantTm, A.fichierBon, NOW() AS dateCourante, AD.numeroPolice, CONCAT(BN.nomBeneficiaire, " ", BN.prenomsBeneficiaire) AS beneficiaire, CONCAT(AD.nomAdherent, " ", AD.prenomsAdherent) AS assure, IFNULL(DM.dureeHospitAccordee,"No duree") AS dureeHospitAccordee, CONCAT(CL.nom, " ", IFNULL(CL.prenoms,"")) AS souscripteur FROM p_bonpec A JOIN beneficiaire BN ON (BN.numeroBeneficiaire=A.numeroBeneficiaire) JOIN adherent AD ON (AD.numeroAdherent=BN.numeroAdherent) JOIN police P ON (P.numeroPolice=AD.numeroPolice) JOIN client CL ON (CL.numeroClient=P.numeroClient) JOIN prestataire B ON (B.codePrestataire=A.codePrestataire) JOIN acte_bon C ON (C.codeActe=A.codeActe) LEFT JOIN demandepec DM ON (DM.numeroBon=A.numeroBon) LEFT JOIN medecin D ON (D.codeMedecin=A.codeMedecin) Where (A.numeroBon=?)'; $bonpec = $this->executerRequete($sql, array($numeroBon)); if ($bonpec->rowCount() > 0) return $bonpec->fetch(PDO::FETCH_ASSOC); else throw new Exception("Aucun bon ne correspond à cet N° : '$numeroBon'"); } public function imrimerBonVierge($numeroDossier, $montantacte, $tauxCouverture) { $sql = 'SELECT A.id AS numeroDossier, A.numeroBeneficiaire, BN.numeroAdherent, A.codeActe, C.codeActeVisible, BN.codeSexe, BN.dateNaissance, B.libelle AS prestataire, C.libelle AS acte, IFNULL(CONCAT("Dr ", D.nom, " ", D.prenoms),"") AS medecin, ? AS montantacte, ? AS tauxCouverture, "0" AS montantTm, "" AS fichierBon, NOW() AS dateCourante, AD.numeroPolice, CONCAT(BN.nomBeneficiaire, " ", BN.prenomsBeneficiaire) AS beneficiaire, CONCAT(AD.nomAdherent, " ", AD.prenomsAdherent) AS assure, CONCAT(CL.nom, " ", IFNULL(CL.prenoms,"")) AS souscripteur FROM dossier A JOIN beneficiaire BN ON (BN.numeroBeneficiaire=A.numeroBeneficiaire) JOIN adherent AD ON (AD.numeroAdherent=BN.numeroAdherent) JOIN police P ON (P.numeroPolice=AD.numeroPolice) JOIN client CL ON (CL.numeroClient=P.numeroClient) JOIN prestataire B ON (B.codePrestataire=A.codePrestataire) JOIN acte_bon C ON (C.codeActe=A.codeActe) LEFT JOIN demandepec DM ON (DM.numeroBon=A.numeroBon) LEFT JOIN medecin D ON (D.codeMedecin=A.codeMedecin) Where (A.id=?)'; $bonpec = $this->executerRequete($sql, array($montantacte, $tauxCouverture, $numeroDossier)); if ($bonpec->rowCount() > 0) return $bonpec->fetch(PDO::FETCH_ASSOC); else throw new Exception("Aucun dossier ne correspond à cet N° : '$numeroDossier'"); } public function majfichierBon($numeroBon, $fichierBon) { $sql = 'UPDATE p_bonpec SET fichierBon=? WHERE (numeroBon=?)'; $this->executerRequete($sql, array($fichierBon, $numeroBon)); } public function majBonAImprimer($numeroDemande, $numeroBon) { $dateSysteme = date('Y-m-d'); $codeUtilisateur = $_SESSION['p_login']; $sql = 'UPDATE p_bonpec , demandepec SET p_bonpec.codeEtatBon="2", p_bonpec.numeroBeneficiaire=demandepec.numeroBeneficiaire, p_bonpec.numeroDossier=demandepec.numeroDossier, p_bonpec.codeActe=demandepec.codeActe, p_bonpec.codeMedecin=demandepec.codeMedecin, demandepec.numeroBon=p_bonpec.numeroBon, demandepec.bonImprime="1", tauxCouverture="100", montantTm="0", montantacte="0", p_bonpec.dateImpression=?, p_bonpec.codeUtilisateurImpression=? WHERE (p_bonpec.numeroBon=?) AND (demandepec.id=?)'; $this->executerRequete($sql, array($dateSysteme, $codeUtilisateur, $numeroBon, $numeroDemande)); } public function getBonpecsAssure($codePrestataire, $codeActe, $numeroBeneficiaire) { $numeroAdherent = $_SESSION['p_numeroAdherent_C']; $codePrestataire = contruireParamLike($codePrestataire); $codeActe = contruireParamLike($codeActe); $numeroBeneficiaire = contruireParamLike($numeroBeneficiaire); $sql = 'SELECT numeroBon, A.codePrestataire, P.libelle AS prestataire, A.numeroBeneficiaire, CONCAT(BN.prenomsBeneficiaire, " ", BN.nomBeneficiaire) AS beneficiaire, A.dateImpression, A.codeActe, AB.libelle AS acte, A.tauxCouverture FROM p_bonpec A LEFT JOIN beneficiaire BN ON (BN.numeroBeneficiaire=A.numeroBeneficiaire) JOIN prestataire P ON (P.codePrestataire=A.codePrestataire) JOIN acte_bon AB ON (AB.codeActe=A.codeActe) WHERE (BN.numeroAdherent=?) AND (A.codeEtatBon="2") AND (A.codePrestataire LIKE ?) AND (A.codeActe LIKE ?) AND (A.numeroBeneficiaire LIKE ?) ORDER BY A.dateImpression DESC'; $bonpecs = $this->executerRequete($sql, array($numeroAdherent, $codePrestataire, $codeActe, $numeroBeneficiaire)); return $bonpecs; } public function Rqacte($codePrestataire, $codeActe, $date1, $date2, $noDepart, $noFin, $nomBeneficiaire, $prenomsBeneficiaire, $numeroBeneficiaire1, $numeroBeneficiaire2) { $codePrestataire = contruireParamLike($codePrestataire); $codeActe = contruireParamLike($codeActe); $nomBeneficiaire = contruireParamLike($nomBeneficiaire); $prenomsBeneficiaire = contruireParamLike($prenomsBeneficiaire); If($numeroBeneficiaire1=="0") { $numeroBeneficiaire1=""; } if($noDepart>0 || $noFin>0) { $sql = 'SELECT P.libelle AS prestataire, DATE_FORMAT(A.dateImpression, "%d/%m/%Y") AS dateImpression, numeroBon, BN.nomBeneficiaire, BN.prenomsBeneficiaire, AB.libelle AS acte, A.tauxCouverture FROM p_bonpec A JOIN beneficiaire BN ON (BN.numeroBeneficiaire=A.numeroBeneficiaire) JOIN prestataire P ON (P.codePrestataire=A.codePrestataire) JOIN acte_bon AB ON (AB.codeActe=A.codeActe) WHERE (A.codeEtatBon="2") AND (A.codePrestataire LIKE ?) AND (A.codeActe LIKE ?) AND (A.numeroBon BETWEEN ? AND ?) AND (A.dateImpression BETWEEN ? AND ?) AND (BN.nomBeneficiaire LIKE ?) AND (BN.prenomsBeneficiaire LIKE ?) AND (A.numeroBeneficiaire BETWEEN ? AND ?) '; $typeuseur = $_SESSION['p_codeTypeUtilisateur']; switch ($typeuseur) { case "AS": /* ASSURE*/ { $sql .= ' AND (BN.numeroAdherent=?) ORDER BY A.dateImpression DESC, numeroBon'; $liste = $this->executerRequete($sql, array($codePrestataire, $codeActe, $noDepart, $noFin, $date1, $date2, $nomBeneficiaire, $prenomsBeneficiaire, $numeroBeneficiaire1, $numeroBeneficiaire2, $_SESSION["p_numeroAdherent_C"])); break; } case "PR": /* PRESTATAIRE*/ { $sql .= ' AND (A.codePrestataire=?) ORDER BY A.dateImpression DESC, numeroBon'; $liste = $this->executerRequete($sql, array($codePrestataire, $codeActe, $noDepart, $noFin, $date1, $date2, $nomBeneficiaire, $prenomsBeneficiaire, $numeroBeneficiaire1, $numeroBeneficiaire2, $_SESSION["p_codePrestataireUtilisateur"])); break; } default: /* Dans tous les autres cas */ { $sql .= ' ORDER BY A.dateImpression DESC, numeroBon'; $liste = $this->executerRequete($sql, array($codePrestataire, $codeActe, $noDepart, $noFin, $date1, $date2, $nomBeneficiaire, $prenomsBeneficiaire, $numeroBeneficiaire1, $numeroBeneficiaire2)); } } } else { $sql = 'SELECT P.libelle AS prestataire, DATE_FORMAT(A.dateImpression, "%d/%m/%Y") AS dateImpression, numeroBon, BN.nomBeneficiaire, BN.prenomsBeneficiaire, AB.libelle AS acte, A.tauxCouverture FROM p_bonpec A JOIN beneficiaire BN ON (BN.numeroBeneficiaire=A.numeroBeneficiaire) JOIN prestataire P ON (P.codePrestataire=A.codePrestataire) JOIN acte_bon AB ON (AB.codeActe=A.codeActe) WHERE (A.codeEtatBon="2") AND (A.codePrestataire LIKE ?) AND (A.codeActe LIKE ?) AND (A.dateImpression BETWEEN ? AND ?) AND (BN.nomBeneficiaire LIKE ?) AND (BN.prenomsBeneficiaire LIKE ?) AND (A.numeroBeneficiaire BETWEEN ? AND ?) '; $typeuseur = $_SESSION['p_codeTypeUtilisateur']; switch ($typeuseur) { case "AS": /* ASSURE*/ { $sql .= ' AND (BN.numeroAdherent=?) ORDER BY A.dateImpression DESC, numeroBon'; $liste = $this->executerRequete($sql, array($codePrestataire, $codeActe, $date1, $date2, $nomBeneficiaire, $prenomsBeneficiaire, $numeroBeneficiaire1, $numeroBeneficiaire2, $_SESSION["p_numeroAdherent_C"])); break; } case "PR": /* PRESTATAIRE*/ { $sql .= ' AND (A.codePrestataire=?) ORDER BY A.dateImpression DESC, numeroBon'; $liste = $this->executerRequete($sql, array($codePrestataire, $codeActe, $date1, $date2, $nomBeneficiaire, $prenomsBeneficiaire, $numeroBeneficiaire1, $numeroBeneficiaire2, $_SESSION["p_codePrestataireUtilisateur"])); break; } default: /* Dans tous les autres cas */ { $sql .= ' ORDER BY A.dateImpression DESC, numeroBon'; $liste = $this->executerRequete($sql, array($codePrestataire, $codeActe, $date1, $date2, $nomBeneficiaire, $prenomsBeneficiaire, $numeroBeneficiaire1, $numeroBeneficiaire2)); } } } return $liste->fetchAll(PDO::FETCH_ASSOC); } public function getInfos($idBon) { $sql = 'call sp_get_infos_bon(?)'; $resultat = $this->executerRequete($sql, array($idBon)); return $resultat->fetch(PDO::FETCH_ASSOC); } public function enregistrerremplacementconsultation($numeroFeuilleMaladie, $OldnumeroBon, $numeroBon, $motifremplacement) { $user = $_SESSION['p_login']; $sql = 'call sp_p_enregistrer_remplacement_consultation(?, ?, ?, ?, ?)'; $this->executerRequete($sql, array($numeroFeuilleMaladie, $OldnumeroBon, $numeroBon, $motifremplacement, $user)); $_SESSION['p_numeroBonConsultation_C'] = $numeroBon; } public function enregistrerremplacementordonnance($numeroFeuilleMaladie, $OldnumeroBon, $numeroBon, $motifremplacement) { $user = $_SESSION['p_login']; $sql = 'call sp_p_enregistrer_remplacement_ordonnance(?, ?, ?, ?, ?)'; $this->executerRequete($sql, array($numeroFeuilleMaladie, $OldnumeroBon, $numeroBon, $motifremplacement, $user)); $_SESSION['p_numeroBonOrdonnance_C'] = $numeroBon; } // pour les requêtes public function requetesbonpec($codePrestataire, $codeTypeBon, $codeEtatBon, $numeroAdherent, $numeroBeneficiaire, $numeroBon1, $numeroBon2, $adherent, $beneficiaire) { $codePrestataire = contruireParamLike($codePrestataire); $codeTypeBon = contruireParamLike($codeTypeBon); $codeEtatBon = contruireParamLike($codeEtatBon); $numeroAdherent = contruireParamLike($numeroAdherent); $numeroBeneficiaire = contruireParamLike($numeroBeneficiaire); $adherent = contruireParamLike($adherent); $beneficiaire = contruireParamLike($beneficiaire); $sql = 'call sp_requetes_bonpec(?, ?, ?, ?, ?, ?, ?, ?, ?)'; $resultat = $this->executerRequete($sql, array($codePrestataire, $codeTypeBon, $codeEtatBon, $numeroAdherent, $numeroBeneficiaire, $numeroBon1, $numeroBon2, $adherent, $beneficiaire)); return $resultat->fetchAll(PDO::FETCH_ASSOC); } public function requetesbonpectotal($codePrestataire, $codeTypeBon, $codeEtatBon, $numeroAdherent, $numeroBeneficiaire, $numeroBon1, $numeroBon2, $adherent, $beneficiaire) { $codePrestataire = contruireParamLike($codePrestataire); $codeTypeBon = contruireParamLike($codeTypeBon); $codeEtatBon = contruireParamLike($codeEtatBon); $numeroAdherent = contruireParamLike($numeroAdherent); $numeroBeneficiaire = contruireParamLike($numeroBeneficiaire); $adherent = contruireParamLike($adherent); $beneficiaire = contruireParamLike($beneficiaire); $sql = 'call sp_requetes_bonpec_total(?, ?, ?, ?, ?, ?, ?, ?, ?)'; $resultat = $this->executerRequete($sql, array($codePrestataire, $codeTypeBon, $codeEtatBon, $numeroAdherent, $numeroBeneficiaire, $numeroBon1, $numeroBon2, $adherent, $beneficiaire)); return $resultat->fetch(PDO::FETCH_ASSOC); } public function requetesbonpecexport($codePrestataire, $codeTypeBon, $codeEtatBon, $numeroAdherent, $numeroBeneficiaire, $numeroBon1, $numeroBon2, $adherent, $beneficiaire) { $codePrestataire = contruireParamLike($codePrestataire); $codeTypeBon = contruireParamLike($codeTypeBon); $codeEtatBon = contruireParamLike($codeEtatBon); $numeroAdherent = contruireParamLike($numeroAdherent); $numeroBeneficiaire = contruireParamLike($numeroBeneficiaire); $adherent = contruireParamLike($adherent); $beneficiaire = contruireParamLike($beneficiaire); $sql = 'call sp_requetes_bonpec_export(?, ?, ?, ?, ?, ?, ?, ?, ?)'; $resultat = $this->executerRequete($sql, array($codePrestataire, $codeTypeBon, $codeEtatBon, $numeroAdherent, $numeroBeneficiaire, $numeroBon1, $numeroBon2, $adherent, $beneficiaire)); return $resultat->fetchAll(PDO::FETCH_ASSOC); } public function getNbBonPrestataireDisponible($codePrestataire, $codeTypeBon) { $sql = 'select fn_get_nb_bons_prestataire_disponible(?, ?, ?) as nbBons'; $resultat = $this->executerRequete($sql, array($_SESSION['p_codeSociete'], $codePrestataire, $codeTypeBon)); $ligne = $resultat->fetch(PDO::FETCH_ASSOC); return $ligne['nbBons']; } public function getCodeGestionBon($codeTypeBon) { $sql = 'select codeGestionBon from p_typebon where (codeTypeBon=?)'; $resultat = $this->executerRequete($sql, array($codeTypeBon)); $ligne = $resultat->fetch(PDO::FETCH_ASSOC); return $ligne['codeGestionBon']; } public function getGestionBon($codeGestionBon) { if (isset($_SESSION['p_lang']) && $_SESSION['p_lang']=="en_US") { $sql = 'SELECT libelleEng AS libelle FROM p_gestionbon WHERE (codeGestionBon=?)'; } else { $sql = 'SELECT libelle FROM p_gestionbon WHERE (codeGestionBon=?)'; } $resultat = $this->executerRequete($sql, array($codeGestionBon)); $ligne = $resultat->fetch(PDO::FETCH_ASSOC); return $ligne['libelle']; } }