Projet e-stock  1.0
BTS SN-IR 2019
Connecteurs publics | Fonctions membres publiques | Fonctions membres protégées | Fonctions membres privées | Attributs privés | Liste de tous les membres
Référence de la classe IhmGestionArmoire

#include <IhmGestionArmoire.h>

Graphe de collaboration de IhmGestionArmoire:
Collaboration graph

Connecteurs publics

void fermer ()
 ferme l'IhmGestionArmoire et supprime l'utilisateur crée Plus de détails...
 
void gererGroupe ()
 Identifiaction du status de l'utilisateur gestionnaire ou administrateur. Plus de détails...
 
void selectionnerCasier (int)
 Permet de savoir quel casier a était sélectionner. Plus de détails...
 
void rechercherArticle ()
 Requete permettant la recherche d'article dans les casiers. Plus de détails...
 
void effacerRechercheArticle ()
 
void effacerLaListeArticle ()
 
void effacerLaSelectionArticle ()
 
void effacerMessageNumeroCasier ()
 
void selectionnerArticle (int index)
 

Fonctions membres publiques

 IhmGestionArmoire (QWidget *parent=nullptr)
 
 ~IhmGestionArmoire ()
 
UtilisateurgetUtilisateur ()
 Retourne l'association utilisateur. Plus de détails...
 
CasiergetCasier ()
 
void setUtilisateur (Utilisateur *utilisateur)
 Crée l'association utilisateur. Plus de détails...
 

Fonctions membres protégées

void showEvent (QShowEvent *ev)
 S'exécute à chaque fois que la fenêtre IhmGestionArmoire est affichée. Plus de détails...
 

Fonctions membres privées

void initialiserFenetre ()
 Initialise le mode plein écran. Plus de détails...
 
void initialiserClavierVirtuel ()
 Initialise le clavier virtuel. Plus de détails...
 
void supprimerClavierVirtuel ()
 Supprime le clavier virtuel. Plus de détails...
 
void fermerClavierVirtuel ()
 ferme le clavier virtuel Plus de détails...
 
void afficherCasiers ()
 
QString lireAdresseIP ()
 

Attributs privés

Ui::IhmGestionArmoire * ui
 agrégation de la définition de la fenêtre UI Plus de détails...
 
BaseDeDonneesbdd
 agrégation de l'objet BaseDeDonnees Plus de détails...
 
Utilisateurutilisateur
 
GestionBalancesgestionBalances
 
IhmGestionGroupeihmGestionGroupe
 la fenêtre de gestion des groupes Plus de détails...
 
QVector< Casier * > casiers
 les casier de l'armoire Plus de détails...
 
QVector< QStringList > articlesTrouves
 
Articlearticle
 

Documentation des constructeurs et destructeur

◆ IhmGestionArmoire()

IhmGestionArmoire::IhmGestionArmoire ( QWidget *  parent = nullptr)
explicit

Références afficherCasiers(), bdd, BaseDeDonnees::connecter(), BaseDeDonnees::estConnecte(), fermer(), gererGroupe(), BaseDeDonnees::getInstance(), ihmGestionGroupe, initialiserFenetre(), rechercherArticle(), selectionnerArticle(), et ui.

