Projet e-stock  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 rechercherArticle (QString recherche)
 Définition de la méthode rechercherArticle. Plus de détails...
 
void selectionnerArticle (QString nomArticle)
 [Supervision_rechercherArticle] Plus de détails...
 
void traiterTramePoids (QString trame)
 [selectionnerArticle_supervision] 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)
 [verifierAuthentificationBadge] Plus de détails...
 

Signaux

void articlesTrouves (QVector< QStringList >)
 
void donneesArticleSelectionne (QVector< QStringList >)
 
void donneesArticleSelectionne (QStringList)
 
void erreurDepassementQuantite ()
 
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...
 
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...
 
int arrondir (QString arrondire)
 Définition de la méthode arrondir. 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 ()
 [connecterUtilisateur] Plus de détails...
 
void connecterUtilisateur (QStringList &donnees)
 [verifierDonneesUtilisateur] Plus de détails...
 
void crypterMotDepasse (QString &motDePasse)
 [recupererDonneesUtilisateur] 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...
 
QStringList recupererDonneesUtilisateur (QString requeteBDD)
 [verifierAuthentificationIdentifiant] Plus de détails...
 
bool verifierDateValidite (QString stringDateValidite)
 [crypterMotDepasse] 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(), Communication::envoyerRequetePoids(), Bdd::getInstance(), rfid, traiterTramePoids(), 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  #ifdef SUPERVISION_TEST_POIDS
53  QString trameTest = "CASIERS;3;1;2100";
54  traiterTramePoids(trameTest);
55  #endif
56 
57  //envoyer demande trame poids au démarrage pour mettre à jour le stock au démarrage
59 }
Armoire * armoire
association d&#39;un objet Armoire
Definition: Supervision.h:84
void connecterSignauxSlots()
[connecterUtilisateur]
CodeBarre * codeBarre
association d&#39;un objet CodeBarre
Definition: Supervision.h:83
Communication * communication
association d&#39;un objet Communication
Definition: Supervision.h:85
bool connecter()
Définition méthose connecter()
Definition: Bdd.cpp:93
void traiterTramePoids(QString trame)
[selectionnerArticle_supervision]
Bdd * bdd
association d&#39;un objet Bdd (accès à la base de données)
Definition: Supervision.h:80
Rfid * rfid
association d&#39;un objet Rfid (le lecteur de badge)
Definition: Supervision.h:81
Déclaration de la classe CodeBarre.
Definition: CodeBarre.h:31
La classe Communication permet de communiquer avec le port série.
Definition: Communication.h:46
La classe QObject est la classe de base de tous les objets Qt. Elle permet à ces objets Qt de dispose...
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:79
La classe Armoire traite les articles.
Definition: Armoire.h:49
static Bdd * getInstance()
Définition méthode getInstance()
Definition: Bdd.cpp:53
void envoyerRequetePoids(QString numeroCasier=0)
Définition de la méthode envoyerRequetePoids.
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:82

◆ ~Supervision()

Supervision::~Supervision ( )

Définition du destructeur de Supervision.

Détruit un objet Supervision

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

67 {
68 
69 }

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 524 du fichier Supervision.cpp.

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

Référencé par connecterSignauxSlots().

525 {
526  donnees << article->get(TABLE_ARTICLE_QUANTITE);
527  donnees << article->get(TABLE_ARTICLE_DISPONIBLE);
528  donnees << article->get(TABLE_ARTICLE_NUMERO_CASIER);
529 
530  donneesArticle.push_back(donnees);
531  donnees.clear();
532 }
Definition: Article.h:46
Definition: Article.h:41
Definition: Article.h:40
QString get(ChampArticle champ)
Définition de la méthode get.
Definition: Article.cpp:266

◆ arrondir()

int Supervision::arrondir ( QString  arrondire)
private

Définition de la méthode arrondir.

permet d'arrondir

Paramètres
arrondirele nombre à arrondir
Renvoie
le nombre arrondie sous forme d'un entier

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

Références PRECISION.

Référencé par compter().

