This repository has been archived on 2021-09-15. You can view files and clone it, but cannot push or open issues or pull requests.
L3GestionParking/src/m/Voiture.py

87 lines
3.0 KiB
Python

"""
Module qui implémente les classes representants d'une voiture de DreamPark.
"""
from src.c.utils.connexionBDD import connexionBDD
from src.m.Abonnement import Client
## Representation d'une Voiture de DreamPark
class Voiture:
## Constucteur Voiture
# @param id Si None : Cree une Voiture dans la BD Sinon : tentative de récupération de la Voiture avec cet id dans la bd
# @param client Si creation Client qui posséde la Voiture
# @param longueur Si creation longueur de la Voiture
# @param hauteur Si creation hauteur de la Voiture
# @param imma Si creation imma de la Voiture
def __init__(self, id, client=None, longueur=None, hauteur=None, imma=None):
if id is None:
if client is None:
self.__client = "NULL"
cl = "NULL"
else:
self.__client = client
cl = self.__client.id
self.__longueur = longueur
self.__hauteur = hauteur
self.__imma = imma
c = connexionBDD()
c.execute("INSERT INTO voiture (idClient,longueur, hauteur, imma) VALUES (?,?,?,?)",
(cl, self.__longueur, self.__hauteur, self.__imma))
self.__id = c.lastId()
c.seDeconnecter()
else:
c = connexionBDD()
r = c.execute("SELECT * FROM voiture WHERE idVoiture='" + str(id) + "'")
row = r.fetchone()
if row is None:
raise IndexError("Invalid id")
c.seDeconnecter()
self.__id = id
try:
self.__client = Client(row["idClient"])
except IndexError:
self.__client = "NULL"
self.__longueur = row["longueur"]
self.__hauteur = row["hauteur"]
self.__imma = row["imma"]
## Met a jour la possesion d'un voiture par un Client
# @param client Client qui posséde la voiture
def setClient(self, client):
self.__client = client
c = connexionBDD()
c.execute("UPDATE voiture SET idClient = '" + str(client.id) + "' WHERE idVoiture='" + str(self.id) + "'")
c.seDeconnecter()
## propriete : id Voiture
@property
def id(self):
return self.__id
## propriete : hauteur Voiture
@property
def hauteur(self):
return self.__hauteur
## propriete : longueur Voiture
@property
def longueur(self):
return self.__longueur
## propriete : immatriculation Voiture
@property
def immatriculation(self):
return self.__imma
## propriete : Client possedant Voiture
@property
def client(self):
return self.__client
## Representation d'une Voiture en chaine
def __str__(self):
return "[Voiture :" \
" id = " + str(self.__id) + ", "+\
" client = " + str(self.__client) + ", " +\
" longueur = " + str(self.__longueur) + ", " +\
" hauteur = " + str(self.__hauteur) + ", " +\
" imma = " + str(self.__imma) + "]"