31  : QWidget(parent), ui(new Ui::IhmGestionArmoire), utilisateur(nullptr)//, casiers(NB_CASIERS_MAX, nullptr)
32 {
33  ui->setupUi(this);
34  qDebug() << Q_FUNC_INFO;
35 
37  if(!bdd->estConnecte())
38  bdd->connecter();
39 
40  // crée les casiers
42 
44  ihmGestionGroupe->hide();
45 
46  // Temporaire
47  //gestionBalances = new GestionBalances;
48 
49  connect(ui->boutonFermeture, SIGNAL(clicked()), this, SLOT(fermer()));
50  //connect(ui->lineEditRechercheArticle, SIGNAL(editingFinished()), this, SLOT(rechercherArticle()));
51  connect(ui->boutonRechercheArticle, SIGNAL(clicked()), this, SLOT(rechercherArticle()));
52  connect(ui->comboBoxListeArticles, SIGNAL(currentIndexChanged(int)), this, SLOT(selectionnerArticle(int)));
53  // pour administrateur
54  connect(ui->boutonGestionGroupe, SIGNAL(clicked()), this, SLOT(gererGroupe()));
55 
57 }
static BaseDeDonnees * getInstance(QString type="QMYSQL")
Definition: ihm-estock/baseDeDonnees.cpp:38
BaseDeDonnees * bdd
agrégation de l&#39;objet BaseDeDonnees
Definition: IhmGestionArmoire.h:38
void afficherCasiers()
Definition: IhmGestionArmoire.cpp:325
Ui::IhmGestionArmoire * ui
agrégation de la définition de la fenêtre UI
Definition: IhmGestionArmoire.h:37
bool estConnecte()
Definition: ihm-estock/baseDeDonnees.cpp:70
void fermer()
ferme l&#39;IhmGestionArmoire et supprime l&#39;utilisateur crée
Definition: IhmGestionArmoire.cpp:194
void selectionnerArticle(int index)
Definition: IhmGestionArmoire.cpp:290
void gererGroupe()
Identifiaction du status de l&#39;utilisateur gestionnaire ou administrateur.
Definition: IhmGestionArmoire.cpp:214
IhmGestionGroupe * ihmGestionGroupe
la fenêtre de gestion des groupes
Definition: IhmGestionArmoire.h:41
La fenêtre de gestion des groupes.
Definition: IhmGestionGroupe.h:37
Utilisateur * utilisateur
Definition: IhmGestionArmoire.h:39
bool connecter(QString nomBase=BDD_NOMBASE, QString username=BDD_USERNAME, QString password=BDD_PASSWORD, QString serveur=BDD_SERVEUR)
Definition: ihm-estock/baseDeDonnees.cpp:76
void rechercherArticle()
Requete permettant la recherche d&#39;article dans les casiers.
Definition: IhmGestionArmoire.cpp:249
void initialiserFenetre()
Initialise le mode plein écran.
Definition: IhmGestionArmoire.cpp:128

◆ ~IhmGestionArmoire()

IhmGestionArmoire::~IhmGestionArmoire ( )

Références BaseDeDonnees::detruireInstance(), et ui.

66 {
68  delete ui;
69  qDebug() << Q_FUNC_INFO;
70 }
Ui::IhmGestionArmoire * ui
agrégation de la définition de la fenêtre UI
Definition: IhmGestionArmoire.h:37
static void detruireInstance()
Definition: ihm-estock/baseDeDonnees.cpp:51

Documentation des fonctions membres

◆ afficherCasiers()

void IhmGestionArmoire::afficherCasiers ( )
private

Références bdd, casiers, lireAdresseIP(), BaseDeDonnees::recuperer(), selectionnerCasier(), et ui.

Référencé par IhmGestionArmoire().

326 {
327  QString nbCasiers;
328  QString adresseIP = lireAdresseIP();
329  qDebug() << Q_FUNC_INFO << "adresseIP" << adresseIP;
330  if(!adresseIP.isEmpty())
331  {
332  QString requeteNbCasiers = "SELECT Armoire.nbCasiers FROM Armoire WHERE Armoire.AdresseIP = '" + adresseIP + "'";
333  bdd->recuperer(requeteNbCasiers, nbCasiers);
334  qDebug() << Q_FUNC_INFO << "nbCasiers" << nbCasiers;
335  for(int i=0; i < nbCasiers.toInt(); i++)
336  {
337  Casier* casier = new Casier(i+1, true, false, this); // autorisé et présent
338  casiers.push_back(casier);
339  connect(casier, SIGNAL(clicked(int)), this, SLOT(selectionnerCasier(int)));
340  // pair/impair -> droite/gauche ?
341  if((i+1)%2)
342  {
343  ui->gridLayoutArmoire->addWidget(casier, i/2, 0, 1, 1);
344  }
345  else
346  {
347  ui->gridLayoutArmoire->addWidget(casier, i/2, 1, 1, 1);
348  }
349  }
350  }
351 }
BaseDeDonnees * bdd
agrégation de l&#39;objet BaseDeDonnees
Definition: IhmGestionArmoire.h:38
Ui::IhmGestionArmoire * ui
agrégation de la définition de la fenêtre UI
Definition: IhmGestionArmoire.h:37
QString lireAdresseIP()
Definition: IhmGestionArmoire.cpp:353
Definition: ihm-estock/casier.h:6
bool recuperer(QString requete, QString &donnees)
Definition: ihm-estock/baseDeDonnees.cpp:190
QVector< Casier * > casiers
les casier de l&#39;armoire
Definition: IhmGestionArmoire.h:42
void selectionnerCasier(int)
Permet de savoir quel casier a était sélectionner.
Definition: IhmGestionArmoire.cpp:232

