def on_pushCsomagtorles_clicked(self): ppont_deleted = 0 if not self.keszito is None: qDeletePponts = QtSql.QSqlQuery() siker = qDeletePponts.exec_( """DELETE FROM ppont WHERE csomag_azon = (SELECT csomag_azon FROM csomag WHERE csomag_azon = %s AND allapot = False AND keszito = '%s') RETURNING ppont_azon;""" % (str(self.selCsomagAzon), self.keszito)) if siker: if qDeletePponts.size() > 0: ppont_deleted = qDeletePponts.size() else: QtWidgets.QMessageBox.warning( None, u"Csomagtörlés", u"Nem törölhető a csomaghoz kapcsolódó P-pont.") return else: if qDeletePponts.lastError().type() != 0: QtWidgets.QMessageBox.warning( None, "Hiba:", "Hiba típus: %s" % str(qDeletePponts.lastError().text())) return qDeleteCsomag = QtSql.QSqlQuery() siker = qDeleteCsomag.exec_( """DELETE FROM csomag WHERE csomag_azon = %s AND allapot = False AND keszito = '%s' RETURNING csomag_nev;""" % (str(self.selCsomagAzon), self.keszito)) if siker: if qDeleteCsomag.size() == 1: qDeleteCsomag.next() QtWidgets.QMessageBox.warning( None, u"Csomagtörlés", u"Sikeres csomagtörlés: %s. Törölt pontok száma: %s" % (qDeleteCsomag.value(0), str(ppont_deleted))) self.selCsomagNev = None self.selCsomagAzon = None self.lineSelCsomag.setText('') self.checkTorles.setChecked(False) self.pushFileGeneralas.setEnabled(False) ppont_deleted = 0 self.refresh_layers() return else: QtWidgets.QMessageBox.warning( None, u"Csomagtörlés", u"Nem történt csomagtörlés. Törölt pontok száma: %s" % str(ppont_deleted)) return else: if qDeleteCsomag.lastError().type() != 0: QtWidgets.QMessageBox.warning( None, u"Hiba:", u"Hiba típus: %s" % str(qDeleteCsomag.lastError().text())) return else: QtWidgets.QMessageBox.warning( None, u"Csomagtörlés", u"Nincs bejelentkezett Csomagkészítő!")
def on_pushPontszures_clicked(self): self.mintahalo = self.selectedMintavetel() self.mintater = self.comboMintater.currentText() self.eLayer.setSubsetString('"projminter"=\'%s\' and "net%s"=True' % (self.mintater, str(self.mintahalo))) self.newExtent() self.checkTeszt.setChecked(False) self.comboFelmero.clear() self.comboFormverzio.clear() self.lineTask.setText('') self.linePontok.setText('') queryFelmeroOpciok = QtSql.QSqlQuery() siker = queryFelmeroOpciok.exec_("""SELECT szemely FROM (SELECT szemely, szerep FROM szereposztas WHERE projminter = '%s' and aktiv is True) foo1 INNER JOIN (SELECT szerep FROM szerep WHERE csomagkapo is True) foo2 ON foo1.szerep = foo2.szerep;""" % self.mintater) if siker: if queryFelmeroOpciok.size() > 0: while queryFelmeroOpciok.next(): self.comboFelmero.addItem(queryFelmeroOpciok.value(0)) else: QtWidgets.QMessageBox.warning( None, u"Csomagkiosztás", u"Nincs felmérő rendelve a mintaterülethez.") return else: if queryFelmeroOpciok.lastError().type() != 0: QtWidgets.QMessageBox.warning( None, "Hiba:", "Hiba típus: %s" % str(queryFelmeroOpciok.lastError().text())) return queryFormOpciok = QtSql.QSqlQuery() siker = queryFormOpciok.exec_("""SELECT formverzio FROM formosztas WHERE projminter = '%s' and hasznalat is True;""" % self.mintater) if siker: if queryFormOpciok.size() > 0: while queryFormOpciok.next(): self.comboFormverzio.addItem(queryFormOpciok.value(0)) else: QtWidgets.QMessageBox.warning( None, u"Csomagkiosztás", u"Nincs form rendelve a mintaterülethez.") return else: if queryFormOpciok.lastError().type() != 0: QtWidgets.QMessageBox.warning( None, "Hiba:", "Hiba típus: %s" % str(queryFormOpciok.lastError().text())) return self.frameCreate.setEnabled(True)
def selectEpont(self, epontazon, mintaterulet): queryEpontData = QtSql.QSqlQuery() siker = queryEpontData.exec_( """SELECT bpont_azon,sor,oszlop,lon_wgs,lat_wgs FROM epont WHERE epont_azon in (%s) and projminter = '%s';""" % (str(epontazon), mintaterulet)) if siker: if queryEpontData.size() > 0: while queryEpontData.next(): return [ queryEpontData.value(0), queryEpontData.value(1), queryEpontData.value(2), queryEpontData.value(3), queryEpontData.value(4) ] else: QtWidgets.QMessageBox.warning( None, u"Csomagkiosztás", u"Az e-pont lekérdezés sikertelen.") return else: if queryEpontData.lastError().type() != 0: QtWidgets.QMessageBox.warning( None, "Hiba:", "Hiba típus: %s" % str(queryEpontData.lastError().text())) return
def createCsomag(self, mintaterkod, mintaterulet, felmero, csomgeom, pontszam, sor, oszlop, keszito, teszt, ponttavolsag, formverzio, taskstr): queryCsomag = QtSql.QSqlQuery() siker = queryCsomag.exec_( """INSERT INTO csomag (mintater,projminter,felmero,geom,cs_pontszam,sorok,oszlopok,keszito,letrehozas,hatarido,teszt,halo,formverzio,task) VALUES ('%s','%s','%s',ST_Multi(ST_GeomFromText('%s',23700)),%s,%s,%s,'%s',CURRENT_TIMESTAMP(0),CURRENT_TIMESTAMP(0)+'2 month',%s,%s,'%s','%s') RETURNING csomag_azon, csomag_nev;""" % (mintaterkod, mintaterulet, felmero, csomgeom, str(pontszam), str(sor), str(oszlop), keszito, teszt, str(ponttavolsag), formverzio, taskstr)) if siker: if queryCsomag.size() > 0: while queryCsomag.next(): return [queryCsomag.value(0), queryCsomag.value(1)] else: QtWidgets.QMessageBox.warning( None, u"Csomagkiosztás", u"A csomag készítés nem adott vissza azonosítót.") return else: if queryCsomag.lastError().type() != 0: QtWidgets.QMessageBox.warning( None, "Hiba:", "Hiba típus: %s" % str(queryCsomag.lastError().text())) return
def createSorOszlop(self, epontlist, mintaterulet): querySorOszlop = QtSql.QSqlQuery() siker = querySorOszlop.exec_( """SELECT MIN(sor) smin, MAX(sor) smax, MIN(oszlop) omin, MAX(oszlop) omax FROM epont WHERE epont_azon in (%s) and projminter = '%s'""" % (epontlist, mintaterulet)) if siker: if querySorOszlop.size() > 0: while querySorOszlop.next(): return [ querySorOszlop.value(0), querySorOszlop.value(1), querySorOszlop.value(2), querySorOszlop.value(3) ] else: QtWidgets.QMessageBox.warning( None, u"Csomagkiosztás", u"A csomag nem kapott sor-oszlop értékeket.") return else: if querySorOszlop.lastError().type() != 0: QtWidgets.QMessageBox.warning( None, "Hiba:", "Hiba típus: %s" % str(querySorOszlop.lastError().text())) return
def DB_CreateConnection(self): global db db = QtSql.QSqlDatabase.addDatabase('QSQLITE') proj = QgsProject.instance() db_path = QgsProject.instance().readPath("./") db_folder = QFileInfo(proj.fileName()).baseName() db_subfolder = os.path.normpath(db_path + "/" + db_folder + "/DB") db_file = os.path.join(db_subfolder, "DB_SM.db") db.setDatabaseName(db_file) # self.dlg.DB_Project_Database.setText(db_file) db.setHostName("localhost") db.setPort(5432) #db.setUserName("root") db.open() if db.open(): msgBox = QMessageBox() msgBox.setWindowIcon(QtGui.QIcon(':/QSWATMOD2/pics/sm_icon.png')) msgBox.setWindowTitle("Ready!") msgBox.setText("Connected to Database") msgBox.exec_() self.dlg.raise_() # Pop the dialog after execution query = QtSql.QSqlQuery(db) #Th Keep track of the references in the scenarios the foreign key statement is activated: #https://pythonschool.net/databases/referential-integrity/ query.exec_("PRAGMA foreign_keys = ON") self.dlg.groupBox_SWAT.setEnabled(True) else: QMessageBox.critical(None, "Database Error", db.lastError().text()) return False
def DB_push_mf_userVal(self): db = db_functions.db_variable(self) query = QtSql.QSqlQuery(db) query.prepare( "UPDATE mf_inputs SET user_val = :UP1 WHERE parNames = 'ss'") query.bindValue(":UP1", self.lineEdit_ss_single.text()) query.exec_()
def create_query_obj_from_uri(self, uri): """ creates an QtSql.QSqlQuery(db) instance with the database information stored in uri-object """ db_type_identifier = self._QUERY_TYPE_DICT[self.flavor] db = QtSql.QSqlDatabase.addDatabase(db_type_identifier) db.setHostName(uri.host()) try: db.setPort(int(uri.port())) except ValueError: # Non-integer port. TODO: could we use "if uri.port()"? And why # don't we use the .get_uri() method? pass db.setDatabaseName(uri.database()) db.setUserName(uri.username()) db.setPassword(uri.password()) ok = db.open() if ok: self.query = QtSql.QSqlQuery(db) else: raise RuntimeError( "Failed to open database connection: {}".format( db.lastError().driverText() ) )
def createCsomagGeom(self, ponttavolsag, epontlist, mintaterulet): halostr = '' if ponttavolsag > 50: halostr = str(ponttavolsag) queryGeomCreate = QtSql.QSqlQuery() siker = queryGeomCreate.exec_( """SELECT ST_AsText(ST_Multi(ST_Union(geom))) as csomgeom FROM ekvad%s WHERE bpont_azon in (SELECT bpont_azon FROM epont WHERE epont_azon in (%s) AND projminter = '%s');""" % (halostr, epontlist, mintaterulet)) if siker: if queryGeomCreate.size() > 0: while queryGeomCreate.next(): return queryGeomCreate.value(0) else: QtWidgets.QMessageBox.warning( None, u"Csomagkiosztás", u"A csomag nem kapott geometriát.") return else: if queryGeomCreate.lastError().type() != 0: QtWidgets.QMessageBox.warning( None, "Hiba:", "Hiba típus: %s" % str(queryGeomCreate.lastError().text())) return
def save_to_database(table, data): """Save Into database. :param table: Table target be inserted :type table: str :param data: Data to be inserted :type data: dict :return: id of row that is inserted :rtype: int """ db = CadastaDatabase.open_database() if 'id' in data: # updating existing data row_id = data['id'] del data['id'] query_filter = [] filter_string = '%(FIELD)s=%(VALUE)s' for key, value in data.iteritems(): value = value # append it to query filter query_filter.append(filter_string % { 'FIELD': key, 'VALUE': value }) query_data = { 'TABLE': table, 'SET': ','.join(query_filter), 'ID': row_id } query_string = ('UPDATE %(TABLE)s SET %(SET)s ' 'WHERE id=%(ID)s') query_string = query_string % query_data else: # inserting new data fields = [] values = [] for key, value in data.iteritems(): fields.append(key) values.append(value) query_data = { 'TABLE': table, 'FIELDS': ','.join(fields), 'VALUES': ','.join(values) } query_string = ('INSERT INTO %(TABLE)s (%(FIELDS)s) ' 'VALUES (%(VALUES)s)') query_string = query_string % query_data query = QtSql.QSqlQuery(db) query.exec_(query_string) db.close() if query.numRowsAffected() < 1: return -1 else: return query.lastInsertId()
def on_pushFileGeneralas_clicked(self): if not self.keszito is None: general = False queryGenerated = QtSql.QSqlQuery() siker = queryGenerated.exec_( """SELECT allapot FROM csomag WHERE csomag_azon = %s;""" % (str(self.selCsomagAzon))) if siker: if queryGenerated.size() > 0: while queryGenerated.next(): if queryGenerated.value(0): dontes = QtWidgets.QMessageBox.question( self, u'File Generálás', u"A csomaghoz tartozó fájlokat már létrehozták. Újra kívánod generálni őket?", QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No, QtWidgets.QMessageBox.No) if dontes == QtWidgets.QMessageBox.Yes: general = True print(general) else: general = True else: QtWidgets.QMessageBox.warning(None, u"File Generálás", u"Hiányzó csomag rekord.") return else: if queryGenerated.lastError().type() != 0: QtWidgets.QMessageBox.warning( None, u"Hiba:", u"Hiba típus: %s" % str(queryGenerated.lastError().text())) return if general: genfolder = str( QtWidgets.QFileDialog.getExistingDirectory( self, u"Válassz könyvtárt", "d:\SH", QtWidgets.QFileDialog.ShowDirsOnly)) if genfolder: print(genfolder.replace('\\', '/')) print(self.selCsomagAzon, genfolder) generator(self.selCsomagAzon, genfolder.replace('\\', '/'), self.keszito) else: print('not yet') return else: QtWidgets.QMessageBox.warning( None, u"File Generálás", u"Nincs bejelentkezett Csomagkészítő!") return
def DB_resetTodefaultVal(self): msgBox = QMessageBox() msgBox.setWindowIcon(QtGui.QIcon(':/APEXMOD/pics/am_icon.png')) response = msgBox.question( self, 'Set to default?', "Are you sure you want to reset the current aquifer property settings to the default values?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if response == QMessageBox.Yes: db = db_functions.db_variable(self) query = QtSql.QSqlQuery(db) query.exec_("SELECT default_val FROM mf_inputs WHERE parNames = 'ss' ") LK = str(query.first()) self.lineEdit_ss_single.setText(str(query.value(0))) self.DB_push_mf_userVal()
def delete_rows_from_database(table, row_ids): """Delete rows from database. :param table: Table target be inserted :type table: str :param row_ids: List id of row that will be deleted :type row_ids: [int] """ db = CadastaDatabase.open_database() row_ids = ['%s' % row_id for row_id in row_ids] query_data = { 'TABLE': table, 'ID': ','.join(row_ids) } query_string = 'DELETE FROM %(TABLE)s WHERE ID IN (%(ID)s)' query_string = query_string % query_data query = QtSql.QSqlQuery(db) query.exec_(query_string) if db: db.close()
def checkEllenor(self): queryEllenor = QtSql.QSqlQuery() siker = queryEllenor.exec_("""SELECT projminter FROM szereposztas WHERE szerep in (SELECT szerep FROM szerep WHERE csomagoszto = True) AND aktiv = True AND szemely = '%s';""" % csomadmin) if siker: if queryEllenor.size() == 0: return False elif queryEllenor.size() > 0: while queryEllenor.next(): ujMinta = [queryEllenor.value(0)] self.mintateruletek.extend(ujMinta) return True else: if queryEllenor.lastError().type() != 0: QtWidgets.QMessageBox.warning( None, "Hiba:", "Hiba típus: %s" % str(queryEllenor.lastError().text())) return
def get_from_database(table, filter_string): """Get rows from database. :param table: Table target be inserted :type table: str :param filter_string: Filter_string that will be used as filter :type filter_string: str :return: Query that is received :rtype: QSqlQuery """ db = CadastaDatabase.open_database() query_string = ('SELECT * FROM %(TABLE)s ' % {'TABLE': table}) if filter_string: query_string += 'WHERE %s' % filter_string query = QtSql.QSqlQuery(db) query.exec_(query_string) query.last() if db: db.close() return query
def createPpont(self, csomazon, epontazon, bpontazon, x, psor, poszlop, wgslon, wgslat, geomtext, mintaterulet): queryPpont = QtSql.QSqlQuery() siker = queryPpont.exec_( """INSERT INTO ppont (csomag_azon,epont_azon,bpont_azon,sorszam,sor,oszlop,wgs84_lon,wgs84_lat,geom,projminter)\ VALUES (%s,%s,%s,%s,%s,%s,%s,%s,ST_GeomFromText('%s',4326),'%s') RETURNING ppont_azon""" % (str(csomazon), str(epontazon), str(bpontazon), str(x), str(psor), str(poszlop), str(wgslon), str(wgslat), geomtext, mintaterulet)) if siker: if queryPpont.size() > 0: while queryPpont.next(): return queryPpont.value(0) else: QtWidgets.QMessageBox.warning( None, u"Csomagkiosztás", u"A ppont készítés nem adott vissza azonosítót.") return else: if queryPpont.lastError().type() != 0: QtWidgets.QMessageBox.warning( None, "Hiba:", "Hiba típus: %s" % str(queryPpont.lastError().text())) return
def csomag_XML_elem(cs_felm, cs_azon, cs_nev, cs_pontsz, cs_gen, cs_hat, cs_tom, cs_MD5, genfolder): """ XML minidom-document létrehozása a csomag adataival és a csomag_log rekord kezelése""" doc = Document() # csomag elem létrehozása csomag = doc.createElement('csomag') csomag.setAttribute("azonosito", '%s' % str(cs_azon)) csomag.setAttribute("nev", '%s' % cs_nev) csomag.setAttribute("pontszam", '%s' % str(cs_pontsz)) doc.appendChild(csomag) # a csomag gyermek elemeinek létrehozása generalas = doc.createElement('generalas') generalas_tartalom = doc.createTextNode('%s' % cs_gen) generalas.appendChild(generalas_tartalom) csomag.appendChild(generalas) hatarido = doc.createElement('hatarido') hatarido_tartalom = doc.createTextNode('%s' % cs_hat) hatarido.appendChild(hatarido_tartalom) csomag.appendChild(hatarido) muvelet = doc.createElement('muvelet') csomag.appendChild(muvelet) hash = doc.createElement('hash') csomag.appendChild(hash) # a művelet gyermek elemeinek létrehozása tomorites = doc.createElement('tomorites') tomorites_tartalom = doc.createTextNode('%s' % cs_tom) tomorites.appendChild(tomorites_tartalom) muvelet.appendChild(tomorites) # a művelet gyermek elemeinek létrehozása md5szerver = doc.createElement('MD5_szerver') md5szerver_tartalom = doc.createTextNode('%s' % cs_MD5) md5szerver.appendChild(md5szerver_tartalom) hash.appendChild(md5szerver) fname = genfolder + '/' + cs_felm + '/' + cs_nev + '.xml' # XML kiírása doc.writexml(open(fname, 'w'), indent=" ", addindent=" ", newl='\n') doc.unlink() if os.path.isfile(fname): queryLogId = QtSql.QSqlQuery() siker = queryLogId.exec_( '''SELECT package_id FROM csomag_log WHERE csomag_azon = %s;''' % (cs_azon)) if siker: if queryLogId.size() == 1: queryLogId.next() return queryLogId.value(0), 2 elif queryLogId.size() > 1: QtWidgets.QMessageBox.warning( None, u"Csomag-log", u"Csomag-log rekord lekérdezési hiba.") return 0, 0 else: if queryLogId.lastError().type() != 0: QtWidgets.QMessageBox.warning( None, u"Hiba:", u"Hiba típus: %s" % str(queryLogId.lastError().text())) return 0, 0 queryLog = QtSql.QSqlQuery() siker = queryLog.exec_( '''INSERT INTO csomag_log(felmero,csomag_azon,csomag_nev,cs_pontszam,cs_generalas,cs_hatarido,m_tomorites,hash_md5_szerver) VALUES('%s',%s,'%s',%s,'%s','%s','%s','%s') RETURNING package_id ;''' % (cs_felm, cs_azon, cs_nev, cs_pontsz, cs_gen, cs_hat, cs_tom, cs_MD5)) if siker: if queryLog.size() == 1: queryLog.next() return queryLog.value(0), 1 else: QtWidgets.QMessageBox.warning( None, u"Csomag-log", u"Csomag-log rekord rögzítési hiba.") return 0, 0 else: if queryLog.lastError().type() != 0: QtWidgets.QMessageBox.warning( None, u"Hiba:", u"Hiba típus: %s" % str(queryLog.lastError().text())) return 0, 0 else: print("No XML - No PackMan!") return 0, 0
def generator(csomazon, genfolder, keszito): # postgresql connection try: # csomag adatok lekérdezése prow = [] queryGenerate = QtSql.QSqlQuery() siker = queryGenerate.exec_( """SELECT csomag_azon,csomag_nev,mintater,projminter,felmero,hatarido,sorok,oszlopok,letrehozas, formverzio,oscsomag FROM csomag WHERE csomag_azon = %s""" % (csomazon)) if siker: if queryGenerate.size() == 1: queryGenerate.next() for i in range(11): prow.append(queryGenerate.value(i)) else: QtWidgets.QMessageBox.warning(None, u"File Generálás", u"Hiányzó csomag rekord.") return else: if queryGenerate.lastError().type() != 0: QtWidgets.QMessageBox.warning( None, u"Hiba:", u"Hiba típus: %s" % str(queryGenerate.lastError().text())) return print(prow) forward = True pontx = 0 sql_list = [] queryCreates = QtSql.QSqlQuery() crQuery = """SELECT table_sql FROM csomag_sql WHERE %s= True""" % ( prow[9].strip()) siker = queryCreates.exec_(crQuery) if siker: while queryCreates.next(): sql_list.append(queryCreates.value(0)) else: if queryCreates.lastError().type() != 0: QtWidgets.QMessageBox.warning( None, u"Hiba:", u"Hiba típus: %s" % str(queryCreates.lastError().text())) return if not len(sql_list): return try: # felhasználó könyvtárának létrehozása a megadott elérési út alatt - ha még nincs if not os.path.exists(genfolder + '/' + prow[4]): print('Create package folder:', os.path.exists(genfolder + '/' + prow[4])) os.makedirs(genfolder + '/' + prow[4]) # az SQLite adatbázis létrehozása, és kapcsolódás hozzá sdb = sqlite3.connect(genfolder + '/' + prow[4] + '/' + prow[1] + '.db') # sqlite táblák létrehozásának ciklusa for sql_rec in sql_list: scur = sdb.cursor() scur.execute(sql_rec) sdb.commit() # csomag rekord beszúrása prowselect = (prow[0], prow[1], prow[3], prow[4], prow[5].toString('yyyy-MM-dd hh:mm:ss'), prow[6], prow[7], prow[9].strip()) print(prowselect) csrec = sdb.cursor() csrec.execute( 'INSERT INTO csomag(csomag_id,csom_nev,mintater,felmero,hatarido,sor,oszlop,formverzio) VALUES(?,?,?,?,?,?,?,?)', prowselect) sdb.commit() # gpx változó létrehozása gpx = gpxpy.gpx.GPX() # ppont rekordok lekérdezése pponts = [] queryPRec = QtSql.QSqlQuery() siker = queryPRec.exec_( """SELECT ppont_azon,csomag_azon,epont_azon,bpont_azon,sorszam,sor,oszlop,wgs84_lat,wgs84_lon,statusz FROM ppont WHERE csomag_azon=%s""" % (prow[0])) if siker: while queryPRec.next(): prec = [] for i in range(10): prec.append(queryPRec.value(i)) pponts.append(prec) pontx = len(pponts) for ppont in pponts: # insert ppont records print(ppont) scur = sdb.cursor() if ppont[9] == 0: # ha uj csomagról van szó scur.execute( '''INSERT INTO ppont(ppont_id,csomag_id,epont_id,bpont_id,sorszam,sor,oszlop, wgs84_lat,wgs84_lon,statusz) VALUES(?,?,?,?,?,?,?,?,?,1)''', (ppont[0], ppont[1], ppont[2], ppont[3], ppont[4], ppont[5], ppont[6], ppont[7], ppont[8])) else: # ha hibajavító csomagról van szó scur.execute( '''INSERT INTO ppont(ppont_id,csomag_id,epont_id,bpont_id,sorszam,sor,oszlop, wgs84_lat,wgs84_lon,statusz) VALUES(?,?,?,?,?,?,?,?,?,?)''', ppont) sdb.commit() # GPX waypoint beszúrások a gpx változóba gpx_wpt = gpxpy.gpx.GPXWaypoint(ppont[7], ppont[8], name=str(ppont[4]), symbol='Navaid, Orange') gpx.waypoints.append(gpx_wpt) # gpx fájl létrehozása és lezárása gpxfilename = genfolder + '/' + prow[4] + '/' + prow[1] + '.gpx' gpxfile = open(gpxfilename, 'a') gpxfile.write(gpx.to_xml()) gpxfile.close() # a Garmin gpi fájl létrehozása GPSBabel program segítségével gpifilename = genfolder + '/' + prow[4] + '/' + prow[1] + '.gpi' pluginfolder = os.path.dirname(os.path.abspath(__file__)) babelparancs = '' if platform == "linux" or platform == "linux2" or platform == "darwin": # linux and OS X babelparancs = 'gpsbabel -w -i gpx -f ' + gpxfilename + ' -o garmin_gpi,category=' + prow[1][:6] \ + prow[1][8:] + ',bitmap="' + pluginfolder + '/pont.bmp",unique=1 -F ' + gpifilename elif platform == "win32": # Windows... babelparancs = 'gpsbabel -w -i gpx -f ' + gpxfilename + ' -o garmin_gpi,category=' + prow[1][:6] \ + prow[1][8:] + ',bitmap="' + pluginfolder.replace('\\','/') + '/pont.bmp",unique=1 -F ' + gpifilename # + prow[1][8:] + ",bitmap=d:/dev/pycharm_projects/scriptek/pont.bmp,unique=1 -F " + gpifilename else: QtWidgets.QMessageBox.warning( None, u"Hiba:", u"Operációs rendszer függési hiba: %s" % platform) if babelparancs: print(babelparancs) babelproc = os.system(babelparancs) print(babelproc) sleep(2) except sqlite3.Error as e: QtWidgets.QMessageBox.warning(None, u"Hiba:", u"Adatbázis hiba: %s" % e) forward = False except Exception as e: QtWidgets.QMessageBox.warning(None, u"Hiba:", u"Adatbázis lekérdezés hiba: %s" % e) forward = False finally: if sdb: sdb.close() if forward: # ha az eddigi műveletek sikeresen lezajlottak fname = genfolder + '/' + prow[4] + '/' + prow[1] + '.db' if os.path.isfile(fname): # adatbázis ZIP zömörítés zip_ok = csomag_zip(prow[1], prow[4], genfolder) md5_returned = None if zip_ok: # MD5 value generálás md5_returned = csomag_md5(genfolder + '/' + prow[4] + '/' + prow[1] + '.zip') if md5_returned is not None: tom_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S') # csomag XML element létrehozása, letárolása # csomag_azon,csomag_nev,mintater,projminter,felmero,hatarido,sorok,oszlopok,letrehozas,formverzio,oscsomag # (cs_felm, cs_azon, cs_nev, cs_pontsz, cs_gen, cs_hat, cs_tom, cs_MD5) logazon, logrend = csomag_XML_elem( prow[4], prow[0], prow[1], pontx, prow[8].toString('yyyy-MM-dd hh:mm:ss'), prow[5].toString('yyyy-MM-dd hh:mm:ss'), tom_time, md5_returned, genfolder) if logazon: # ha első alkalommal törénik a generálás if logrend == 1: # a csomag rekord állapotának megváltoztatása a Postgresql-ben queryCsomStatus = QtSql.QSqlQuery() siker = queryCsomStatus.exec_( """UPDATE csomag SET allapot = True WHERE csomag_azon = %s""" % (prow[0])) if siker: print('Package state = True') else: if queryCsomStatus.lastError().type() != 0: QtWidgets.QMessageBox.warning( None, u"Hiba:", u"Hiba típus: %s" % str(queryCsomStatus.lastError().text()) ) return # a ppont rekordok státuszának megváltoztatása a Postgresql-ben queryPontStatus = QtSql.QSqlQuery() siker = queryPontStatus.exec_( """UPDATE ppont SET statusz = 1 WHERE csomag_azon = %s""" % (prow[0])) if siker: print('Pponts state: 1') else: if queryPontStatus.lastError().type() != 0: QtWidgets.QMessageBox.warning( None, u"Hiba:", u"Hiba típus: %s" % str(queryPontStatus.lastError().text()) ) return # a fájlgenerálás bejegyzése a csomag_gen táblába queryGenLog = QtSql.QSqlQuery() siker = queryGenLog.exec_( '''INSERT INTO csomag_gen(package_id,csomag_nev,file_generalas,gen_mod,gen_rend,kezdemenyezo) VALUES(%s,'%s','%s','manual',%s,'%s') RETURNING gen_id ;''' % (logazon, prow[1], tom_time, logrend, keszito)) if siker: if queryGenLog.size() == 1: queryGenLog.next() print('gen_id:', queryGenLog.value(0), 'package_id:', logazon) else: QtWidgets.QMessageBox.warning( None, u"Csomag-gen", u"Csomag generálás rekord rögzítési hiba.") return else: if queryGenLog.lastError().type() != 0: QtWidgets.QMessageBox.warning( None, u"Hiba:", u"Hiba típus: %s" % str(queryGenLog.lastError().text())) return else: # a fájlok törlése építhető be ide, ha sikertelen volt a csomag_log rekord kezelése pass else: QtWidgets.QMessageBox.warning(None, u"Hiba:", u"MD5 generálás hiba") return QtWidgets.QMessageBox.warning( None, u"Csomag generálás", u"Létrehozásra kerültek a csomag fájljai") return QtWidgets.QMessageBox.warning(None, u"Csomag generálás hiba", u"A fájlok generálása elakadt.") return except Exception as e: QtWidgets.QMessageBox.warning(None, u"Hiba:", u"Generálás hiba: %s" % e)
def DB_Pull_mf_inputs(self): db = db_functions.db_variable(self) query = QtSql.QSqlQuery(db) query.exec_("SELECT user_val FROM mf_inputs WHERE parNames = 'ss' ") LK = str(query.first()) # What does LK do? self.lineEdit_ss_single.setText(str(query.value(0)))