Projet e-stok  0.2
BTS SNIR LaSalle Avignon 2020
Référence de la classe Supervision

La classe Supervision permet de superviser l'ensemble de l'application. Plus de détails...

#include <Supervision.h>

Graphe de collaboration de Supervision:
Collaboration graph

Connecteurs publics

void ajouterObjetAvecCodeBarre (QString codeBarre)
 Définition de la méthode ajouterObjetAvecCodeBarre. Plus de détails...
 
void prendreObjetAvecCodeBarre (QString codeBarre)
 Définition de la méthode prendreObjetAvecCodeBarre. Plus de détails...
 
void rechercherArticle (QString recherche)
 Définition de la méthode rechercherArticle. Plus de détails...
 
void selectionnerArticle (QString nomArticle)
 Définition de la méthode selectionnerArticle. Plus de détails...
 
void traiterTramePoids (QString trame)
 Définition de la méthode traiterTramePoids. Plus de détails...
 
void verifierAuthentificationBadge (QString badge)
 Définition de la méthode verifierAuthentificationBadge. Plus de détails...
 
void verifierAuthentificationIdentifiant (QString identifiant, QString motDePasse)
 Définition de la méthode verifierAuthentificationIdentifiant. Plus de détails...
 

Signaux

void articlesTrouves (QVector< QStringList >)
 
void donneesArticleSelectionne (QVector< QStringList >)
 
void donneesArticleSelectionne (QStringList)
 
void erreurArticleInsuffisants ()
 
void erreurAucunArticleAvecCodeBarre ()
 
void erreurAucunCasierOuvert ()
 
void erreurDepassementQuantite ()
 
void erreurQuantiteTropElevee ()
 
void reponseDemandeDeConnexion (bool, QString)
 

Fonctions membres publiques

void creerCasiers ()
 Définition de la méthode creerCasiers. Plus de détails...
 
void deconnecterUtilisateur ()
 Méthode qui permet la déconnexion de l'utilisateur. Plus de détails...
 
QVector< Casier * > getCasiers ()
 Définition de la méthode getCasiers. Plus de détails...
 
QStringList getInformationsArmoire ()
 Définition de la méthode getInformationsArmoire. Plus de détails...
 
 Supervision (Ihm *parent=nullptr)
 Définition du constructeur de la classe Supervision. Plus de détails...
 
 ~Supervision ()
 Définition du destructeur de Supervision. Plus de détails...
 

Fonctions membres privées

void ajouterDonneesArticle (Article *article, QVector< QStringList > &donneesArticle, QStringList &donnees)
 Définition de la méthode ajouterDonneesArticle. Plus de détails...
 
unsigned int comptageAutomatiqueAjouterOuPrendre (QString nbArticleAvant, int nbArticleApres)
 Définition de la méthode comptageAutomatiqueAjouterOuPrendre. Plus de détails...
 
unsigned int comptageAutomatiqueQuantite (QString nbArticleAvant, int nbArticleApres)
 Définition de la méthode comptageAutomatiqueQuantite. Plus de détails...
 
int compter (QString poidArticle, QString poidTotal, QString tare)
 Définition de la méthode compter. Plus de détails...
 
void connecterSignauxSlots ()
 Définition de la méthode connecterSignauxSlots. Plus de détails...
 
void connecterUtilisateur (QStringList &donnees)
 Définition de la méthode connecterUtilisateur. Plus de détails...
 
void crypterMotDepasse (QString &motDePasse)
 Définition de la méthode crypterMotDepasse. Plus de détails...
 
QString extraireNumeroCasier (QString trame)
 Définition de la méthode extraireNumeroCasier. Plus de détails...
 
QString extrairePoids (QString trame)
 Définition de la méthode extrairePoids. Plus de détails...
 
void mettreAJourMouvement (QString idUtilisateur, QString idStock, QString idAction, QString quantite)
 Définition de la méthode mettreAJourMouvement. Plus de détails...
 
int rechercherCasierOuvert ()
 Définition de la méthode rechercherCasierOuvert. Plus de détails...
 
QStringList recupererDonneesUtilisateur (QString requeteBDD)
 Définition de la méthode recupererDonneesUtilisateur. Plus de détails...
 
QString recupererHorodatage ()
 Définition de la méthode recupererHorodatage. Plus de détails...
 
QString recupererIdStockAvecNumeroCasier (int numeroCasier)
 Définition de la méthode recupererIdStockAvecNumeroCasier. Plus de détails...
 
bool verifierArticlePresentDansCasier (QString numCasier, QString idArticle)
 Définition de la méthode verifierArticlePresentDansCasier. Plus de détails...
 
bool verifierDateValidite (QString stringDateValidite)
 Définition de la méthode verifierDateValidite. Plus de détails...
 
bool verifierDonneesUtilisateur (QStringList &donnees)
 Définition de la méthode verifierDonneesUtilisateur. Plus de détails...
 

Attributs privés

Armoirearmoire
 association d'un objet Armoire Plus de détails...
 
Bddbdd
 association d'un objet Bdd (accès à la base de données) Plus de détails...
 
QVector< Casier * > casiers
 les casiers de l'armoire Plus de détails...
 
CodeBarrecodeBarre
 association d'un objet CodeBarre Plus de détails...
 
Communicationcommunication
 association d'un objet Communication Plus de détails...
 
Ihmihm
 association d'un objet Ihm (fenêtre princiaple de l'application) Plus de détails...
 
Rfidrfid
 association d'un objet Rfid (le lecteur de badge) Plus de détails...
 
Utilisateurutilisateur
 association d'un objet Utilisateur (l'utilisateur authentifié) Plus de détails...
 

Description détaillée

La classe Supervision permet de superviser l'ensemble de l'application.

Auteur
Legger Pierre-Antoine
Tranchat Joffrey
Version
1.0
Date
Mercredi 12 Février 2020

Définition à la ligne 52 du fichier Supervision.h.

Documentation des constructeurs et destructeur

◆ Supervision()

Supervision::Supervision ( Ihm parent = nullptr)

Définition du constructeur de la classe Supervision.

Initialise la supervision

Paramètres
parentl'objet QObject parent

Définition à la ligne 36 du fichier Supervision.cpp.

Références armoire, bdd, codeBarre, communication, Bdd::connecter(), connecterSignauxSlots(), Communication::demarrerCommunicationPort(), Bdd::getInstance(), rfid, et utilisateur.

36  : QObject(parent), ihm(parent)
37 {
38  // Instancie les objets dont la classe Supervision coordonne les actions
40  bdd->connecter();
41  codeBarre = new CodeBarre(this);
42  //portSerie = new Communication(this);
43  rfid = new Rfid(this);
44  utilisateur = nullptr;
45  armoire = new Armoire(this);
46  communication = new Communication(this);
47 
49 
51 
52 }
Armoire * armoire
association d&#39;un objet Armoire
Definition: Supervision.h:91
void connecterSignauxSlots()
Définition de la méthode connecterSignauxSlots.
CodeBarre * codeBarre
association d&#39;un objet CodeBarre
Definition: Supervision.h:90
Communication * communication
association d&#39;un objet Communication
Definition: Supervision.h:92
bool connecter()
Définition méthose connecter()
Definition: Bdd.cpp:93
Bdd * bdd
association d&#39;un objet Bdd (accès à la base de données)
Definition: Supervision.h:87
Rfid * rfid
association d&#39;un objet Rfid (le lecteur de badge)
Definition: Supervision.h:88
Déclaration de la classe CodeBarre.
Definition: CodeBarre.h:35
La classe Communication permet de communiquer avec le port série.
Definition: Communication.h:48
void demarrerCommunicationPort()
Définition de la méthode demarrerCommunicationPort.
Ihm * ihm
association d&#39;un objet Ihm (fenêtre princiaple de l&#39;application)
Definition: Supervision.h:86
La classe Armoire traite les articles.
Definition: Armoire.h:49
static Bdd * getInstance()
Définition méthode getInstance()
Definition: Bdd.cpp:53
La classe Rfid traite la trame reçue d&#39;un lecteur Rfid.
Definition: Rfid.h:35
Utilisateur * utilisateur
association d&#39;un objet Utilisateur (l&#39;utilisateur authentifié)
Definition: Supervision.h:89

