8 #include <QInputDialog> 36 delete ui->mainToolBar;
46 setWindowFlags(Qt::WindowStaysOnTopHint);
47 setWindowFlags(Qt::FramelessWindowHint);
89 connect(
ui->lineRecherche, SIGNAL(textChanged(QString)),
this, SLOT(
activerRecherche()));
98 connect(
ui->lineEditScanner, SIGNAL(editingFinished()),
this, SLOT(
scannerObjet()));
108 ui->stackedWidget->setCurrentIndex(fenetre);
122 ui->gridLayoutCasiers->addWidget(casier, numero/2, 0, 1, 1);
123 ui->gridLayoutCasiersScan->addWidget(casier, numero/2, 0, 1, 1);
127 ui->gridLayoutCasiers->addWidget(casier, numero/2, 1, 1, 1);
128 ui->gridLayoutCasiersScan->addWidget(casier, numero/2, 1, 1, 1);
134 for(
int i=0; i < casiers.size(); i++)
136 Casier* casier = casiers[i];
145 ui->gridLayoutCasiers->addWidget(casier, numero/2, 0, 1, 1);
148 ui->gridLayoutCasiersScan->addWidget(casier, numero/2, 0, 1, 1);
159 ui->gridLayoutCasiers->addWidget(casier, numero/2, 1, 1, 1);
162 ui->gridLayoutCasiersScan->addWidget(casier, numero/2, 1, 1, 1);
179 qDebug() << Q_FUNC_INFO <<
"informationsArmoire" << informationsArmoire;
191 ui->labelErreurBadge->clear();
193 if(
ui->lineBadge->text() !=
"")
196 qDebug() << Q_FUNC_INFO <<
"Contenu brut badge" <<
ui->lineBadge->text();
199 QString trameBadge =
ui->lineBadge->text();
200 ui->lineBadge->clear();
211 if(
ui->lineIdentifiant->text() !=
"")
214 qDebug() << Q_FUNC_INFO <<
"Identifiant" <<
ui->lineIdentifiant->text() <<
"MotDePasse" <<
ui->lineMotDePasse->text();
217 QString identifiant =
ui->lineIdentifiant->text();
218 QString motDePasse =
ui->lineMotDePasse->text();
219 ui->lineIdentifiant->clear();
220 ui->lineMotDePasse->clear();
242 ui->lineBadge->setFocus();
252 ui->lineMotDePasse->setEchoMode(QLineEdit::Password);
255 ui->lineIdentifiant->setFocus();
268 ui->pushRecherche->setFocus();
269 ui->comboBoxArticle->clear();
270 ui->comboBoxArticle->addItem(
"Sélectionner un article");
271 ui->pushRecherche->setEnabled(
false);
272 ui->lineRecherche->setFocus();
284 ui->pushScannerPrendre->setEnabled(
false);
285 ui->pushScannerAjouter->setEnabled(
false);
286 ui->spinBoxQuantiteScan->setValue(0);
287 ui->spinBoxQuantiteScan->setEnabled(
false);
298 ui->labelErreurBadge->setText(message);
324 QMessageBox::critical(
nullptr,
APPLICATION, message);
334 if(!
ui->lineRecherche->text().isEmpty())
335 ui->pushRecherche->setEnabled(
true);
337 ui->pushRecherche->setEnabled(
false);
346 if(!
ui->lineRecherche->text().isEmpty())
356 ui->lineRecherche->setText(
"");
367 qDebug() << Q_FUNC_INFO <<
"articlesTrouves" << articlesTrouves.size() << articlesTrouves;
382 qDebug() << Q_FUNC_INFO <<
"index" << index <<
ui->comboBoxArticle->currentText();
395 ui->labelCasier->setText(
"Casier :");
408 if(donneesArticle.size() <= 0)
410 unsigned int articleQuantite = 0;
411 unsigned int articleDisponible = 0;
412 QString casiersQuantite;
413 QString casiersDisponible;
415 int nombreCasiers = donneesArticle.size();
417 for(
int i = 0; i < nombreCasiers; i++)
420 qDebug() << Q_FUNC_INFO <<
"disponible" << (donneesArticle[i].at(
ARTICLE_DISPONIBLE)).toUInt();
421 qDebug() << Q_FUNC_INFO <<
"articleDisponible" << articleDisponible;
422 qDebug() << Q_FUNC_INFO <<
"quantite" << (donneesArticle[i].at(
ARTICLE_QUANTITE)).toUInt();
423 qDebug() << Q_FUNC_INFO <<
"articleQuantite" << articleQuantite;
438 casiersQuantite += QString(
" et ") + donneesArticle[i].at(
ARTICLE_QUANTITE);
441 casiersDisponible += QString(
")");
442 casiersQuantite += QString(
")");
444 ui->labelCasier->setText(
"Casiers :");
445 ui->labelQuantiteNombre->setText(QString::number(articleQuantite) + casiersQuantite);
446 ui->labelDisponibleNombre->setText(QString::number(articleDisponible) + casiersDisponible);
447 ui->labelCasierNombre->setText(casiers);
457 disconnect(
ui->comboBoxArticle, SIGNAL(currentIndexChanged(
int)),
this, SLOT(
selectionnerArticle(
int)));
458 ui->comboBoxArticle->clear();
460 ui->comboBoxArticle->addItem(
"Sélectionner un article");
461 for(
int i = 0 ; i < articlesTrouves.size() ; i++)
463 if(
ui->comboBoxArticle->findText(articlesTrouves[i].at(2)) == -1)
465 ui->comboBoxArticle->addItem(articlesTrouves[i].at(2));
468 connect(
ui->comboBoxArticle, SIGNAL(currentIndexChanged(
int)),
this, SLOT(
selectionnerArticle(
int)));
477 ui->labelScannerObjet->setText(
"Vous pouvez indiquer une quantité");
478 ui->lineEditScanner->setFocus();
488 ui->labelScannerObjet->setText(
"Vous pouvez indiquer une quantité");
489 ui->lineEditScanner->setFocus();
499 ui->labelScannerObjet->setText(
"Veuillez scanner l'objet à prendre");
508 ui->labelScannerObjet->setText(
"Veuillez scanner l'objet à ajouter");
517 QString codeBarreObjet =
ui->lineEditScanner->text();
518 qDebug() << Q_FUNC_INFO <<
"codeBarreObjet" << codeBarreObjet;
520 if(!
ui->lineEditScanner->text().isEmpty())
525 ui->lineEditScanner->setText(
"");
536 ui->lineEditScanner->setFocus();
576 ui->labelScannerObjet->setText(
"Veuillez prendre ou ajouter un objet");
577 ui->pushScannerPrendre->setEnabled(
true);
578 ui->pushScannerAjouter->setEnabled(
true);
579 ui->spinBoxQuantiteScan->setEnabled(
true);
580 ui->spinBoxQuantiteScan->setValue(1);
581 ui->lineEditScanner->setEnabled(
true);
582 ui->lineEditScanner->setFocus();
586 ui->labelScannerObjet->setText(
"Veuillez ouvrir un casier");
587 ui->pushScannerPrendre->setEnabled(
false);
588 ui->pushScannerAjouter->setEnabled(
false);
589 ui->spinBoxQuantiteScan->setValue(0);
590 ui->spinBoxQuantiteScan->setEnabled(
false);
591 ui->lineEditScanner->setEnabled(
false);
Déclaration de la classe Casier.
void afficherErreurDepassementQuantite()
Définition de la méthode afficherErreurDepassementQuantite.
void creerCasiers()
Définition de la méthode creerCasiers.
void rechercheArticle(QString)
void connecterSignauxEtSlots()
Définition de la méthode connecterSignauxEtSlots.
void badgeDetecte(QString)
Keyboard * keyboard
association vers le clavier virtuel
Fenêtre d'authentifiaction par badge.
Supervision * supervision
association vers supervision
Déclaration de la classe Ihm.
static Keyboard * getInstance(QWidget *parent=Q_NULLPTR)
void setLineEdit(QLineEdit *lineEdit)
La classe Supervision permet de superviser l'ensemble de l'application.
void afficherErreurBadge(QString message)
Définition de la méthode afficherErreurBadge.
void afficherErreurPasArticleAvecCodeBarre()
définition de la méthode afficherErreurPasArticleAvecCodeBarre
#define MESSAGE_ERREUR_DEPASSEMENT_QUANTITE
Ui::Ihm * ui
contenu de l'interface utilisateur
void mettreAJourListeArticles(QVector< QStringList > articlesTrouves)
Définition de la méthode mettreAJourListeArticles.
void traiterDemandeDeConnexion(bool reponse, QString message)
Définition de la méthode traiterDemandeDeConnexion.
int getNumero() const
Définition de la méthode getNumero.
La classe Casier gère le casier contenant des articles.
void afficherErreurArticleInsuffisants()
définition de la méthode afficherErreurArticleInsuffisants
void rechercherArticle()
Définition de la méthode rechercherArticle.
void placerCasiers(const QVector< Casier *> &casiers, int fenetre)
void activerRecherche()
Définition de la méthode traiterDemandeDeConnexion.
~Ihm()
Destructeur de la classe Ihm.
void allerFenetreScannerObjet()
Définition de la méthode allerFenetreScannerObjet.
void appuyerBoutonPrendre()
Définition de la méthode appuyerBoutonPrendre.
void appuyerBoutonAjouter()
Définition de la méthode appuyerBoutonAjouter.
void placerCasier(Casier *casier)
Définition de la méthode placerCasier.
Fichier qui contient la déclaration de la classe Keyboard.
void connecterClavier1()
définition de la méthode connecterClavier1
void selectionnerArticle(int index)
Définition de la méthode selectionnerArticle.
void afficherErreurAucunCasierOuvert()
définition de la méthode afficherErreurAucunCasierOuvert
Fenêtre pour scan d'un objet.
void afficherDemandeQuantite(int)
définition de la méthode afficherDemandeQuantite
void effacerRechercheArticle()
Définition de la méthode effacerRechercheArticle.
#define MESSAGE_ERREUR_AUCUN_CASIER_OUVERT
void changerTextePrendre()
définition de la méthode changerTextePrendre
void afficherInformationsArmoire(QStringList informationsArmoire)
Définition de la méthode afficherInformationsArmoire.
void envoyerQuantite(int)
void authentifierParBadge()
Définition de la méthode authentifierParBadge.
void allerFenetreBadge()
Définition de la méthode allerFenetreBadge.
void changerDeFenetre(int fenetre)
Définition de la méthode changerDeFenetre.
void scannerObjet()
Définition de la méthode objetScanner.
void identifiantDetecte(QString identifiant, QString motDePasse)
#define ARTICLE_DISPONIBLE
void authentifierParIdentifiant()
Définition de la méthode authentifierParIdentifiant.
Déclaration de la classe Armoire.
Fenêtre d'authentifiaction par identifiant.
void rechercherArticle(QString recherche)
Définition de la méthode rechercherArticle.
void deconnecterUtilisateur()
Méthode qui permet la déconnexion de l'utilisateur.
QStringList getInformationsArmoire()
Définition de la méthode getInformationsArmoire.
Déclaration de la classe Ihm.
Déclaration de la classe Supervision.
void selectionnerArticle(QString nomArticle)
Définition de la méthode selectionnerArticle.
void afficherDonneesArticleSelectionne(QStringList donneesArticle)
Définition de la méthode afficherDonneesArticleSelectionne.
void codeBarreObjetScanner(QString)
void allerFenetreMenu()
Définition de la méthode allerFenetreMenu.
void connecterClavier2()
définition de la méthode connecterClavier2
void allerFenetreIdentifiant()
Définition de la méthode allerFenetreIdentifiant.
#define MESSAGE_ERREUR_QUANTITE_INSUFFISANTE
void creerListeArticles(const QVector< QStringList > &articlesTrouves)
Définition de la méthode creerListeArticles.
QVector< Casier * > getCasiers()
Définition de la méthode getCasiers.
#define MESSAGE_ERREUR_AUCUN_ARTICLE_CODE_BARRE
Ihm(QWidget *parent=nullptr)
Constructeur de la classe Ihm.
void deconnecterUtilisateur()
Définition de la méthode deconnecterUtilisateur.
void changerTexteAjouter()
définition de la méthode changerTexteAjouter
void gererPageScanObjet(int numeroCasier, bool etat)
Définition de la méthode gererPageScanObjet.