Skip to content
This repository has been archived by the owner on Jan 18, 2022. It is now read-only.

Commit

Permalink
Merge pull request #5 from firedream89/dvp
Browse files Browse the repository at this point in the history
1.43 BETA1
  • Loading branch information
kevin-briand committed Nov 13, 2017
2 parents c316992 + 65d2523 commit afdc465
Show file tree
Hide file tree
Showing 28 changed files with 2,015 additions and 840 deletions.
12 changes: 6 additions & 6 deletions AutoBL/AutoBL2.pro.user
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.2.1, 2017-07-09T22:10:32. -->
<!-- Written by QtCreator 4.2.1, 2017-09-18T19:40:11. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
Expand Down Expand Up @@ -294,7 +294,7 @@
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">AutoBL2.pro</value>
<value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory.default">C:/Users/kevin/Desktop/test/Autre Projets/AutoBL/build-AutoBL2-Desktop_Qt_5_7_1_MSVC2015_32bit-Release</value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory.default">C:/Users/kevin/Desktop/test/Autre Projets/AutoBL ver+1/build-AutoBL2-Desktop_Qt_5_7_1_MSVC2015_32bit-Release</value>
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
Expand Down Expand Up @@ -541,7 +541,7 @@
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">AutoBL2.pro</value>
<value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory.default">C:/Users/kevin/Desktop/test/Autre Projets/AutoBL/build-AutoBL2-Desktop_Qt_5_7_1_MSVC2015_32bit-Release</value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory.default">C:/Users/kevin/Desktop/test/Autre Projets/AutoBL ver+1/build-AutoBL2-Desktop_Qt_5_7_1_MSVC2015_32bit-Release</value>
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
Expand Down Expand Up @@ -616,7 +616,7 @@
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:/Users/kevin/Desktop/test/Autre Projets/AutoBL/build-AutoBL2-Desktop_Qt_5_7_1_MSVC2015_32bit-Release</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:/Users/kevin/Desktop/test/Autre Projets/AutoBL ver+1/build-AutoBL2-Desktop_Qt_5_7_1_MSVC2015_32bit-Release</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
Expand Down Expand Up @@ -787,8 +787,8 @@
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments">dvp</value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">AutoBL2.pro</value>
<value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory">C:/Users/kevin/Desktop/test/Autre Projets/AutoBL/build-AutoBL2-Desktop_Qt_5_7_1_MSVC2015_32bit-Release/release</value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory.default">C:/Users/kevin/Desktop/test/Autre Projets/AutoBL/build-AutoBL2-Desktop_Qt_5_7_1_MSVC2015_32bit-Release</value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory.default">C:/Users/kevin/Desktop/test/Autre Projets/AutoBL ver+1/build-AutoBL2-Desktop_Qt_5_7_1_MSVC2015_32bit-Release</value>
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
Expand Down
198 changes: 170 additions & 28 deletions AutoBL/db.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,27 @@ QSqlQuery DB::Requete(QString r)

if(req.prepare(r))
{
if(!req.exec())
if(req.exec() == false)
{
m_Error->Err(requete,r,"DB");
}
else if(req.lastQuery().contains("INSERT INTO En_Cours VALUES"))
{
QString frn = req.lastQuery().split(",").last().split("'").at(1);
QString invoice = req.lastQuery().split(",").at(3).split("'").at(1);
req = Requete("SELECT * FROM Options WHERE Nom='" + frn + "_Last'");
if(req.next() == false)
{
req = Requete("SELECT MAX(ID) FROM Options");
req.next();
int id = req.value(0).toInt();
Requete("INSERT INTO Options VALUES('" + QString::number(id+1) + "','" + frn + "_Last','" + invoice + "')");
}
else
{
Requete("UPDATE Options SET Valeur='" + invoice + "' WHERE Nom='" + frn + "_Last'");
}
}
}
else
m_Error->Err(requete,r,"DB");
Expand All @@ -60,13 +79,15 @@ void DB::Init()
db.setDatabaseName(qApp->applicationDirPath() + "/bdd.db");
db.setHostName("127.0.0.1");

if(!db.open())
if(db.open() == false)
{
m_Error->Err(openDB);
return;
}
else
{
emit Info("Ouverture de la Database réussi ! " + db.hostName() + " " + db.driverName());
}

//test DB
QSqlQuery req;
Expand Down Expand Up @@ -111,8 +132,9 @@ void DB::Init()
}

if(query.prepare("ALTER TABLE En_Cours ADD Fournisseur TEXT"))
if(!query.exec())
m_Error->Err(updateDB,"","DB");
{
if(query.exec() == false) { m_Error->Err(updateDB,"","DB"); }
}

Requete("UPDATE En_Cours SET Fournisseur='Rexel.fr' WHERE Fournisseur=''");
Requete("UPDATE En_Cours SET Etat='0' WHERE Etat='En préparation' AND Fournisseur='Rexel.fr'");
Expand All @@ -125,27 +147,30 @@ void DB::Init()
//Test DB
req = Requete("SELECT * FROM Options");

