Beispiel #1
0
    def Recargar_Habitaciones(self):
        self.db.open()
        self.ventanahabitaciones.tablaEstado.clearContents()
        for i in range(self.ventanahabitaciones.tablaEstado.rowCount()):
            self.ventanahabitaciones.tablaEstado.removeRow(i)
        consulta = QtSql.QSqlQuery()
        consulta.exec_("SELECT * FROM Habitaciones")
        row = 0
        while consulta.next():
            self.ventanahabitaciones.tablaAsignaciones.insertRow(row)
            Numero_Codigo = QTableWidgetItem(str(consulta.value(0)))
            Piso = QTableWidgetItem(str(consulta.value(1)))
            Estado = QTableWidgetItem(str(consulta.value(2)))
            Capacidad = QTableWidgetItem(str(consulta.value(3)))
            Asignado = QTableWidgetItem(str(consulta.value(4)))

            self.ventanahabitaciones.tablaEstado.setItem(row, 0, Numero_Codigo)
            self.ventanahabitaciones.tablaEstado.setItem(row, 1, Piso)
            self.ventanahabitaciones.tablaEstado.setItem(row, 2, Estado)
            self.ventanahabitaciones.tablaEstado.setItem(row, 3, Capacidad)
            self.ventanahabitaciones.tablaEstado.setItem(row, 4, Asignado)
            row = row + 1
        self.db.close()
def main():

    db = QtSql.QSqlDatabase.addDatabase("QSQLITE")
    db.setDatabaseName("test.db")

    if not db.open():
        print("Cannot establish a database connection")
        sys.exit(1)

    q = QtSql.QSqlQuery()
    q.exec_("SELECT * FROM Cars LIMIT 1")
    check_error(q, db)

    rec = q.record()

    print("Number of columns:", rec.count())

    print("Column names:")
    print(rec.fieldName(0))
    print(rec.fieldName(1))
    print(rec.fieldName(2))

    db.close()
Beispiel #3
0
 def fill_model(self):
     if sql.connectDB():
         mod = QtSql.QSqlQueryModel()
         querry = QtSql.QSqlQuery()
         querry.exec_("select distinct name from customers")
         mod.setQuery(querry)
         print(mod.rowCount())
         complet = QtWidgets.QCompleter()
         complet.setFilterMode(QtCore.Qt.MatchContains)
         complet.setCaseSensitivity(QtCore.Qt.CaseInsensitive)
         complet.setCompletionMode(QtWidgets.QCompleter.PopupCompletion)
         self.name_enter.setCompleter(complet)
         complet.setModel(mod)
         self.name_enter.setFocus(QtCore.Qt.PopupFocusReason)
         if mod.rowCount() > 0:
             self.customer.setModel(mod)
         model = QtSql.QSqlQueryModel()
         query = QtSql.QSqlQuery()
         query.exec_("Select distinct product_name from products")
         model.setQuery(query)
         if num_rows(query) > 0:
             self.select_product.setModel(model)
         qury = QtSql.QSqlQuery()
         modal = QtSql.QSqlQueryModel()
         qury.exec_("select * from invoices where invoice_number = ? and customer_name = ? and date_bought = ?")
         qury.bindValue(0, self.invoice_no.text())
         qury.bindValue(1, self.customer.currentText())
         qury.bindValue(2,strftime("%d/%m/Y", gmtime()))
         qury.exec_()
         modal.setHeaderData(1, QtCore.Qt.Horizontal, "Customer Name")
         modal.setHeaderData(2, QtCore.Qt.Horizontal, "Invoice No")
         modal.setHeaderData(3, QtCore.Qt.Horizontal, "Product Code")
         modal.setHeaderData(4, QtCore.Qt.Horizontal, "Product Name")
         modal.setHeaderData(5, QtCore.Qt.Horizontal, "Price")
         modal.setHeaderData(6, QtCore.Qt.Horizontal, "Real Price")
         modal.setHeaderData(7, QtCore.Qt.Horizontal, "Amount")
         modal.setHeaderData(8, QtCore.Qt.Horizontal, "Balance")
         modal.setHeaderData(8, QtCore.Qt.Horizontal, "Quantity")
         modal.setHeaderData(10, QtCore.Qt.Horizontal, "Total")
         modal.setHeaderData(11, QtCore.Qt.Horizontal, "Date")
         self.productsView.setModel(modal)
         self.productsView.horizontalHeader().setMinimumHeight(40)
         self.productsView.setSelectionBehavior(QtWidgets.QTableView.SelectRows)
         self.productsView.setShowGrid(True)
         self.productsView.show()
