diff options
Diffstat (limited to 'src/database/dbmission.py')
| -rw-r--r-- | src/database/dbmission.py | 160 |
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 |