◆ ~Supervision()

Supervision::~Supervision ( )

Définition du destructeur de Supervision.

Détruit un objet Supervision

Définition à la ligne 59 du fichier Supervision.cpp.

60 {
61 
62 }

Documentation des fonctions membres

◆ ajouterDonneesArticle()

void Supervision::ajouterDonneesArticle ( Article article,
QVector< QStringList > &  donneesArticle,
QStringList &  donnees 
)
private

Définition de la méthode ajouterDonneesArticle.

permet d'ajouter des données d'un article d'un casier

Paramètres
article
donneesArticle
donnees

Définition à la ligne 579 du fichier Supervision.cpp.

Références Article::get(), TABLE_ARTICLE_DISPONIBLE, TABLE_ARTICLE_NUMERO_CASIER, et TABLE_ARTICLE_QUANTITE.

Référencé par selectionnerArticle().

580 {
581  donnees << article->get(TABLE_ARTICLE_QUANTITE);
582  donnees << article->get(TABLE_ARTICLE_DISPONIBLE);
583  donnees << article->get(TABLE_ARTICLE_NUMERO_CASIER);
584 
585  donneesArticle.push_back(donnees);
586  donnees.clear();
587 }
Definition: Article.h:45
Definition: Article.h:40
Definition: Article.h:39
QString get(ChampArticle champ)
Définition de la méthode get.
Definition: Article.cpp:265

◆ ajouterObjetAvecCodeBarre

void Supervision::ajouterObjetAvecCodeBarre ( QString  codeBarre)
slot

Définition de la méthode ajouterObjetAvecCodeBarre.

méthode qui permet d'ajouter un objet avec son code barres

Paramètres
QStringcodeBarre

Définition à la ligne 669 du fichier Supervision.cpp.

Références bdd, casiers, erreurAucunArticleAvecCodeBarre(), erreurAucunCasierOuvert(), erreurQuantiteTropElevee(), Bdd::executer(), Utilisateur::getIdUtilisateur(), mettreAJourMouvement(), rechercherCasierOuvert(), recupererIdStockAvecNumeroCasier(), utilisateur, et verifierArticlePresentDansCasier().

Référencé par connecterSignauxSlots().

670 {
671  int numeroCasier = rechercherCasierOuvert();
672 
673  if(numeroCasier == -1)
674  return;
675 
676  #ifdef DEBUG_SUPERVISION
677  qDebug() << Q_FUNC_INFO << "codeBarre" << codeBarre << "casier" << numeroCasier;
678  #endif
679 
680  unsigned int quantiteMax = this->codeBarre->recupererQuantiteMaxParNumeroCasier(QString::number(casiers[numeroCasier]->getNumero()));
681  unsigned int quantiteDisponible = this->codeBarre->recupererQuantiteDisponibleParNumeroCasier(QString::number(casiers[numeroCasier]->getNumero()));
682  unsigned int quantite = quantiteDisponible + this->codeBarre->getQuantiteObjet();
683  QString idArticle = QString::number(this->codeBarre->recupererIdArticleAvecCodeBarres(codeBarre));
684 
685  if(casiers[numeroCasier]->estOuvert())
686  {
687  if(verifierArticlePresentDansCasier(QString::number(casiers[numeroCasier]->getNumero()), idArticle))
688  {
689  if(quantite <= quantiteMax)
690  {
691  QString strQuantite = QString::number(quantite);
692  QString requete = "UPDATE Stock SET Disponible = '" + strQuantite + "' WHERE Stock.idArticle = '" + idArticle + "'";
693  bdd->executer(requete);
694  QString idUtilisateur = utilisateur->getIdUtilisateur();
695  QString idStock = recupererIdStockAvecNumeroCasier(numeroCasier+1);
696  QString idAction = "2";
697  QString quantiteMouvement = QString::number(this->codeBarre->getQuantiteObjet());
698  mettreAJourMouvement(idUtilisateur, idStock, idAction, quantiteMouvement);
699  }
700  else
701  {
703  }
704  }
705  else
706  {
708  }
709  }
710  else
711  {
713  }
714 }
void erreurQuantiteTropElevee()
void mettreAJourMouvement(QString idUtilisateur, QString idStock, QString idAction, QString quantite)
Définition de la méthode mettreAJourMouvement.
int rechercherCasierOuvert()
Définition de la méthode rechercherCasierOuvert.
unsigned int recupererQuantiteDisponibleParNumeroCasier(QString numeroCasier)
Définition de la méthode recupererQuantiteDisponibleParNumeroCasier.
Definition: CodeBarre.cpp:177
bool executer(QString requete)
exécute une requête SQL de type UPDATE, INSERT et DELETE
Definition: Bdd.cpp:146
CodeBarre * codeBarre
association d&#39;un objet CodeBarre
Definition: Supervision.h:90
unsigned int recupererIdArticleAvecCodeBarres(QString codeBarre)
Définition de la méthode recupererIdArticleAvecCodeBarres.
Definition: CodeBarre.cpp:193
void erreurAucunArticleAvecCodeBarre()
Bdd * bdd
association d&#39;un objet Bdd (accès à la base de données)
Definition: Supervision.h:87
unsigned int recupererQuantiteMaxParNumeroCasier(QString numeroCasier)
Définition de la méthode recupererQuantiteMaxParNumeroCasier.
Definition: CodeBarre.cpp:161
QVector< Casier * > casiers
les casiers de l&#39;armoire
Definition: Supervision.h:93
QString getIdUtilisateur()
Définition de la méthode getIdUtilisateur.
Definition: Utilisateur.cpp:88
bool verifierArticlePresentDansCasier(QString numCasier, QString idArticle)
Définition de la méthode verifierArticlePresentDansCasier.
unsigned int getQuantiteObjet()
Définition de la méthode getQuantiteObjet.
Definition: CodeBarre.cpp:120
void erreurAucunCasierOuvert()
Utilisateur * utilisateur
association d&#39;un objet Utilisateur (l&#39;utilisateur authentifié)
Definition: Supervision.h:89
QString recupererIdStockAvecNumeroCasier(int numeroCasier)
Définition de la méthode recupererIdStockAvecNumeroCasier.

◆ articlesTrouves

void Supervision::articlesTrouves ( QVector< QStringList >  )
signal

◆ comptageAutomatiqueAjouterOuPrendre()

unsigned int Supervision::comptageAutomatiqueAjouterOuPrendre ( QString  nbArticleAvant,
int  nbArticleApres 
)
private