Beispiel #4
0
 def create_db(self):
     try:
         # 调用输入框获取数据库名称
         db_text, db_action = QtWidgets.QInputDialog.getText(self, '数据库名称', '请输入数据库名称', QtWidgets.QLineEdit.Normal)
         if (db_text.replace(' ', '') != '') and (db_action is True):
             print(db_text)
             self.db_name = db_text
             # 添加一个sqlite数据库连接并打开
             db = QtSql.QSqlDatabase.addDatabase('QSQLITE')
             db.setDatabaseName('{}.sqlite'.format(db_text))
             db.open()
             # 实例化一个查询对象
             query = QtSql.QSqlQuery()
             # 创建一个数据库表
             query.exec_("create table zmister(ID int primary key, "
                         "site_name varchar(20), site_url varchar(100))")
             # 插入三条数据
             query.exec_("insert into zmister values(1000, '张先生', 'https://zmister.com')")
             query.exec_("insert into zmister values(1001, '百度', 'http://www.baidu.com')")
             query.exec_("insert into zmister values(1002, '腾讯', 'http://www.qq.com')")
             print('创建数据库成功')
     except Exception as e:
         print(e)
Beispiel #5
0
    def delete_record(self):
        if sql.connectDB():
            confirm = QtWidgets.QMessageBox.question(
                None, QtWidgets.qApp.tr("Sure to delete?"),
                QtWidgets.qApp.tr("Are "
                                  "you sure you want to delete this user?"),
                QtWidgets.QMessageBox.Yes, QtWidgets.QMessageBox.No)

            if confirm == QtWidgets.QMessageBox.Yes:
                query = QtSql.QSqlQuery()
                query.prepare("delete from users where username = ?")
                query.bindValue(0, self.select_user.currentText())
                if query.exec_():
                    self.update_view()
                    QtWidgets.QMessageBox.information(
                        None, QtWidgets.qApp.tr("User deleted!"),
                        QtWidgets.qApp.tr("User has been deleted"),
                        QtWidgets.QMessageBox.Ok)
                else:
                    QtWidgets.QMessageBox.critical(
                        None, QtWidgets.qApp.tr("User not deleted!"),
                        QtWidgets.qApp.tr("User couldn't be deleted"),
                        QtWidgets.QMessageBox.Ok)
Beispiel #6
0
 def __init__(self):
     super(MainWindow, self).__init__()
     self.ui = Ui_MainWindow()
     self.ui.setupUi(self)
     self.AddAcftWindow = AddAcftWindow()
     self.ui.ButtonAddAC.clicked.connect(self.addacftdialog)
     self.AddAcftWindow.acft.pushButton.clicked.connect(self.run)
     self.addlegwindow = AddlegWindow()
     self.addlegwindow.addi.pushButton.clicked.connect(self.newleg)
     self.ui.ButtonAddLeg.clicked.connect(self.addLeg)
     self.ui.tableLog.clicked.connect(self.onRowSelect)
     self.ui.tableViewAcft.clicked.connect(self.acftselect)
     self.ui.pushButtonDelLeg.clicked.connect(self.delrow)
     self.ui.pushButtonDelAC.clicked.connect(self.delac)
     #self.ui.buttonRecalc.clicked.connect(self.recalc)
     self.db = QtSql.QSqlDatabase.addDatabase("QSQLITE")
     self.db.setDatabaseName("log.db")
     self.db.open()
     self.query = QtSql.QSqlQuery(self.db)
     self.selectedAC = None
     self.selectedID = None
     self.AddAcftWindow.setDatabase(self.db)
     self.run()
Beispiel #7
0
    def listarUnaRuta(idruta):
        query = QtSql.QSqlQuery()
        query.prepare('select * from rutas where codigo = :idruta')
        query.bindValue(':idruta', idruta)
        try:
            if query.exec_():
                query.next()
                var.ui.lblRuta.setText(str(query.value(0)))
                var.ui.txtFecha.setText(str(query.value(1)))
                var.ui.cmbMat.setCurrentText(str(query.value(2)))
                var.ui.cmbCon.setCurrentText(str(query.value(3)))
                var.ui.txtKmi.setText(str(query.value(4)))
                var.ui.txtKmf.setText(str(query.value(5)))
                var.ui.lblKmtotal.setText(str(query.value(5) - query.value(4)))
                var.ui.lblPrecio.setText(
                    str(query.value(6) * (query.value(5) - query.value(4))))

            else:
                QtWidgets.QMessageBox.warning(None,
                                              query.lastError().text(),
                                              'Haga click para continuar')
        except Exception as error:
            print('Error actualizar tarifas: %s: ' % str(error))