if(!req.next())//si DB inaccessible, lancer la mise à jour de la DB
if(req.next() == false)//si DB inaccessible, lancer la mise à jour de la DB
{
db.close();
QDesktopServices::openUrl(QUrl("bin/MAJ_BDD.exe"));
qApp->exit(0);
}
else
{
emit Info(req.value("Nom").toString() + "=" + req.value("Valeur").toString());
}

//Update variable Ajout
Requete("UPDATE En_Cours SET Ajout='0' WHERE Ajout='Telecharger'");
Requete("UPDATE En_Cours SET Ajout='0' WHERE Ajout=''");
Requete("UPDATE En_Cours SET Ajout='0' WHERE Ajout='Télécharger'");
Requete("UPDATE En_Cours SET Ajout='1' WHERE Ajout='Erreur'");
Requete("UPDATE En_Cours SET Ajout='2' WHERE Ajout='Modifier'");
Requete("UPDATE En_COurs SET Ajout='3' WHERE Ajout='Bon ajouté'");
Requete("UPDATE En_Cours SET Ajout='3' WHERE Ajout='Bon Ajouté'");
Requete("UPDATE En_Cours SET AJout='4' WHERE Ajout='Ok'");


DEBUG << "DB initialisée";
}

void DB::Close()
void DB::Close_DB()
{
QSqlDatabase::removeDatabase("qt_sql_default_connection");
}
Expand All @@ -163,20 +188,19 @@ void DB::Sav()

bool ok(true);

if(f.lastModified().operator ==(fBDD.lastModified()) || f1.lastModified().operator ==(fBDD.lastModified()) || f2.lastModified().operator ==(fBDD.lastModified()))
return;
if(f.lastModified().operator ==(fBDD.lastModified()) || f1.lastModified().operator ==(fBDD.lastModified()) || f2.lastModified().operator ==(fBDD.lastModified())) { return; }

if(!sav.exists())
if(sav.exists() == false)
{
ok = sav.copy(qApp->applicationDirPath() + "/bdd.db",qApp->applicationDirPath() + "/bddSav.db");
emit Info("DB | Sauvegarde de la DB(sav)");
}
else if(!sav2.exists())
else if(sav2.exists() == false)
{
ok = sav.copy(qApp->applicationDirPath() + "/bdd.db",qApp->applicationDirPath() + "/bddSav2.db");
emit Info("DB | Sauvegarde de la DB(sav2)");
}
else if(!sav3.exists())
else if(sav3.exists() == false)
{
ok = sav.copy(qApp->applicationDirPath() + "/bdd.db",qApp->applicationDirPath() + "/bddSav3.db");
emit Info("DB | Sauvegarde de la DB(sav3)");
Expand All @@ -202,25 +226,38 @@ void DB::Sav()
emit Info("DB | Sauvegarde de la DB(sav3)");
}
}
if(!ok)
if(ok == false)
{
m_Error->Err(saveDB);
}
}

void DB::Purge()
{
qDebug() << "Purge";
DEBUG << "Purge BC > 2 mois";
QDate t;
t = t.currentDate();
t = t.addMonths(-2);
Requete("DELETE FROM En_Cours WHERE Date < '" + t.toString("yyyy-MM-dd") + "' AND Ajout='"+QString::number(endAdd)+"'");

QSqlQuery req = Requete("SELECT Valeur FROM Options WHERE Nom='Fournisseurs'");
QStringList listFrn;
req.next();
listFrn = req.value(0).toString().split("|");

for(int i = 0;i<listFrn.count();i++)
{
req = Requete("SELECT COUNT(*) FROM En_Cours WHERE Fournisseur='" + listFrn.at(i) + "'");
req.next();
Requete("DELETE FROM En_Cours WHERE ID IN (SELECT ID FROM En_Cours WHERE Date < '" + t.toString("yyyy-MM-dd") + "' AND Ajout='"+
QString::number(endAdd)+"' AND Fournisseur='" + listFrn.at(i) + "' LIMIT " + QString::number(req.value(0).toInt()-1) + ")");
}
}

QStringList DB::Find_Fournisseur_From_Invoice(QString invoice)
{
QStringList list;
QSqlQuery req = Requete("SELECT Fournisseur FROM En_Cours WHERE Numero_Commande='" + invoice + "'");
while(req.next())
list.append(req.value(0).toString());
while(req.next()) { list.append(req.value(0).toString()); }
return list;
}

