632 lines
18 KiB
PHP
632 lines
18 KiB
PHP
<?php
|
|
/** derniere modification le 124/12/2023 à 09h40 par Pascal BLAIN (attention a la casse !)
|
|
|
|
* Classe d'acces aux donnees.
|
|
* Utilise les services de la classe PDO pour l'application GSB
|
|
* Les attributs sont tous statiques, les 4 premiers pour la connexion
|
|
* $monPdo de type PDO
|
|
* $monPdoGsb qui contiendra l'unique instance de la classe
|
|
|
|
* @link http://www.php.net/manual/fr/book.pdo.php
|
|
*/
|
|
|
|
class PdoGsb
|
|
{
|
|
private static $serveur = 'pgsql:host=localhost';
|
|
private static $bdd = 'dbname=gsb2024';
|
|
private static $user = 'postgres';
|
|
private static $mdp = 'postgres';
|
|
private static $monPdo;
|
|
private static $monPdoGsb = null;
|
|
/**
|
|
* Constructeur prive, cree l'instance de PDO qui sera sollicitee
|
|
* pour toutes les methodes de la classe
|
|
*/
|
|
private function __construct()
|
|
{
|
|
PdoGsb::$monPdo = new PDO(PdoGsb::$serveur . ';' . PdoGsb::$bdd, PdoGsb::$user, PdoGsb::$mdp);
|
|
|
|
//PdoGsb::$monPdo->query("SET CHARACTER SET utf8");SET client_encoding = 'UTF8';
|
|
}
|
|
public function _destruct()
|
|
{
|
|
PdoGsb::$monPdo = null;
|
|
}
|
|
/**
|
|
* Fonction statique qui cree l'unique instance de la classe
|
|
* Appel : $instancePdoGsb = PdoGsb::getPdoGsb();
|
|
* @return l'unique objet de la classe PdoGsb
|
|
*/
|
|
public static function getPdoGsb()
|
|
{
|
|
if (PdoGsb::$monPdoGsb == null) {
|
|
PdoGsb::$monPdoGsb = new PdoGsb();
|
|
}
|
|
return PdoGsb::$monPdoGsb;
|
|
}
|
|
|
|
/**
|
|
* Retourne les informations d'un utilisateur
|
|
* @param $login
|
|
* @param $mdp
|
|
* @return l'id, le nom et le prenom sous la forme d'un tableau associatif
|
|
*/
|
|
public function getInfosUtilisateur($login, $mdp)
|
|
{
|
|
$req = "select \"uId\" as id, \"uNom\" as nom, \"uPrenom\" as prenom, \"uStatut\" as statut
|
|
from utilisateur
|
|
where \"uLogin\"='$login'
|
|
and \"uMdp\"='$mdp'";
|
|
$req = $this->entourerNoms($req);
|
|
//echo $req;
|
|
$rs = PdoGsb::$monPdo->query($req);
|
|
if ($rs === false) {
|
|
afficherErreurSQL("Probleme lors de la lecture ..", $req, PdoGsb::$monPdo->errorInfo());
|
|
}
|
|
$ligne = $rs->fetch();
|
|
return $ligne;
|
|
}
|
|
|
|
/**
|
|
* Retourne les informations de la table Visiteur
|
|
* @return un tableau associatif
|
|
*/
|
|
public function getLesVisiteurs()
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
/**
|
|
* Retourne deux valeurs indiquant si un ajout de frais est possible
|
|
* @param $idVisiteur
|
|
* @param $mois sous la forme aaaamm
|
|
* @paral etatRemboursement
|
|
*/
|
|
public function getAjoutFraisPossible($idVisiteur, $leMois, $etatRemboursement)
|
|
{
|
|
$possible = array('forfait' => "non", 'horsForfait' => "non", 'modifComptable' => 'non');
|
|
if ($_SESSION['statut'] == '1' && $etatRemboursement == 'CR') {
|
|
$req = "select count(*) as nbForfaits
|
|
from forfait
|
|
where fId not in (select lfForfait
|
|
from ligneForfait
|
|
where lfVisiteur='$idVisiteur'
|
|
and lfMois = '$leMois')";
|
|
//$req = $this->entourerNoms($req);
|
|
$rs = PdoGsb::$monPdo->query($req);
|
|
if ($rs === false) {
|
|
afficherErreurSQL("Probleme lors de la lecture ..", $req, PdoGsb::$monPdo->errorInfo());
|
|
}
|
|
$laLigne = $rs->fetch();
|
|
if ($laLigne['nbForfaits'] == 0 ? $possible = array('forfait' => "non", 'horsForfait' => "oui", 'modifComptable' => 'non') : $possible = array('forfait' => "oui", 'horsForfait' => "oui", 'modifComptable' => 'non'))
|
|
;
|
|
} else {
|
|
if ($_SESSION['statut'] != '1' && $etatRemboursement == 'CL') {
|
|
$possible = array('forfait' => "non", 'horsForfait' => "non", 'modifComptable' => "oui");
|
|
}
|
|
}
|
|
return $possible;
|
|
}
|
|
|
|
/**
|
|
* Retourne les informations pour ajout d'un nouveau frais forfaitaire
|
|
* @param $idVisiteur
|
|
* @param $mois sous la forme aaaamm
|
|
* @return l'id, le libell, le montant sous la forme d'un tableau associatif
|
|
*/
|
|
public function getLesForfaitsPossibles()
|
|
{
|
|
$req = "select \"fId\", \"fLibelle\", \"fMontant\"
|
|
from forfait";
|
|
//$req = $this->entourerNoms($req);
|
|
$rs = PdoGsb::$monPdo->query($req);
|
|
if ($rs === false) {
|
|
afficherErreurSQL("Probleme lors de la lecture ..", $req, PdoGsb::$monPdo->errorInfo());
|
|
}
|
|
$lesLignes = $rs->fetchAll();
|
|
return $lesLignes;
|
|
}
|
|
|
|
/**
|
|
* Retourne le tarif KM pour un motorisation et une puissance donnee a une date
|
|
*/
|
|
public function getPrixKm($idVisiteur, $leMois)
|
|
{
|
|
$laDate = substr($leMois, 0, 4) . '-' . substr($leMois, 4, 2) . '-01';
|
|
|
|
$req = "SELECT 1;";
|
|
|
|
$rs = PdoGsb::$monPdo->query($req);
|
|
if ($rs === false) {
|
|
afficherErreurSQL("Probleme lors de la lecture ..", $req, PdoGsb::$monPdo->errorInfo());
|
|
}
|
|
$laLigne = $rs->fetch();
|
|
return $laLigne;
|
|
}
|
|
|
|
/**
|
|
* Retourne sous forme d'un tableau associatif toutes les lignes de frais hors forfait concernees par les deux arguments
|
|
* @param $idVisiteur
|
|
* @param $mois sous la forme aaaamm
|
|
* @return tous les champs des lignes de frais hors forfait sous la forme d'un tableau associatif
|
|
*/
|
|
public function getLesFraisHorsForfait($idVisiteur, $mois)
|
|
{
|
|
$req = "SELECT 1;";
|
|
//$req = $this->entourerNoms($req);
|
|
$rs = PdoGsb::$monPdo->query($req);
|
|
if ($rs === false) {
|
|
afficherErreurSQL("Probleme lors de la lecture ..", $req, PdoGsb::$monPdo->errorInfo());
|
|
}
|
|
$lesLignes = $rs->fetchAll();
|
|
return $lesLignes;
|
|
}
|
|
|
|
/**
|
|
*/
|
|
public function getLesFraisReportes($idVisiteur, $mois, $justifies)
|
|
{
|
|
$req = "SELECT 1;";
|
|
//$req = $this->entourerNoms($req);
|
|
$rs = PdoGsb::$monPdo->query($req);
|
|
if ($rs === false) {
|
|
afficherErreurSQL("Probleme lors de la lecture ..", $req, PdoGsb::$monPdo->errorInfo());
|
|
}
|
|
$lesLignes = $rs->fetchAll();
|
|
return $lesLignes;
|
|
}
|
|
|
|
/**
|
|
* Retourne le nombre de justificatif d'un Visiteurpour un mois donnee
|
|
* @param $idVisiteur
|
|
* @param $mois sous la forme aaaamm
|
|
* @return le nombre entier de justificatifs
|
|
*/
|
|
public function getNbjustificatifs($idVisiteur, $mois)
|
|
{
|
|
$req = "SELECT 1;";
|
|
//$req = $this->entourerNoms($req);
|
|
$rs = PdoGsb::$monPdo->query($req);
|
|
if ($rs === false) {
|
|
afficherErreurSQL("Probleme lors de la lecture ..", $req, PdoGsb::$monPdo->errorInfo());
|
|
}
|
|
$laLigne = $rs->fetch();
|
|
return $laLigne['nb'];
|
|
}
|
|
|
|
/**
|
|
* Retourne le montant valide pour un remboursement (cumul des frais forfaitaires et des autres depenses (hors forfaits)
|
|
* @param $idVisiteur
|
|
* @param $mois sous la forme aaaamm
|
|
* @return le montant
|
|
*/
|
|
public function getMontantValide($idVisiteur, $mois)
|
|
{
|
|
$req = "SELECT 1;";
|
|
//$req = $this->entourerNoms($req);
|
|
$rs = PdoGsb::$monPdo->query($req);
|
|
if ($rs === false) {
|
|
afficherErreurSQL("Probleme lors de la lecture ..", $req, PdoGsb::$monPdo->errorInfo());
|
|
}
|
|
$laLigne = $rs->fetch();
|
|
$montantValide = $laLigne['montant'];
|
|
return $montantValide;
|
|
}
|
|
|
|
/**
|
|
* Retourne sous forme d'un tableau associatif toutes les lignes de frais au forfait concernees par les deux arguments
|
|
* @param $idVisiteur
|
|
* @param $mois sous la forme aaaamm
|
|
* @return l'id, le libelle et la quantite sous la forme d'un tableau associatif
|
|
*/
|
|
public function getLesFraisForfait($idVisiteur, $mois)
|
|
{
|
|
$req = "SELECT 1;";
|
|
//$req = $this->entourerNoms($req);
|
|
$rs = PdoGsb::$monPdo->query($req);
|
|
if ($rs === false) {
|
|
afficherErreurSQL("Probleme lors de la lecture ..", $req, PdoGsb::$monPdo->errorInfo());
|
|
}
|
|
$lesLignes = $rs->fetchAll();
|
|
return $lesLignes;
|
|
}
|
|
|
|
/**
|
|
* Met a jour la table ligneForfait pour un Visiteur et un mois donne en enregistrant le nouveau montant
|
|
* @param $idVisiteur
|
|
* @param $mois sous la forme aaaamm
|
|
* @param $qte
|
|
*/
|
|
public function getUnFraisForfait($idVisiteur, $mois, $forfait)
|
|
{
|
|
$req = "select lfVisiteur, lfMois, lfForfait, lfQuantite, lfMontant, fLibelle
|
|
from ligneForfait inner join forfait on ligneForfait.lfForfait=forfait.fId
|
|
where lfVisiteur= '$idVisiteur'
|
|
and lfMois = '$mois'
|
|
and lfForfait = '$forfait'";
|
|
//$req = $this->entourerNoms($req);
|
|
$rs = PdoGsb::$monPdo->query($req);
|
|
if ($rs === false) {
|
|
afficherErreurSQL("Probleme lors de la lecture ..", $req, PdoGsb::$monPdo->errorInfo());
|
|
}
|
|
$laLigne = $rs->fetch();
|
|
return $laLigne;
|
|
}
|
|
|
|
/**
|
|
* Met a jour la table ligneForfait pour un Visiteur et un mois donne en enregistrant le nouveau montant
|
|
* @param $idVisiteur
|
|
* @param $mois sous la forme aaaamm
|
|
* @param $qte
|
|
*/
|
|
public function majFraisForfait($idVisiteur, $mois, $forfait, $qte)
|
|
{
|
|
$req = "SELECT 1;";
|
|
//$req = $this->entourerNoms($req);
|
|
PdoGsb::$monPdo->exec($req);
|
|
}
|
|
|
|
/**
|
|
* supprime une ligneForfait pour un Visiteur et un mois donne
|
|
* @param $idVisiteur
|
|
* @param $mois sous la forme aaaamm
|
|
* @param $forfait
|
|
*/
|
|
public function supprimerFraisForfait($idVisiteur, $mois, $forfait)
|
|
{
|
|
$req = $req = "SELECT 1;";
|
|
//$req = $this->entourerNoms($req);
|
|
PdoGsb::$monPdo->exec($req);
|
|
}
|
|
|
|
/**
|
|
* ajoute une ligne dans la table ligneForfait pour un Visiteur et un mois donne
|
|
* @param $idVisiteur
|
|
* @param $mois sous la forme aaaamm
|
|
* @param $forfait
|
|
* @param $qte
|
|
* @param $montant
|
|
*/
|
|
public function ajoutFraisForfait($idVisiteur, $mois, $forfait, $qte, $montant)
|
|
{
|
|
$req = "SELECT 1;";
|
|
//$req = $this->entourerNoms($req);
|
|
PdoGsb::$monPdo->exec($req);
|
|
}
|
|
|
|
/**
|
|
* Met a jour la table ligneForfait pour un Visiteur et un mois donne en enregistrant le nouveau montant
|
|
* @param $idVisiteur
|
|
* @param $mois sous la forme aaaamm
|
|
* @param $qte
|
|
*/
|
|
public function getUnFraisHorsForfait($idFrais)
|
|
{
|
|
$req = $req = "SELECT 1;";
|
|
//$req = $this->entourerNoms($req);
|
|
$rs = PdoGsb::$monPdo->query($req);
|
|
if ($rs === false) {
|
|
afficherErreurSQL("Probleme lors de la lecture ..", $req, PdoGsb::$monPdo->errorInfo());
|
|
}
|
|
$laLigne = $rs->fetch();
|
|
return $laLigne;
|
|
}
|
|
|
|
/**
|
|
* Met ajour la table ligneHorsForfait (nouvelles valeurs)
|
|
*/
|
|
public function majFraisHorsForfait($idFrais, $date, $libelle, $montant)
|
|
{
|
|
$dateFr = dateFrancaisVersAnglais($date);
|
|
$req = "SELECT 1;";
|
|
//$req = $this->entourerNoms($req);
|
|
PdoGsb::$monPdo->exec($req);
|
|
}
|
|
|
|
/**
|
|
* Met a jour la table ligneHorsForfait pour report au mois suivant
|
|
*/
|
|
public function transfertFraisHorsForfait($idFrais, $mois)
|
|
{
|
|
$req = "SELECT 1;";
|
|
//$req = $this->entourerNoms($req);
|
|
PdoGsb::$monPdo->exec($req);
|
|
}
|
|
|
|
/**
|
|
* Cree un nouveau frais hors forfait pour un Visiteurun mois donne a partir des parametres
|
|
* @param $idVisiteur
|
|
* @param $mois sous la forme aaaamm
|
|
* @param $libelle : le libelle du frais
|
|
* @param $date : la date du frais au format français jj//mm/aaaa
|
|
* @param $montant : le montant
|
|
*/
|
|
public function ajoutFraisHorsForfait($idVisiteur, $mois, $date, $libelle, $montant)
|
|
{
|
|
$dateFr = dateFrancaisVersAnglais($date);
|
|
$req = "SELECT 1;";
|
|
//$req = $this->entourerNoms($req);
|
|
PdoGsb::$monPdo->exec($req);
|
|
}
|
|
|
|
/**
|
|
* Supprime le frais hors forfait dont l'id est passe en argument
|
|
* @param $idFrais
|
|
*/
|
|
public function supprimerFraisHorsForfait($idFrais, $libelle)
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
/**
|
|
* Retourne les mois pour lesquel un Visiteura une fiche de frais
|
|
* @param $idVisiteur
|
|
* @return un tableau associatif de clefs un mois -aaaamm- et de valeurs l'anne et le mois correspondant
|
|
*/
|
|
public function getLesMoisDisponibles($idVisiteur)
|
|
{
|
|
$tabMois = array('01' => "Janvier",
|
|
'02' => "Février",
|
|
'03' => "Mars",
|
|
'04' => "Avril",
|
|
'05' => "Mai",
|
|
'06' => "Juin",
|
|
'07' => "Juillet",
|
|
'08' => "Août",
|
|
'09' => "Septembre",
|
|
'10' => "Octobre",
|
|
'11' => "Novembre",
|
|
'12' => "Décembre");
|
|
$req = "select \"rMois\" as mois
|
|
from remboursement
|
|
where \"rVisiteur\"='$idVisiteur' ";
|
|
if ($_SESSION['statut'] <> '1') {
|
|
$req = $req . "and \"rEtat\"<>'CR'";
|
|
}
|
|
$req = $req . " order by \"rMois\" desc limit 12";
|
|
//$req = $this->entourerNoms($req);
|
|
$rs = PdoGsb::$monPdo->query($req);
|
|
$lesMois = array();
|
|
$laLigne = $rs->fetch();
|
|
while ($laLigne != null) {
|
|
$mois = $laLigne['mois'];
|
|
$numAnnee = substr($mois, 0, 4);
|
|
$numMois = $tabMois[substr($mois, 4, 2)];
|
|
$lesMois["$mois"] = array("mois" => "$mois", "numAnnee" => "$numAnnee", "numMois" => "$numMois");
|
|
$laLigne = $rs->fetch();
|
|
}
|
|
return $lesMois;
|
|
}
|
|
|
|
/**
|
|
*/
|
|
public function existeRemboursement($idVisiteur, $mois)
|
|
{
|
|
$req = "select count(*) as nb
|
|
from remboursement
|
|
where \"rVisiteur\"='$idVisiteur'
|
|
and \"rMois\"='$mois'";
|
|
//$req = $this->entourerNoms($req);
|
|
$rs = PdoGsb::$monPdo->query($req);
|
|
$laLigne = $rs->fetch();
|
|
return $laLigne['nb'];
|
|
}
|
|
|
|
/**
|
|
*/
|
|
public function getNbRemboursementsAValider()
|
|
{
|
|
$req = "SELECT 1 as nb;";
|
|
//$req = $this->entourerNoms($req);
|
|
$rs = PdoGsb::$monPdo->query($req);
|
|
$laLigne = $rs->fetch();
|
|
return $laLigne['nb'];
|
|
}
|
|
|
|
/**
|
|
*/
|
|
public function creeNouveauRemboursement($idVisiteur, $mois)
|
|
{
|
|
$req = "SELECT 1;";
|
|
//$req = $this->entourerNoms($req);
|
|
PdoGsb::$monPdo->exec($req);
|
|
}
|
|
|
|
/**
|
|
* Retourne les informations d'une fiche de frais d'un Visiteur pour un mois donne
|
|
* @param $idVisiteur
|
|
* @param $mois sous la forme aaaamm
|
|
* @return un tableau avec des champs de jointure entre une fiche de frais et la ligne d'etat
|
|
*/
|
|
public function getInfosRemboursement($idVisiteur, $mois)
|
|
{
|
|
$req = "SELECT 1;";
|
|
//$req = $this->entourerNoms($req);
|
|
$rs = PdoGsb::$monPdo->query($req);
|
|
if ($rs === false) {
|
|
afficherErreurSQL("Probleme lors de la lecture ..", $req, PdoGsb::$monPdo->errorInfo());
|
|
}
|
|
$laLigne = $rs->fetch();
|
|
return $laLigne;
|
|
}
|
|
|
|
/**
|
|
* Actualise le montant valide et le nb de justificatifs recus
|
|
*/
|
|
public function valideRemboursement($idVisiteur, $mois)
|
|
{
|
|
$NbJustificatifs = $this->getNbjustificatifs($idVisiteur, $mois);
|
|
$montantValide = $this->getMontantValide($idVisiteur, $mois);
|
|
$req = "SELECT 1;";
|
|
//$req = $this->entourerNoms($req);
|
|
PdoGsb::$monPdo->exec($req);
|
|
}
|
|
|
|
/**
|
|
* Modifie l'etat et la date de modification d'une fiche de frais
|
|
* Modifie le champ idEtat et met la date de modif a aujourd'hui
|
|
* @param $idVisiteur
|
|
* @param $mois sous la forme aaaamm
|
|
*/
|
|
public function majRemboursement($idVisiteur, $mois, $etat)
|
|
{
|
|
$req = "update remboursement set \"rEtat\" = '$etat', \"rDateModif\" = now()
|
|
where \"rVisiteur\"='$idVisiteur'
|
|
and \"rMois\"='$mois'";
|
|
PdoGsb::$monPdo->exec($req);
|
|
}
|
|
|
|
/**
|
|
* Clos les fiches de frais
|
|
* Modifie le champ idEtat et met la date de modif a aujourd'hui
|
|
*/
|
|
public function clotureMois($mois)
|
|
{
|
|
$req = "SELECT 1;";
|
|
//$req = $this->entourerNoms($req);
|
|
//PdoGsb::$monPdo->exec($req);
|
|
}
|
|
|
|
/**
|
|
* Retourne les informations de la table TYPEPARAMETRE
|
|
*/
|
|
public function getLesParametres()
|
|
{
|
|
$req = "SELECT \"tlId\", \"tlLibelle\", \"tlBooleen\", \"tlChoixMultiple\", \"tlCumul\"
|
|
FROM \"typeParametre\"
|
|
ORDER BY \"tlLibelle\";";
|
|
$req = $this->entourerNoms($req);
|
|
$rs = PdoGsb::$monPdo->query($req);
|
|
if ($rs === false) {
|
|
afficherErreurSQL("Probleme lors de la recherche dans la base de données.", $req, PdoGsb::$monPdo->errorInfo());
|
|
}
|
|
$lesLignes = $rs->fetchAll();
|
|
return $lesLignes;
|
|
}
|
|
|
|
/**
|
|
* Retourne dans un tableau associatif les informations de la table PARAMETRE (pour un type particulier)
|
|
*/
|
|
public function getParametre($type)
|
|
{
|
|
$req = "SELECT \"pIndice\", \"pLibelle\"
|
|
FROM parametre
|
|
WHERE \"pType\"='$type'
|
|
ORDER by \"pIndice\";";
|
|
//echo $req;
|
|
//$req = $this->entourerNoms($req);
|
|
$rs = PdoGsb::$monPdo->query($req);
|
|
if ($rs === false) {
|
|
afficherErreurSQL("Probleme lors de la recherche des parametres dans la base de données.", $req, PdoGsb::$monPdo->errorInfo());
|
|
}
|
|
$lesLignes = $rs->fetchAll();
|
|
return $lesLignes;
|
|
}
|
|
/**
|
|
* Retourne dans un tableau associatifles informations de la table PARAMETRE (pour un type particulier)
|
|
*/
|
|
public function getInfosParam($type, $valeur)
|
|
{
|
|
if ($valeur == "NULL") {
|
|
$req = "SELECT \"pType\", max(\"pIndice\")+1 AS pIndice, ' ' AS pLibelle, \"tlLibelle\", \"pPlancher\", \"pPlafond\"
|
|
FROM parametre INNER JOIN \"typeParametre\" ON \"typeParametre\".\"tlId\"=parametre.\"pType\"
|
|
WHERE pType='$type';";
|
|
} else {
|
|
$req = "SELECT \"pType\", \"pIndice\", \"pLibelle\", \"tlLibelle\", \"pPlancher\", \"pPlafond\"
|
|
FROM parametre INNER JOIN \"typeParametre\" ON \"typeParametre\".\"tlId\"=parametre.\"pType\"
|
|
WHERE \"pType\"='$type'
|
|
AND \"pIndice\" like '$valeur';";
|
|
}
|
|
$req = $this->entourerNoms($req);
|
|
$rs = PdoGsb::$monPdo->query($req);
|
|
if ($rs === false) {
|
|
afficherErreurSQL("Probleme lors de la recherche dans la base de données.", $req, PdoGsb::$monPdo->errorInfo());
|
|
}
|
|
$ligne = $rs->fetch();
|
|
return $ligne;
|
|
}
|
|
|
|
|
|
/**
|
|
* Met a jour une ligne de la table PARAMETRE
|
|
*/
|
|
public function majParametre($type, $valeur, $libelle, $territoire, $dep, $plancher, $plafond)
|
|
{
|
|
$req = "UPDATE parametre SET \"pLibelle\"='$libelle', \"pPlancher\"=$plancher, \"pPlafond\"=$plafond
|
|
WHERE \"pType\"='$type'
|
|
AND \"pIndice\"=$valeur;";
|
|
//$req = $this->entourerNoms($req);
|
|
$rs = PdoGsb::$monPdo->exec($req);
|
|
if ($rs === false) {
|
|
afficherErreurSQL("Probleme lors de la mise a jour des parametres dans la base de données.", $req, PdoGsb::$monPdo->errorInfo());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* supprime une ligne de la table PARAMETRE
|
|
*/
|
|
public function supprimeParametre($type, $valeur)
|
|
{
|
|
$req = "DELETE
|
|
FROM parametre
|
|
WHERE \"pType\"='$type'
|
|
AND \"pIndice\"=$valeur;";
|
|
//$req = $this->entourerNoms($req);
|
|
$rs = PdoGsb::$monPdo->exec($req);
|
|
if ($rs === false) {
|
|
afficherErreurSQL("Probleme lors de la suppression d'un parametre dans la base de données.", $req, PdoGsb::$monPdo->errorInfo());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* ajoute une ligne dans la table PARAMETRE
|
|
*/
|
|
public function ajoutParametre($type, $valeur, $libelle, $territoire, $dep, $plancher, $plafond)
|
|
{
|
|
$req = "INSERT INTO parametre
|
|
(\"pType\", \"pIndice\", \"pLibelle\", \"pPlancher\", \"pPlafond\")
|
|
VALUES ('$type', $valeur, '$libelle', $plancher, $plafond);";
|
|
//$req = $this->entourerNoms($req);
|
|
$rs = PdoGsb::$monPdo->exec($req);
|
|
if ($rs === false) {
|
|
afficherErreurSQL("Probleme lors de l'insertion d'un parametre dans la base de données.", $req, PdoGsb::$monPdo->errorInfo());
|
|
}
|
|
}
|
|
/**
|
|
* Fonction pour entourer les noms de tables et de champs par des guillemets doubles
|
|
*/
|
|
private function entourerNoms($requete)
|
|
{
|
|
$pattern = '/SELECT(.*?)[\n\r\s]FROM/i';
|
|
echo 'le patron : ' . $pattern . ' la requete : ' . $requete;
|
|
preg_match_all($pattern, $requete, $matches);
|
|
|
|
if (isset($matches[1])) {
|
|
var_dump($matches);
|
|
foreach ($matches[1] as $match) {
|
|
// Ajouter des guillemets doubles autour des noms de tables et de champs
|
|
$noms_entoures = preg_replace_callback('/\b([A-Za-z_][A-Za-z0-9_]*)\b/', function ($match) {
|
|
return '\"' . $match[0] . '\"';
|
|
}, $match);
|
|
|
|
$requete = str_replace($match, $noms_entoures, $requete);
|
|
}
|
|
}
|
|
//echo $requete;
|
|
return $requete;
|
|
}
|
|
}
|
|
?>
|