Beispiel #8
0
    def altaRuta(nuevaruta):
        query = QtSql.QSqlQuery()
        print(nuevaruta)
        query.prepare(
            'insert into rutas (fecha, matricula, conductor, kmini, kmfin,  tarifa)'
            'values (:fecha, :matricula, :conductor, :kmini, :kmfin, :tarifa)'
        )  #cuidado, aqui tenia values en mayuscula y lo puse en miniscula para probar, no debería dar error
        query.bindValue(':fecha', str(nuevaruta[0]))
        query.bindValue(':matricula', str(nuevaruta[1]))
        query.bindValue(':conductor', str(nuevaruta[2]))
        query.bindValue(':kmini', int(nuevaruta[3]))
        query.bindValue(':kmfin', int(nuevaruta[4]))
        query.bindValue(':tarifa', float(nuevaruta[5]))

        if query.exec_():
            QtWidgets.QMessageBox.warning(None, 'Alta Ruta Correcta',
                                          'Haga click para continuar')
            print('Ruta dada de alta')

        else:
            QtWidgets.QMessageBox.warning(None,
                                          query.lastError().text(),
                                          'Haga click para continuar')
Beispiel #9
0
    def clickChooseDB(self):
        item = QtWidgets.QInputDialog.getText(self, 'Choose database',
                                              'Choose your database name:')
        if not item[1]:
            return

        self.db.close()
        self.db.setDatabaseName(item[0])
        self.db.open()
        if not self.db.isOpen():
            print("Error connecton")
            print(self.db.lastError().text())
            return
        print("Соединение установлено...")

        curTable = self.db.tables()[0]
        self.curModel = QtSql.QSqlTableModel(self, self.db)
        self.curModel.setTable(curTable)
        self.curModel.select()
        self.tableView.setModel(self.curModel)

        for item in self.db.tables():
            self.comboBox.addItem(item)
Beispiel #10
0
    def articulo(codigo):
        """

        Módulo que toma el nombre del artículo a partir del codigo para que los muestre la factura

        :param: codigo: código del artículo
        :type: int
        :return: artículo
        :rtype: string


        """
        try:
            query = QtSql.QSqlQuery()
            query.prepare(
                'select producto from productos where codigo = :codigo')
            query.bindValue(':codigo', int(codigo))
            if query.exec_():
                while query.next():
                    dato = query.value(0)
            return dato
        except Exception as error:
            print('Error artículo según código:  %s ' % str(error))
    def datastaff(self):
        self.db = QtSql.QSqlDatabase.addDatabase('QSQLITE')
        self.db.setDatabaseName('atdata.db')

        self.view = QTableView()
        self.view.setToolTip("Change the fields")
        self.view.setWindowTitle("Table Model")

        self.dlg = QDialog()

        self.btn_add = QPushButton("Add a staff")
        self.btn_add.clicked.connect(self.add_row)

        self.btn_del = QPushButton("Delete a staff")
        self.btn_del.clicked.connect(self.remove_row)

        self.layout = QVBoxLayout()
        self.layout.addWidget(self.view)
        self.layout.addWidget(self.btn_add)
        self.layout.addWidget(self.btn_del)

        self.model = QtSql.QSqlTableModel()
        self.model.setTable('staff')
        self.model.setEditStrategy(QtSql.QSqlTableModel.OnFieldChange)
        self.model.select()
        self.model.setHeaderData(0, QtCore.Qt.Horizontal, "Teacher ID")
        self.model.setHeaderData(1, QtCore.Qt.Horizontal, "Name")
        self.model.setHeaderData(2, QtCore.Qt.Horizontal, "Email")
        self.model.setHeaderData(3, QtCore.Qt.Horizontal, "Mobile")
        self.model.setHeaderData(4, QtCore.Qt.Horizontal, "Department")
        self.model.setHeaderData(5, QtCore.Qt.Horizontal, "Password")
        self.view.setModel(self.model)

        self.dlg.setLayout(self.layout)
        self.dlg.setWindowTitle("Staff Database")
        self.dlg.setGeometry(100, 100, 1100, 600)
        self.dlg.exec_()
Beispiel #12
0
    def modifCli(codigo, newdata):
        """

        Módulo que actualiza datos de cliente

        :param codigo: código cliente
        :type codigo: int
        :param newdata: datos cliente
        :type newdata: lista
        :return: None
        :rtype: None

        Recibe como parámetros el código del cliente a modificar así como los datos que deseamos modificar.
        En realidad toma todos los datos que hay en los widgets de la pantalla clientes.

        """
        query = QtSql.QSqlQuery()
        codigo = int(codigo)
        query.prepare(
            'update clientes set dni=:dni, apellidos=:apellidos, nombre=:nombre,fechalta=:fechalta,direccion=:direccion, provincia=:provincia , sexo=:sexo,formaspago=:formaspago ,edad=:edad where codigo =:codigo'
        )
        query.bindValue(':codigo', int(codigo))
        query.bindValue(':dni', str(newdata[0]))
        query.bindValue(':apellidos', str(newdata[1]))
        query.bindValue(':nombre', str(newdata[2]))
        query.bindValue(':fechalta', str(newdata[3]))
        query.bindValue(':direccion', str(newdata[4]))
        query.bindValue(':provincia', str(newdata[5]))
        query.bindValue(':sexo', str(newdata[6]))
        query.bindValue(':formaspago', str(newdata[7]))
        query.bindValue(':edad', newdata[8])
        if query.exec_():
            print("Modificacion Correcta")
            var.ui.lblstatus.setText('Cliente con dni: ' + str(newdata[0]) +
                                     ' modificado')
        else:
            print("Error: ", query.lastError().text())