◆ effacerLaListeArticle

void IhmGestionArmoire::effacerLaListeArticle ( )
slot

Références ui.

Référencé par fermer().

311 {
312  ui->comboBoxListeArticles->clear();
313 }
Ui::IhmGestionArmoire * ui
agrégation de la définition de la fenêtre UI
Definition: IhmGestionArmoire.h:37

◆ effacerLaSelectionArticle

void IhmGestionArmoire::effacerLaSelectionArticle ( )
slot

Références ui.

Référencé par fermer().

316 {
317  ui->labelMessageArticle->setText("");
318 }
Ui::IhmGestionArmoire * ui
agrégation de la définition de la fenêtre UI
Definition: IhmGestionArmoire.h:37

◆ effacerMessageNumeroCasier

void IhmGestionArmoire::effacerMessageNumeroCasier ( )
slot

Références ui.

Référencé par fermer().

321 {
322  ui->labelMessageNumeroCasier->setText("");
323 }
Ui::IhmGestionArmoire * ui
agrégation de la définition de la fenêtre UI
Definition: IhmGestionArmoire.h:37

◆ effacerRechercheArticle

void IhmGestionArmoire::effacerRechercheArticle ( )
slot

Références ui.

Référencé par rechercherArticle().

280 {
281  ui->lineEditRechercheArticle->setText("");
282 }
Ui::IhmGestionArmoire * ui
agrégation de la définition de la fenêtre UI
Definition: IhmGestionArmoire.h:37

◆ fermer

void IhmGestionArmoire::fermer ( )
slot

Références effacerLaListeArticle(), effacerLaSelectionArticle(), effacerMessageNumeroCasier(), et utilisateur.

Référencé par IhmGestionArmoire().

195 {
196  if(utilisateur != nullptr)
197  {
198  delete utilisateur;
199  utilisateur = nullptr;
200  }
201  close();
205 }
void effacerLaSelectionArticle()
Definition: IhmGestionArmoire.cpp:315
void effacerMessageNumeroCasier()
Definition: IhmGestionArmoire.cpp:320
Utilisateur * utilisateur
Definition: IhmGestionArmoire.h:39
void effacerLaListeArticle()
Definition: IhmGestionArmoire.cpp:310

◆ fermerClavierVirtuel()

void IhmGestionArmoire::fermerClavierVirtuel ( )
private

Références supprimerClavierVirtuel().

183 {
185  close();
186 }
void supprimerClavierVirtuel()
Supprime le clavier virtuel.
Definition: IhmGestionArmoire.cpp:167

◆ gererGroupe

void IhmGestionArmoire::gererGroupe ( )
slot

Références Utilisateur::estAdministrateur(), Utilisateur::estGestionnaire(), Utilisateur::getNom(), ihmGestionGroupe, IhmGestionGroupe::setUtilisateur(), et utilisateur.

Référencé par IhmGestionArmoire().

