def insert_row(self): record = QtSql.QSqlRecord() record.append(QtSql.QSqlField('id', QtCore.QVariant.Int)) record.append(QtSql.QSqlField('rfid_id', QtCore.QVariant.String)) record.append(QtSql.QSqlField('description', QtCore.QVariant.String)) record.setValue('id', 0) if self.onEvents: record.append(QtSql.QSqlField('date', QtCore.QVariant.DateTime)) record.setValue('date', QDateTime.currentDateTime()) record.setValue('rfid_id', self.label_2.text()) else: if self.rfidIDField.text().strip(" ") == "": QMessageBox.warning( self, 'Error!', "Need to fill ID of marker field to insert new marker.") return query = QSqlQuery(self.db) query.prepare("SELECT * FROM markers WHERE rfid_id = :rfid_id") query.bindValue(":rfid_id", self.rfidIDField.text().strip(" ")) query.exec() found = query.next() if found: QMessageBox.warning(self, 'Error!', "Marker with such id already exists.") return record.setValue('rfid_id', self.rfidIDField.text().strip(" ")) self.tableModel.insertRecord(-1, record) self.tableModel.select()
def rowselect(self, id, *args): self.query.exec("SELECT %s FROM log WHERE ID = %d" % (",".join(args), int(id))) r = QtSql.QSqlRecord() while self.query.next(): r = self.query.record() return [r.value(i) for i in range(r.count())]
def __init__(self, model, parent=None): super(add_mileage_Dialog, self).__init__(parent) self.setupUi(self) self.comboBox.insertItems(0, model.helperLists["help_travel_reason"]) self.comboBox_2.insertItems(0, model.helperLists["help_vehicle"]) self.comboBox.currentIndexChanged[str].connect(self.set_travel_reason) self.doubleSpinBox_2.valueChanged.connect(self.set_end_mileage2) self.comboBox.setCurrentIndex(0) self.comboBox_2.setCurrentIndex(1) self.lineEdit.setText("? tuition") #self.doubleSpinBox_1.valueChanged.connect(self.set_end_mileage1) self.pButton_Add.clicked.connect(self.add_mileage_record) self.pButton_AddMore.clicked.connect(self.add_more_mileage_record) self.pButton_AddNext.clicked.connect(self.add_next_mileage_record) # set internal data for this dialog self.model = model record = model.mileage.record(model.mileage.rowCount() - 1) ind = record.value(0) + 1 val = record.value(3) date = record.value(1) date = date.addDays(1) self.statusBar = parent.statusBar() print("milage val=", val, "mileage ind=", ind) self.doubleSpinBox_1.setDecimals(0) self.doubleSpinBox_1.setSingleStep(3.0) self.doubleSpinBox_2.setDecimals(0) self.doubleSpinBox_2.setSingleStep(3.0) # init the widget of the dialog self.lcdNumber.setProperty("intValue", ind) self.doubleSpinBox_1.setProperty("value", val) self.doubleSpinBox_2.setProperty("value", val) self.record = QtSql.QSqlRecord(record) self.record.setValue(0, ind) self.dateEdit.setDate(date)
def recording(self): row = self.model.time.rowCount() - 1 rrec = self.model.time.record(row) #self.model.dump_model(6) #self.model.dump_record(rrec, "Time Recording record") entry = rrec.value("entry_nr") + 1 end_time = rrec.value("stop_time") start_date = rrec.value("start_date") start_time = rrec.value("start_time") end_date = QtCore.QDateTime(start_date, end_time) entry_add = 0 ## calculate partition partition = [] stotal = float(sum(self.trec.msecs)) for i in range(0, self.trec.size): partition.append(round(self.trec.msecs[i] / stotal, 2)) #print("Partition:\t", partition) # cycle through the for i in range(0, self.trec.size): #print("Wtime:\t", self.trec.wtime) if self.trec.wtime == 0: continue dist = end_date.secsTo(self.trec.stimes[i]) / 60.0 if (dist > settings.time_treshold): print("\nnew record case!\n") record = QtSql.QSqlRecord(rrec) record.setValue("entry_nr", entry + entry_add) val1 = self.trec.stimes[i].date() record.setValue("start_date", val1) val2 = self.trec.stimes[i].time() record.setValue("start_time", val2) val3 = self.trec.etimes[i].time() record.setValue("stop_time", val3) val = round(self.trec.wtime * partition[i], 2) record.setValue("time_span", round(val, 2)) self.model.time.insertRecord(-1, record) entry_add += 1 #set a new end time #end_date = QtCore.QDateTime(val1, val3) else: print("\nold record case!\n") val = rrec.value("time_span") val += round(self.trec.wtime * partition[i], 2) rrec.setValue("time_span", round(val, 2)) val = self.trec.etimes[i].time() rrec.setValue("stop_time", val) self.model.time.setRecord(row, rrec) # set end time for next round end_date = self.trec.etimes[i] row = self.model.time.rowCount() - 1 rrec = self.model.time.record(row)