summaryrefslogtreecommitdiff
path: root/src/database/dbmission.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/database/dbmission.py')
-rw-r--r--src/database/dbmission.py160
1 files changed, 160 insertions, 0 deletions
diff --git a/src/database/dbmission.py b/src/database/dbmission.py
new file mode 100644
index 0000000..0a33a12
--- /dev/null
+++ b/src/database/dbmission.py
@@ -0,0 +1,160 @@
+
+# ############################################################################
+# # #
+# # Description: Ensemble de méthodes pour étendre dbmain afin #
+# # d'effectuer des recherches dans la bdd #
+# # #
+# ############################################################################
+
+# Infos pour les "join":
+# https:#www.freecodecamp.org/news/sql-joins-tutorial/
+
+# Import de dbmain
+from . import dbmain
+from datetime import datetime
+
+
+# Extension de cette classe avec dbmain
+class DbMission(dbmain.DbMain):
+
+ # ****************************************************************************
+ # ENREGISTREMENT ET VALIDATION DES MISSIONS
+ # ****************************************************************************
+ # Enregistrement d'une mission
+ def register_mission(self, subject, clientId, proId, jobId):
+ # Préparation de la requète pour enregistrement de la mission
+ reqAddMission = """
+ INSERT INTO """ + self.TABLEMISSION + """
+ (date, subject, clientId, proId, jobCategoryId)
+ VALUES
+ (?, ?, ?, ?, ?)"""
+ # Exécution de la requète
+ self.exec_cmd(reqAddMission,
+ [datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
+ subject,
+ clientId,
+ proId,
+ jobId
+ ]
+ )
+ return 1
+
+ # Enregistrement d'une mission
+ def accept_mission_by_missionid(self, missionId):
+ # Préparation de la requète pour enregistrement de la mission
+ reqAddMission = """
+ UPDATE
+ """ + self.TABLEMISSION + """
+ SET
+ acceptedByPro = ?
+ WHERE
+ missionId = ?"""
+ # Exécution de la requète
+ self.exec_cmd(reqAddMission, [datetime.now().strftime("%Y-%m-%d %H:%M:%S"), missionId])
+ return 1
+
+ def validate_mission_pro_by_missionid(self, missionId):
+ # Préparation de la requète pour enregistrement de la mission
+ reqAddMission = """
+ UPDATE
+ """ + self.TABLEMISSION + """
+ SET
+ validatedByPro = ?
+ WHERE
+ missionId = ?"""
+ # Exécution de la requète
+ self.exec_cmd(reqAddMission, [datetime.now().strftime("%Y-%m-%d %H:%M:%S"), missionId])
+ return 1
+
+ def validate_mission_client_by_missionid(self, missionId):
+ # Préparation de la requète pour enregistrement de la mission
+ reqAddMission = """
+ UPDATE
+ """ + self.TABLEMISSION + """
+ SET
+ validatedByClient = ?
+ WHERE
+ missionId = ?"""
+ # Exécution de la requète
+ self.exec_cmd(reqAddMission, [datetime.now().strftime("%Y-%m-%d %H:%M:%S"), missionId])
+ return 1
+
+ def review_mission(self, missionId, review, note):
+ # Préparation de la requète pour enregistrement de la mission
+ reqAddMission = """
+ UPDATE
+ """ + self.TABLEMISSION + """
+ SET
+ review = ?, note = ?
+ WHERE
+ missionId = ?"""
+ # Exécution de la requète
+ self.exec_cmd(reqAddMission, [review, note, missionId])
+ return 1
+
+ # ****************************************************************************
+ # RECUPERATION DES INFORMATIONS RELATIVES AUX MISSIONS
+ # ****************************************************************************
+ # Récupérations des missions d'un pro par son id
+ def get_mission_by_proid(self, proId):
+ reqGetMissionsProId = """
+ SELECT
+ missionId, date, subject, note, review,
+ acceptedByPro, validatedByClient,
+ validatedByPro, jobCategoryId, proId, lastname
+ FROM
+ """ + self.TABLEMISSION + """
+ LEFT JOIN
+ """ + self.TABLEUSERINFO + """
+ ON
+ """ + self.TABLEMISSION + """.proId = """ + self.TABLEUSERINFO + """.userId
+ WHERE
+ proId = ?"""
+ self.exec_cmd(reqGetMissionsProId, [proId])
+ result = self.cur.fetchall()
+ return result
+
+ # Récupérations des missions d'un client par son id
+ def get_mission_by_clientid(self, clientId):
+ reqGetMissionsClientId = """
+ SELECT
+ missionId, date, subject, note, review,
+ acceptedByPro, validatedByClient,
+ validatedByPro, jobCategoryId, proId, lastname
+ FROM
+ """ + self.TABLEMISSION + """
+ LEFT JOIN
+ """ + self.TABLEUSERINFO + """
+ ON
+ """ + self.TABLEMISSION + """.proId = """ + self.TABLEUSERINFO + """.userId
+ WHERE
+ clientId = ?"""
+ self.exec_cmd(reqGetMissionsClientId, [clientId])
+ result = self.cur.fetchall()
+ return result
+
+ # Récupérations des missions d'un client par son id
+ def get_all_missions(self):
+ reqGetAllMission = """
+ SELECT
+ *
+ FROM
+ """ + self.TABLEMISSION
+ self.exec_cmd(reqGetAllMission)
+ result = self.cur.fetchall()
+ return result
+
+ # Compte le nombre de mission d'un consultant par son nom
+ def count_pro_missions_by_proid(self, proId):
+ reqCountMission = """
+ SELECT COUNT(*) FROM
+ """ + self.TABLEMISSION + """
+ INNER JOIN
+ """ + self.TABLEUSERINFO + """
+ ON
+ """ + self.TABLEMISSION + """.proId = """ + self.TABLEUSERINFO + """.userId
+ WHERE
+ proId = ?"""
+ self.exec_cmd(reqCountMission, [proId])
+ result = self.cur.fetchall()
+ return result