Beispiel #13
0
    def mostrarClientes2(self):
        """

        Módulo que carga los datos del cliente seleccionado en la tabla Clientes

        :return: None
        :rtype: None

        """
        dni = var.ui.ltDNI.text()
        query = QtSql.QSqlQuery()
        query.prepare('select * from clientes where dni =:dni')
        query.bindValue(':dni', dni)
        if query.exec_():
            while query.next():
                var.ui.lblCodcli.setText(str(query.value(0)))
                var.ui.ltDNI.setText(str(query.value(1)))
                var.ui.ltApellidos.setText(str(query.value(2)))
                var.ui.ltNombre.setText(str(query.value(3)))
                var.ui.ltCalendar.setText(str(query.value(4)))
                var.ui.ltDireccion.setText(str(query.value(5)))
                var.ui.cbProvincia.setCurrentText(str(query.value(6)))
                if str(query.value(7)) == 'Mujer':
                    var.ui.rbtFemenino.setChecked(True)
                    var.ui.rbtMasculino.setChecked(False)
                else:
                    var.ui.rbtMasculino.setChecked(True)
                    var.ui.rbtFemenino.setChecked(False)
                for data in var.chkpago:
                    data.setChecked(False)
                if 'Efectivo' in query.value(8):
                    var.chkpago[0].setChecked(True)
                if 'Tarjeta' in query.value(8):
                    var.chkpago[1].setChecked(True)
                if 'Transferencia' in query.value(8):
                    var.chkpago[2].setChecked(True)
                var.ui.spinEdad.setValue(query.value(9))
Beispiel #14
0
    def cargarCliente():
        '''
        Módulo para cargar los datos del cliente seleccionado en el formulario de clientes
        :param: None
        :return: None

        '''
        dni = var.ui.editDni.text()
        query = QtSql.QSqlQuery()
        query.prepare('select * from clientes where dni = :dni')
        query.bindValue(':dni', dni)
        if query.exec_():
            while query.next():
                var.ui.lblCodcli.setText(str(query.value(0)))
                var.ui.editDniFact.setText(str(query.value(1)))
                var.ui.editDni.setText(str(query.value(1)))
                var.ui.editApelFact.setText(str(query.value(2)))
                var.ui.editApel.setText(str(query.value(2)))
                var.ui.editNome.setText(str(query.value(3)))
                var.ui.editClialta.setText(str(query.value(4)))
                var.ui.editDir.setText(str(query.value(5)))
                var.ui.cmbProv.setCurrentText(str(query.value(6)))
                var.ui.spinEdad.setValue(int(query.value(9)))
                if str(query.value(7)) == 'Mujer':
                    var.ui.rbtFem.setChecked(True)
                    var.ui.rbtMasc.setChecked(False)
                else:
                    var.ui.rbtMasc.setChecked(True)
                    var.ui.rbtFem.setChecked(False)
                for data in var.chkpago:
                    data.setChecked(False)
                if 'Efectivo' in query.value(8):
                    var.chkpago[0].setChecked(True)
                if 'Tarjeta' in query.value(8):
                    var.chkpago[1].setChecked(True)
                if 'Transferencia' in query.value(8):
                    var.chkpago[2].setChecked(True)
Beispiel #15
0
    def modifCli(codigo, newdata):
        '''

        Módulo que actualiza datos de clinte

        :param codigo: código cliente
        :type codigo: int
        :param newdata: datos cliente
        :type newdata: lista
        :return: None
        :rtype: None

        Recibe como parámetros el código del cliente a modificar así como los datos que deseamos modificar.
        En realidad toma todos los datos que hay en los widgets de la pantalla clientes.

        '''
        print(codigo, "   ", newdata)
        query = QtSql.QSqlQuery()
        codigo = int(codigo)
        query.prepare('update clientes set dni=:dni, apelidos=:apelidos,nome=:nome,'
                      ' direccion=:direccion,provincia=:provincia,sexo=:sexo,formapago=:formapago where codigo=:codigo')
        query.bindValue(':codigo', int(codigo))
        query.bindValue(':dni', str(newdata[0]))
        query.bindValue(':apelidos', str(newdata[1]))
        query.bindValue(':nome', str(newdata[2]))
        query.bindValue(':fechalta', str(newdata[3]))
        query.bindValue(':direccion', str(newdata[4]))
        query.bindValue(':provincia', str(newdata[5]))
        query.bindValue(':sexo', str(newdata[6]))
        # pagos = ' '.join(cliente[7]) si quiesesemos un texto, pero nos viene mejor meterlo como una lista
        query.bindValue(':formapago', str(newdata[7]))

        if query.exec_():
            print('Cliente modificado')
            var.ui.lblstatus.setText('Alta con cliente dni ' + newdata[0])
        else:
            print('error modificar cliente: ', query.lastError().text())