509 {
510  double doubleArrondire = arrondire.toDouble();
511  QString strArrondire = QString::number(doubleArrondire, 'f', PRECISION);
512  int doubleArrondie = strArrondire.toInt();
513 
514  return doubleArrondie;
515 }
#define PRECISION
Definition: Supervision.h:26

◆ articlesTrouves

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

Référencé par connecterSignauxSlots().

◆ 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 468 du fichier Supervision.cpp.

Références arrondir(), et PRECISION.

Référencé par traiterTramePoids().

469 {
470  //arrondie et conversion en entier
471  int intPoidsArticle = arrondir(poidsArticle);
472 
473  #ifdef DEBUG_SUPERVISION
474  qDebug() << Q_FUNC_INFO << "intPoidsArticle:" << intPoidsArticle;
475  #endif
476 
477  int intPoidsTotal = arrondir(poidsTotal);
478 
479  #ifdef DEBUG_SUPERVISION
480  qDebug() << Q_FUNC_INFO << "intPoidsTotal:" << intPoidsTotal;
481  #endif
482 
483  int intTare = arrondir(tare);
484 
485  #ifdef DEBUG_SUPERVISION
486  qDebug() << Q_FUNC_INFO << "tare:" << intTare;
487  #endif
488 
489  //comptage du nombre d'articles
490 
491  double doubleNombreArticle = (intPoidsTotal - intTare) / intPoidsArticle;
492  QString strNombreArticle = QString::number(doubleNombreArticle, 'f', PRECISION);
493  int nombreArticle = strNombreArticle.toInt();
494 
495  #ifdef DEBUG_SUPERVISION
496  qDebug() << Q_FUNC_INFO << "nombreArticle:" << nombreArticle;
497  #endif
498 
499  return nombreArticle;
500 }
#define PRECISION
Definition: Supervision.h:26
int arrondir(QString arrondire)
Définition de la méthode arrondir.

◆ connecterSignauxSlots()

void Supervision::connecterSignauxSlots ( )
private

[connecterUtilisateur]

Définition de la méthode connecterSignauxSlots

Etablie la connexion entre les diffrents signaux et slots

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

Références ajouterDonneesArticle(), armoire, articlesTrouves(), bdd, communication, donneesArticleSelectionne(), erreurDepassementQuantite(), ihm, rechercherArticle(), Bdd::recuperer(), Article::recupererDonneesArticleParNom(), Article::recupererDonneesArticleParNumeroCasier(), Article::recupererNombreCasiersPourNomArticle(), Article::recupererNumeroCasierPourNomArticle(), reponseDemandeDeConnexion(), rfid, selectionnerArticle(), traiterTramePoids(), verifierAuthentificationBadge(), et verifierAuthentificationIdentifiant().

Référencé par Supervision().