215 {
216  qDebug() << Q_FUNC_INFO << "Nom" << utilisateur->getNom() << "Administrateur" << utilisateur->estAdministrateur() << "estGestionnaire" << utilisateur->estGestionnaire();
218  {
220  ihmGestionGroupe->show();
221  }
222 }
void setUtilisateur(Utilisateur *utilisateur)
Definition: IhmGestionGroupe.cpp:59
bool estAdministrateur() const
Definition: utilisateur.cpp:27
IhmGestionGroupe * ihmGestionGroupe
la fenêtre de gestion des groupes
Definition: IhmGestionArmoire.h:41
bool estGestionnaire() const
Definition: utilisateur.cpp:34
Utilisateur * utilisateur
Definition: IhmGestionArmoire.h:39
QString getNom() const
Definition: utilisateur.cpp:58

◆ getCasier()

Casier* IhmGestionArmoire::getCasier ( )

◆ getUtilisateur()

Utilisateur * IhmGestionArmoire::getUtilisateur ( )
Renvoie
Utilisateur*

Références utilisateur.

80 {
81  return utilisateur;
82 }
Utilisateur * utilisateur
Definition: IhmGestionArmoire.h:39

◆ initialiserClavierVirtuel()

void IhmGestionArmoire::initialiserClavierVirtuel ( )
private

Référencé par showEvent().

153 {
154  QProcess processus;
155  QString programme = "/usr/bin/florence";
156  QStringList arguments;
157  arguments << "--use-config=/usr/share/doc/florence/examples/florence.conf";
158  processus.startDetached(programme, arguments);
159 }

◆ initialiserFenetre()

void IhmGestionArmoire::initialiserFenetre ( )
private

Références IHM_CSS, et ui.

Référencé par IhmGestionArmoire().

129 {
130  setStyleSheet(IHM_CSS);
131 
132  #ifndef DESKTOP
133  const int w = qApp->desktop()->availableGeometry(this).width();
134  const int h = qApp->desktop()->availableGeometry(this).height();
135  resize(w, h);
136  #else
137  // 800×480
138  resize(800, 480);
139  #endif
140  setWindowFlags(Qt::FramelessWindowHint | Qt::Dialog); // Ajouter Qt::WindowStaysOnTopHint
141  //showMaximized();
142  setWindowModality(Qt::WindowModal);
143  ui->lineEditRechercheArticle->setFocus();
144 }
Ui::IhmGestionArmoire * ui
agrégation de la définition de la fenêtre UI
Definition: IhmGestionArmoire.h:37
#define IHM_CSS
Definition: e-stock.h:24

◆ lireAdresseIP()

QString IhmGestionArmoire::lireAdresseIP ( )
private

Référencé par afficherCasiers().

354 {
355  //QNetworkInterface interface = QNetworkInterface::interfaceFromName("wlan0");
356  //qDebug() << Q_FUNC_INFO << interface.hardwareAddress();
357  QList<QHostAddress> adresses = QNetworkInterface::allAddresses();
358  for(int i = 0; adresses.size(); i++)
359  {
360  if(adresses.at(i).isInSubnet(QHostAddress::parseSubnet("192.168.52.0/24")))
361  return adresses.at(i).toString();
362  }
363 
364  return QString("");
365 }

◆ rechercherArticle

IhmGestionArmoire::rechercherArticle ( )
slot

Affiche l'article selectionner.

Références articlesTrouves, bdd, effacerRechercheArticle(), BaseDeDonnees::recuperer(), selectionnerArticle(), et ui.

Référencé par IhmGestionArmoire().