Beispiel #16
0
    def buscarProveedorDB(codigo='', nombre='', orden='codigo'):

        try:
            proveedores = []
            query = QtSql.QSqlQuery()

            b_codigo = 'codigo'
            if codigo:
                b_codigo = ':codigo'

            b_nombre = 'nombre'
            if nombre:
                b_nombre = ':nombre'

            query.prepare(
                'select codigo, nombre, telefono from proveedores where codigo = '
                + b_codigo + ' and ' + ' nombre = ' + b_nombre + ' order by ' +
                orden)
            query.bindValue(':codigo', codigo)
            query.bindValue(':nombre', nombre)

            if query.exec_():
                while query.next():
                    p = Proveedor()

                    p.codigo = query.value(0)
                    p.nombre = query.value(1)
                    p.telefono = query.value(2)

                    proveedores.append(p)

                return proveedores
            else:
                return []

        except Exception as error:
            print('Error buscarProveedorDB: %s' % str(error))
Beispiel #17
0
    def PDF(self):
        ruta_guardar = ""
        NombreArchivo = QFileDialog.getSaveFileName(self, "Guarfar Archivo",
                                                    ruta_guardar)
        if NombreArchivo[0]:
            self.db.open()
            consulta = QtSql.QSqlQuery()
            consulta.exec_("SELECT * FROM Clientes")
            estiloHoja = getSampleStyleSheet()
            story = []
            cuerpo = estiloHoja["BodyText"]
            cuerpo.alignment = TA_CENTER

            col = ["CI_RIF", "Nombre", "Apellido", "Correo", "Telefono"]
            fil = []
            fil.insert(0, col)
            fila = 1
            while consulta.next():
                fil.insert(fila, [
                    consulta.value(0),
                    consulta.value(1),
                    consulta.value(2),
                    consulta.value(3),
                    consulta.value(4)
                ])
                fila += 1
            datos = [i for i in fil]
            tabla = Table(data=datos, colWidths=[90, 60, 60, 110, 80])
            story.append(tabla)
            doc = SimpleDocTemplate(NombreArchivo[0] + '.pdf',
                                    pagesize=portrait(LETTER),
                                    leftMargin=3,
                                    rightMargin=4,
                                    topMargin=3,
                                    bottomMargin=4)
            doc.build(story)
            self.db.close()
Beispiel #18
0
    def buscarUltimaFacturaDB(dni, fechafactura):
        """

        Módulo busca la ultima factura creada de un cliente.

        :param dni: DNI del cliente a buscar
        :type dni: str

        :param fechafactura: Fecha de la factura a buscar
        :type fechafactura: str

        :return: Devuelve como string el numero de la ultima factura que figura con el dni y fecha de la busqueda
        :rtype: str

        Devuelve el numero de factura de la ultima factura que corresponde al cliente con el dni y fecha de factura
        recibidos como parametro.

        """
        try:
            query = QtSql.QSqlQuery()

            query.prepare(
                'select nfactura from facturas where dni=:dni and fechafactura=:fechafactura order by nfactura desc'
            )
            query.bindValue(':dni', dni)
            query.bindValue(':fechafactura', fechafactura)

            if query.exec_():
                if query.next():
                    return str(query.value(0))
                else:
                    return None
            else:
                return None

        except Exception as error:
            print('Error buscarFacturaDB: %s' % str(error))
Beispiel #19
0
 def buscaCli(dni):
     """
     :return:
     :rtype:
     """
     index = 0
     query = QtSql.QSqlQuery()
     query.prepare('select * from clientes where dni = :dni')
     query.bindValue(':dni', dni)
     if query.exec_():
         while query.next():
             var.ui.lblCodcli.setText(str(query.value(0)))
             var.ui.editApel.setText(str(query.value(1)))
             var.ui.editNome.setText(str(query.value(2)))
             var.ui.editClialta.setText(query.value(4))
             var.ui.editDir.setText(query.value(5))
             var.ui.cmbProv.setCurrentText(str(query.value(6)))
             if str(query.value(7)) == 'Mujer':
                var.ui.rbtFem.setChecked(True)
                var.ui.rbtMasc.setChecked(False)
             else:
                 var.ui.rbtMasc.setChecked(True)
                 var.ui.rbtFem.setChecked(False)
             for data in var.chkpago:
                 data.setChecked(False)
             if 'Efectivo' in query.value(8):
                 var.chkpago[0].setChecked(True)
             if 'Tarjeta' in query.value(8):
                 var.chkpago[1].setChecked(True)
             if 'Transferencia' in query.value(8):
                 var.chkpago[2].setChecked(True)
             var.ui.spinEdad.setValue(query.value(9))
             var.ui.tableCli.setRowCount(index + 1)
             # voy metiendo los datos en cada celda de la fila
             var.ui.tableCli.setItem(index, 0, QtWidgets.QTableWidgetItem(str(query.value(1))))
             var.ui.tableCli.setItem(index, 1, QtWidgets.QTableWidgetItem(str(query.value(2))))
             var.ui.tableCli.setItem(index, 2, QtWidgets.QTableWidgetItem(str(query.value(3))))