286 {
287  // Armoire
288  connect(armoire, SIGNAL(informationsArmoire(QStringList)), ihm, SLOT(afficherInformationsArmoire(QStringList)));
289 
290  // Authentification Badge
291  connect(ihm, SIGNAL(badgeDetecte(QString)), rfid, SLOT(traiterBadge(QString)));
292  connect(rfid, SIGNAL(erreurBadgeInvalide(QString)), ihm, SLOT(afficherErreurBadge(QString)));
293  connect(rfid, SIGNAL(nouveauUidBadge(QString)), this, SLOT(verifierAuthentificationBadge(QString)));
294 
295  // Authentification Identifiant
296  connect(ihm, SIGNAL(identifiantDetecte(QString, QString)), this, SLOT(verifierAuthentificationIdentifiant(QString, QString)));
297 
298  // Authentification Utilisateur
299  connect(this, SIGNAL(reponseDemandeDeConnexion(bool,QString)), ihm, SLOT(traiterDemandeDeConnexion(bool,QString)));
300 
301  // Article
302  connect(communication, SIGNAL(envoieTramePoids(QString)), this, SLOT(traiterTramePoids(QString)));
303  connect(ihm, SIGNAL(rechercheArticle(QString)), this, SLOT(rechercherArticle(QString)));
304  connect(this, SIGNAL(articlesTrouves(QVector<QStringList>)), ihm, SLOT(mettreAJourListeArticles(QVector<QStringList>)));
305  connect(ihm, SIGNAL(articleSelectionne(QString)), this, SLOT(selectionnerArticle(QString)));
306  connect(this, SIGNAL(donneesArticleSelectionne(QStringList)), ihm, SLOT(afficherDonneesArticleSelectionne(QStringList)));
307  connect(this, SIGNAL(donneesArticleSelectionne(QVector<QStringList>)), ihm, SLOT(afficherDonneesArticleSelectionne(QVector<QStringList>)));
308  connect(this, SIGNAL(erreurDepassementQuantite()), ihm, SLOT(afficherErreurDepassementQuantite()));
309 }
void verifierAuthentificationIdentifiant(QString identifiant, QString motDePasse)
[verifierAuthentificationBadge]
void donneesArticleSelectionne(QVector< QStringList >)
Armoire * armoire
association d&#39;un objet Armoire
Definition: Supervision.h:84
Communication * communication
association d&#39;un objet Communication
Definition: Supervision.h:85
void traiterTramePoids(QString trame)
[selectionnerArticle_supervision]
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:81
void rechercherArticle(QString recherche)
Définition de la méthode rechercherArticle.
void selectionnerArticle(QString nomArticle)
[Supervision_rechercherArticle]
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:79
void erreurDepassementQuantite()

◆ connecterUtilisateur()

void Supervision::connecterUtilisateur ( QStringList &  donnees)
private

[verifierDonneesUtilisateur]

[connecterUtilisateur]

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 267 du fichier Supervision.cpp.

Référencé par getInformationsArmoire(), et verifierDateValidite().

268 {
269  if(utilisateur != nullptr)
270  {
272  }
273  utilisateur = new Utilisateur(donnees, this);
274  #ifdef DEBUG_SUPERVISION
275  qDebug() << Q_FUNC_INFO << utilisateur->getIdentifiantUtilisateur() << "authentifié";
276  #endif
277 }
QString getIdentifiantUtilisateur()
Définition de la méthode getIdentifiantUtilisateur.
Definition: Utilisateur.cpp:78
void deconnecterUtilisateur()
Méthode qui permet la déconnexion de l&#39;utilisateur.
Definition: Supervision.cpp:76
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:82

◆ creerCasiers()

void Supervision::creerCasiers ( )

Définition de la méthode creerCasiers.

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

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

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

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

91 {
92  QString nbCasiers = armoire->getNbCasiers();
93  qDebug() << Q_FUNC_INFO << "nbCasiers" << nbCasiers;
94  if(!nbCasiers.isEmpty())
95  {
96  for(int i=0; i < nbCasiers.toInt(); i++)
97  {
98  Casier* casier = new Casier(i+1, ihm);
99  casiers.push_back(casier);
100  ihm->placerCasier(casier);
101  }
102  }
103 }
Armoire * armoire
association d&#39;un objet Armoire
Definition: Supervision.h:84
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:32
QVector< Casier * > casiers
les casiers de l&#39;armoire
Definition: Supervision.h:86
void placerCasier(Casier *casier)
Définition de la méthode placerCasier.
Definition: Ihm.cpp:87
Ihm * ihm
association d&#39;un objet Ihm (fenêtre princiaple de l&#39;application)
Definition: Supervision.h:79

◆ crypterMotDepasse()

void Supervision::crypterMotDepasse ( QString &  motDePasse)
private

[recupererDonneesUtilisateur]

[crypterMotDepasse]

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 186 du fichier Supervision.cpp.

Référencé par getInformationsArmoire().

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

◆ 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 76 du fichier Supervision.cpp.

Références utilisateur.

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

77 {
78  if(utilisateur != nullptr)
79  {
80  delete utilisateur;
81  utilisateur = nullptr;
82  }
83 }
Utilisateur * utilisateur
association d&#39;un objet Utilisateur (l&#39;utilisateur authentifié)
Definition: Supervision.h:82

