class Fen6( QDialog ): # saisir un nouveau produit et de le ratacher à un site de production def __init__(self): QDialog.__init__(self) self.setWindowTitle("IkeoOoooooo") self.setGeometry(500, 50, 500, 450) self.setStyleSheet("background-color: #003399; color: #FFFFFF") try: self.data = Bdd() except mysql.connector.errors.InterfaceError: self.pop = Popup() self.pop.connex_err() self.vide = QLabel() self.invit0 = QLabel() self.invit0.setText("Nom du produit :") self.invit1 = QLabel() self.invit1.setText("Référence :") self.invit2 = QLabel() self.invit2.setText("Description :") self.invit3 = QLabel() self.invit3.setText("Statut du produit :") self.invit4 = QLabel() self.invit4.setText("Site de production :") self.affect_statut = QComboBox(self) self.affect_statut.addItems( ['Commercialisation abandonnée', 'Commercialisé']) self.affect_site = QComboBox(self) self.affect_site.addItems(self.data.lister_sites()) self.champ0 = QLineEdit() self.champ1 = QLineEdit() self.champ2 = QLineEdit() self.btok = QPushButton("Entrer dans la base") self.btok.resize(100, 30) self.btok.clicked.connect(self.appui_ok6) self.label = QLabel() layout = QVBoxLayout() layout.addWidget(self.invit0) layout.addWidget(self.champ0) layout.addWidget(self.invit1) layout.addWidget(self.champ1) layout.addWidget(self.invit2) layout.addWidget(self.champ2) layout.addWidget(self.invit3) layout.addWidget(self.affect_statut) layout.addWidget(self.invit4) layout.addWidget(self.affect_site ) ## ajouter possibilité d'affecter plusieurs sites layout.addWidget(self.vide) layout.addWidget(self.btok) layout.addWidget(self.label) self.setLayout(layout) def appui_ok6(self): nompro = self.champ0.text() refpro = self.champ1.text() descpro = self.champ2.text() if self.affect_statut.currentText() == 'Commercialisé': statpro = 0 else: statpro = 1 site1 = self.affect_site.currentText() refs_existantes = self.data.lister_references() if refpro in refs_existantes: self.pop1 = Popup() self.pop1.ref_exist_err() else: if (bool(nompro) & bool(refpro) ): ## faire un if imbriqué pour ref existe déjà ou pas try: self.data.ajout_produit(nompro, refpro, descpro, statpro, site1) self.champ0.setText("") self.champ1.setText("") self.champ2.setText("") self.label.setText("Nouveau produit entré en base.") except OperationalError: self.label.setText( "Une erreur est survenue. Vérifiez votre connexion avec le serveur de données." ) else: self.pop = Popup() self.pop.champ_vide_err("'Nom' et 'Référence'")
class Fen4(QDialog): # saisir un nouveau client def __init__(self): QDialog.__init__(self) self.setWindowTitle("IkeoOoooooo") self.setGeometry(500, 50, 500, 450) self.setStyleSheet("background-color: #003399; color: #FFFFFF") try: self.data = Bdd() except mysql.connector.errors.InterfaceError: self.pop = Popup() self.pop.connex_err() self.vide = QLabel() self.invit1 = QLabel() self.invit1.setText("Choisir le type de client :") self.invit2 = QLabel() self.invit2.setText("Nom du client :") self.invit3 = QLabel() self.invit3.setText("Adresse :") self.invit4 = QLabel() self.invit4.setText("Ville :") self.invit5 = QLabel() self.invit5.setText("Pays :") self.affect_typecl = QComboBox(self) self.affect_typecl.addItems(['Magasin', 'Central d\'achat']) self.affect_pays = QComboBox(self) self.affect_pays.addItems(self.data.lister_pays()) self.champ2 = QLineEdit() self.champ3 = QLineEdit() self.champ4 = QLineEdit() self.btok = QPushButton("Entrer dans la base") self.btok.resize(100, 30) self.btok.clicked.connect(self.appui_ok4) self.label = QLabel() layout = QVBoxLayout() layout.addWidget(self.invit1) layout.addWidget(self.affect_typecl) layout.addWidget(self.invit2) layout.addWidget(self.champ2) layout.addWidget(self.invit3) layout.addWidget(self.champ3) layout.addWidget(self.invit4) layout.addWidget(self.champ4) layout.addWidget(self.invit5) layout.addWidget(self.affect_pays) layout.addWidget(self.vide) layout.addWidget(self.btok) layout.addWidget(self.label) self.setLayout(layout) def appui_ok4(self): typecl = self.affect_typecl.currentText() nom = self.champ2.text() rue = self.champ3.text() ville = self.champ4.text() pays = self.affect_pays.currentText() if (bool(nom) & bool(ville)): try: self.data.saisir_client(typecl, nom, rue, ville, pays) self.champ2.setText("") self.champ3.setText("") self.champ4.setText("") self.label.setText("Nouveau client entré en base.") except: self.label.setText( "Une erreur est survenue. Veuillez vérifier votre connexion au serveur et réessayer." ) else: self.pop = Popup() self.pop.champ_vide_err("'Nom' et 'Ville'")