Définition de la méthode comptageAutomatiqueAjouterOuPrendre.

permet de savoir si l'action effectuer est un retrait ou un ajout

Paramètres
QStringnbArticleAvant
intnbArticleApres
Renvoie
unsigned int action

Définition à la ligne 443 du fichier Supervision.cpp.

Référencé par traiterTramePoids().

444 {
445  int intNbArticleAvant = nbArticleAvant.toInt();
446 
447  if(intNbArticleAvant > nbArticleApres)
448  {
449  return 2;
450  }
451  else
452  {
453  return 1;
454  }
455 }

◆ comptageAutomatiqueQuantite()

unsigned int Supervision::comptageAutomatiqueQuantite ( QString  nbArticleAvant,
int  nbArticleApres 
)
private

Définition de la méthode comptageAutomatiqueQuantite.

permet de savoir combien d'article il y à d'article de différence

Paramètres
QStringnbArticleAvant
intnbArticleApres
Renvoie
unsigned int quantite

Définition à la ligne 464 du fichier Supervision.cpp.

Référencé par traiterTramePoids().

465 {
466  int intNbArticleAvant = nbArticleAvant.toInt();
467 
468  if(intNbArticleAvant > nbArticleApres)
469  {
470  return intNbArticleAvant - nbArticleApres;
471  }
472  else
473  {
474  return nbArticleApres - intNbArticleAvant;
475  }
476 }

◆ compter()

int Supervision::compter ( QString  poidsArticle,
QString  poidsTotal,
QString  tare 
)
private

Définition de la méthode compter.

assure le comptage automatique du nombre d'article présent dans le casier

Paramètres
poidsArticlele poids total dans le casier
poidsTotalle poids d'un article
tare
Renvoie
la quantite d'article présent dans le casier sous forme d'un entier

Définition à la ligne 522 du fichier Supervision.cpp.

Références PRECISION.

Référencé par traiterTramePoids().

523 {
524  double doublePoidsArticle = poidsArticle.toDouble();
525  double doublePoidsTotal = poidsTotal.toDouble();
526  double doubleTare = tare.toDouble();
527 
528  //comptage du nombre d'articles
529 
530  double doubleNombreArticle = qRound((doublePoidsTotal - doubleTare) / doublePoidsArticle);
531  QString strNombreArticle = QString::number(doubleNombreArticle, 'f', PRECISION);
532  int nombreArticle = strNombreArticle.toInt();
533 
534  #ifdef DEBUG_SUPERVISION
535  qDebug() << Q_FUNC_INFO << "nombreArticle:" << nombreArticle;
536  #endif
537 
538  return nombreArticle;
539 }
#define PRECISION
Definition: Supervision.h:26

◆ connecterSignauxSlots()

void Supervision::connecterSignauxSlots ( )
private

Définition de la méthode connecterSignauxSlots.

Etablie la connexion entre les diffrents signaux et slots

Définition à la ligne 282 du fichier Supervision.cpp.

Références ajouterObjetAvecCodeBarre(), armoire, articlesTrouves(), codeBarre, communication, donneesArticleSelectionne(), erreurArticleInsuffisants(), erreurAucunArticleAvecCodeBarre(), erreurAucunCasierOuvert(), erreurDepassementQuantite(), erreurQuantiteTropElevee(), ihm, prendreObjetAvecCodeBarre(), rechercherArticle(), reponseDemandeDeConnexion(), rfid, selectionnerArticle(), traiterTramePoids(), verifierAuthentificationBadge(), et verifierAuthentificationIdentifiant().

Référencé par Supervision().

283 {
284  // Armoire
285  connect(armoire, SIGNAL(informationsArmoire(QStringList)), ihm, SLOT(afficherInformationsArmoire(QStringList)));
286 
287  // Authentification Badge
288  connect(ihm, SIGNAL(badgeDetecte(QString)), rfid, SLOT(traiterBadge(QString)));
289  connect(rfid, SIGNAL(erreurBadgeInvalide(QString)), ihm, SLOT(afficherErreurBadge(QString)));
290  connect(rfid, SIGNAL(nouveauUidBadge(QString)), this, SLOT(verifierAuthentificationBadge(QString)));
291 
292  // Authentification Identifiant
293  connect(ihm, SIGNAL(identifiantDetecte(QString, QString)), this, SLOT(verifierAuthentificationIdentifiant(QString, QString)));
294 
295  // Authentification Utilisateur
296  connect(this, SIGNAL(reponseDemandeDeConnexion(bool,QString)), ihm, SLOT(traiterDemandeDeConnexion(bool,QString)));
297 
298  // Article
299  connect(communication, SIGNAL(envoieTramePoids(QString)), this, SLOT(traiterTramePoids(QString)));
300  connect(ihm, SIGNAL(rechercheArticle(QString)), this, SLOT(rechercherArticle(QString)));
301  connect(this, SIGNAL(articlesTrouves(QVector<QStringList>)), ihm, SLOT(mettreAJourListeArticles(QVector<QStringList>)));
302  connect(ihm, SIGNAL(articleSelectionne(QString)), this, SLOT(selectionnerArticle(QString)));
303  connect(this, SIGNAL(donneesArticleSelectionne(QStringList)), ihm, SLOT(afficherDonneesArticleSelectionne(QStringList)));
304  connect(this, SIGNAL(donneesArticleSelectionne(QVector<QStringList>)), ihm, SLOT(afficherDonneesArticleSelectionne(QVector<QStringList>)));
305  connect(this, SIGNAL(erreurDepassementQuantite()), ihm, SLOT(afficherErreurDepassementQuantite()));
306 
307  // CodeBarre
308  connect(ihm, SIGNAL(boutonPrendre(bool)), codeBarre, SLOT(prendreOuAjouter(bool)));
309  connect(ihm, SIGNAL(boutonAjouter(bool)), codeBarre, SLOT(prendreOuAjouter(bool)));
310  connect(ihm, SIGNAL(codeBarreObjetScanner(QString)), codeBarre, SLOT(traiterCodeBarre(QString)));
311  connect(this, SIGNAL(erreurAucunArticleAvecCodeBarre()), ihm, SLOT(afficherErreurPasArticleAvecCodeBarre()));
312  connect(codeBarre, SIGNAL(prendreObjet(QString)), this, SLOT(prendreObjetAvecCodeBarre(QString)));
313  connect(codeBarre, SIGNAL(ajouterObjet(QString)), this, SLOT(ajouterObjetAvecCodeBarre(QString)));
314  connect(ihm, SIGNAL(envoyerQuantite(int)), codeBarre, SLOT(changerQuantiteObjet(int)));
315  connect(this, SIGNAL(erreurArticleInsuffisants()), ihm, SLOT(afficherErreurArticleInsuffisants()));
316  connect(this, SIGNAL(erreurQuantiteTropElevee()), ihm, SLOT(afficherErreurDepassementQuantite()));
317  connect(this, SIGNAL(erreurAucunCasierOuvert()), ihm, SLOT(afficherErreurAucunCasierOuvert()));
318 }
void erreurQuantiteTropElevee()
void verifierAuthentificationIdentifiant(QString identifiant, QString motDePasse)
Définition de la méthode verifierAuthentificationIdentifiant.
void donneesArticleSelectionne(QVector< QStringList >)
void prendreObjetAvecCodeBarre(QString codeBarre)
Définition de la méthode prendreObjetAvecCodeBarre.
Armoire * armoire
association d&#39;un objet Armoire
Definition: Supervision.h:91
CodeBarre * codeBarre
association d&#39;un objet CodeBarre
Definition: Supervision.h:90
Communication * communication
association d&#39;un objet Communication
Definition: Supervision.h:92
void erreurAucunArticleAvecCodeBarre()
void traiterTramePoids(QString trame)
Définition de la méthode traiterTramePoids.
void erreurArticleInsuffisants()
void verifierAuthentificationBadge(QString badge)
Définition de la méthode verifierAuthentificationBadge.
Rfid * rfid
association d&#39;un objet Rfid (le lecteur de badge)
Definition: Supervision.h:88
void rechercherArticle(QString recherche)
Définition de la méthode rechercherArticle.
void ajouterObjetAvecCodeBarre(QString codeBarre)
Définition de la méthode ajouterObjetAvecCodeBarre.
void selectionnerArticle(QString nomArticle)
Définition de la méthode selectionnerArticle.
void articlesTrouves(QVector< QStringList >)
void reponseDemandeDeConnexion(bool, QString)
Ihm * ihm
association d&#39;un objet Ihm (fenêtre princiaple de l&#39;application)
Definition: Supervision.h:86
void erreurDepassementQuantite()
void erreurAucunCasierOuvert()