◆ donneesArticleSelectionne [1/2]

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

Référencé par connecterSignauxSlots().

◆ donneesArticleSelectionne [2/2]

void Supervision::donneesArticleSelectionne ( QStringList  )
signal

◆ erreurDepassementQuantite

void Supervision::erreurDepassementQuantite ( )
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 449 du fichier Supervision.cpp.

Référencé par traiterTramePoids().

450 {
451  QString numCasier = trame.section(';',2,2);
452 
453  #ifdef DEBUG_SUPERVISION
454  qDebug() << Q_FUNC_INFO << "numCasier:" << numCasier;
455  #endif
456 
457  return numCasier;
458 }

◆ 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 431 du fichier Supervision.cpp.

Référencé par traiterTramePoids().

432 {
433  QString poids = trame.section(';',3,3);
434 
435  #ifdef DEBUG_SUPERVISION
436  qDebug() << Q_FUNC_INFO << "poids:" << poids;
437  #endif
438 
439  return poids;
440 }

◆ 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 111 du fichier Supervision.cpp.

Références armoire, bdd, connecterUtilisateur(), crypterMotDepasse(), Bdd::executer(), Armoire::getInformations(), Bdd::recuperer(), recupererDonneesUtilisateur(), verifierAuthentificationBadge(), verifierAuthentificationIdentifiant(), et verifierDonneesUtilisateur().

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

112 {
113  QStringList informationsArmoire = armoire->getInformations();
114 
115  return informationsArmoire;
116 }
Armoire * armoire
association d&#39;un objet Armoire
Definition: Supervision.h:84
QStringList getInformations()
Définition de la méthode getInformations.
Definition: Armoire.cpp:78

◆ rechercherArticle

void Supervision::rechercherArticle ( QString  recherche)
slot

Définition de la méthode rechercherArticle.

[Supervision_rechercherArticle]

Recherche un Article

Paramètres
recherche

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

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

319 {
320  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";
321 
322  QVector<QStringList> listeArticlesTrouves;
323  bdd->recuperer(requete, listeArticlesTrouves);
324 
325  emit articlesTrouves(listeArticlesTrouves);
326 }
Bdd * bdd
association d&#39;un objet Bdd (accès à la base de données)
Definition: Supervision.h:80
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 >)

◆ recupererDonneesUtilisateur()

QStringList Supervision::recupererDonneesUtilisateur ( QString  requeteBDD)
private

[verifierAuthentificationIdentifiant]

[recupererDonneesUtilisateur]

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 170 du fichier Supervision.cpp.

Référencé par getInformationsArmoire().

171 {
172  QStringList donnees;
173  bdd->recuperer(requeteBDD, donnees);
174 
175  return donnees;
176 }
Bdd * bdd
association d&#39;un objet Bdd (accès à la base de données)
Definition: Supervision.h:80
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

[Supervision_rechercherArticle]

Définition de la méthode selectionnerArticle

sélectionne un article

Paramètres
nomArticlele nom de l'article sélectionné[selectionnerArticle_supervision]

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

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

