radiantassure/Modele/Prestataire.php
2025-12-07 09:35:13 +00:00

406 lines
18 KiB
PHP
Executable File

<?php
require_once 'Framework/Modele.php';
class Prestataire extends Modele {
public function getPrestataireCode($codePrestataire)
{
$sql = "SELECT * from vw_r_prestataire WHERE codePrestataire=?";
$resultat = $this->executerRequete($sql, array($codePrestataire));
$context = $resultat->fetch(PDO::FETCH_ASSOC);
return $context;
}
public function getPrestataires($codePrestataire=null,$libelle=null) {
$codePrestataire = contruireParamLike($codePrestataire);
$libelle = contruireParamLike($libelle);
$sql = 'SELECT A.id, A.codeSociete, A.codeTypePrestataire, B.libelle as typePrestataire, A.codePrestataire, A.libelle,
A.codePays, C.libelle as pays, A.codeVille, D.libelle as ville, A.codeLocalite, E.libelle as localite,
A.adresseGeo, A.adressePost, A.telephoneFixe, A.telephonePortable, A.email, A.nomResponsable,
A.contactResponsable, A.emailResponsable, A.nomInterlocuteur, A.contactInterlocuteur, A.emailInterlocuteur,
numeroCompte, A.codeGestionnaire, concat(F.nom," ",F.prenoms) as gestionnaire, A.codeNaturePrestataire
FROM prestataire A
left join typeprestataire B on (B.codeSociete=A.codeSociete AND B.codeTypePrestataire=A.codeTypePrestataire)
left join pays C on (C.codeSociete=A.codeSociete AND C.codePays=A.codePays)
left join ville D on (D.codeSociete=A.codeSociete AND D.codeVille=A.codeVille)
left join localite E on (E.codeSociete=A.codeSociete AND E.codeLocalite=A.codeLocalite)
left join gestionnaire F on (F.codeSociete=A.codeSociete AND F.codeGestionnaire=A.codeGestionnaire)
WHERE (A.codeSociete=? AND A.codePrestataire LIKE ? AND A.libelle LIKE ?) order by A.libelle';
//numeroCompte, A.codeGestionnaire, concat(F.nom," ",F.prenoms) as gestionnaire
$prestataires = $this->executerRequete($sql, array($_SESSION['codeSociete'],$codePrestataire,$libelle));
return $prestataires;
}
public function getPrestataire($id) {
$sql = 'SELECT A.id, A.codeSociete, A.codeTypePrestataire, B.libelle as typePrestataire, A.codePrestataire, A.libelle,
A.codePays, C.libelle as pays, A.codeVille, D.libelle as ville, A.codeLocalite, E.libelle as localite,
A.adresseGeo, A.adressePost, A.telephoneFixe, A.telephonePortable, A.email, A.nomResponsable,
A.contactResponsable, A.emailResponsable, A.nomInterlocuteur, A.contactInterlocuteur, A.emailInterlocuteur,
numeroCompte, A.codeGestionnaire, concat(F.nom," ",F.prenoms) as gestionnaire, A.codeNaturePrestataire
FROM prestataire A
left join typeprestataire B on (B.codeSociete=A.codeSociete AND B.codeTypePrestataire=A.codeTypePrestataire)
left join pays C on (C.codeSociete=A.codeSociete AND C.codePays=A.codePays)
left join ville D on (D.codeSociete=A.codeSociete AND D.codeVille=A.codeVille)
left join localite E on (E.codeSociete=A.codeSociete AND E.codeLocalite=A.codeLocalite)
left join gestionnaire F on (F.codeSociete=A.codeSociete AND F.codeGestionnaire=A.codeGestionnaire)
WHERE (A.codeSociete=?) AND (A.id=?)';
$prestataire = $this->executerRequete($sql, array($_SESSION['codeSociete'], $id));
if ($prestataire->rowCount() > 0)
return $prestataire->fetch();
else
throw new Exception("Aucun prestataire ne correspond à cet id : '$id'");
}
public function getnombrePrestataire()
{
$sql = 'select count(*) as nbPrestataire FROM prestataire A WHERE (A.codeSociete=?)';
$resultat = $this->executerRequete($sql, array($_SESSION['codeSociete']));
$ligne = $resultat->fetch();
return $ligne['nbPrestataire'];
}
public function ajouter($codeSociete, $codeTypePrestataire, $codePrestataire, $libelle, $codePays, $codeVille, $codeLocalite,
$adresseGeo, $adressePost, $telephoneFixe, $telephonePortable, $email, $nomResponsable, $contactResponsable,
$emailResponsable, $nomInterlocuteur, $contactInterlocuteur, $emailInterlocuteur,$numeroCompte, $codeGestionnaire, $codeNaturePrestataire)
{
$sql = 'INSERT INTO prestataire (codeSociete, codeTypePrestataire, codePrestataire, libelle, codePays, codeVille, codeLocalite,
adresseGeo, adressePost, telephoneFixe, telephonePortable, email, nomResponsable, contactResponsable, emailResponsable,
nomInterlocuteur, contactInterlocuteur, emailInterlocuteur, numeroCompte, codeGestionnaire, codeNaturePrestataire)
VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)';
$this->executerRequete($sql, array($codeSociete, $codeTypePrestataire, $codePrestataire, $libelle, $codePays, $codeVille, $codeLocalite,
$adresseGeo, $adressePost, $telephoneFixe, $telephonePortable, $email, $nomResponsable, $contactResponsable,
$emailResponsable, $nomInterlocuteur, $contactInterlocuteur, $emailInterlocuteur,$numeroCompte, $codeGestionnaire, $codeNaturePrestataire));
}
public function modifier($id, $codeTypePrestataire, $codePrestataire, $libelle, $codePays, $codeVille, $codeLocalite,
$adresseGeo, $adressePost, $telephoneFixe, $telephonePortable, $email, $nomResponsable, $contactResponsable,
$emailResponsable, $nomInterlocuteur, $contactInterlocuteur, $emailInterlocuteur,$numeroCompte, $codeGestionnaire, $codeNaturePrestataire) {
$sql = 'UPDATE prestataire SET codeTypePrestataire=?, codePrestataire=?, libelle=?, codePays=?, codeVille=?, codeLocalite=?,
adresseGeo=?, adressePost=?, telephoneFixe=?, telephonePortable=?, email=?, nomResponsable=?, contactResponsable=?, emailResponsable=?,
nomInterlocuteur=?, contactInterlocuteur=?, emailInterlocuteur=?, numeroCompte=?, codeGestionnaire=?, codeNaturePrestataire=?
where (id=?)';
$this->executerRequete($sql, array($codeTypePrestataire, $codePrestataire, $libelle, $codePays, $codeVille, $codeLocalite,
$adresseGeo, $adressePost, $telephoneFixe, $telephonePortable, $email, $nomResponsable, $contactResponsable,
$emailResponsable, $nomInterlocuteur, $contactInterlocuteur, $emailInterlocuteur,$numeroCompte, $codeGestionnaire, $codeNaturePrestataire, $id));
}
public function supprimer($id) {
$sql = 'DELETE FROM prestataire WHERE (id=?)';
$this->executerRequete($sql, array($id));
}
public function existeligne($codePrestataire) {
$sql = 'select id FROM prestataire WHERE (codeSociete=?) and (codePrestataire=?)';
$resultat = $this->executerRequete($sql, array($_SESSION['codeSociete'],$codePrestataire));
return ($resultat->rowCount() > 0);
}
public function getListe() {
$sql = 'SELECT codePrestataire as code, libelle FROM prestataire WHERE (codeSociete=?) order by libelle';
$liste = $this->executerRequete($sql,array($_SESSION['codeSociete']));
return $liste->fetchAll(PDO::FETCH_ASSOC);
}
public function getListeTypePrestataire($codeTypePrestataire) {
$sql = 'SELECT codePrestataire as code, libelle FROM prestataire
WHERE (codeSociete=?) and (codeTypePrestataire=?)
order by libelle';
$liste = $this->executerRequete($sql,array($_SESSION['codeSociete'], $codeTypePrestataire));
return $liste->fetchAll(PDO::FETCH_ASSOC);
}
public function getListePharmacie() {
$sql = 'SELECT codePrestataire as code, libelle FROM prestataire
WHERE (codeTypePrestataire in ("PHA", "CSO"))
order by libelle';
$liste = $this->executerRequete($sql);
return $liste->fetchAll(PDO::FETCH_ASSOC);
}
public function getListeOpticien() {
$sql = 'SELECT codePrestataire as code, libelle FROM prestataire
WHERE (codeTypePrestataire = "OPT")
order by libelle';
$liste = $this->executerRequete($sql);
return $liste->fetchAll(PDO::FETCH_ASSOC);
}
public function getListeTypePrestataireBon() {
$sql = 'SELECT A.codePrestataire as code, A.libelle FROM prestataire A
join p_typeprestataire B on (B.codeTypePrestataire=A.codeTypePrestataire)
where B.gestionBon="1" order by 2;';
$liste = $this->executerRequete($sql);
return $liste->fetchAll(PDO::FETCH_ASSOC);
}
public function getemailGestionPrestataire($codePrestataire)
{
$codeSociete = $_SESSION['codeSociete'];
$sql = 'select fn_getemailGestionPrestataire(?, ?) as emailGestionPrestataire';
$resultat = $this->executerRequete($sql, array($codeSociete, $codePrestataire));
$ligne = $resultat->fetch();
return $ligne['emailGestionPrestataire'];
}
public function getEmailPrestataire($codePrestataire)
{
$codeSociete = $_SESSION['codeSociete'];
$sql = 'SELECT ifnull(emailGestionPrestataire, "kanelazeni@gmail.com") as emailGestionPrestataire ,
libelle FROM prestataire WHERE (codeSociete=?) and (codePrestataire=?)';
$resultat = $this->executerRequete($sql, array($codeSociete, $codePrestataire));
return $resultat->fetch();
}
public function getprestatairelike($codePrestataire, $nomsearch)
{
$nomsearch = contruireParamLike($nomsearch);
$codePrestataire = contruireParamLike($codePrestataire);
$sql = 'call sp_r_prestataires_like(?, ?)';
$prestataires = $this->executerRequete($sql, array($codePrestataire, $nomsearch));
return $prestataires;
}
public function getprestatairesvide()
{
$sql = 'call sp_r_prestataires_vide()';
$prestataires = $this->executerRequete($sql);
return $prestataires;
}
public function getprestataireparametrage($codeTypePrestataire, $codeReseau, $libelle, $codePays, $codeVille, $codeLocalite)
{
$idCollege = $_SESSION['idCollege_C'];
$codeTypePrestataire = contruireParamLike($codeTypePrestataire);
$codeReseau = contruireParamLike($codeReseau);
$libelle = contruireParamLike($libelle);
$codePays = contruireParamLike($codePays);
$codeVille = contruireParamLike($codeVille);
$codeLocalite = contruireParamLike($codeLocalite);
$sql = 'call sp_a_liste_prestataires_localite(?, ?, ?, ?, ?, ?, ?)';
$resultat = $this->executerRequete($sql, array($idCollege, $codeTypePrestataire, $codeReseau, $libelle, $codePays, $codeVille ,$codeLocalite));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function getunprestataire($idPrestataire)
{
$sql = 'call sp_afficher_un_prestataire(?)';
$resultat = $this->executerRequete($sql, array($idPrestataire));
return $resultat->fetch(PDO::FETCH_ASSOC);
}
public function enregistrermodif($idPrestataire, $libelle, $codeTypePrestataire, $codeReseau, $codeTarifActe, $codeTarifMedicament,
$codeTarifOptique, $codePays, $villeSignature, $codeTypeDecompte, $adresseGeo, $numeroCompte, $adressePost, $conventionne,
$gestionreseau, $emailGestionPrestataire, $codeBanque, $codeBanqueInterne, $codeGuichet, $numeroCompteBancaire, $cleRib, $iban,
$intituleCompteBancaire, $codeVille, $codeLocalite, $smsGestionPrestataire, $registreCommerce)
{
$user = $_SESSION['login'];
$sql = 'call sp_modifier_prestataire(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)';
$this->executerRequete($sql, array($idPrestataire, $libelle, $codeTypePrestataire, $codeReseau, $codeTarifActe, $codeTarifMedicament,
$codeTarifOptique, $codePays, $villeSignature, $codeTypeDecompte, $adresseGeo, $numeroCompte, $adressePost, $conventionne,
$gestionreseau, $emailGestionPrestataire, $codeBanque, $codeBanqueInterne, $codeGuichet, $numeroCompteBancaire, $cleRib, $iban,
$intituleCompteBancaire, $codeVille, $codeLocalite, $smsGestionPrestataire, $registreCommerce, $user));
}
public function majcomptebancaire($codePrestataire, $codeBanque, $codeBanqueInterne, $codeGuichet, $numeroCompteBancaire, $cleRib, $iban, $intituleCompteBancaire)
{
$user = $_SESSION['login'];
$sql = 'call sp_maj_compte_bancaire_prestataire(?, ?, ?, ?, ?, ?, ?, ?, ?)';
$this->executerRequete($sql, array($codePrestataire, $codeBanque, $codeBanqueInterne, $codeGuichet, $numeroCompteBancaire, $cleRib, $iban, $intituleCompteBancaire, $user));
}
public function getusersprestataire($codePrestataire)
{
$sql = 'call sp_get_users_prestataire(?)';
$resultat = $this->executerRequete($sql, array($codePrestataire));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function getunprestatairebycode($codePrestataire)
{
$sql = 'select * from prestataire where (codePrestataire=?)';
$resultat = $this->executerRequete($sql, array($codePrestataire));
return $resultat->fetch(PDO::FETCH_ASSOC);
}
public function reinitpaswd($codeUtilisateur)
{
$sql = 'call sp_r_reinit_utilisateur(?)';
$this->executerRequete($sql, array($codeUtilisateur));
}
public function desactiver($codeUtilisateur)
{
$sql = 'call sp_r_desactiver_utilisateur(?)';
$this->executerRequete($sql, array($codeUtilisateur));
}
public function activer($codeUtilisateur)
{
$sql = 'call sp_r_activer_utilisateur(?)';
$this->executerRequete($sql, array($codeUtilisateur));
}
public function listemailprestataire()
{
$sql = "select codePrestataire, libelle, email from prestataire where (email>' ') order by codePrestataire;";
$resultat = $this->executerRequete($sql);
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function getprestataireparametrageexport($codeTypePrestataire, $codeReseau, $libelle)
{
$codeTypePrestataire = contruireParamLike($codeTypePrestataire);
$codeReseau = contruireParamLike($codeReseau);
$libelle = contruireParamLike($libelle);
$sql = 'call sp_liste_prestataires_export(?, ?, ?)';
$resultat = $this->executerRequete($sql, array($codeTypePrestataire, $codeReseau, $libelle));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function creerprestataire($libelle, $codeTypePrestataire, $codeReseau, $codeTarifActe, $codeTarifMedicament,
$codeTarifOptique, $codePays, $villeSignature, $codeTypeDecompte, $adresseGeo, $numeroCompte, $adressePost, $conventionne,
$gestionreseau, $emailGestionPrestataire, $codeBanque, $codeBanqueInterne, $codeGuichet, $numeroCompteBancaire, $cleRib, $iban,
$intituleCompteBancaire, $codeVille, $codeLocalite, $smsGestionPrestataire, $registreCommerce)
{
$codeSociete = $_SESSION['codeSociete'];
$user = $_SESSION['login'];
$sql = 'call sp_creer_prestataire(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)';
$resultat = $this->executerRequete($sql, array($codeSociete, $libelle, $codeTypePrestataire, $codeReseau, $codeTarifActe, $codeTarifMedicament,
$codeTarifOptique, $codePays, $villeSignature, $codeTypeDecompte, $adresseGeo, $numeroCompte, $adressePost, $conventionne,
$gestionreseau, $emailGestionPrestataire, $codeBanque, $codeBanqueInterne, $codeGuichet, $numeroCompteBancaire, $cleRib, $iban,
$intituleCompteBancaire, $codeVille, $codeLocalite, $smsGestionPrestataire, $registreCommerce, $user));
$ligne = $resultat->fetch();
return $ligne['idPrestataire'];
}
public function creeruserprestataire($nom, $prenoms, $telephone, $email, $motPass)
{
$codeSociete = $_SESSION['codeSociete'];
$codePrestataire = $_SESSION['codePrestataire_C'];
$user = $_SESSION['login'];
$hash = password_hash($motPass, PASSWORD_DEFAULT);
$sql = 'call sp_creer_user_prestataire(?, ?, ?, ?, ?, ?, ?, ?)';
$resultat = $this->executerRequete($sql, array($codeSociete, $codePrestataire, $nom, $prenoms, $telephone, $email, $hash, $user));
$ligne = $resultat->fetch();
return $ligne['codeUtilisateur'];
}
public function desactiverprestataire($codePrestataire)
{
$sql = 'call sp_r_desactiver_prestataire(?)';
$this->executerRequete($sql, array($codePrestataire));
}
public function activerprestataire($codePrestataire)
{
$sql = 'call sp_r_activer_prestataire(?)';
$this->executerRequete($sql, array($codePrestataire));
}
public function getmedecinsprestataire($codePrestataire)
{
$sql = 'call sp_get_medecins_prestataire(?)';
$resultat = $this->executerRequete($sql, array($codePrestataire));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function getprestataireparametrageactif($codeTypePrestataire, $codeReseau, $libelle, $codePays, $codeVille, $codeLocalite)
{
$codeTypePrestataire = contruireParamLike($codeTypePrestataire);
$libelle = contruireParamLike($libelle);
$codePays = contruireParamLike($codePays);
$codeVille = contruireParamLike($codeVille);
$codeLocalite = contruireParamLike($codeLocalite);
//var_dump($codeReseau);
//die();
$sql = 'call sp_a_liste_prestataires_localite_actif(?, ?, ?, ?, ?, ?)';
$resultat = $this->executerRequete($sql, array($codeTypePrestataire, $codeReseau, $libelle, $codePays, $codeVille ,$codeLocalite));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function getprestatairevide() {
$sql = 'call sp_prestataire_vide()';
$resultat = $this->executerRequete($sql);
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function getprestatairerdv($libelle)
{
$libelle = contruireParamLike($libelle);
$sql = 'call sp_a_get_prestataires_rdv(?, ?)';
$resultat = $this->executerRequete($sql, array($_SESSION['codeSociete'], $libelle));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function getprestatairerdvmobile()
{
$sql = 'call sp_a_get_prestataires_rdv_mobile(?)';
$resultat = $this->executerRequete($sql, array($_SESSION['codeSociete']));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
}