Projet e-stok  0.2
BTS SNIR LaSalle Avignon 2020
CodeBarre.cpp
Aller à la documentation de ce fichier.
1 #include "CodeBarre.h"
2 #include "Bdd.h"
3 #include <QDebug>
4 
23 CodeBarre::CodeBarre(QObject *parent) : QObject(parent), etatPrendreOuAjouter(false), quantiteObjet(0)
24 {
25  #ifdef DEBUG_CODE_BARRE
26  qDebug() << Q_FUNC_INFO;
27  #endif
29 }
30 
36 {
38  #ifdef DEBUG_CODE_BARRE
39  qDebug() << Q_FUNC_INFO;
40  #endif
41 }
42 
49 {
50  this->etatPrendreOuAjouter = etat;
51 
52  #ifdef DEBUG_CODE_BARRE
53  qDebug() << Q_FUNC_INFO << "etatPrendreOuAjouter" << this->etatPrendreOuAjouter ;
54  #endif
55 }
56 
62 void CodeBarre::setQuantiteObjet(unsigned int quantite)
63 {
64  quantiteObjet = quantite;
65 }
66 
73 {
75 }
76 
83 {
84  setQuantiteObjet(quantite);
85 
86  #ifdef DEBUG_CODE_BARRE
87  qDebug() << Q_FUNC_INFO << "quantiteObjet" << quantiteObjet;
88  #endif
89 }
90 
96 void CodeBarre::traiterCodeBarre(QString codeBarre)
97 {
98  #ifdef DEBUG_CODE_BARRE
99  qDebug() << Q_FUNC_INFO << "codeBarre" << codeBarre;
100  #endif
101  QString codeBarreCorriger = corrigerCodeBarre(codeBarre);
102 
104  {
105  // prendre objet
106  emit prendreObjet(codeBarreCorriger);
107  }
108  else
109  {
110  // ajouter objet
111  emit ajouterObjet(codeBarreCorriger);
112  }
113 }
114 
121 {
122  return quantiteObjet;
123 }
124 
130 QString CodeBarre::corrigerCodeBarre(QString codeBarre)
131 {
132  QString codeBarreCorrige = "";
133 
134  if(!codeBarre.isEmpty())
135  {
136  // effectue les remplacements des touches QWERTY en touches AZERTY
137  codeBarreCorrige = codeBarre.replace(QString::fromUtf8("à"), "0");
138  codeBarreCorrige = codeBarre.replace(QString::fromUtf8("&"), "1");
139  codeBarreCorrige = codeBarre.replace(QString::fromUtf8("é"), "2");
140  codeBarreCorrige = codeBarre.replace(QString::fromUtf8("\""), "3");
141  codeBarreCorrige = codeBarre.replace(QString::fromUtf8("'"), "4");
142  codeBarreCorrige = codeBarre.replace(QString::fromUtf8("("), "5");
143  codeBarreCorrige = codeBarre.replace(QString::fromUtf8("-"), "6");
144  codeBarreCorrige = codeBarre.replace(QString::fromUtf8("è"), "7");
145  codeBarreCorrige = codeBarre.replace(QString::fromUtf8("_"), "8");
146  codeBarreCorrige = codeBarre.replace(QString::fromUtf8("ç"), "9");
147  codeBarreCorrige = codeBarre.replace(QString::fromUtf8("\n"), "");
148  }
149  #ifdef DEBUG_CODE_BARRE
150  qDebug() << Q_FUNC_INFO << "codeBarreCorrige" << codeBarreCorrige;
151  #endif
152  return codeBarreCorrige;
153 }
154 
161 unsigned int CodeBarre::recupererQuantiteMaxParNumeroCasier(QString numeroCasier)
162 {
163  QString requete = "SELECT Stock.Quantite FROM Stock WHERE Stock.numeroCasier = '" + numeroCasier + "'";
164 
165  QString donnees;
166  bdd->recuperer(requete, donnees);
167 
168  return donnees.toUInt();
169 }
170 
178 {
179  QString requete = "SELECT Stock.Disponible FROM Stock WHERE Stock.numeroCasier = '" + numeroCasier + "'";
180 
181  QString donnees;
182  bdd->recuperer(requete, donnees);
183 
184  return donnees.toUInt();
185 }
186 
193 unsigned int CodeBarre::recupererIdArticleAvecCodeBarres(QString codeBarre)
194 {
195  QString requete = "SELECT idArticle FROM Article WHERE Code = '" + codeBarre + "'";
196 
197  QString donnees;
198  bdd->recuperer(requete, donnees);
199 
200  return donnees.toUInt();
201 }
unsigned int recupererQuantiteDisponibleParNumeroCasier(QString numeroCasier)
Définition de la méthode recupererQuantiteDisponibleParNumeroCasier.
Definition: CodeBarre.cpp:177
void setQuantiteObjet(unsigned int quantite)
Définition de la méthode setQuantiteObjet.
Definition: CodeBarre.cpp:62
CodeBarre(QObject *parent=nullptr)
Définition du constructeur de la classe CodeBare.
Definition: CodeBarre.cpp:23
void ajouterObjet(QString)
QString corrigerCodeBarre(QString codeBarre)
Définition de la méthode corrigerCodeBarre.
Definition: CodeBarre.cpp:130
static void detruireInstance()
Définition méthode detruireInstance()
Definition: Bdd.cpp:73
void prendreOuAjouter(bool etat)
Définition de la méthode prendreOuAjouter.
Definition: CodeBarre.cpp:72
unsigned int recupererIdArticleAvecCodeBarres(QString codeBarre)
Définition de la méthode recupererIdArticleAvecCodeBarres.
Definition: CodeBarre.cpp:193
void changerQuantiteObjet(int quantite)
Définition de la méthode changerQuantiteObjet.
Definition: CodeBarre.cpp:82
void prendreObjet(QString)
unsigned int recupererQuantiteMaxParNumeroCasier(QString numeroCasier)
Définition de la méthode recupererQuantiteMaxParNumeroCasier.
Definition: CodeBarre.cpp:161
~CodeBarre()
Définition du destructeur de la classe CodeBare.
Definition: CodeBarre.cpp:35
unsigned int quantiteObjet
quantité d&#39;objet à prendre ou ajouter
Definition: CodeBarre.h:51
Déclaration de la classe Bdd.
Déclaration de la classe CodeBare.
unsigned int getQuantiteObjet()
Définition de la méthode getQuantiteObjet.
Definition: CodeBarre.cpp:120
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 setEtatPrendreOuAjouter(bool etat)
Définition de la méthode setEtatPrendreOuAjouter.
Definition: CodeBarre.cpp:48
Bdd * bdd
association d&#39;un objet Bdd (accès à la base de données)
Definition: CodeBarre.h:49
static Bdd * getInstance()
Définition méthode getInstance()
Definition: Bdd.cpp:53
bool etatPrendreOuAjouter
boolean pour savoir si l&#39;on prend ou ajoute un objet(false = prendre, true = ajouter) ...
Definition: CodeBarre.h:50
void traiterCodeBarre(QString codeBarre)
Définition de la méthode traiterCodeBarre.
Definition: CodeBarre.cpp:96