250 {
251  QString mot = ui->lineEditRechercheArticle->text();
252  qDebug() << Q_FUNC_INFO << mot;
253  /*if(mot.isEmpty())
254  return;*/
255  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 '%" + mot + "%' OR Article.Code LIKE '%" + mot + "%' OR Article.Designation LIKE '%" + mot + "%' ORDER BY Stock.NumeroCasier ASC";
256  //QString requete = "SELECT * FROM Article WHERE Nom LIKE '%" + mot + "%' OR Code LIKE '%" + mot + "%' OR Designation LIKE '%" + mot + "%'";
257  qDebug() << Q_FUNC_INFO << requete;
258  disconnect(ui->comboBoxListeArticles, SIGNAL(currentIndexChanged(int)), this, SLOT(selectionnerArticle(int)));
259  ui->comboBoxListeArticles->clear();
260  articlesTrouves.clear();
261  bdd->recuperer(requete, articlesTrouves);
262  qDebug() << Q_FUNC_INFO << "articlesTrouves" << articlesTrouves.size() << articlesTrouves;
263 
264  ui->comboBoxListeArticles->addItem("Sélectionner un article");
265  for(int i = 0 ; i < articlesTrouves.size() ; i++)
266  {
267  ui->comboBoxListeArticles->addItem(articlesTrouves[i].at(2));
268  }
269  connect(ui->comboBoxListeArticles, SIGNAL(currentIndexChanged(int)), this, SLOT(selectionnerArticle(int)));
270 
271  /*if(articlesTrouves.size() > 0)
272  {
273  selectionnerArticle(1);
274  ui->labelMessageNumeroCasier->setText("L'article se trouve\ndans le casier numéro : " + articlesTrouves[0].at(0));
275  }*/
277 }
BaseDeDonnees * bdd
agrégation de l&#39;objet BaseDeDonnees
Definition: IhmGestionArmoire.h:38
Ui::IhmGestionArmoire * ui
agrégation de la définition de la fenêtre UI
Definition: IhmGestionArmoire.h:37
QVector< QStringList > articlesTrouves
Definition: IhmGestionArmoire.h:43
void selectionnerArticle(int index)
Definition: IhmGestionArmoire.cpp:290
bool recuperer(QString requete, QString &donnees)
Definition: ihm-estock/baseDeDonnees.cpp:190
void effacerRechercheArticle()
Definition: IhmGestionArmoire.cpp:279

◆ selectionnerArticle

void IhmGestionArmoire::selectionnerArticle ( int  index)
slot

Références article, articlesTrouves, et ui.

Référencé par IhmGestionArmoire(), et rechercherArticle().

291 {
292  if(articlesTrouves.size() == 0 || index < 0)
293  return;
294  if(index > 0)
295  {
296  //Stock.NumeroCasier, Article.idType, Article.Nom, Stock.Quantite, Stock.Disponible, Article.Designation
297  QString article = articlesTrouves[index-1].at(5);
298  QString qte = QString::fromUtf8("Quantité : ") + articlesTrouves[index-1].at(3);
299  QString dispo = QString::fromUtf8("Disponible : ") + articlesTrouves[index-1].at(4);
300  ui->labelMessageArticle->setText(article + "\n" + qte + "\n" + dispo);
301  ui->labelMessageNumeroCasier->setText("Casier " + articlesTrouves[index-1].at(0));
302  }
303  else
304  {
305  ui->labelMessageArticle->setText("");
306  ui->labelMessageNumeroCasier->setText("");
307  }
308 }
Ui::IhmGestionArmoire * ui
agrégation de la définition de la fenêtre UI
Definition: IhmGestionArmoire.h:37
QVector< QStringList > articlesTrouves
Definition: IhmGestionArmoire.h:43
Article * article
Definition: IhmGestionArmoire.h:44

◆ selectionnerCasier

void IhmGestionArmoire::selectionnerCasier ( int  numeroCasier)
slot
Paramètres
intnumeroCasier

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

Référencé par afficherCasiers().

233 {
234  qDebug() << Q_FUNC_INFO << "numeroCasier" << numeroCasier;
235  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 Stock.NumeroCasier='" + QString::number(numeroCasier) + "'";
236  qDebug() << Q_FUNC_INFO << requete;
237  QStringList articleCasier;
238  bdd->recuperer(requete, articleCasier);
239  qDebug() << Q_FUNC_INFO << "articleCasier" << articleCasier;
240  casiers[numeroCasier-1]->actionner();
241 }
BaseDeDonnees * bdd
agrégation de l&#39;objet BaseDeDonnees
Definition: IhmGestionArmoire.h:38
bool recuperer(QString requete, QString &donnees)
Definition: ihm-estock/baseDeDonnees.cpp:190
QVector< Casier * > casiers
les casier de l&#39;armoire
Definition: IhmGestionArmoire.h:42

