prestation/Modele/Prestataire.php
2025-12-01 18:54:33 +00:00

152 lines
8.1 KiB
PHP

<?php
require_once 'Framework/Modele.php';
class Prestataire extends Modele {
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['p_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['p_codeSociete'], $id));
if ($prestataire->rowCount() > 0)
return $prestataire->fetch(PDO::FETCH_ASSOC);
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['p_codeSociete']));
$ligne = $resultat->fetch(PDO::FETCH_ASSOC);
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['p_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['p_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['p_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 getunprestatairebycode($codePrestataire)
{
$sql = 'select * from prestataire where (codePrestataire=?)';
$resultat = $this->executerRequete($sql, array($codePrestataire));
return $resultat->fetch(PDO::FETCH_ASSOC);
}
public function getusersprestataire($codePrestataire)
{
$sql = 'call sp_get_users_prestataire(?)';
$resultat = $this->executerRequete($sql, array($codePrestataire));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function getmedecinsprestataire($codePrestataire)
{
$sql = 'call sp_get_medecins_prestataire(?)';
$resultat = $this->executerRequete($sql, array($codePrestataire));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
}