Beispiel #20
0
 def setQuery(self):
   pressure = self.sense.get_pressure()
   temp = self.sense.get_temperature()
   humidity = self.sense.get_humidity()
   
   p = round((pressure - 1000) / 10 , 2)
   if p > 1 :
     p = 1
   t = round(temp / 100, 2)
   h = round(humidity / 100,2)
   
   #for debug
   #msg = "Press : " + str(p) + "   Temp : " + str(t) + "   Humid : " + str(h)
   #print(msg)
   #sleep(0.01)
   
   
   
   #to mysql - DB Part
   self.query = QtSql.QSqlQuery();
   self.query.prepare("insert into sensing1 (time, num1, num2, num3, meta_string, is_finish) values(:time, :num1, :num2, :num3, :meta, :finish)");
   
   time = QDateTime().currentDateTime()
   self.query.bindValue(":time", time)
   self.query.bindValue(":num1", p)
   self.query.bindValue(":num2", t)
   self.query.bindValue(":num3", h)
   self.query.bindValue(":meta", "")
   self.query.bindValue(":finish", 0)
   self.query.exec()
   
   
   #sense_hat color example code
   a = int((p * 1271) % 256)
   b = int((p * 1271) % 256)
   c = int((p * 1271) % 256)
   self.sense.clear(a,b,c)
Beispiel #21
0
 def __Guardar(self):
     Query = QtSql.QSqlQuery()
     self.db.open()
     Query.exec("SELECT CEDULA FROM entregas WHERE CEDULA = '%s'" %
                (self.solicitar.leCedula.text()))
     if self.solicitar.leCedula.text(
     ) != "" and self.solicitar.leNombre.text(
     ) != "" and self.solicitar.leApellido.text() != "":
         if Query.next():
             QMessageBox.warning(
                 self, "Error", "%s Ya tiene un libro asignado" %
                 (self.solicitar.leCedula.text()), QMessageBox.Ok)
         else:
             fecha = time.strftime("%d/%m/%y")
             Query.exec(
                 "INSERT INTO entregas VALUES('%s', %d, '%s')" %
                 (self.solicitar.leCedula.text(), int(self.SERIAL), fecha))
             sol = Solicitud("Solicitud.pdf")
             dia = time.strftime("%d")
             dia = int(dia)
             dia = dia + 1
             fechaE = str(dia) + time.strftime("/%m/%y")
             sol.crear(self.solicitar.leNombre.text(),
                       self.solicitar.leApellido.text(),
                       self.solicitar.leCedula.text(), self.AUTOR,
                       self.TITULO, self.COTA, self.EJEMPLAR, self.CARRERA,
                       self.SEMESTRE, fecha, self.SERIAL, fechaE,
                       self.solicitar.leSeccion.text(),
                       self.solicitar.leTelefono.text())
             sol.guardar()
             QMessageBox.information(self, "Asignacion",
                                     "Libro asignado correctamente",
                                     QMessageBox.Ok)
     else:
         QMessageBox.warning(self, "Error", "Campos vacios", QMessageBox.Ok)
     self.db.close()
     del Query
Beispiel #22
0
    def mostrarFacturascli(self):
        """

        Módulo que carga los datos de las facturas del cliente selccionado
        por orden descendente numérico en la tabla Facturas

        :return: None
        :rtype: None

        """
        index = 0
        cont = 0
        dni = var.ui.ltCodCli.text()
        query = QtSql.QSqlQuery()
        query.prepare(
            'select codfac, fecha from facturas where dni = :dni order by codfac desc'
        )
        query.bindValue(':dni', str(dni))
        if query.exec_():
            while query.next():
                # cojo los valores
                cont = cont + 1
                codfac = query.value(0)
                fecha = query.value(1)
                # crea la fila
                var.ui.tableFac.setRowCount(index + 1)
                # voy metiendo los datos en cada celda de la fila
                var.ui.tableFac.setItem(
                    index, 0, QtWidgets.QTableWidgetItem(str(codfac)))
                var.ui.tableFac.setItem(index, 1,
                                        QtWidgets.QTableWidgetItem(str(fecha)))
                index += 1
            if cont == 0:
                var.ui.tableFac.setRowCount(0)
                var.ui.lblstatus.setText('Cliente sin Facturas')
        else:
            print("Error mostrar facturas cliente: ", query.lastError().text())