Expand All @@ -232,17 +269,27 @@ QString DB::Encrypt(QString text)
for(int i = 0;i<text.count();i++)
{
if(idk == k.count())
{
idk = 0;
}
int t = text.at(i).unicode();
t -= k.at(idk).toInt();
if(t > 250)
{
t = t - 250;
}
else if(t < 0)
{
t = t + 250;
}
if(t == 34)//si '
{
t = 251;
}
else if(t == 39)//ou "
{
t = 252;
}
crypt += QChar(t).toLatin1();
idk++;
}
Expand All @@ -257,17 +304,27 @@ QString DB::Decrypt(QString text)
for(int i = 0;i<text.count();i++)
{
if(idk == k.count())
{
idk = 0;
}
int t = text.at(i).unicode();
if(t == 251)//retour a '
{
t = 34;
}
else if(t == 252)//retour a "
{
t = 39;
}
t += k.at(idk).toInt();
if(t < 0)
{
t = t + 250;
}
else if(t > 250)
{
t = t - 250;
}
decrypt += QChar(t).toLatin1();
idk++;
}
Expand All @@ -278,20 +335,105 @@ QString DB::enum_State(int state)
{
QString var;

if(state == download)
var = "Télécharger";
else if(state == error)
var = "Erreur";
else if(state == updateRef)
var = "Modifier";
else if(state == add)
var = "Bon ajouté";
else if(state == endAdd)
var = "Ok";
if(state == download) { var = "Télécharger"; }
else if(state == error) { var = "Erreur"; }
else if(state == updateRef) { var = "Modifier"; }
else if(state == add) { var = "Bon ajouté"; }
else if(state == endAdd) { var = "Ok"; }
else
{
m_Error->Err(variable,"enum_State","DB");
return QString();
}
return var;
}

QString DB::Get_Last_Invoice(QString frn)
{
QSqlQuery req = Requete("SELECT Valeur FROM Options WHERE Nom='" + frn + "_Last'");
if(req.next() == false)
{
m_Error->Err(requete,"Get_Last_Invoice:"+frn,"DB");
}
else
{
return req.value(0).toString();
}
return QString();
}

bool DB::Insert_Into_En_Cours(int id,QString date,QString Nom_Chantier,QString Numero_Commande,QString Numero_Livraison,QString Lien_Commande,int Etat,
int Ajout,QString Info_Chantier,int Ajout_BL,QString Numero_BC_Esab,QString Fournisseur)
{
if(id <= 0)//ID
{
m_Error->Err(variable,"id <= 0","DB");
}
if(date.split("-").count() == 3)//Date
{
QStringList var = date.split("-");
if(var.at(0).count() != 4 && var.at(1).count() != 2 && var.at(2).count() != 2)
{
m_Error->Err(variable,"Format date invalide: " + date,"DB");
return false;
}
if(var.at(1).toInt() > 0 && var.at(1).toInt() < 13 && var.at(2).toInt() > 0 && var.at(2).toInt() < 32)
{
m_Error->Err(variable,"Date invalide: " + date,"DB");
return false;
}
}
else
{
m_Error->Err(variable,"Format date invalide: " + date,"DB");
return false;
}
if(Nom_Chantier.count() != 6 || Nom_Chantier.at(0).isNumber() || Nom_Chantier.at(Nom_Chantier.count()-1).isNumber())//Nom_Chantier
{
DEBUG << "DB | Nom_Chantier invalide : " << Nom_Chantier;
Ajout = error;
}
if(Etat < open || Etat > Close)//Etat
{
m_Error->Err(variable,"Valeur Etat incorrect","DB");
return false;
}
QSqlQuery req = Requete("SELECT Valeur FROM Options WHERE ID='13'");
req.next();
if(req.value(0).toInt() == 1)//Ajout_BL
{
Ajout_BL = 1;
}
//Fournisseur
req = Requete("SELECT Valeur FROM Options WHERE ID='24'");
req.next();
if(req.value(0).toString().contains(Fournisseur) == false)
{
m_Error->Err(variable,"Founisseur inconnu","DB");
return false;
}
Requete("INSERT INTO En_Cours VALUES('" + QString::number(id) + "','" + date + "','" + Nom_Chantier + "','" + Numero_Commande + "','" +
Numero_Livraison + "','" + Lien_Commande + "','" + QString::number(Etat) + "','" + QString::number(Ajout) + "','" +
Info_Chantier + "','" + QString::number(Ajout_BL) + "','" + Numero_BC_Esab + "','" + Fournisseur + "')");
return true;
}

QSqlQuery DB::Get_Download_Invoice()
{
return Requete("SELECT * FROM En_Cours WHERE Ajout='"+QString::number(download)+"' OR Ajout='"+QString::number(updateRef)+"'");
}

QSqlQuery DB::Get_Added_Invoice()
{
return Requete("SELECT * FROM En_Cours WHERE Ajout_BL='1' AND Ajout='" + QString(add) + "'");
}

QSqlQuery DB::Get_No_Closed_Invoice(QString frn)
{
return Requete("SELECT * FROM En_Cours WHERE Etat!='" + QString::number(Close) + "' AND Fournisseur='" + frn + "'");
}

QSqlQuery DB::Get_Delivery_Invoice(QString frn)
{
return Requete("SELECT * FROM En_Cours WHERE Etat='" + QString::number(Close) + "' AND Fournisseur='" + frn + "' AND (Numero_Livraison='' OR Numero_Livraison=' ')");
}
Loading

0 comments on commit afdc465

Please sign in to comment.