◆ connecterUtilisateur()

void Supervision::connecterUtilisateur ( QStringList &  donnees)
private

Définition de la méthode connecterUtilisateur.

Connecte l'utilisateur et le supprime si il en existe un

Paramètres
donneesPlusieurs chaînes de caractères des données utilisateur

Définition à la ligne 260 du fichier Supervision.cpp.

Références deconnecterUtilisateur(), Utilisateur::getIdentifiantUtilisateur(), traiterTramePoids(), et utilisateur.

Référencé par verifierAuthentificationBadge(), et verifierAuthentificationIdentifiant().

261 {
262  if(utilisateur != nullptr)
263  {
265  }
266  utilisateur = new Utilisateur(donnees, this);
267  #ifdef DEBUG_SUPERVISION
268  qDebug() << Q_FUNC_INFO << utilisateur->getIdentifiantUtilisateur() << "authentifié";
269  #endif
270 
271  #ifdef SUPERVISION_TEST_POIDS
272  QString trameTest = "CASIERS;3;2;1745";
273  traiterTramePoids(trameTest);
274  #endif
275 }
QString getIdentifiantUtilisateur()
Définition de la méthode getIdentifiantUtilisateur.
Definition: Utilisateur.cpp:78
void traiterTramePoids(QString trame)
Définition de la méthode traiterTramePoids.
void deconnecterUtilisateur()
Méthode qui permet la déconnexion de l&#39;utilisateur.
Definition: Supervision.cpp:69
La classe Utilisateur gère les données relative à l&#39;utilisateur.
Definition: Utilisateur.h:52
Utilisateur * utilisateur
association d&#39;un objet Utilisateur (l&#39;utilisateur authentifié)
Definition: Supervision.h:89

◆ creerCasiers()

void Supervision::creerCasiers ( )

Définition de la méthode creerCasiers.

Méthode qui crée les casiers à gérer

Définition à la ligne 83 du fichier Supervision.cpp.

Références armoire, casiers, FENETRE_MENU, Armoire::getNbCasiers(), ihm, et Ihm::placerCasiers().

Référencé par Ihm::Ihm().

84 {
85  QString nbCasiers = armoire->getNbCasiers();
86  qDebug() << Q_FUNC_INFO << "nbCasiers" << nbCasiers;
87  if(!nbCasiers.isEmpty())
88  {
89  for(int i=0; i < nbCasiers.toInt(); i++)
90  {
91  Casier* casier = new Casier(i+1, ihm);
92  connect(casier, SIGNAL(estOuvert(int,bool)), ihm, SLOT(gererPageScanObjet(int,bool)));
93  casiers.push_back(casier);
94  }
95  }
97 }
Armoire * armoire
association d&#39;un objet Armoire
Definition: Supervision.h:91
QString getNbCasiers() const
Définition de la méthode getNbCasiers.
Definition: Armoire.cpp:127
La classe Casier gère le casier contenant des articles.
Definition: Casier.h:34
void placerCasiers(const QVector< Casier *> &casiers, int fenetre)
Definition: Ihm.cpp:132
QVector< Casier * > casiers
les casiers de l&#39;armoire
Definition: Supervision.h:93
Fenêtre ???
Definition: Ihm.h:28
Ihm * ihm
association d&#39;un objet Ihm (fenêtre princiaple de l&#39;application)
Definition: Supervision.h:86

◆ crypterMotDepasse()

void Supervision::crypterMotDepasse ( QString &  motDePasse)
private

Définition de la méthode crypterMotDepasse.

Crypte le mots de passe avec la méthode Md5 puis vers l'hexadécimal

Paramètres
motDePasseChaîne de caractères du mot de passe

Définition à la ligne 183 du fichier Supervision.cpp.

Référencé par verifierAuthentificationIdentifiant().

184 {
185  if(!motDePasse.isEmpty())
186  {
187  motDePasse = QString(QCryptographicHash::hash((motDePasse).toLatin1(), QCryptographicHash::Md5).toHex());
188  }
189 
190  #ifdef DEBUG_SUPERVISION
191  qDebug() << Q_FUNC_INFO << "Mot de passe crypte" << motDePasse;
192  #endif
193 }

◆ deconnecterUtilisateur()

void Supervision::deconnecterUtilisateur ( )

Méthode qui permet la déconnexion de l'utilisateur.

Supprime les données de l'utilisateur

Définition à la ligne 69 du fichier Supervision.cpp.

Références utilisateur.

Référencé par connecterUtilisateur(), et Ihm::deconnecterUtilisateur().

70 {
71  if(utilisateur != nullptr)
72  {
73  delete utilisateur;
74  utilisateur = nullptr;
75  }
76 }
Utilisateur * utilisateur
association d&#39;un objet Utilisateur (l&#39;utilisateur authentifié)
Definition: Supervision.h:89

◆ donneesArticleSelectionne [1/2]

void Supervision::donneesArticleSelectionne ( QVector< QStringList >  )
signal

◆ donneesArticleSelectionne [2/2]

void Supervision::donneesArticleSelectionne ( QStringList  )
signal

◆ erreurArticleInsuffisants

void Supervision::erreurArticleInsuffisants ( )
signal

◆ erreurAucunArticleAvecCodeBarre

void Supervision::erreurAucunArticleAvecCodeBarre ( )
signal

◆ erreurAucunCasierOuvert

void Supervision::erreurAucunCasierOuvert ( )
signal

◆ erreurDepassementQuantite

void Supervision::erreurDepassementQuantite ( )
signal

◆ erreurQuantiteTropElevee

void Supervision::erreurQuantiteTropElevee ( )
signal

◆ extraireNumeroCasier()

QString Supervision::extraireNumeroCasier ( QString  trame)
private

Définition de la méthode extraireNumeroCasier.

extrait le numéro de casier de la trame

Paramètres
trame
Renvoie
le numéro du casier

Définition à la ligne 503 du fichier Supervision.cpp.

Référencé par traiterTramePoids().