336 {
337  #ifdef DEBUG_SUPERVISION
338  qDebug() << Q_FUNC_INFO << "Nom article" << nomArticle;
339  #endif
340 
341  Article *article = new Article(this);
342  QVector<QStringList> donneesArticle;
343  QStringList donnees;
344 
345  unsigned int nombreCasiers = Article::recupererNombreCasiersPourNomArticle(nomArticle);
346  #ifdef DEBUG_SUPERVISION
347  qDebug() << Q_FUNC_INFO << "nombreCasiers" << nombreCasiers;
348  #endif
349 
350  if(nombreCasiers > 1)
351  {
352  QVector<QString> numeroDesCasiers;
353 
354  numeroDesCasiers = Article::recupererNumeroCasierPourNomArticle(nomArticle);
355 
356  for(int i = 0; i < numeroDesCasiers.size(); i++)
357  {
358  article->recupererDonneesArticleParNumeroCasier(numeroDesCasiers[i]);
359  ajouterDonneesArticle(article, donneesArticle, donnees);
360  }
361 
362  if(!donneesArticle.isEmpty())
363  {
364  emit donneesArticleSelectionne(donneesArticle);
365  }
366  }
367  else
368  {
369  article->recupererDonneesArticleParNom(nomArticle);
370  ajouterDonneesArticle(article, donneesArticle, donnees);
371 
372  if(!donneesArticle.isEmpty())
373  {
374  emit donneesArticleSelectionne(donneesArticle.at(0));
375  }
376  }
377 }
void donneesArticleSelectionne(QVector< QStringList >)
La classe Article traite les articles.
Definition: Article.h:63
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:103
static QVector< QString > recupererNumeroCasierPourNomArticle(QString nomArticle)
Définition de la méthode recupererNumeroCasierPourNomArticle.
Definition: Article.cpp:250
static unsigned int recupererNombreCasiersPourNomArticle(QString nomArticle)
Définition de la méthode recupererNombreCasiersPourNomArticle.
Definition: Article.cpp:218
bool recupererDonneesArticleParNumeroCasier(QString numeroCasier)
Définition de la méthode recupererDonneesArticleParNumeroCasier.
Definition: Article.cpp:156

◆ traiterTramePoids

void Supervision::traiterTramePoids ( QString  trame)
slot

[selectionnerArticle_supervision]

Définition de la méthode traiterTramePoids

traite la trame poids reçue

Paramètres
trame

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

Références compter(), erreurDepassementQuantite(), extraireNumeroCasier(), extrairePoids(), Article::get(), Article::mettreAJourQuantite(), Article::recupererDonneesArticleParNumeroCasier(), TABLE_ARTICLE_DISPONIBLE, TABLE_ARTICLE_NOM_ARTICLE, TABLE_ARTICLE_POIDS, TABLE_ARTICLE_QUANTITE, et TABLE_ARTICLE_TARE.

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

387 {
388  #ifdef DEBUG_SUPERVISION
389  qDebug() << Q_FUNC_INFO << trame;
390  #endif
391 
392  QString numCasier = extraireNumeroCasier(trame);
393 
394  Article *article = new Article(this);
395  if(article->recupererDonneesArticleParNumeroCasier(numCasier))
396  {
397  #ifdef DEBUG_SUPERVISION
398  qDebug() << Q_FUNC_INFO << "Article" << article->get(TABLE_ARTICLE_NOM_ARTICLE) << article->get(TABLE_ARTICLE_QUANTITE) << article->get(TABLE_ARTICLE_DISPONIBLE);
399  #endif
400 
401  int nombreArticle = compter(article->get(TABLE_ARTICLE_POIDS), extrairePoids(trame), article->get(TABLE_ARTICLE_TARE));
402 
403  QString strArticleQuantite = article->get(TABLE_ARTICLE_QUANTITE);
404 
405  int articleQuantite = strArticleQuantite.toInt();
406 
407  if(nombreArticle > articleQuantite)
408  {
410  }
411  else
412  {
413  article->mettreAJourQuantite(QString::number(nombreArticle));
414  }
415  }
416  else
417  {
418  #ifdef DEBUG_SUPERVISION
419  qDebug() << Q_FUNC_INFO << "Article introuvable !";
420  #endif
421  }
422 }
La classe Article traite les articles.
Definition: Article.h:63
Definition: Article.h:41
void mettreAJourQuantite(QString quantite)
Définition de la méthode mettreAJourQuantite.
Definition: Article.cpp:329
QString extraireNumeroCasier(QString trame)
Définition de la méthode extraireNumeroCasier.
Definition: Article.h:40
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:266
QString extrairePoids(QString trame)
Définition de la méthode extrairePoids.
Definition: Article.h:43
Definition: Article.h:42
void erreurDepassementQuantite()
bool recupererDonneesArticleParNumeroCasier(QString numeroCasier)
Définition de la méthode recupererDonneesArticleParNumeroCasier.
Definition: Article.cpp:156
Definition: Article.h:33