◆ setUtilisateur()

IhmGestionArmoire::setUtilisateur ( Utilisateur utilisateur)
Paramètres
utilisateurUtilisateur*

Références Utilisateur::estAdministrateur(), Utilisateur::estGestionnaire(), ui, et utilisateur.

Référencé par IhmAuthentification::autoriserSansBadge(), IhmAuthentification::passerSansBadge(), et IhmAuthentification::validerAcces().

92 {
93  this->utilisateur = utilisateur;
94  if(utilisateur->estAdministrateur() || utilisateur->estGestionnaire())
95  ui->boutonGestionGroupe->setEnabled(true);
96  else
97  ui->boutonGestionGroupe->setEnabled(false);
98 }
bool estAdministrateur() const
Definition: utilisateur.cpp:27
Ui::IhmGestionArmoire * ui
agrégation de la définition de la fenêtre UI
Definition: IhmGestionArmoire.h:37
bool estGestionnaire() const
Definition: utilisateur.cpp:34
Utilisateur * utilisateur
Definition: IhmGestionArmoire.h:39

◆ showEvent()

void IhmGestionArmoire::showEvent ( QShowEvent *  ev)
protected

Références Utilisateur::getGroupe(), Utilisateur::getNom(), Utilisateur::getPrenom(), initialiserClavierVirtuel(), ui, et utilisateur.

107 {
108  QString informationsUtilisateur;
109  QString informationsGroupe;
110  // Affiche des informations sur l'utilisateur qui a accès à l'armoire
111  if(utilisateur != nullptr)
112  {
113  informationsUtilisateur = utilisateur->getNom() + " " + utilisateur->getPrenom();
114  informationsGroupe = utilisateur->getGroupe();
115  }
116  ui->labelUtilisateur->setText(informationsUtilisateur);
117  ui->labelGroupe->setText(informationsGroupe);
118 
120 }
void initialiserClavierVirtuel()
Initialise le clavier virtuel.
Definition: IhmGestionArmoire.cpp:152
Ui::IhmGestionArmoire * ui
agrégation de la définition de la fenêtre UI
Definition: IhmGestionArmoire.h:37
QString getGroupe() const
Definition: utilisateur.cpp:73
QString getPrenom() const
Definition: utilisateur.cpp:63
Utilisateur * utilisateur
Definition: IhmGestionArmoire.h:39
QString getNom() const
Definition: utilisateur.cpp:58

◆ supprimerClavierVirtuel()

void IhmGestionArmoire::supprimerClavierVirtuel ( )
private

Référencé par fermerClavierVirtuel().

168 {
169  QProcess processus;
170  QString programme = "killall"; // le nom du programme
171  QStringList arguments; // arguments du programme
172  arguments << "florence";
173  processus.startDetached(programme, arguments);
174 }

Documentation des données membres

◆ article

Article* IhmGestionArmoire::article
private

Référencé par selectionnerArticle().

◆ articlesTrouves

QVector<QStringList> IhmGestionArmoire::articlesTrouves
private

◆ bdd

BaseDeDonnees* IhmGestionArmoire::bdd
private

◆ casiers

QVector<Casier *> IhmGestionArmoire::casiers
private

Référencé par afficherCasiers(), et selectionnerCasier().

◆ gestionBalances

GestionBalances* IhmGestionArmoire::gestionBalances
private

◆ ihmGestionGroupe

IhmGestionGroupe* IhmGestionArmoire::ihmGestionGroupe
private

Référencé par gererGroupe(), et IhmGestionArmoire().

◆ ui

Ui::IhmGestionArmoire* IhmGestionArmoire::ui
private

◆ utilisateur

Utilisateur* IhmGestionArmoire::utilisateur
private

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