def load_proveedor(self,fecha=None,hora=None): self.ui.tableProveedores.setRowCount(0) if self.id_evento == None : return bd=BdStd() txtsql = f"""SELECT strftime('%d-%m-%Y',fecha)||" "||hora, pre.servicio, pre.id_proveedor, \ p.provincia, contacto_onsite, telefono_onsite, email_onsite, pre.notas \ FROM proveedores_evento as pre \ JOIN proveedores as p ON p.id_proveedor = pre.id_proveedor WHERE id_evento='{self.id_evento}' """ if fecha != None: txtsql += f" AND strftime('%d-%m-%Y',fecha)='{fecha}'" bd.runsql(txtsql) if bd.rows != None : for i, row_data in enumerate(bd.rows): self.ui.tableProveedores.insertRow(i) for j, data in enumerate(row_data): if j==0: self.ui.tableProveedores.setItem(i, j, QtWidgets.QTableWidgetItem(str(data))) else: self.ui.tableProveedores.setItem(i, j, QtWidgets.QTableWidgetItem(str(data)))
def eliminar(self): row = self.ui.tableRecintos.currentRow() clave = self.ui.tableRecintos.item(row, 0).text() print(clave) qm = QtWidgets.QMessageBox ret = qm.question( self, '', "Quiere eliminar " + self.ui.tableRecintos.item(row, 1).text() + "? ", qm.Yes | qm.No) if ret == qm.Yes: #-------------- Borrar el registro print("Voy a borrar ", clave) bd = BdStd() bd.runsql("DELETE FROM recintos WHERE id_recinto = '" + clave + "'") if bd.rows != None: print("Ha borrado a ", clave) self.ui.tableRecintos.removeRow(row) else: print("No borro ", clave) if self.padre != None: if self.padre == "crearevento": self.padre.load_comboRecintos() elif self.padre == "selectrecinto": self.padre.loadData()
def load_comboProvincias(self): bdprovi = BdStd() bdprovi.runsql("SELECT nombre FROM provincias_es") if bdprovi.rows != None: for provincia in bdprovi.rows: self.ui.comboProvincia.addItem(provincia[0])
def load_personal_added(self): self.ui.personal_added.setRowCount(0) if self.id_evento == None: return bd = BdStd() # mere 03-02-2021 añadidos el resto de los campos a la select txtsql = f"""SELECT strftime('%d-%m-%Y',fecha), cargos.nombre, pev.id_personal, p.nombre, p.apellidos, suplemento, dni, telefono, email, autonomo, notas FROM personal_evento as pev JOIN personal as p ON p.id_personal = pev.id_personal JOIN cargos ON cargos.id_cargo = pev.id_cargo WHERE id_evento = '{self.id_evento}' """ if self.fecha != "ALL": txtsql += f"""AND strftime('%d-%m-%Y',fecha) = '{self.fecha}'""" txtsql += f"""ORDER BY fecha""" print("load_personal_added ", txtsql) bd.runsql(txtsql) if bd.rows != None: for i, row_data in enumerate(bd.rows): self.ui.personal_added.insertRow(i) for j, data in enumerate(row_data): self.ui.personal_added.setItem( i, j, QtWidgets.QTableWidgetItem(str(data)))
def delDate(self): qm = QtWidgets.QMessageBox ret = qm.question(self, '', "Quiere eliminar la fecha seleccionada ? ", qm.Yes | qm.No) if ret == qm.No: return #-------------- Borrar la fecha del evento # for i, item in enumerate(self.ui.fechas_table.selectedItems()): # if i == 0 : # date = item.text() # elif i == 1 : # time = item.text() # elif i == 2 : # tarea = item.text() evento = self.ui.entry_id.text().upper() row = self.ui.fechas_table.currentRow() id_dias_evento = self.ui.fechas_table.item(row, 3).text() #----------Borra la fecha en la bbdd---------------------------------- bd = BdStd() bd.runsql( f"""DELETE FROM dias_evento WHERE id_dias_evento = '{id_dias_evento}'""" ) print( f"""DELETE FROM dias_evento WHERE id_dias_evento = '{id_dias_evento}'""" ) #----------Muestra las fechas en la tabla------------------------------ self.load_dias_evento(evento)
def loadData(self): self.ui.tableClientes.setRowCount(0) bd = BdStd() bd.runsql("SELECT * FROM clientes") if bd.rows != None: for row in bd.rows: self.load_one(row)
def load_datos_ficha_proveedor(self): bd1 = BdStd() txtsql = f"""SELECT empresa FROM proveedores WHERE id_proveedor = '{self.id_proveedor}'""" bd1.runsql(txtsql) if bd1.rows != None: for row_data in bd1.rows: self.ui.inputEmpresa.setText(row_data[0])
def load_datos_ficha_persona (self): bd1=BdStd() txtsql = f"""SELECT nombre, apellidos FROM personal WHERE id_personal = '{self.id_personal}'""" bd1.runsql(txtsql) if bd1.rows != None : for row_data in bd1.rows: self.ui.inputNombre.setText(row_data[0]) self.ui.inputApellidos.setText(row_data[1])
def load_comboPais(self): self.ui.comboPais.addItem("") bdpais = BdStd() bdpais.runsql("SELECT nombre FROM paises") if bdpais.rows != None: for pais in bdpais.rows: self.ui.comboPais.addItem(pais[0])
def updateCombo(self): self.ui.comboBox.clear() bd = BdStd() bd.runsql( f"SELECT nombre FROM recintos WHERE ciudad = '{self.ui.comboBox_2.currentText()}';" ) if bd.rows != None: for recinto in bd.rows: self.ui.comboBox.addItem(recinto[0])
def crear_fecha(self, fecha,hora, id_cargo): bd=BdStd() txtsql = "INSERT INTO personal_evento (id_personal, id_evento,fecha, id_cargo\ , suplemento,hora) VALUES ('{}','{}','{}','{}','{}','{}');" txtsql= txtsql.format(self.id_personal, self.padre.id_evento, bd.gira_fecha(fecha), id_cargo, self.ui.inputSuplem.text(),hora) print(txtsql) bd.runsql(txtsql)
def loadDataDatos(self,id_evento): if self.id_evento == None : data = [] self.load_one(data) else : bd = BdStd() bd.runsql(f"""SELECT * FROM evento WHERE id_evento = '{id_evento}';""") if bd.rows != None : for row in bd.rows : self.loadInputs(row)
def load_personal(self, sql): bd=BdStd() bd.runsql(sql) self.ui.personal_table.setRowCount(0) if bd.rows != None : for i, row_data in enumerate(bd.rows): self.ui.personal_table.insertRow(i) for j, data in enumerate(row_data): self.ui.personal_table.setItem(i, j, QtWidgets.QTableWidgetItem(str(data)))
def liberar(self): row = self.ui.tableWidget.currentRow() column = self.ui.tableWidget.currentColumn() dd = self.ui.tableWidget.item(row, column).text() dd = dd.replace(" ", "0") fecha = f"{self.kale.anyo}-{self.kale.mes:02d}-{dd}" self.ui.tableWidget.item(row, column).setBackground( QtGui.QColor(255, 255, 255)) bd = BdStd() bd.runsql( f"DELETE FROM personal_ocupado WHERE id_personal = '{self.id_personal}' AND fecha = '{fecha}';" )
def loadDataFechas(self,id_evento): if self.id_evento == None : data = [] self.loadFechas(data) else : bd = BdStd() bd.runsql(f"""SELECT strftime('%d-%m-%Y', fecha), hora, tarea, id_dias_evento FROM dias_evento WHERE id_evento = '{id_evento}' ORDER BY fecha;""") if bd.rows != None : for row in bd.rows : self.loadFechas(row)
def cargacombocargos (self): self.dic_cargos ={} #crea un diccionario vacio bd1=BdStd() txtsql = f"""SELECT tarifas.id_cargo, cargos.nombre FROM tarifas JOIN cargos ON cargos.id_cargo = tarifas.id_cargo WHERE tarifas.id_personal='{self.id_personal}'""" bd1.runsql(txtsql) if bd1.rows != None : for i, row_data in enumerate(bd1.rows): self.ui.comboBox.addItem(row_data[1]) self.dic_cargos [row_data[1]] = row_data[0]
def anadir(self): #--------------------------generador de ID id_manager = self.ui.inputNombre.text( )[0:2] + self.ui.inputApellidos.text()[0:2] + self.ui.inputDni.text( )[0:2] id_manager = id_manager.upper() trans_table = id_manager.maketrans("Á,É,Í,Ó,Ú,À,È,Ì,Ò,Ù", "A,E,I,O,U,A,E,I,O,U") id_manager = id_manager.translate(trans_table) self.id_manager = id_manager #---------------FORMATO DE NOMBRE Y APELLIDOS---------------------------------- nombre = self.ui.inputNombre.text() apellidos = self.ui.inputApellidos.text() nombre = nombre.split(" ") apellidos = apellidos.split(" ") nom = "" apell = "" for palabra in nombre: palabra = palabra.capitalize() nom += palabra + " " for palabra in apellidos: palabra = palabra.capitalize() apell += palabra + " " nom = nom[:-1] apell = apell[:-1] campos_managers = (id_manager,nom,apell, self.ui.inputDni.text().upper(),\ self.ui.inputTelefono.text(),self.ui.inputEmail.text().lower(),\ self.ui.inputNotas.toPlainText()) if len(id_manager) > 5: bd = BdStd() bd.runsql( "INSERT INTO managers (id_manager, nombre, apellidos, dni, \ telefono, email, notas) VALUES (?,?,?,?,?,?,?);", campos_managers) self.load_one(campos_managers) else: msgBox = QtWidgets.QMessageBox() msgBox.warning(self, "Aleph", "Introduzca Nombre, apellidos y dni") #----------------Carga los datos en la tabla--------------------------- #---------------Resetea los inputs------------------------------------- self.ui.inputNombre.setText("") self.ui.inputApellidos.setText("") self.ui.inputDni.setText("") self.ui.inputTelefono.setText("") self.ui.inputEmail.setText("") self.ui.inputNotas.setPlainText("")
def ocupar(self): row = self.ui.tableWidget.currentRow() column = self.ui.tableWidget.currentColumn() dd = self.ui.tableWidget.item(row, column).text() dd = dd.replace(" ", "0") fecha = f"{self.kale.anyo}-{self.kale.mes:02d}-{dd}" print(fecha) self.ui.tableWidget.item(row, column).setBackground(QtGui.QColor(255, 0, 0)) bd = BdStd() bd.runsql( f"INSERT INTO personal_ocupado (id_personal,fecha) VALUES ('{self.id_personal}','{fecha}');" )
def getEventCale(id_personal, yyyymm): # devuelve un array con dias y sus eventos bd = BdStd() dias_event = ["" for x in range(31)] txtsql = f"""SELECT fecha, id_evento FROM personal_evento WHERE id_personal = '{id_personal}' AND fecha BETWEEN '{yyyymm}-01' AND '{yyyymm}-31' ORDER BY id_personal, fecha""" bd.runsql(txtsql) if bd.rows != None: for row in bd.rows: dia = int0(row[0][8:10]) dias_event[dia - 1] = row[1] return (dias_event)
def loadcombo1 (self) : bd=BdStd() bd.runsql("SELECT id_cargo, nombre FROM cargos") self.ui.combo_filtrar_cargos.clear() self.dic_cargos = {"ALL": '000'} self.ui.combo_filtrar_cargos.addItem("ALL") if bd.rows != None : for i, row_data in enumerate(bd.rows): self.dic_cargos[row_data[1]] = row_data[0] self.ui.combo_filtrar_cargos.addItem(row_data[1]) print (self.dic_cargos)
def extraer_recinto(self): #-------------------------------------------------- extrae recinto del combo bdaux = BdStd() id_recinto = "" try: bdaux.runsql(f"""SELECT id_recinto FROM recintos WHERE nombre = '{self.ui.comboBox.currentText()}' AND ciudad = '{self.ui.comboBox_2.currentText()}'""") if bdaux.rows != None and len(bdaux.rows) > 0: print("len(bd.rows)", len(bdaux.rows)) id_recinto = bdaux.rows[0][0] except: print("error extraer_recinto:", sys.exc_info()) return (id_recinto)
def carga_combo_servicios(self): self.list_servicios = [] bd1 = BdStd() bd1.runsql( f"SELECT servicio FROM proveedores WHERE id_proveedor='{self.id_proveedor}'" ) if bd1.rows != None and len(bd1.rows) > 0: print(bd1.rows) servicios = bd1.rows[0][0].split() #print("servicios ",servicios) for item in servicios: self.list_servicios.append(item) self.ui.comboServicio.addItem(item)
def guardar(self): # Puesto el Update de los datos cambiados de personal en ficha personal--------- nombre = self.ui.inputNombre.text() apellidos = self.ui.inputApellidos.text() dni = self.ui.inputDni.text() telefono = self.ui.inputTelefono.text() email = self.ui.inputMail.text() direccion = self.ui.inputDireccion.text() cp = self.ui.inputCp.text() ciudad = self.ui.inputCiudad.text() autonomo = self.ui.inputAutonomo.text() iban = self.ui.inputIban.text() notas = self.ui.inputNotas.toPlainText() txtsql = "UPDATE personal SET nombre = '{}', apellidos = '{}', dni = '{}'," \ "telefono = '{}', email = '{}', direccion = '{}'," \ "cp = '{}', ciudad = '{}', autonomo = '{}'," \ "iban = '{}', notas = '{}' WHERE id_personal = '{}'" txtsql = txtsql.format(nombre, apellidos, dni, telefono, email, direccion, cp, ciudad, autonomo, iban, notas, self.id_personal) bd = BdStd() bd.runsql(txtsql) i = 0 for checkobj in self.ui.widget.findChildren(QtWidgets.QCheckBox): title = self.map_cargos[i] if checkobj.checkState(): self.map_cargos[i]['checked'] = "1" else: self.map_cargos[i]['checked'] = "0" i += 1 i = 0 for caja in self.ui.widget.findChildren(QtWidgets.QLineEdit): title = self.map_cargos[i] if caja.text() != "": self.map_cargos[i]['tarifa'] = int(caja.text()) i += 1 guardaTarifas(self.id_personal, self.map_cargos) msgBox = QtWidgets.QMessageBox() msgBox.setIcon(msgBox.Information) msgBox.setText("Cambios guardados correctamente") msgBox.setWindowTitle("Aleph") msgBox.exec_()
def load_evento(self, id_evento): bd = BdStd() bd.runsql(f"""SELECT * FROM evento WHERE id_evento = '{id_evento}'""") if bd.rows != None: for row in bd.rows: self.ui.entry_id.setText(row[0]) self.ui.entry_nombre.setText(row[1]) self.ui.entry_cliente.setText(row[2]) self.ui.entry_onsite.setText(row[3]) self.ui.entry_tfn_onsite.setText(row[4]) self.ui.entry_email_onsite.setText(row[5]) self.ui.entry_notas.setPlainText(row[8]) #----- se posiciona en combo recinto / manager self.posiciona_recinto(row[6]) self.posiciona_manager(row[7])
def loadData(self): # Creado mere if self.id_personal == None: data = [ "PEPEAL", "Alejandro", "Pérez Pérez", "67458932M", "654321987", "*****@*****.**", "carrer example nº3 08012 Barcelona", "Sí", "ES12 2345 2345 2345 2345", "Ingles" ] self.load_one(data) else: bd = BdStd() bd.runsql("SELECT * FROM personal WHERE id_personal = '" + self.id_personal + "'") if bd.rows != None: for row in bd.rows: self.load_one(row)
def loadcombo2 (self) : bd=BdStd() txtsql = "SELECT fecha, tarea FROM dias_evento WHERE id_evento = '"+self.id_evento+ "'" txtsql += " ORDER BY fecha" bd.runsql(txtsql) self.ui.combo_dia_personal.clear() self.map_fechas = {"ALL": '000'} self.ui.combo_dia_personal.addItem("ALL") if bd.rows != None : for row_data in bd.rows: self.map_fechas[row_data[0]] : row_data[1] self.ui.combo_dia_personal.addItem(row_data[0] + " " +row_data[1])
def load_personal_added(self): bd=BdStd() txtsql = 'SELECT id_evento, id_personal, yymmdd, nombre FROM personal_evento as pev' txtsql += ' JOIN cargos ON cargos.id_cargo = pev.id_cargo WHERE id_evento = "' txtsql += self.id_evento + '"' print ("load_personal_added ", txtsql) bd.runsql(txtsql) self.ui.personal_added.setRowCount(0) if bd.rows != None : for i, row_data in enumerate(bd.rows): self.ui.personal_added.insertRow(i) for j, data in enumerate(row_data): self.ui.personal_added.setItem(i, j, QtWidgets.QTableWidgetItem(str(data)))
def crear_fecha(self, fecha, nom_servicio): hora = self.ui.hora.time() hora = hora.toString("hh:mm") bd = BdStd() txtsql = "INSERT INTO proveedores_evento (id_proveedor, id_evento, servicio, fecha\ ,hora, contacto_onsite, telefono_onsite,email_onsite, notas) \ VALUES ('{}','{}','{}','{}','{}','{}','{}','{}','{}');" txtsql = txtsql.format(self.id_proveedor, self.padre.id_evento, nom_servicio, bd.gira_fecha(fecha), hora, self.ui.inputContacto.text(), self.ui.inputTelefono.text(), self.ui.inputEmail.text().lower(), self.ui.inputNotas.toPlainText()) print(txtsql) bd.runsql(txtsql)
def getOcupadoCale(id_personal, yyyymm): # devuelve un array con dias y sus eventos bd = BdStd() dias_ocupado = ["" for x in range(31)] txtsql = f"""SELECT fecha, id_personal FROM personal_ocupado WHERE id_personal = '{id_personal}' AND fecha BETWEEN '{yyyymm}-01' AND '{yyyymm}-31' ORDER BY id_personal, fecha""" print("getOcupadoCale: ", txtsql) bd.runsql(txtsql) print(bd.rows) if bd.rows != None: for row in bd.rows: dia = int0(row[0][8:10]) dias_ocupado[dia - 1] = row[1] return (dias_ocupado)
def getCargosPersonal(id_personal): # rellena el array de cargos con los que tiene la persona en la base de datos map_cargos = getArrayCargos() bd = BdStd() bd.runsql("SELECT * FROM tarifas WHERE id_personal = '" + id_personal + "'") #id_personal, id_cargo, tarifa if bd.rows != None: for row in bd.rows: for i, cargo in enumerate(map_cargos): if cargo['id'] == row[1]: map_cargos[i]['checked'] = "1" # ON map_cargos[i]['tarifa'] = row[2] break #print(map_cargos) return (map_cargos)