◆ verifierAuthentificationBadge

void Supervision::verifierAuthentificationBadge ( QString  badge)
slot

Définition de la méthode verifierAuthentificationBadge.

[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 125 du fichier Supervision.cpp.

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

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

◆ verifierAuthentificationIdentifiant

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

[verifierAuthentificationBadge]

[verifierAuthentificationIdentifiant]

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 144 du fichier Supervision.cpp.

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

145 {
146  this->crypterMotDepasse(motDePasse);
147 
148  #ifdef CHANGE_PASSWORD_BEFORE
149  QString requete = QString("UPDATE Utilisateur SET MotDePasse='%1' WHERE Identifiant='%2'").arg(motDePasse).arg(identifiant);
150  bdd->executer(requete);
151  #endif
152 
153  QString requeteBDD = "SELECT * from Utilisateur where Identifiant = '" + identifiant + "' && MotDePasse = '" + motDePasse + "';";
154  QStringList donnees = recupererDonneesUtilisateur(requeteBDD);
155  if(verifierDonneesUtilisateur(donnees))
156  {
157  connecterUtilisateur(donnees);
158  }
159 }
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:80
void crypterMotDepasse(QString &motDePasse)
[recupererDonneesUtilisateur]
void connecterUtilisateur(QStringList &donnees)
[verifierDonneesUtilisateur]
QStringList recupererDonneesUtilisateur(QString requeteBDD)
[verifierAuthentificationIdentifiant]

◆ verifierDateValidite()

bool Supervision::verifierDateValidite ( QString  stringDateValidite)
private

[crypterMotDepasse]

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 206 du fichier Supervision.cpp.

Références connecterUtilisateur(), deconnecterUtilisateur(), Utilisateur::getIdentifiantUtilisateur(), MESSAGE_ERREUR_UTILISATEUR_DATE_NON_VALIDE, MESSAGE_ERREUR_UTILISATEUR_NON_VALIDE, reponseDemandeDeConnexion(), TABLE_UTILISATEUR_DATE_VALIDITE, utilisateur, et verifierDonneesUtilisateur().

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

◆ verifierDonneesUtilisateur()

bool Supervision::verifierDonneesUtilisateur ( QStringList &  donnees)
private

Définition de la méthode verifierDonneesUtilisateur.

[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 233 du fichier Supervision.cpp.

Référencé par getInformationsArmoire(), et verifierDateValidite().

234 {
235  #ifdef DEBUG_SUPERVISON
236  qDebug() << Q_FUNC_INFO << donnees;
237  #endif
238 
239  if(!donnees.isEmpty())
240  {
242  {
243  emit reponseDemandeDeConnexion(true, "");
244  return true;
245  }
246  else
247  {
249  return false;
250  }
251  }
252  else
253  {
255  return false;
256  }
257 }
#define MESSAGE_ERREUR_UTILISATEUR_DATE_NON_VALIDE
Definition: Ihm.h:36
#define MESSAGE_ERREUR_UTILISATEUR_NON_VALIDE
Definition: Ihm.h:35
Emplacment de la date de validite.
Definition: Utilisateur.h:32
bool verifierDateValidite(QString stringDateValidite)
[crypterMotDepasse]
void reponseDemandeDeConnexion(bool, QString)

Documentation des données membres

◆ armoire

Armoire* Supervision::armoire
private

association d'un objet Armoire

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

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

◆ bdd

Bdd* Supervision::bdd
private

association d'un objet Bdd (accès à la base de données)

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

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

◆ casiers

QVector<Casier*> Supervision::casiers
private

les casiers de l'armoire

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

Référencé par creerCasiers().

◆ codeBarre

CodeBarre* Supervision::codeBarre
private

association d'un objet CodeBarre

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

Référencé par Supervision().

◆ communication

Communication* Supervision::communication
private

association d'un objet Communication

Définition à la ligne 85 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 79 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 81 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 82 du fichier Supervision.h.

Référencé par deconnecterUtilisateur(), Supervision(), et verifierDateValidite().


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