504 {
505  QString numCasier = trame.section(';',2,2);
506 
507  #ifdef DEBUG_SUPERVISION
508  qDebug() << Q_FUNC_INFO << "numCasier:" << numCasier;
509  #endif
510 
511  return numCasier;
512 }

◆ extrairePoids()

QString Supervision::extrairePoids ( QString  trame)
private

Définition de la méthode extrairePoids.

extrait le poids de l'article de la trame

Paramètres
trame
Renvoie
le poids de l'article sous forme d'un QString

Définition à la ligne 485 du fichier Supervision.cpp.

Référencé par traiterTramePoids().

486 {
487  QString poids = trame.section(';',3,3);
488 
489  #ifdef DEBUG_SUPERVISION
490  qDebug() << Q_FUNC_INFO << "poids:" << poids;
491  #endif
492 
493  return poids;
494 }

◆ getCasiers()

QVector< Casier * > Supervision::getCasiers ( )

Définition de la méthode getCasiers.

Renvoie les casiers

Renvoie
QVector<Casier*> casiers

Définition à la ligne 117 du fichier Supervision.cpp.

Références casiers.

Référencé par Ihm::allerFenetreMenu(), et Ihm::allerFenetreScannerObjet().

118 {
119  return casiers;
120 }
QVector< Casier * > casiers
les casiers de l&#39;armoire
Definition: Supervision.h:93

◆ getInformationsArmoire()

QStringList Supervision::getInformationsArmoire ( )

Définition de la méthode getInformationsArmoire.

Récupère les informations (nom, ...) sur l'armoire

Renvoie
les informations (nom, ...) sur l'armoire sous la forme d'un QStringList

Définition à la ligne 105 du fichier Supervision.cpp.

Références armoire, et Armoire::getInformations().

Référencé par Ihm::Ihm().

106 {
107  QStringList informationsArmoire = armoire->getInformations();
108 
109  return informationsArmoire;
110 }
Armoire * armoire
association d&#39;un objet Armoire
Definition: Supervision.h:91
QStringList getInformations()
Définition de la méthode getInformations.
Definition: Armoire.cpp:78

◆ mettreAJourMouvement()

void Supervision::mettreAJourMouvement ( QString  idUtilisateur,
QString  idStock,
QString  idAction,
QString  quantite 
)
private

Définition de la méthode mettreAJourMouvement.

permet de mettre à jour les mouvements

Paramètres
QStringidUtilisateur
QStringidStock
QStringidAction
QStringquantite

Définition à la ligne 565 du fichier Supervision.cpp.

Références bdd, Bdd::executer(), et recupererHorodatage().

Référencé par ajouterObjetAvecCodeBarre(), prendreObjetAvecCodeBarre(), et traiterTramePoids().

566 {
567  QString horodatage = recupererHorodatage();
568  QString requete ="INSERT INTO Mouvement(idUtilisateur, idStock, idAction, Quantite, Horodatage) VALUES('" + idUtilisateur + "', '" + idStock + "', '" + idAction + "', '" + quantite + "', '" + horodatage + "');";
569  bdd->executer(requete);
570 }
bool executer(QString requete)
exécute une requête SQL de type UPDATE, INSERT et DELETE
Definition: Bdd.cpp:146
Bdd * bdd
association d&#39;un objet Bdd (accès à la base de données)
Definition: Supervision.h:87
QString recupererHorodatage()
Définition de la méthode recupererHorodatage.

◆ prendreObjetAvecCodeBarre

void Supervision::prendreObjetAvecCodeBarre ( QString  codeBarre)
slot

Définition de la méthode prendreObjetAvecCodeBarre.

méthode qui permet de prendre un objet avec son code barres

Paramètres
QStringcodeBarre

Définition à la ligne 618 du fichier Supervision.cpp.

Références bdd, casiers, erreurArticleInsuffisants(), erreurAucunArticleAvecCodeBarre(), erreurAucunCasierOuvert(), Bdd::executer(), Utilisateur::getIdUtilisateur(), mettreAJourMouvement(), rechercherCasierOuvert(), recupererIdStockAvecNumeroCasier(), utilisateur, et verifierArticlePresentDansCasier().

Référencé par connecterSignauxSlots().

619 {
620  int numeroCasier = rechercherCasierOuvert();
621 
622  if(numeroCasier == -1)
623  return;
624 
625  #ifdef DEBUG_SUPERVISION
626  qDebug() << Q_FUNC_INFO << "codeBarre" << codeBarre << "casier" << numeroCasier;
627  #endif
628 
629  unsigned int quantiteDisponible = this->codeBarre->recupererQuantiteDisponibleParNumeroCasier(QString::number(casiers[numeroCasier]->getNumero()));
630  int quantite = quantiteDisponible - this->codeBarre->getQuantiteObjet();
631  QString idArticle = QString::number(this->codeBarre->recupererIdArticleAvecCodeBarres(codeBarre));
632 
633  if(casiers[numeroCasier]->estOuvert())
634  {
635  if(verifierArticlePresentDansCasier(QString::number(casiers[numeroCasier]->getNumero()), idArticle))
636  {
637  if(quantite >= 0)
638  {
639  QString strQuantite = QString::number(quantite);
640  QString requete = "UPDATE Stock SET Disponible = '" + strQuantite + "' WHERE Stock.idArticle = '" + idArticle + "'";
641  bdd->executer(requete);
642  QString idUtilisateur = utilisateur->getIdUtilisateur();
643  QString idStock = recupererIdStockAvecNumeroCasier(numeroCasier+1 );
644  QString idAction = "1";
645  QString quantiteMouvement = QString::number(this->codeBarre->getQuantiteObjet());
646  mettreAJourMouvement(idUtilisateur, idStock, idAction, quantiteMouvement);
647  }
648  else
649  {
651  }
652  }
653  else
654  {
656  }
657  }
658  else
659  {
661  }
662 }
void mettreAJourMouvement(QString idUtilisateur, QString idStock, QString idAction, QString quantite)
Définition de la méthode mettreAJourMouvement.
int rechercherCasierOuvert()
Définition de la méthode rechercherCasierOuvert.
unsigned int recupererQuantiteDisponibleParNumeroCasier(QString numeroCasier)
Définition de la méthode recupererQuantiteDisponibleParNumeroCasier.
Definition: CodeBarre.cpp:177
bool executer(QString requete)
exécute une requête SQL de type UPDATE, INSERT et DELETE
Definition: Bdd.cpp:146
CodeBarre * codeBarre
association d&#39;un objet CodeBarre
Definition: Supervision.h:90
unsigned int recupererIdArticleAvecCodeBarres(QString codeBarre)
Définition de la méthode recupererIdArticleAvecCodeBarres.
Definition: CodeBarre.cpp:193
void erreurAucunArticleAvecCodeBarre()
Bdd * bdd
association d&#39;un objet Bdd (accès à la base de données)
Definition: Supervision.h:87
QVector< Casier * > casiers
les casiers de l&#39;armoire
Definition: Supervision.h:93
QString getIdUtilisateur()
Définition de la méthode getIdUtilisateur.
Definition: Utilisateur.cpp:88
void erreurArticleInsuffisants()
bool verifierArticlePresentDansCasier(QString numCasier, QString idArticle)
Définition de la méthode verifierArticlePresentDansCasier.
unsigned int getQuantiteObjet()
Définition de la méthode getQuantiteObjet.
Definition: CodeBarre.cpp:120
void erreurAucunCasierOuvert()
Utilisateur * utilisateur
association d&#39;un objet Utilisateur (l&#39;utilisateur authentifié)
Definition: Supervision.h:89
QString recupererIdStockAvecNumeroCasier(int numeroCasier)
Définition de la méthode recupererIdStockAvecNumeroCasier.

