def buscar_clientes(self, objeto, campo, valor, nombre): conexion = Op.conectar(self.datos_conexion) cursor = Op.consultar( conexion, "idPersona, RazonSocial, NroDocumento, " + "idTipoDocumento, DireccionPrincipal, TelefonoPrincipal", "personas_s", " WHERE " + campo + " = " + valor + " AND Cliente = 1") datos = cursor.fetchall() cant = cursor.rowcount conexion.close() # Finaliza la conexión if cant > 0: direc = "" if datos[0][4] is None else datos[0][4] telef = "" if datos[0][5] is None else datos[0][5] self.obj("txt_01").set_text(str(datos[0][0])) self.obj("txt_01_1").set_text(datos[0][1]) self.obj("txt_01_2").set_text(datos[0][2]) self.obj("txt_01_3").set_text(direc) self.obj("txt_01_4").set_text(telef) # Asignación de Tipo de Documento en Combo model, i = self.obj("cmb_tipo_doc").get_model(), 0 while model[i][0] != datos[0][3]: i += 1 self.obj("cmb_tipo_doc").set_active(i) # Buscar Tipo de Cliente y Vendedor conexion = Op.conectar(self.datos_conexion) cursor = Op.consultar( conexion, "idTipoCliente, idVendedor, " + "NombreApellido", "clientes_s", " WHERE idCliente = " + str(datos[0][0])) datos = cursor.fetchall() cant = cursor.rowcount conexion.close() # Finaliza la conexión self.idTipoCliente = str(datos[0][0]) self.obj("txt_02").set_text(str(datos[0][1])) self.obj("txt_02_1").set_text(datos[0][2]) self.obj("barraestado").push(0, "") self.verificacion(0) else: self.estadoguardar(False) objeto.grab_focus() self.obj("barraestado").push(0, "El " + nombre + " no es válido.") otro = self.obj("txt_01_2") if objeto == self.obj( "txt_01") else self.obj("txt_01") otro.set_text("") self.obj("txt_01_1").set_text("") self.obj("txt_01_3").set_text("") self.obj("txt_01_4").set_text("")
def on_btn_eliminar_clicked(self, objeto): try: seleccion, iterador = self.obj("grilla").get_selection().get_selected() valor0 = str(seleccion.get_value(iterador, 0)) # Codigo valor1 = seleccion.get_value(iterador, 2) # Nro. Doc. valor2 = seleccion.get_value(iterador, 3) # Alias except: self.obj("barraestado").push(0, "Seleccione un Usuario de la lista. Luego presione Eliminar.") else: eleccion = Mens.pregunta_borrar("Seleccionó:\n\n" + "Nro. Documento: " + valor1 + "\nAlias: " + valor2) self.obj("grilla").get_selection().unselect_all() self.obj("barraestado").push(0, "") if eleccion: conexion = Op.conectar(self.datos_conexion) try: cursor = conexion.cursor() Op.eliminar(conexion, "usuarios", valor0) cursor.execute("DROP USER '" + valor2 + "'") conexion.commit() except: conexion.rollback() Mens.no_puede_borrar() else: self.cargar_grilla() finally: conexion.close() # Finaliza la conexión
def eliminar(self): seleccion, iterador = self.obj("grilla").get_selection().get_selected() valor0 = str(seleccion.get_value(iterador, 0)) valor1 = seleccion.get_value(iterador, 5) valor2 = str(seleccion.get_value(iterador, 11)) valor3 = seleccion.get_value(iterador, 14) valor4 = str(seleccion.get_value(iterador, 1)) valor5 = str(seleccion.get_value(iterador, 9)) eleccion = Mens.pregunta_borrar("Seleccionó:\n" + "\nCódigo: " + valor0 + "\nNombre y Apellido: " + valor1 + "\nMonto: " + valor2 + "\nUsuario Responsable: " + valor3) self.obj("grilla").get_selection().unselect_all() self.obj("barraestado").push(0, "") if eleccion: conexion = Op.conectar(self.datos_conexion) Op.eliminar(conexion, self.tabla, valor0 + ", " + valor4) eleccion = Mens.pregunta_anular("Se ha eliminado el Anticipo seleccionado." + "\n¿Desea anular el Comprobante de Pago asociado a este?") if eleccion: Op.anular(conexion, "comprobantepagos", valor5) conexion.commit() conexion.close() # Finaliza la conexión cargar_grilla(self)
def txt_tabla_focus_out(self, objeto, datos_conexion, boton_guardar): codigo = objeto.get_text() if len(codigo) > 0 and Op.comprobar_numero(int, objeto, "Código", self.obj("barraestado")): conexion = Op.conectar(datos_conexion) cursor = Op.consultar(conexion, "Nombre, Tabla", "sistematablas", " WHERE idTabla = " + codigo) datos = cursor.fetchall() cant = cursor.rowcount conexion.close() # Finaliza la conexión if cant > 0: self.idTabla = int(codigo) self.obj("txt_des_tabla").set_text(datos[0][0]) self.editando_tabla = cambiar_tabla_seleccionada(self) else: objeto.grab_focus() self.obj("txt_des_tabla").set_text("") boton_guardar.set_sensitive(False) self.obj("barraestado").push(0, "El Código de Tabla no es válido.") else: self.obj("txt_des_tabla").set_text("") boton_guardar.set_sensitive(False) self.idTabla = -1 visibilidad_permisos(self)
def eliminar(self): seleccion, iterador = self.obj("grilla").get_selection().get_selected() valor0 = str(seleccion.get_value(iterador, 0)) valor1 = seleccion.get_value(iterador, 1)[0:-9] valor2 = seleccion.get_value(iterador, 1)[-8:] valor3 = seleccion.get_value(iterador, 11) aprobado = seleccion.get_value(iterador, 12) mensaje = "Seleccionó:\n\nNro. de Orden: " + valor0 + \ "\nFecha: " + valor1 + "\nHora: " + valor2 + "\nResponsable: " + valor3 if aprobado != 1: eleccion = Mens.pregunta_borrar(mensaje) self.obj("grilla").get_selection().unselect_all() self.obj("barraestado").push(0, "") if eleccion: conexion = Op.conectar(self.datos_conexion) Op.eliminar(conexion, self.tabla, valor0) conexion.commit() conexion.close() # Finaliza la conexión cargar_grilla(self) else: Mens.no_puede_modificar_eliminar_anular( 2, mensaje + "\n\nEsta Orden de Compra ya ha sido Aprobada." + "\nSolo puede eliminar Órdenes pendientes de aprobación.")
def eliminar(self): seleccion, iterador = self.obj("grilla").get_selection().get_selected() valor0 = str(seleccion.get_value(iterador, 0)) valor1 = seleccion.get_value(iterador, 5) valor2 = seleccion.get_value(iterador, 9) valor3 = seleccion.get_value(iterador, 10) valor4 = seleccion.get_value(iterador, 15) mensaje = "Seleccionó:\n\nNúmero: " + valor0 + "\nNombre y Apellido: " + valor1 + \ "\nInicio de Periodo: " + valor2 + "\nFin de Periodo: " + valor3 + \ "\nUsuario Responsable: " + valor4 if self.eli_anu == "Anular": eleccion = Mens.pregunta_anular(mensaje) else: eleccion = Mens.pregunta_borrar(mensaje) self.obj("grilla").get_selection().unselect_all() self.obj("barraestado").push(0, "") if eleccion: conexion = Op.conectar(self.datos_conexion) if self.eli_anu == "Anular": Op.anular(conexion, self.tabla, valor0) else: Op.eliminar(conexion, self.tabla, valor0) conexion.commit() conexion.close() # Finaliza la conexión cargar_grilla(self)
def on_btn_guardar_clicked(self, objeto): v1 = self.obj("txt_00").get_text() v2 = self.obj("txt_01").get_text() v3 = self.obj("txt_02").get_text() v4 = self.obj("txt_03").get_text() # Banco v5 = self.obj("txt_04").get_text() # Titular v6 = self.obj("txt_07").get_text() # Establece la conexión con la Base de Datos conexion = Op.conectar(self.nav.datos_conexion) sql = v1 + ", " + v4 + ", " + v5 + ", " + str(self.idTipoCheque) + \ ", " + v2 + ", '" + v3 + "', '" + self.fecha_emision + "', " + \ "'" + self.fecha_cobro + "', " + v6 if not self.editando: Op.insertar(conexion, self.nav.tabla, sql) else: Op.modificar(conexion, self.nav.tabla, str(self.cond) + ", " + sql) conexion.commit() conexion.close() # Finaliza la conexión self.obj("ventana").destroy() cargar_grilla(self.nav)
def cargar_items(self, objeto, campo, valor, nombre): conexion = Op.conectar(self.datos_conexion) cursor = Op.consultar( conexion, "idItem, CodigoBarras, Nombre, " + "idPresentacion, Presentacion, idCategoria, Categoria, Porcentaje", "items_s", " WHERE " + campo + " = " + valor) datos = cursor.fetchall() cant = cursor.rowcount conexion.close() # Finaliza la conexión if cant > 0: self.obj("txt_00").set_text(str(datos[0][0])) codbar = "" if datos[0][1] is None else datos[0][1] self.obj("txt_00_1").set_text(codbar) self.obj("txt_00_2").set_text(datos[0][2]) self.obj("txt_00_3").set_text(str(datos[0][3])) self.obj("txt_00_4").set_text(datos[0][4]) self.obj("txt_00_5").set_text(str(datos[0][5])) self.obj("txt_00_6").set_text(datos[0][6]) self.obj("txt_00_7").set_text(str(datos[0][7])) self.cargar_grilla_lotes() self.estadoguardar(True) else: objeto.grab_focus() self.estadoguardar(False) self.obj("barraestado").push(0, "El " + nombre + " no es válido.") otro = self.obj("txt_00_1") if objeto == self.obj( "txt_00") else self.obj("txt_00") self.limpiar_items() otro.set_text("")
def eliminar(self): seleccion, iterador = self.obj("grilla").get_selection().get_selected() valor0 = str(seleccion.get_value(iterador, 0)) valor1 = seleccion.get_value(iterador, 1) valor2 = str(seleccion.get_value(iterador, 2)) # País valor3 = seleccion.get_value(iterador, 3) if self.tabla == "ciudades": valor4 = str(seleccion.get_value(iterador, 4)) valor5 = seleccion.get_value(iterador, 5) opcion = "\nDepartamento: " + valor5 campos = valor2 + ", " + valor4 + ", " + valor0 else: # Departamentos opcion = "" campos = valor2 + ", " + valor0 eleccion = Mens.pregunta_borrar("Seleccionó:\n\nCód.: " + valor0 + "\nNombre: " + valor1 + "\nPaís: " + valor3 + opcion) self.obj("grilla").get_selection().unselect_all() self.obj("barraestado").push(0, "") if eleccion: conexion = Op.conectar(self.datos_conexion) Op.eliminar(conexion, self.tabla, campos) conexion.commit() conexion.close() # Finaliza la conexión cargar_grilla(self)
def cargar_grilla(self): opcion = "" if len(self.obj("txt_buscar").get_text()) == 0 else \ " WHERE " + self.campo_buscar + " LIKE '%" + self.obj("txt_buscar").get_text() + "%'" if len(self.condicion) > 0: self.condicion = " WHERE " + self.condicion if len(opcion) == 0 \ else " AND " + self.condicion campos, camporden = self.campoid + ", Nombre, idPais, Pais", "" if self.tabla == "ciudades": campos += ", idDepartamento, Departamento" camporden += "idDepartamento, " conexion = Op.conectar(self.datos_conexion) cursor = Op.consultar( conexion, campos, self.tabla + "_s", opcion + self.condicion + " ORDER BY idPais, " + camporden + self.campoid) datos = cursor.fetchall() cant = cursor.rowcount conexion.close() # Finaliza la conexión lista = self.obj("grilla").get_model() lista.clear() for i in range(0, cant): fila = [datos[i][0], datos[i][1], datos[i][2], datos[i][3]] if self.tabla == "ciudades": fila += [datos[i][4], datos[i][5]] lista.append(fila) cant = str(cant) + " registro encontrado." if cant == 1 \ else str(cant) + " registros encontrados." self.obj("barraestado").push(0, cant)
def buscar_foraneos(self, objeto, companero, nombre, tabla, campo, valor, condicion=""): if Op.comprobar_numero(int, objeto, "Cód. de " + nombre, self.obj("barraestado")): conexion = Op.conectar(self.nav.datos_conexion) cursor = Op.consultar( conexion, "Nombre", tabla, " WHERE " + campo + " = " + valor + condicion) datos = cursor.fetchall() cant = cursor.rowcount conexion.close() # Finaliza la conexión if cant > 0: companero.set_text(datos[0][0]) self.obj("barraestado").push(0, "") if self.nav.tabla == "ciudades" and objeto == self.obj("txt_02") \ and len(self.obj("txt_03_1").get_text()) == 0: # Con paises, si no aparece el nombre del departamento, lo buscará self.focus_out_event(self.obj("txt_03"), 0) else: self.focus_out_event(self.obj("txt_00"), 0) else: self.obj("btn_guardar").set_sensitive(False) objeto.grab_focus() self.obj("barraestado").push( 0, "El Cód. de " + nombre + " no es válido.") companero.set_text("")
def buscar_empleados(self, objeto, campo, valor, nombre): conexion = Op.conectar(self.nav.datos_conexion) cursor = Op.consultar( conexion, "idPersona, RazonSocial, " + "NroDocumento, idTipoDocumento", "personas_s", " WHERE " + campo + " = " + valor + " AND Empleado = 1") datos = cursor.fetchall() cant = cursor.rowcount conexion.close() # Finaliza la conexión if cant > 0: self.obj("txt_01").set_text(str(datos[0][0])) self.obj("txt_01_1").set_text(datos[0][1]) self.obj("txt_01_2").set_text(datos[0][2]) # Asignación de Tipo de Documento en Combo model, i = self.obj("cmb_tipo_doc").get_model(), 0 while model[i][0] != datos[0][3]: i += 1 self.obj("cmb_tipo_doc").set_active(i) self.obj("barraestado").push(0, "") self.verificacion(0) else: self.estadoguardar(False) objeto.grab_focus() self.obj("barraestado").push(0, "El " + nombre + " no es válido.") otro = self.obj("txt_01_2") if objeto == self.obj( "txt_01") else self.obj("txt_01") otro.set_text("") self.obj("txt_01_1").set_text("")
def on_btn_guardar_clicked(self, objeto): cod = self.obj("txt_00").get_text() emp = self.obj("txt_01").get_text() obs = self.obj("txt_04").get_text() obs = "NULL" if len(obs) == 0 else "'" + obs + "'" # Establece la conexión con la Base de Datos conexion = Op.conectar(self.nav.datos_conexion) sql = cod + ", " + emp + ", " + str(self.idMotivoSalida) + \ ", '" + self.fecha + "', " + obs if not self.editando: Op.insertar(conexion, self.nav.tabla, sql) else: Op.modificar(conexion, self.nav.tabla, self.cond + ", " + sql) if self.pago_modificado: pago = self.obj("txt_03").get_text() if len(pago) == 0: if self.editando_pago: Op.eliminar(conexion, "salidas_comprpagos", cod) else: sql = cod + ", " + pago if not self.editando_pago: Op.insertar(conexion, "salidas_comprpagos", sql) else: Op.modificar(conexion, "salidas_comprpagos", sql) conexion.commit() conexion.close() # Finaliza la conexión self.obj("ventana").destroy() cargar_grilla(self.nav)
def on_btn_guardar_clicked(self, objeto): cod = self.obj("txt_00").get_text() cont = self.obj("txt_02").get_text() exp = self.obj("txt_03").get_text() car = self.obj("txt_04").get_text() juz = self.obj("txt_05").get_text() obs = self.obj("txt_09").get_text() obs = "NULL" if len(obs) == 0 else "'" + obs + "'" # Establece la conexión con la Base de Datos conexion = Op.conectar(self.nav.datos_conexion) sql = cod + ", " + cont + ", " + str(self.idTipoJuzgado) + ", " + \ str(self.idTurnoJuzgado) + ", '" + self.fechaini + "', " + \ "'" + self.fechafin + "', '" + exp + "', '" + car + "', " + \ "'" + juz + "', " + obs if not self.editando: Op.insertar(conexion, self.nav.tabla, sql) else: Op.modificar(conexion, self.nav.tabla, self.cond + ", " + sql) conexion.commit() conexion.close() # Finaliza la conexión self.obj("ventana").destroy() cargar_grilla(self.nav)
def on_btn_consulta_clicked(self, objeto): cont = self.obj("txt_02").get_text() if len(cont) > 0: conexion = Op.conectar(self.nav.datos_conexion) # Obtener monto total cobrado durante el presente año cursor = Op.consultar( conexion, "IFNULL(SUM(TotalPagar), 0)", "comprobantepagos_s", " WHERE (YEAR(FechaHoraExp) = YEAR(NOW())) AND (NroContrato = " + cont + ")") datos = cursor.fetchall() cant = cursor.rowcount if datos[0][0] == 0: Mens.informa_generico( "Revise los datos", "No se han encontrado registros de pagos realizados\n" + "al Empleado relacionado al Contrato Nro. " + cont) total = Decimal(0.00) else: total = round(Decimal(datos[0][0])) self.obj("txt_03").set_text(str(total)) # Cálculo del Aguinaldo monto = round(total / 12) self.obj("txt_04").set_text(str(monto)) else: self.obj("barraestado").push( 0, "Seleccione un Contrato primero, luego podrá consultar.")
def on_btn_per_todos_clicked(self, objeto): eleccion = Mens.pregunta_borrar( "Seleccionó revocar todos los permisos del Usuario.") if eleccion: conexion = Op.conectar(self.datos_conexion) try: cursor = conexion.cursor() cursor.execute("REVOKE ALL PRIVILEGES, GRANT OPTION FROM '" + self.usuario + "'") Op.concede_select(cursor, "tablas_s", self.usuario) Op.concede_select(cursor, "vistas_s", self.usuario) Op.concede_select(cursor, "procedimientos_s", self.usuario) conexion.commit() except MySqlErr.DatabaseError as e: print(("Error de Base de Datos:\n" + str(e) + "\n")) self.obj("barraestado").push( 0, "No ha sido posible revocar Todos los Permisos del Usuario." ) except: print("Error: ", exc_info()[0]) conexion.rollback() self.obj("barraestado").push( 0, "No ha sido posible revocar Todos los Permisos del Usuario." ) else: self.cargar_grilla() finally: conexion.close() # Finaliza la conexión
def borrar_permiso_administrativo(self): conexion = Op.conectar(self.datos_conexion) cursor = conexion.cursor() cursor.execute("REVOKE ALL PRIVILEGES, GRANT OPTION FROM '" + self.usuario + "'") Op.concede_select(cursor, "tablas_s", self.usuario) Op.concede_select(cursor, "vistas_s", self.usuario) Op.concede_select(cursor, "procedimientos_s", self.usuario) conexion.close() # Finaliza la conexión lista = self.obj("grilla").get_model() cant = len(lista) for i in range(0, cant): self.idTabla = lista[i][0] if self.idTabla != 48: con = True if lista[i][2] == 1 else False ins = True if lista[i][3] == 1 else False act = True if lista[i][4] == 1 else False eli = True if lista[i][5] == 1 else False anu = True if lista[i][6] == 1 else False self.permisos_tablas(con, ins, act, eli, anu, True)
def on_btn_guardar_clicked(self, objeto): v1 = self.obj("txt_00").get_text() v2 = self.obj("txt_01").get_text() v3 = self.obj("txt_02").get_text() # País if self.nav.tabla == "ciudades": v4 = self.obj("txt_03").get_text() # Departamento sql = "" if not self.editando else str(self.cond_pais) + ", " + \ str(self.cond_dep) + ", " + str(self.cond) + ", " sql += v3 + ", " + v4 + ", " + v1 + ", '" + v2 + "'" else: # Departamentos sql = "" if not self.editando else str( self.cond_pais) + ", " + str(self.cond) + ", " sql += v3 + ", " + v1 + ", '" + v2 + "'" # Establece la conexión con la Base de Datos conexion = Op.conectar(self.nav.datos_conexion) if not self.editando: Op.insertar(conexion, self.nav.tabla, sql) else: Op.modificar(conexion, self.nav.tabla, sql) conexion.commit() conexion.close() # Finaliza la conexión self.obj("ventana").destroy() cargar_grilla(self.nav)
def cargar_grilla_buscar(self): buscar = self.obj("txt_buscar").get_text() if self.campo_buscar == "FechaVencimiento": opcion = "" if len(buscar) == 0 else \ " WHERE " + self.campo_buscar + " BETWEEN '" + self.fecha_ini + "' AND '" + self.fecha_fin + "'" else: opcion = "" if len(buscar) == 0 else \ " AND " + self.campo_buscar + " LIKE '%" + buscar + "%'" conexion = Op.conectar(self.origen.datos_conexion) cursor = Op.consultar( conexion, "NroLote, FechaVencimiento, " + "Cantidad", "lotes", " WHERE idItem = " + self.idItem + opcion + " ORDER BY FechaVencimiento DESC") datos = cursor.fetchall() cant = cursor.rowcount conexion.close() # Finaliza la conexión lista = self.obj("grilla_buscar").get_model() lista.clear() for i in range(0, cant): lista.append([ datos[i][0], Cal.mysql_fecha(datos[i][1]), datos[i][2], str(datos[i][1]) ]) cant = str(cant) + " registro encontrado." if cant == 1 \ else str(cant) + " registros encontrados." self.obj("barraestado").push(0, cant)
def cargar_grilla(self, grilla, barraestado): opcion = "" if not self.obj("chk_empleado").get_active() else \ " AND NroContrato = " + self.obj("txt_02").get_text() conexion = Op.conectar(self.datos_conexion) cursor = Op.consultar(conexion, "NroContrato, idEmpleado, " + "idTipoDocumento, NroDocumento, NombreApellido, Cargo, " + "Fecha, Hora, Entrada, Puntual, Observaciones, Alias", "asistencias_s", " WHERE Fecha BETWEEN '" + self.fechaini + "'" + " AND '" + self.fechafin + "'" + opcion + " ORDER BY Fecha, Hora") datos = cursor.fetchall() cant = cursor.rowcount conexion.close() # Finaliza la conexión lista = grilla.get_model() lista.clear() for i in range(0, cant): estado = "Entrada" if datos[i][8] == 1 else "Salida" puntual = "Puntual" if datos[i][9] == 1 else "" obs = "" if datos[i][10] is None else datos[i][10] lista.append([str(datos[i][0]), str(datos[i][1]), datos[i][2], datos[i][3], datos[i][4], datos[i][5], Cal.mysql_fecha(datos[i][6]), str(datos[i][7]), estado, puntual, obs, datos[i][11], str(datos[i][6])]) cant = str(cant) + " registro encontrado." if cant == 1 \ else str(cant) + " registros encontrados." barraestado.push(0, cant)
def eliminar(self): seleccion, iterador = self.obj("grilla").get_selection().get_selected() anulado = seleccion.get_value(iterador, 18) if anulado != 1: valor0 = str(seleccion.get_value(iterador, 0)) valor1 = str(seleccion.get_value(iterador, 1)) valor2 = seleccion.get_value(iterador, 2) valor3 = seleccion.get_value(iterador, 6) valor4 = seleccion.get_value(iterador, 12) valor5 = seleccion.get_value(iterador, 15) valor6 = seleccion.get_value(iterador, 16) eleccion = Mens.pregunta_anular("Seleccionó:\n" + "\nNro. Cheque: " + valor1 + "\nNro. Cuenta: " + valor2 + "\nBanco: " + valor3 + "\nTitular: " + valor4 + "\nFecha de Emisión: " + valor5 + "\nFecha de Cobro: " + valor6) self.obj("grilla").get_selection().unselect_all() self.obj("barraestado").push(0, "") if eleccion: conexion = Op.conectar(self.datos_conexion) Op.anular(conexion, self.tabla, valor0) conexion.commit() conexion.close() # Finaliza la conexión cargar_grilla(self) else: self.obj("barraestado").push(0, "NO puede Anular un Cheque que ya ha sido Anulado.")
def eliminar(self): seleccion, iterador = self.obj("grilla").get_selection().get_selected() valor0 = seleccion.get_value(iterador, 1) valor1 = str(seleccion.get_value(iterador, 0)) valor2 = seleccion.get_value(iterador, 2) valor3 = seleccion.get_value(iterador, 6) valor4 = str(seleccion.get_value(iterador, 9)) valor5 = str(seleccion.get_value(iterador, 10)) valor6 = seleccion.get_value(iterador, 13) confirmado = seleccion.get_value(iterador, 14) mensaje = "Seleccionó:\n\nNro. de Nota: " + valor0 + \ "\nNro. de Timbrado: " + valor1 + "\nFecha: " + valor2 + \ "\nProveedor: " + valor3 + "\nTotal: " + valor4 + \ "\nTotal Liq. del IVA: " + valor5 + "\nResponsable: " + valor6 if confirmado != 1: eleccion = Mens.pregunta_borrar(mensaje) self.obj("grilla").get_selection().unselect_all() self.obj("barraestado").push(0, "") if eleccion: conexion = Op.conectar(self.datos_conexion) Op.eliminar(conexion, self.tabla, valor1 + ", '" + valor0 + "'") conexion.commit() conexion.close() # Finaliza la conexión cargar_grilla(self) else: Mens.no_puede_modificar_eliminar_anular( 2, mensaje + "\n\nLa Nota seleccionada ya ha sido Confirmada." + "\nSolo puede eliminar Notas pendientes de confirmación.")
def cargar_item_pedido(self): self.pedido_guardado = False self.guardar_encabezado() orden = self.obj("txt_00").get_text() pedido = self.obj("txt_02").get_text() # Eliminando Items del Pedido anterior datos = self.obj("grilla").get_model() cant = len(datos) if cant > 0: # Si existen ítems registrados en la Orden, los elimina for i in range(0, cant): Op.eliminar(self.conexion, "ordencompras_detalles", orden + ", " + str(datos[i][0])) # Obteniendo Items desde Pedido seleccionado conexion = Op.conectar(self.nav.datos_conexion) cursor = Op.consultar(conexion, "idItem, Cantidad", "pedidocompras_detalles_s", " WHERE NroPedidoCompra = " + pedido) datos = cursor.fetchall() cant = cursor.rowcount conexion.close() # Finaliza la conexión # Cargando Items desde Pedido seleccionado for i in range(0, cant): Op.insertar( self.conexion, "ordencompras_detalles", orden + ", " + str(datos[i][0]) + ", " + str(datos[i][1]) + ", NULL, NULL, NULL") self.cargar_grilla_items() self.verificacion(0)
def focus_out_event(self, objeto, evento): if len(self.obj("txt_fact").get_text()) == 0 or len( self.obj("txt_timb").get_text()) == 0: self.obj("barraestado").push(0, "") else: fact = self.obj("txt_fact").get_text() timb = self.obj("txt_timb").get_text() if self.tabla == "cuentaspagar": fact = "'" + fact + "'" tabla = "facturacompras_s" else: tabla = "facturaventas_s" conexion = Op.conectar(self.datos_conexion) cursor = Op.consultar( conexion, "Total", tabla, " WHERE " + "NroTimbrado = " + timb + " AND NroFactura = " + fact) datos = cursor.fetchall() cant = cursor.rowcount conexion.close() # Finaliza la conexión if cant > 0: self.obj("txt_total_fact").set_text(str(datos[0][0])) self.obj("barraestado").push(0, "") self.cargar_grilla_cuotas() else: self.estadoguardar(False) self.obj("txt_fact").grab_focus() self.obj("barraestado").push( 0, "El Nro. Factura introducido no es válido (NO EXISTE).") self.obj("txt_total_fact").set_text("") self.obj("txt_no_asignado").set_text("")
def cargar_grilla(self): opcion = "" if len(self.obj("txt_buscar").get_text()) == 0 else \ " WHERE " + self.campo_buscar + " LIKE '%" + self.obj("txt_buscar").get_text() + "%'" if self.obj("rad_act").get_active() or self.obj("rad_ina").get_active(): activo = "1" if self.obj("rad_act").get_active() else "0" opcion += " WHERE " if len(opcion) == 0 else " AND " opcion += "Activo = " + activo conexion = Op.conectar(self.datos_conexion) cursor = Op.consultar( conexion, "NroEstablecimiento, Nombre, " + "NroDocumento, RazonSocial, Ciudad, Barrio, Direccion, " + "NroTelefono, Activo, idEmpresa, idDireccion", self.tabla + "_s", opcion + " ORDER BY " + self.campoid) datos = cursor.fetchall() cant = cursor.rowcount conexion.close() # Finaliza la conexión lista = self.obj("grilla").get_model() lista.clear() for i in range(0, cant): lista.append([ datos[i][0], datos[i][1], datos[i][2], datos[i][3], datos[i][4], datos[i][5], datos[i][6], datos[i][7], datos[i][8], datos[i][9], datos[i][10] ]) cant = str(cant) + " registro encontrado." if cant == 1 \ else str(cant) + " registros encontrados." self.obj("barraestado").push(0, cant)
def cargar_grilla_buscar(self): if self.campo_buscar == "FechaVencimiento": opcion = "" if len(self.obj("txt_buscar").get_text()) == 0 else \ " WHERE " + self.campo_buscar + " BETWEEN '" + self.fecha_ini + "' AND '" + self.fecha_fin + "'" else: opcion = "" if len(self.obj("txt_buscar").get_text()) == 0 else \ " WHERE " + self.campo_buscar + " LIKE '%" + self.obj("txt_buscar").get_text() + "%'" conexion = Op.conectar(self.origen.datos_conexion) cursor = Op.consultar( conexion, "NroTimbrado, NroFactura, " + "NroCuota, FechaVencimiento, Monto", "cuentascobrar", opcion + " ORDER BY FechaVencimiento") datos = cursor.fetchall() cant = cursor.rowcount conexion.close() # Finaliza la conexión lista = self.obj("grilla_buscar").get_model() lista.clear() for i in range(0, cant): lista.append([ datos[i][0], datos[i][1], datos[i][2], Cal.mysql_fecha(datos[i][3]), datos[i][4], str(datos[i][3]) ]) cant = str(cant) + " registro encontrado." if cant == 1 \ else str(cant) + " registros encontrados." self.obj("barraestado").push(0, cant)
def cargar_grilla(self): if self.campo_buscar in ("FechaHora", "FechaHoraExp", "FechaNacimiento"): opcion = "" if len(self.obj("txt_buscar").get_text()) == 0 else \ " WHERE " + self.campo_buscar + " BETWEEN '" + self.fecha_ini + "' AND '" + self.fecha_fin + "'" else: opcion = "" if len(self.obj("txt_buscar").get_text()) == 0 else \ " WHERE " + self.campo_buscar + " LIKE '%" + self.obj("txt_buscar").get_text() + "%'" conexion = Op.conectar(self.datos_conexion) cursor = Op.consultar(conexion, "idAnticipo, NroContrato, idEmpleado, " + "idTipoDocumento, NroDocumento, NombreApellido, FechaNacimiento, " + "Edad, Cargo, NroComprobante, FechaHoraExp, Monto, FechaHora, " + "Observaciones, Alias, NroDocUsuario, NombreUsuario", self.tabla + "_s", opcion + " ORDER BY NroContrato, " + self.campoid) datos = cursor.fetchall() cant = cursor.rowcount conexion.close() # Finaliza la conexión lista = self.obj("grilla").get_model() lista.clear() for i in range(0, cant): fechanac = "" if datos[i][6] is None else Cal.mysql_fecha(datos[i][6]) fechacomp = "" if datos[i][10] is None else Cal.mysql_fecha_hora(datos[i][10]) fechaexp = "" if datos[i][12] is None else Cal.mysql_fecha_hora(datos[i][12]) lista.append([datos[i][0], datos[i][1], datos[i][2], datos[i][3], datos[i][4], datos[i][5], fechanac, datos[i][7], datos[i][8], datos[i][9], fechacomp, datos[i][11], fechaexp, datos[i][13], datos[i][14], datos[i][15], datos[i][16], str(datos[i][6]), str(datos[i][10]), str(datos[i][12])]) cant = str(cant) + " registro encontrado." if cant == 1 \ else str(cant) + " registros encontrados." self.obj("barraestado").push(0, cant)
def cargar_grilla(self): opcion = "" if len(self.obj("txt_buscar").get_text()) == 0 else \ " WHERE " + self.campo_buscar + " LIKE '%" + self.obj("txt_buscar").get_text() + "%'" conexion = Op.conectar(self.datos_conexion) cursor = Op.consultar(conexion, self.campoid + ", NroDocumento, " + "DigitoVerificador, RazonSocial, NombreFantasia, idPropietario, " + "NroDocPropietario, NombreApellido, DireccionPrincipal, " + "TelefonoPrincipal, NroPatronalIPS, NroPatronalMJT", self.tabla + "_s", opcion + " ORDER BY " + self.campoid) datos = cursor.fetchall() cant = cursor.rowcount conexion.close() # Finaliza la conexión lista = self.obj("grilla").get_model() lista.clear() for i in range(0, cant): documento = str(datos[i][1]) + "-" + str(datos[i][2]) lista.append([datos[i][0], documento, datos[i][3], datos[i][4], datos[i][5], datos[i][6], datos[i][7], datos[i][8], datos[i][9], datos[i][10], datos[i][11], datos[i][2]]) cant = str(cant) + " registro encontrado." if cant == 1 \ else str(cant) + " registros encontrados." self.obj("barraestado").push(0, cant)
def on_btn_guardar_clicked(self, objeto): cont = self.obj("txt_02").get_text() monto = self.obj("txt_04").get_text() # Establece la conexión con la Base de Datos conexion = Op.conectar(self.nav.datos_conexion) # Crear encabezado de Comprobante de Pago comp = Op.nuevoid(self.nav.datos_conexion, "comprobantepagos_s", "NroComprobante") sql = comp + ", " + cont + ", '" + str(date.today()) + "', " + \ "'" + str(date.today()) + "', NULL, 1" Op.insertar(conexion, "comprobantepagos", sql) # Crear detalle de Comprobante de Pago (1 - Anticipo) sql = comp + ", 1, 1, " + monto + ", 1, NULL" Op.insertar(conexion, "comprobantepagos_detalles", sql) conexion.commit() # Agregar-Modificar registro de Anticipo cod = self.obj("txt_00").get_text() obs = self.obj("txt_05").get_text() obs = "NULL" if len(obs) == 0 else "'" + obs + "'" sql = cod + ", " + cont + ", " + comp + ", " + monto + ", " + obs Op.insertar(conexion, self.nav.tabla, sql) conexion.commit() conexion.close() # Finaliza la conexión # Generar Comprobante de Pago from informes.rrhh_comprobantes import genera_comprobante_pago genera_comprobante_pago(self.nav.datos_conexion, comp) self.obj("ventana").destroy() cargar_grilla(self.nav)
def concesion_de_permisos_grupos(self, codigo): cant = len(self.obj("grilla").get_model()) if cant > 0: eleccion = Mens.pregunta_generico( "¿Desea conservar los permisos?", "El usuario ya posee pemisos sobre unas " + str(cant) + " entidades.") if not eleccion: self.on_btn_per_todos_clicked(0) conexion = Op.conectar(self.datos_conexion) cursor = Op.consultar( conexion, "*", "grupousuarios_permisos_s", " WHERE idGrupoUsuario = " + codigo + " ORDER BY idTabla") datos = cursor.fetchall() cant = cursor.rowcount conexion.close() # Finaliza la conexión for i in range(0, cant): self.idTabla = datos[i][2] con = True if datos[i][4] == 1 else False ins = True if datos[i][5] == 1 else False act = True if datos[i][6] == 1 else False eli = True if datos[i][7] == 1 else False anu = True if datos[i][8] == 1 else False self.permisos_tablas(con, ins, act, eli, anu, True) self.cargar_grilla()