Beispiel #23
0
    def tipoGasto(self, n):
        print("Imprimo nombre " + n)

        util = Utilidades()
        '''Obtengo los datos del recibo y los envío a imprimir'''
        sql = "SELECT id_asignatura from asignaturas WHERE Nombre = :tipo"
        q = QtSql.QSqlQuery(self.db.database('Cooperadora'))
        q.prepare(sql)
        q.bindValue(":tipo", n)
        pipi = q.executedQuery()
        print(pipi)
        tipo = 0
        ej = util.ejecuto(q, 'Cooperadora')
        if ej.size() > 0:
            print("q es mayor a 0")
            while ej.next():
                print("entro al while")
                print(type(ej.value(0)))
                if ej.value(0) > 55:

                    tipo = 1
                else:
                    tipo = 0
        return tipo
Beispiel #24
0
    def sql_table_view_model(self):
        try:
            db = QtSql.QSqlDatabase.addDatabase('QSQLITE')
            db.setDatabaseName('Invoices.db')

            tableview = self.tableView
            self.model = QtSql.QSqlTableModel()
            tableview.setModel(self.model)

            self.model.setTable('invoices')
            self.model.setEditStrategy(QtSql.QSqlTableModel.OnFieldChange)
            self.model.select()
            self.model.setHeaderData(0, QtCore.Qt.Horizontal, "InvoiceId")
            self.model.setHeaderData(1, QtCore.Qt.Horizontal, "CustomerId")
            self.model.setHeaderData(2, QtCore.Qt.Horizontal, "InvoiceDate")
            self.model.setHeaderData(3, QtCore.Qt.Horizontal, "BillingAddress")
            self.model.setHeaderData(4, QtCore.Qt.Horizontal, "BillingCity")
            self.model.setHeaderData(5, QtCore.Qt.Horizontal, "BillingState")
            self.model.setHeaderData(6, QtCore.Qt.Horizontal, "BillingCountry")
            self.model.setHeaderData(7, QtCore.Qt.Horizontal,
                                     "BillingPostalCode")
            self.model.setHeaderData(8, QtCore.Qt.Horizontal, "Total")
        except Exception as e:
            print(e)
Beispiel #25
0
 def sql_table_view_model(self):
    
         db = QtSql.QSqlDatabase.addDatabase('QSQLITE')
         db.setDatabaseName('ventas.db')
         
         tableview=self.tableView
         self.model= QtSql.QSqlTableModel()
         tableview.setModel(self.model)
         
         self.model.setTable('vendedor')
         self.model.setEditStrategy(QtSql.QSqlTableModel.OnFieldChange)
         self.model.select()
         #self.model.setHeaderData(0, QtCore.Qt.Horizontal, "ID")
         self.model.setHeaderData(0, QtCore.Qt.Horizontal, "IDvendedor")
         self.model.setHeaderData(1, QtCore.Qt.Horizontal, "Usuario_Nombre")
         self.model.setHeaderData(2, QtCore.Qt.Horizontal, "Nombre")
         self.model.setHeaderData(3, QtCore.Qt.Horizontal, "Direccion")
         self.model.setHeaderData(4, QtCore.Qt.Horizontal, "Telefono")
         self.model.setHeaderData(5, QtCore.Qt.Horizontal, "Email")
         self.model.setHeaderData(6, QtCore.Qt.Horizontal, "Facebook")
         self.model.setHeaderData(7, QtCore.Qt.Horizontal, "Instagram ")
         self.model.setHeaderData(8, QtCore.Qt.Horizontal, "Twitter")
         self.model.setHeaderData(9, QtCore.Qt.Horizontal, "Imagen")
         self.model.setHeaderData(10, QtCore.Qt.Horizontal, "Condicion")
    def run(self):

        try:
            ctypes.windll.LoadLibrary(
                'K:/mysql-5.7.20-winx64/lib/libmysql.dll')

            if sql.QSqlDatabase.isDriverAvailable('QMYSQL'):
                db = sql.QSqlDatabase.addDatabase('QMYSQL')
                db.setHostName(self.configure['dataBase']['host'])
                # db.setPort(int(self.config.configParamsDit['dataBase']['port']))
                db.setUserName(self.configure['dataBase']['user'])
                db.setPassword(self.configure['dataBase']['password'])
                db.setDatabaseName('foundation_code_company')
                result = db.open()
                if result:
                    contentList.clear()
                    print('Open Mysql ok.')
                    query = sql.QSqlQuery('select 代码,名称 from code_list')
                    query.first()
                    for i in range(query.size()):
                        content = str(query.value(0)) + ':' + str(
                            query.value(1))
                        contentList.append(content)
                        query.next()

                    db.close()
                else:
                    print(db.lastError().driverText())
                    print(db.lastError().databaseText())
                    print('Open Mysql failed.')
            else:
                print('Mysql driver is not ok')
        except Exception as e:
            print(e)

        self.trigger.emit()  # 循环完毕后发出信号