◆ rechercherArticle

void Supervision::rechercherArticle ( QString  recherche)
slot

Définition de la méthode rechercherArticle.

Recherche un Article

Paramètres
recherche

Définition à la ligne 326 du fichier Supervision.cpp.

Références articlesTrouves(), bdd, et Bdd::recuperer().

Référencé par connecterSignauxSlots(), et Ihm::rechercherArticle().

327 {
328  QString requete = "SELECT Stock.NumeroCasier, Article.idType, Article.Nom, Stock.Quantite, Stock.Disponible, Article.Designation FROM Stock INNER JOIN Article ON Stock.idArticle = Article.idArticle WHERE Article.Nom LIKE '%" + recherche + "%' OR Article.Code LIKE '%" + recherche + "%' OR Article.Designation LIKE '%" + recherche + "%' ORDER BY Stock.NumeroCasier ASC";
329 
330  QVector<QStringList> listeArticlesTrouves;
331  bdd->recuperer(requete, listeArticlesTrouves);
332 
333  emit articlesTrouves(listeArticlesTrouves);
334 }
Bdd * bdd
association d&#39;un objet Bdd (accès à la base de données)
Definition: Supervision.h:87
bool recuperer(QString requete, QString &donnees)
exécute une requête SQL de type SELECT et récupère un champ d&#39;un seul enregistrement ...
Definition: Bdd.cpp:187
void articlesTrouves(QVector< QStringList >)

◆ rechercherCasierOuvert()

int Supervision::rechercherCasierOuvert ( )
private

Définition de la méthode rechercherCasierOuvert.

méthode pour rechercher le casier ouvert

Renvoie
int casierOuvert

Définition à la ligne 721 du fichier Supervision.cpp.

Références casiers.

Référencé par ajouterObjetAvecCodeBarre(), et prendreObjetAvecCodeBarre().

722 {
723  for(int i=0; i < casiers.size(); i++)
724  {
725  if(casiers[i]->estOuvert())
726  return i;
727  }
728  return -1;
729 }
QVector< Casier * > casiers
les casiers de l&#39;armoire
Definition: Supervision.h:93

◆ recupererDonneesUtilisateur()

QStringList Supervision::recupererDonneesUtilisateur ( QString  requeteBDD)
private

Définition de la méthode recupererDonneesUtilisateur.

Récupére des données utilisateur dans la base de donnéess

Paramètres
requeteBDD
Renvoie
La liste des données utilisateur

Définition à la ligne 169 du fichier Supervision.cpp.

Références bdd, et Bdd::recuperer().

Référencé par verifierAuthentificationBadge(), et verifierAuthentificationIdentifiant().

170 {
171  QStringList donnees;
172  bdd->recuperer(requeteBDD, donnees);
173 
174  return donnees;
175 }
Bdd * bdd
association d&#39;un objet Bdd (accès à la base de données)
Definition: Supervision.h:87
bool recuperer(QString requete, QString &donnees)
exécute une requête SQL de type SELECT et récupère un champ d&#39;un seul enregistrement ...
Definition: Bdd.cpp:187

◆ recupererHorodatage()

QString Supervision::recupererHorodatage ( )
private

Définition de la méthode recupererHorodatage.

permet de récupérer la date est l'heure actuel

Renvoie
QString horodatage

Définition à la ligne 546 du fichier Supervision.cpp.

Référencé par mettreAJourMouvement().

547 {
548  QDate qDate(QDate::currentDate());
549  QString date = qDate.toString("yyyy-MM-dd");
550 
551  QTime time(QTime::currentTime());
552  QString heure = time.toString("hh:mm:ss");
553 
554  return date + " " + heure;
555 }

◆ recupererIdStockAvecNumeroCasier()

QString Supervision::recupererIdStockAvecNumeroCasier ( int  numeroCasier)
private

Définition de la méthode recupererIdStockAvecNumeroCasier.

méthode pour récupérer l'idStock avec un numéro de casier

Paramètres
intnumeroCasier
Renvoie
QString IdStock

Définition à la ligne 737 du fichier Supervision.cpp.

Références bdd, et Bdd::recuperer().

Référencé par ajouterObjetAvecCodeBarre(), et prendreObjetAvecCodeBarre().

738 {
739  QString strNumeroCasier = QString::number(numeroCasier);
740  QString requete = "SELECT idStock FROM Stock WHERE numeroCasier = " + strNumeroCasier + ";";
741  QString donnees;
742  bdd->recuperer(requete, donnees);
743 
744  return donnees;
745 }
Bdd * bdd
association d&#39;un objet Bdd (accès à la base de données)
Definition: Supervision.h:87
bool recuperer(QString requete, QString &donnees)
exécute une requête SQL de type SELECT et récupère un champ d&#39;un seul enregistrement ...
Definition: Bdd.cpp:187

◆ reponseDemandeDeConnexion

void Supervision::reponseDemandeDeConnexion ( bool  ,
QString   
)
signal

◆ selectionnerArticle

void Supervision::selectionnerArticle ( QString  nomArticle)
slot

Définition de la méthode selectionnerArticle.

sélectionne un article

Paramètres
nomArticle

Définition à la ligne 341 du fichier Supervision.cpp.

Références ajouterDonneesArticle(), donneesArticleSelectionne(), Article::recupererDonneesArticleParNom(), Article::recupererDonneesArticleParNumeroCasier(), Article::recupererNombreCasiersPourNomArticle(), et Article::recupererNumeroCasierPourNomArticle().

Référencé par connecterSignauxSlots(), et Ihm::selectionnerArticle().

342 {
343  #ifdef DEBUG_SUPERVISION
344  qDebug() << Q_FUNC_INFO << "Nom article" << nomArticle;
345  #endif
346 
347  Article *article = new Article(this);
348  QVector<QStringList> donneesArticle;
349  QStringList donnees;
350 
351  unsigned int nombreCasiers = Article::recupererNombreCasiersPourNomArticle(nomArticle);
352  #ifdef DEBUG_SUPERVISION
353  qDebug() << Q_FUNC_INFO << "nombreCasiers" << nombreCasiers;
354  #endif
355 
356  if(nombreCasiers > 1)
357  {
358  QVector<QString> numeroDesCasiers;
359 
360  numeroDesCasiers = Article::recupererNumeroCasierPourNomArticle(nomArticle);
361 
362  for(int i = 0; i < numeroDesCasiers.size(); i++)
363  {
364  article->recupererDonneesArticleParNumeroCasier(numeroDesCasiers[i]);
365  ajouterDonneesArticle(article, donneesArticle, donnees);
366  }
367 
368  if(!donneesArticle.isEmpty())
369  {
370  emit donneesArticleSelectionne(donneesArticle);
371  }
372  }
373  else
374  {
375  article->recupererDonneesArticleParNom(nomArticle);
376  ajouterDonneesArticle(article, donneesArticle, donnees);
377 
378  if(!donneesArticle.isEmpty())
379  {
380  emit donneesArticleSelectionne(donneesArticle.at(0));
381  }
382  }
383 }
void donneesArticleSelectionne(QVector< QStringList >)
La classe Article traite les articles.
Definition: Article.h:62
void ajouterDonneesArticle(Article *article, QVector< QStringList > &donneesArticle, QStringList &donnees)
Définition de la méthode ajouterDonneesArticle.
bool recupererDonneesArticleParNom(QString nomArticle, int numCasier=0)
Récupère les données d&#39;un article de l&#39;armoire dans la base de données par son nomArticle.
Definition: Article.cpp:102
static QVector< QString > recupererNumeroCasierPourNomArticle(QString nomArticle)
Définition de la méthode recupererNumeroCasierPourNomArticle.
Definition: Article.cpp:249
static unsigned int recupererNombreCasiersPourNomArticle(QString nomArticle)
Définition de la méthode recupererNombreCasiersPourNomArticle.
Definition: Article.cpp:217
bool recupererDonneesArticleParNumeroCasier(QString numeroCasier)
Définition de la méthode recupererDonneesArticleParNumeroCasier.
Definition: Article.cpp:155

