def zmien_login(self): from PyQt5.QtWidgets import QInputDialog self.input_msg = QInputDialog() self.input_msg.setWindowIcon(QIcon('icons/cow.png')) self.input_msg.setWindowTitle('Zmiana loginu') self.input_msg.setLabelText('Wpisz nowy login:'******'Anuluj') id = str(self.id_uz()) if self.input_msg.exec_(): login = str(self.input_msg.textValue()) query = 'UPDATE uzytkownicy SET nazwa_uz = "' + login + '" WHERE iduzytkownicy = ' + id + ';' polaczenie(query)
def usun_konto(self): msg = QMessageBox(self) msg.setIcon(QMessageBox.Warning) msg.setText('Czy na pewno chcesz usunąć swoje konto?') msg.setWindowTitle('Usuwanie konta') msg.addButton('Tak', QMessageBox.YesRole) msg.addButton('Nie', QMessageBox.NoRole) msg = msg.exec_() if not msg and id_user[0] != 1: query = 'DELETE FROM "uzytkownicy" WHERE "iduzytkownicy" IS ("' + str( id_user[0]) + '");' polaczenie(query) self.statusBar().showMessage("Usunięto użytkownika", 10000)
def zmien_haslo(self): from PyQt5.QtWidgets import QInputDialog from PyQt5.QtWidgets import QLineEdit self.input_msgh = QInputDialog() self.input_msgh.setWindowIcon(QIcon('icons/cow.png')) self.input_msgh.setWindowTitle('Zmiana hasła') self.input_msgh.setLabelText('Wpisz nowe hasło:') self.input_msgh.setCancelButtonText('Anuluj') self.input_msgh.setTextEchoMode(QLineEdit.Password) id = str(self.id_uz()) if self.input_msgh.exec_(): haslo = str(self.input_msgh.textValue()) query = 'UPDATE uzytkownicy SET haslo_uz = "' + haslo + '" WHERE iduzytkownicy = ' + id + ';' polaczenie(query)
def dodaj_poz(self): text, ok = QInputDialog.getText(self, 'Wprowadź pozycje', 'Pozycja:') if ok and text: query = 'CREATE TABLE IF NOT EXISTS "' + text + '" ("id_poz" INTEGER PRIMARY ' \ 'KEY AUTOINCREMENT, ' \ '"symbol_narz" TEXT, ' \ '"vc" INTEGER, "obroty" ' \ 'INTEGER, "fz" REAL, "posuw" ' \ 'INTEGER); ' print(query) polaczenie(query) self.listaPozycji.clear() self.combo_poz.addItem(text) self.naglowki_kolumn() self.parent.statusBar().showMessage("Dodano pozycję " + text, 10000) else: print("Nie wpisano pozycji")
def dodaj(self): poz, masz, op, tm, tp, ok = MultiDialog().getMultidialog(self) print(poz, masz, op, tm, tp, ok) id = self.parent.id_user[0] if ok and poz: query = "INSERT INTO kolnierze(nr_detalu,maszyna,nazwa_op,tm,tp," \ "id_uzytkownika) VALUES ('" + poz + "','" + masz + "','" + op + "','" + tm + "','" + tp + "','" + str( id) + "');" print(query) polaczenie(query) if tm and tp: try: self.uzupelniene() except: pass self.model.select() self.parent.statusBar().showMessage("Dodano nową pozycję", 10000) else: print("Nie wpisano pozycji")
def klikniecie(self): x = self.table_narz.currentIndex().row() y = self.table_narz.currentIndex().column() nazwa = self.table_narz.currentIndex().sibling(x, 1).data() print(nazwa) # Dodanie narzędzia do pozycji if nazwa: print(nazwa) query = "INSERT INTO '" + self.model_poz.tableName( ) + "'(symbol_narz) VALUES ('" + nazwa + "') " polaczenie(query) # Odświeża tabelę self.model_poz.select() self.parent.statusBar().showMessage( "Dodano narzędzie " + nazwa + " do pozycji " + self.model_poz.tableName(), 10000) else: print(self.model_poz.tableName()) print("Brak wybranego narzędzia")
def usun_pozycje(self): text, ok = QInputDialog.getItem(self, 'Usuń pozycje', 'Wybierz pozycję do usunięcia', self.listaPozycji[1:], editable=False) if ok: if text != 'Brak': print(text) query = 'DROP TABLE "main"."' + text + '";' polaczenie(query) self.listaPozycji.clear() self.naglowki_kolumn() indeks = self.combo_poz.findText(text) self.combo_poz.removeItem(indeks) self.parent.statusBar().showMessage("Usunięto pozycję", 10000) else: msg = QMessageBox() msg.setIcon(QMessageBox.Warning) msg.setWindowIcon(QIcon('icons/cow.png')) msg.setText("Wybierz poprawną pozycję") msg.setWindowTitle("Niewłaściwa pozycja") msg.exec_() self.usun_pozycje()
def usun_konto(self): from PyQt5.QtWidgets import QMessageBox self.msg = QMessageBox() self.msg.setIcon(QMessageBox.Warning) self.msg.setWindowIcon(QIcon('icons/cow.png')) self.msg.setText('Czy na pewno chcesz usunąć konto?') self.msg.setWindowTitle('Usuwanie konta') self.msg.addButton('Tak', QMessageBox.YesRole) self.msg.addButton('Nie', QMessageBox.NoRole) msg = self.msg.exec_() id = self.id_uz() if not msg: query = 'DELETE FROM "uzytkownicy" WHERE "iduzytkownicy" IS ("' + str( id) + '");' polaczenie(query) self.horizontalLayout.removeWidget(self.label) self.label.hide() self.horizontalLayout.removeWidget(self.haslo) self.haslo.hide() self.horizontalLayout.removeWidget(self.login) self.login.hide() self.horizontalLayout.removeWidget(self.usun) self.usun.hide()
def wysylanie(text=None, nazwa=0): import smtplib, ssl from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart import time now = time.strftime("%c") query = 'SELECT "nazwa_uz" FROM "uzytkownicy" WHERE iduzytkownicy IS ' + str( nazwa) nazwa = polaczenie(query) sender_email = "*****@*****.**" receiver_email = "*****@*****.**" password = '******' message = MIMEMultipart("alternative") message["Date"] = now message["Subject"] = "Zgłoś problem PBPZ - ID: " + str(nazwa[0]) message["From"] = sender_email message["To"] = receiver_email # Turn these into plain/html MIMEText objects part1 = MIMEText(text, "plain") # Add HTML/plain-text parts to MIMEMultipart message # The email client will try to render the last part first message.attach(part1) # Create secure connection with server and send email context = ssl.create_default_context() with smtplib.SMTP_SSL("poczta.hb.pl", 465, context=context) as server: server.login(sender_email, password) server.sendmail(sender_email, receiver_email, message.as_string()) print('Wysłano') msg = QMessageBox() msg.setIcon(QMessageBox.Information) msg.setWindowIcon(QIcon('icons/cow.png')) msg.setText("Zgłoszono błąd i nastąpi jego rozpatrzenie.") msg.setInformativeText("Dziękujemy za uwagi.") msg.setWindowTitle("Zgłoszono uwagę") msg.setStandardButtons(QMessageBox.Ok) msg.exec_()
def logowanie(self): login = str(self.login.text()) query = "SELECT iduzytkownicy FROM uzytkownicy WHERE nazwa_uz = '" + \ login + "' AND haslo_uz = '" + str(self.haslo.text()) + "';" global id_user id_user = polaczenie(query) if id_user: print("Logowanie udane") self.accept() else: print("Coś jest nie tak...") QMessageBox.information(self, 'Błąd logowania', "Niepoprawne " "hasło lub login" " \nSpróbuj " "ponownie", QMessageBox.Ok, QMessageBox.Ok) if not self.plik: file = open(os.environ['LOCALAPPDATA'] + '\\pbpz.cfg', 'x', -1, 'utf-8') file.write(login) file.close()
def opcje_uzytkownik(haslo, id_user): print(id_user[0]) query = 'UPDATE "main"."uzytkownicy" SET "haslo_uz"="' + haslo + '" WHERE' \ ' "iduzytkownicy"=' + "'" + str( id_user[0]) + "'" + '; ' polaczenie(query)
def zmiana_uzytkownik(uzytkownik, id_user): query = 'UPDATE uzytkownicy SET nazwa_uz = "' + uzytkownik + '" WHERE iduzytkownicy = ' + \ id_user[0] + ';' polaczenie(query)
def dodaj_uzytkownik(uzytkownik): query = 'INSERT INTO "main"."uzytkownicy"(nazwa_uz,haslo_uz) VALUES ("' + uzytkownik + '","' + uzytkownik + '");' polaczenie(query)
def odczyt(self): id = str(self.parent.id_user[0]) query = 'SELECT odczyt FROM uzytkownicy WHERE iduzytkownicy=' + id return polaczenie(query)[0]
def dodanie(self): global tab, query tab_select = [] if self.rodzaj == 'Frez palcowy': query = "INSERT INTO frezy_palcowe(symbol_freza, producent_fr, " \ "srednica_fr, dl_fr, dl_rob_fr) VALUES(?,?,?,?,?) " tab = (self.symbol_edit.text(), self.producent_edit.text(), self.srednica_edit.text().replace(',', '.'), self.dlugosc_edit.text().replace(',', '.'), self.dlugosc_rob_edit.text().replace(',', '.')) tab_select = ['idfrezy_palcowe', 'frezy_palcowe', 'symbol_freza'] if self.rodzaj == 'Frez płytkowy (głowica)': query = "INSERT INTO frezy_plytkowe(symbol_freza_pl, " \ "producent_fp, srednica_fr_pl, ilosc_plytek, symbol_pl," \ "ilosc_krawedzi_pl) VALUES(?,?,?,?,?,?) " tab = (self.symbol_edit.text(), self.producent_edit.text(), self.srednica_edit.text().replace(',', '.'), self.ilosc_pl_edit.text(), self.symbol_pl_edit.text(), self.ilosc_kraw_edit.text()) tab_select = [ 'idfrezy_plytkowe', 'frezy_plytkowe', 'symbol_frez_pl' ] if self.rodzaj == 'Gwintownik': query = "INSERT INTO gwintowniki(symbol_g, producent_gw, " \ "rozmiar_gwintu, typ_gwintownika) VALUES(?,?,?,?) " tab = ( self.symbol_edit.text(), self.producent_edit.text(), self.gwint_edit.text(), self.typ_gw_edit.text(), ) tab_select = ['idgwintowniki', 'gwintowniki', 'symbol_g'] if self.rodzaj == 'Nóż tokarski': query = "INSERT INTO noze_tokarskie(symbol_n, producent_n, " \ "plytki_n, ilosc_krawedzi_pl_n) VALUES(?,?,?,?) " tab = ( self.symbol_edit.text(), self.producent_edit.text(), self.symbol_pl_lbl.text(), self.ilosc_kraw_edit.text(), ) tab_select = ['idnoze_tokarskie', 'noze_tokarskie', 'symbol_n'] if self.rodzaj == 'Oprawka': query = "INSERT INTO oprawki(typ_oprawki, producent_opr, dl_opr, " \ "srednica_wew, srednica_zew) VALUES(?,?,?,?,?) " tab = ( self.symbol_edit.text(), self.producent_edit.text(), self.dlugosc_edit.text().replace(',', '.'), self.sr_wew_edit.text().replace(',', '.'), self.sr_zew_edit.text().replace(',', '.'), ) tab_select = ['idoprawki', 'oprawki', 'typ_oprawki'] if self.rodzaj == 'Piła': query = "INSERT INTO pily(symbol_p, producent_pil, srednica_p, " \ "grubosc_p, rodzaj_pl_p,ilosc_pl_p,ilosc_kraw_p) VALUES(" \ "?,?,?,?,?,?,?) " tab = ( self.symbol_edit.text(), self.producent_edit.text(), self.srednica_edit.text().replace(',', '.'), self.gr_edit.text(), self.symbol_pl_edit.text(), self.ilosc_pl_edit.text(), self.ilosc_kraw_edit.text(), ) tab_select = ['idpily', 'pily', 'symbol_p'] if self.rodzaj == 'Pozostałe': query = "INSERT INTO pozostale(symbol_poz, producent_poz, " \ "srednica_poz, ilosc_pl_poz, plytki_poz) VALUES(?,?,?,?," \ "?) " tab = ( self.symbol_edit.text(), self.producent_edit.text(), self.srednica_edit.text().replace(',', '.'), self.ilosc_pl_edit.text(), self.symbol_pl_edit.text(), ) tab_select = ['idpozostale', 'pozostale', 'symbol_poz'] if self.rodzaj == 'Rozwiertak': query = "INSERT INTO rozwiertaki(symbol_r, producent_roz, " \ "rozmiar_r) VALUES(?,?,?) " tab = ( self.symbol_edit.text(), self.producent_edit.text(), self.srednica_edit.text().replace(',', '.'), ) tab_select = ['idrozwiertaki', 'rozwiertaki', 'symbol_r'] if self.rodzaj == 'Wiertło': query = "INSERT INTO wiertla(symbol_w, producent_w, srednica_w, " \ "dlugosc_w) VALUES(?,?,?,?) " tab = ( self.symbol_edit.text(), self.producent_edit.text(), self.srednica_edit.text().replace(',', '.'), self.dlugosc_edit.text(), ) tab_select = ['idwiertla', 'wiertla', 'symbol_w'] if self.rodzaj == 'Wiertło składane': query = "INSERT INTO wiertla_skladane(symbol_w_skl, " \ "producent_ws, srednica_w_skl, plytki_w_skl) VALUES(?,?," \ "?,?) " tab = ( self.symbol_edit.text(), self.producent_edit.text(), self.srednica_edit.text().replace(',', '.'), self.symbol_pl_edit.text(), ) tab_select = [ 'idwiertla_skladane', 'wiertla_skladane', 'symbol_w_skl' ] if self.rodzaj == 'Wygniatak': query = "INSERT INTO wygniataki(symbol_wyg, producent_wyg, " \ "rozmiar_gw) VALUES(?,?,?) " tab = ( self.symbol_edit.text(), self.producent_edit.text(), self.gwint_edit.text(), ) tab_select = ['idwygniataki', 'wygniataki', 'symbol_wyg'] print(tab) q_spr = 'SELECT ' + tab_select[0] + ' FROM ' + tab_select[ 1] + ' WHERE ' + tab_select[2] + '="' + self.symbol_edit.text( ) + '"' if polaczenie(q_spr) and self.symbol_edit.text() != "": QMessageBox.warning(self, "Duplikujące się narzędzie", "Narzędzie, które dodajesz, jest już w bazie", QMessageBox.Ok) elif self.symbol_edit.text() == "": QMessageBox.critical( self, "Brak symbolu narzędzia", "Nie można dodać narzędzia bez wpisania " "symbolu", QMessageBox.Ok) else: polaczenie(query, tab) self.parent.statusBar().showMessage("Dodano narzędzie", 10000) # czyszczenie po dodaniu narzędzia self.symbol_edit.setText('') self.producent_edit.setText('') self.srednica_edit.setText('') self.dlugosc_edit.setText('') self.dlugosc_rob_edit.setText('') self.ilosc_pl_edit.setText('') self.ilosc_kraw_edit.setText('') self.symbol_pl_edit.setText('') self.gwint_edit.setText('') self.typ_gw_edit.setText('') self.typ_opr_edit.setText('') self.sr_wew_edit.setText('') self.sr_zew_edit.setText('') self.gr_edit.setText('')
def id_uz(self): # ID użytkownika query = 'SELECT iduzytkownicy FROM uzytkownicy WHERE nazwa_uz IS ("' + str( self.label.text()) + '");' return polaczenie(query)[0]