Beispiel #27
0
    def buscar_jugador_btn(nombre):
        """

        :param nombre:
        :type String:
        :return: datos or None
        :rtype: Diccionario
        """
        if nombre != '':
            query = QtSql.QSqlQuery()
            query.prepare(
                'select * from Jugadores where nombre = :nombreJugador')
            query.bindValue(':nombreJugador', str(nombre))
            if query.exec_():
                if query.next():
                    datos = ({
                        'nombre': query.value(0),
                        'puntos': query.value(1),
                        'nivel': query.value(2),
                        'fecha': query.value(3)
                    })
                    return datos
            else:
                return None
Beispiel #28
0
 def timer_tick(self):
     # берется url из строки и вставляется в ф-цию
     url = self.ui.lineEdit.text()
     parser_list = hh_parser(url)
     # форма добавления данных в бд
     query = QtSql.QSqlQuery(self.db)
     isOk = query.prepare(
         'insert into scraping(title, url, description, company)'
         'values(:title, :url, :description, :company)')
     # бинд данных
     for parser_dict in parser_list:
         for keys, values in parser_dict.items():
             if keys == 'title':
                 query.bindValue(':title', values)
                 self.form.textBrowser.append(
                     f'Был добавлен title: {values}')
             elif keys == 'url':
                 query.bindValue(':url', values)
                 self.form.textBrowser.append(f'Был добавлен url: {values}')
             elif keys == 'description':
                 query.bindValue(':description', values)
                 self.form.textBrowser.append(
                     f'Был добавлен description: {values}')
             else:
                 query.bindValue(':company', values)
                 self.form.textBrowser.append(
                     f'Был добавлен company: {values}')
             self.form.textBrowser.append('')
         self.form.textBrowser.append(
             '-----------------------------------------------------------------'
             '-----------------------------------------------------------------'
         )
         self.form.textBrowser.append('')
         # добавление данных
         isOk = query.exec_()
         self.model.select()
Beispiel #29
0
    def get_empolyee_info(self):
        self.db = connect(host='localhost',
                          port=3306,
                          charset='utf8',
                          database='MySQL',
                          password='******',
                          user='******')
        # 创建游标对象
        self.cursor = self.db.cursor()
        sql = "use bookshopmanagement"
        self.cursor.execute(sql)
        sql = "select * from employee;"
        self.cursor.execute(sql)
        # 获取查询到的数据, 是以二维元组的形式存储的, 所以读取需要使用 data[i][j] 下标定位
        data = self.cursor.fetchall()
        print(data)
        self.model = QtSql.QSqlTableModel()
        self.tableView.setModel(self.model)
        row = len(data)
        model = QtGui.QStandardItemModel(row, len(data[0]))
        col = len(data[0])
        for i in range(row):
            for j in range(len(data[0])):
                if j is 1 or j is 2 or j is 4:
                    model.setItem(i, j, QtGui.QStandardItem(data[i][j]))
                elif j is 0 or j is 3 or j is 5:
                    if data[i][j] is None:
                        model.setItem(i, j, QtGui.QStandardItem(str(0)))
                    else:
                        model.setItem(i, j,
                                      QtGui.QStandardItem(str(data[i][j])))
        self.cursor.close()
        model.setHorizontalHeaderLabels(['雇员编号', '姓名', '性别', '年龄', '电话', '工资'])
        self.tableView.setModel(model)

        self.statusbar.showMessage("查询成功!总共查询到" + str(row) + "条数据", 2000)
Beispiel #30
0
 def insert_data(self):
     if sql.connectDB():
         query = QtSql.QSqlQuery()
         query.prepare(
             "INSERT INTO creditors(creditor_name,phone,product_name,amount_paid, amount_owed,total, quantity,"
             "due_date) VALUES(?,?,?,?,?,?,?,?)")
         query.bindValue(0, self.name.text())
         query.bindValue(1, self.phone.text())
         query.bindValue(2, self.productName.text())
         query.bindValue(3, self.amountPaid.text())
         query.bindValue(4, self.amountOwed.text())
         query.bindValue(5, self.total.text())
         query.bindValue(6, self.quantity.text())
         query.bindValue(7, self.dueDate.text())
         if query.exec_():
             QtWidgets.QMessageBox.information(
                 None, QtWidgets.qApp.tr("Save Successful"),
                 QtWidgets.qApp.tr("\nCreditor has been created"),
                 QtWidgets.QMessageBox.Ok)
         else:
             QtWidgets.QMessageBox.information(
                 None, QtWidgets.qApp.tr("Not Successful"),
                 QtWidgets.qApp.tr("Data could not be saved successfully"),
                 QtWidgets.QMessageBox.Ok)