◆ traiterTramePoids

void Supervision::traiterTramePoids ( QString  trame)
slot

Définition de la méthode traiterTramePoids.

traite la trame poids reçue

Paramètres
trame

Définition à la ligne 391 du fichier Supervision.cpp.

Références comptageAutomatiqueAjouterOuPrendre(), comptageAutomatiqueQuantite(), compter(), erreurDepassementQuantite(), extraireNumeroCasier(), extrairePoids(), Article::get(), Utilisateur::getIdUtilisateur(), mettreAJourMouvement(), Article::mettreAJourQuantite(), Article::recupererDonneesArticleParNumeroCasier(), TABLE_ARTICLE_DISPONIBLE, TABLE_ARTICLE_ID_STOCK, TABLE_ARTICLE_NOM_ARTICLE, TABLE_ARTICLE_POIDS, TABLE_ARTICLE_QUANTITE, TABLE_ARTICLE_TARE, et utilisateur.

Référencé par connecterSignauxSlots(), et connecterUtilisateur().

392 {
393  #ifdef DEBUG_SUPERVISION
394  qDebug() << Q_FUNC_INFO << trame;
395  #endif
396 
397  QString numCasier = extraireNumeroCasier(trame);
398 
399  Article *article = new Article(this);
400  if(article->recupererDonneesArticleParNumeroCasier(numCasier))
401  {
402  #ifdef DEBUG_SUPERVISION
403  qDebug() << Q_FUNC_INFO << "Article" << article->get(TABLE_ARTICLE_NOM_ARTICLE) << article->get(TABLE_ARTICLE_QUANTITE) << article->get(TABLE_ARTICLE_DISPONIBLE);
404  #endif
405 
406  int nombreArticle = compter(article->get(TABLE_ARTICLE_POIDS), extrairePoids(trame), article->get(TABLE_ARTICLE_TARE));
407 
408  QString strArticleQuantite = article->get(TABLE_ARTICLE_QUANTITE);
409 
410  int articleQuantite = strArticleQuantite.toInt();
411 
412  if(nombreArticle > articleQuantite)
413  {
415  }
416  else
417  {
418  article->mettreAJourQuantite(QString::number(nombreArticle));
419 
420  QString idUtilisateur = utilisateur->getIdUtilisateur();
421  QString idStock = article->get(TABLE_ARTICLE_ID_STOCK);
422  QString idAction = QString::number(comptageAutomatiqueAjouterOuPrendre(article->get(TABLE_ARTICLE_DISPONIBLE), nombreArticle));
423  QString quantite = QString::number(comptageAutomatiqueQuantite(article->get(TABLE_ARTICLE_DISPONIBLE), nombreArticle));
424 
425  mettreAJourMouvement(idUtilisateur, idStock, idAction, quantite);
426  }
427  }
428  else
429  {
430  #ifdef DEBUG_SUPERVISION
431  qDebug() << Q_FUNC_INFO << "Article introuvable !";
432  #endif
433  }
434 }
La classe Article traite les articles.
Definition: Article.h:62
unsigned int comptageAutomatiqueQuantite(QString nbArticleAvant, int nbArticleApres)
Définition de la méthode comptageAutomatiqueQuantite.
void mettreAJourMouvement(QString idUtilisateur, QString idStock, QString idAction, QString quantite)
Définition de la méthode mettreAJourMouvement.
unsigned int comptageAutomatiqueAjouterOuPrendre(QString nbArticleAvant, int nbArticleApres)
Définition de la méthode comptageAutomatiqueAjouterOuPrendre.
Definition: Article.h:40
void mettreAJourQuantite(QString quantite)
Définition de la méthode mettreAJourQuantite.
Definition: Article.cpp:328
Definition: Article.h:30
QString extraireNumeroCasier(QString trame)
Définition de la méthode extraireNumeroCasier.
Definition: Article.h:39
QString getIdUtilisateur()
Définition de la méthode getIdUtilisateur.
Definition: Utilisateur.cpp:88
int compter(QString poidArticle, QString poidTotal, QString tare)
Définition de la méthode compter.
QString get(ChampArticle champ)
Définition de la méthode get.
Definition: Article.cpp:265
QString extrairePoids(QString trame)
Définition de la méthode extrairePoids.
Definition: Article.h:42
Definition: Article.h:41
void erreurDepassementQuantite()
bool recupererDonneesArticleParNumeroCasier(QString numeroCasier)
Définition de la méthode recupererDonneesArticleParNumeroCasier.
Definition: Article.cpp:155
Definition: Article.h:32
Utilisateur * utilisateur
association d&#39;un objet Utilisateur (l&#39;utilisateur authentifié)
Definition: Supervision.h:89

◆ verifierArticlePresentDansCasier()

bool Supervision::verifierArticlePresentDansCasier ( QString  numCasier,
QString  idArticle 
)
private

Définition de la méthode verifierArticlePresentDansCasier.

permet de vérifier si l'article est bien présent dans le casier

Paramètres
QStringnumCasier
QStringidArticle
Renvoie
bool articlePresent

Définition à la ligne 596 du fichier Supervision.cpp.

Références bdd, et Bdd::recuperer().

Référencé par ajouterObjetAvecCodeBarre(), et prendreObjetAvecCodeBarre().

597 {
598  QString requete = "SELECT idArticle FROM Stock WHERE numeroCasier = "+ numCasier + ";";
599  QString donnees;
600 
601  bdd->recuperer(requete, donnees);
602 
603  if(donnees == idArticle)
604  {
605  return true;
606  }
607  else
608  {
609  return false;
610  }
611 }
Bdd * bdd
association d&#39;un objet Bdd (accès à la base de données)
Definition: Supervision.h:87
bool recuperer(QString requete, QString &donnees)
exécute une requête SQL de type SELECT et récupère un champ d&#39;un seul enregistrement ...
Definition: Bdd.cpp:187

◆ verifierAuthentificationBadge

void Supervision::verifierAuthentificationBadge ( QString  badge)
slot

Définition de la méthode verifierAuthentificationBadge.

Permet la vérification des données utilisateur par badge

Paramètres
badgeChaîne de caractères de l'uid du badge

Définition à la ligne 128 du fichier Supervision.cpp.

Références connecterUtilisateur(), recupererDonneesUtilisateur(), et verifierDonneesUtilisateur().

Référencé par connecterSignauxSlots().

129 {
130  QString requeteBDD = "SELECT * from Utilisateur where Badge = '" + badge + "';";
131  QStringList donnees = recupererDonneesUtilisateur(requeteBDD);
132  if(verifierDonneesUtilisateur(donnees))
133  {
134  connecterUtilisateur(donnees);
135  }
136 }
bool verifierDonneesUtilisateur(QStringList &donnees)
Définition de la méthode verifierDonneesUtilisateur.
void connecterUtilisateur(QStringList &donnees)
Définition de la méthode connecterUtilisateur.
QStringList recupererDonneesUtilisateur(QString requeteBDD)
Définition de la méthode recupererDonneesUtilisateur.

◆ verifierAuthentificationIdentifiant

void Supervision::verifierAuthentificationIdentifiant ( QString  identifiant,
QString  motDePasse 
)
slot

Définition de la méthode verifierAuthentificationIdentifiant.

Permet la vérification des données utilisateur par champs

Paramètres
identifiantChaîne de caractères de l'identifiant
motDePasseChaîne de caractères du mot de passe

Définition à la ligne 145 du fichier Supervision.cpp.

Références bdd, connecterUtilisateur(), crypterMotDepasse(), Bdd::executer(), recupererDonneesUtilisateur(), et verifierDonneesUtilisateur().

Référencé par connecterSignauxSlots().

146 {
147  this->crypterMotDepasse(motDePasse);
148 
149  #ifdef CHANGE_PASSWORD_BEFORE
150  QString requete = QString("UPDATE Utilisateur SET MotDePasse='%1' WHERE Identifiant='%2'").arg(motDePasse).arg(identifiant);
151  bdd->executer(requete);
152  #endif
153 
154  QString requeteBDD = "SELECT * from Utilisateur where Identifiant = '" + identifiant + "' && MotDePasse = '" + motDePasse + "';";
155  QStringList donnees = recupererDonneesUtilisateur(requeteBDD);
156  if(verifierDonneesUtilisateur(donnees))
157  {
158  connecterUtilisateur(donnees);
159  }
160 }
bool executer(QString requete)
exécute une requête SQL de type UPDATE, INSERT et DELETE
Definition: Bdd.cpp:146
bool verifierDonneesUtilisateur(QStringList &donnees)
Définition de la méthode verifierDonneesUtilisateur.
Bdd * bdd
association d&#39;un objet Bdd (accès à la base de données)
Definition: Supervision.h:87
void crypterMotDepasse(QString &motDePasse)
Définition de la méthode crypterMotDepasse.
void connecterUtilisateur(QStringList &donnees)
Définition de la méthode connecterUtilisateur.
QStringList recupererDonneesUtilisateur(QString requeteBDD)
Définition de la méthode recupererDonneesUtilisateur.

◆ verifierDateValidite()

bool Supervision::verifierDateValidite ( QString  stringDateValidite)
private

Définition de la méthode verifierDateValidite.

Permet de vérifier la date de validité

Paramètres
stringDateValiditeChaîne de caractères de la date de validité
Renvoie
Si la date de validité est valide

Définition à la ligne 202 du fichier Supervision.cpp.

Référencé par verifierDonneesUtilisateur().

203 {
204  // Verification de la date de validité
205  QDate dateValidite = dateValidite.fromString(stringDateValidite,"yyyy-MM-dd");
206  QDate dateActuelle = QDate::currentDate();
207 
208  #ifdef DEBUG_SUPERVISION
209  qDebug() << "Date actuelle" << dateActuelle;
210  qDebug() << "Date validité" << dateValidite;
211  #endif
212 
213  if(dateActuelle <= dateValidite)
214  {
215  return true;
216  }
217 
218  return false;
219 }

◆ verifierDonneesUtilisateur()

bool Supervision::verifierDonneesUtilisateur ( QStringList &  donnees)
private

Définition de la méthode verifierDonneesUtilisateur.

Vérfie la date de validité et que les données ne sont pas vide sinon renvoie des erreurs

Paramètres
donneesChaîne de caractères de la date de validité
Renvoie
Si la demande de connexion est autoriser

Définition à la ligne 228 du fichier Supervision.cpp.

Références MESSAGE_ERREUR_UTILISATEUR_DATE_NON_VALIDE, MESSAGE_ERREUR_UTILISATEUR_NON_VALIDE, reponseDemandeDeConnexion(), TABLE_UTILISATEUR_DATE_VALIDITE, et verifierDateValidite().

Référencé par verifierAuthentificationBadge(), et verifierAuthentificationIdentifiant().

229 {
230  #ifdef DEBUG_SUPERVISON
231  qDebug() << Q_FUNC_INFO << donnees;
232  #endif
233 
234  if(!donnees.isEmpty())
235  {
237  {
238  emit reponseDemandeDeConnexion(true, "");
239  return true;
240  }
241  else
242  {
244  return false;
245  }
246  }
247  else
248  {
250  return false;
251  }
252 }
#define MESSAGE_ERREUR_UTILISATEUR_DATE_NON_VALIDE
Definition: Ihm.h:34
#define MESSAGE_ERREUR_UTILISATEUR_NON_VALIDE
Definition: Ihm.h:33
Emplacment de la date de validite.
Definition: Utilisateur.h:32
bool verifierDateValidite(QString stringDateValidite)
Définition de la méthode verifierDateValidite.
void reponseDemandeDeConnexion(bool, QString)

Documentation des données membres

◆ armoire

Armoire* Supervision::armoire
private

association d'un objet Armoire

Définition à la ligne 91 du fichier Supervision.h.

Référencé par connecterSignauxSlots(), creerCasiers(), getInformationsArmoire(), et Supervision().

◆ bdd

◆ casiers

QVector<Casier*> Supervision::casiers
private

les casiers de l'armoire

Définition à la ligne 93 du fichier Supervision.h.

Référencé par ajouterObjetAvecCodeBarre(), creerCasiers(), getCasiers(), prendreObjetAvecCodeBarre(), et rechercherCasierOuvert().

◆ codeBarre

CodeBarre* Supervision::codeBarre
private

association d'un objet CodeBarre

Définition à la ligne 90 du fichier Supervision.h.

Référencé par connecterSignauxSlots(), et Supervision().

◆ communication

Communication* Supervision::communication
private

association d'un objet Communication

Définition à la ligne 92 du fichier Supervision.h.

Référencé par connecterSignauxSlots(), et Supervision().

◆ ihm

Ihm* Supervision::ihm
private

association d'un objet Ihm (fenêtre princiaple de l'application)

Définition à la ligne 86 du fichier Supervision.h.

Référencé par connecterSignauxSlots(), et creerCasiers().

◆ rfid

Rfid* Supervision::rfid
private

association d'un objet Rfid (le lecteur de badge)

Définition à la ligne 88 du fichier Supervision.h.

Référencé par connecterSignauxSlots(), et Supervision().

◆ utilisateur

Utilisateur* Supervision::utilisateur
private

association d'un objet Utilisateur (l'utilisateur authentifié)

Définition à la ligne 89 du fichier Supervision.h.

Référencé par ajouterObjetAvecCodeBarre(), connecterUtilisateur(), deconnecterUtilisateur(), prendreObjetAvecCodeBarre(), Supervision(), et traiterTramePoids().


La documentation de cette classe a été générée à partir des fichiers suivants :