def focus_out_event(self, objeto, evento): valor = objeto.get_text() if len(valor) == 0: self.obj("barraestado").push(0, "") if objeto == self.obj("txt_01"): # Código de Empleado self.obj("txt_01_1").set_text("") self.obj("txt_01_2").set_text("") elif objeto == self.obj("txt_01_2") \ and len(self.obj("txt_01").get_text()) == 0: # Nro. Documento de Empleado self.obj("txt_01_1").set_text("") else: if objeto == self.obj("txt_00"): # Cuando crea nuevo registro o, al editar, valor es diferente del original, # y si es un numero entero, comprueba si ya ha sido registado if (not self.editando or valor != self.cond) and \ Op.comprobar_numero(int, objeto, "Código", self.obj("barraestado")): Op.comprobar_unique(self.nav.datos_conexion, self.nav.tabla + "_s", self.nav.campoid, valor, objeto, self.estadoguardar, self.obj("barraestado"), "El Código introducido ya ha sido registado.") elif objeto == self.obj("txt_01"): if Op.comprobar_numero(int, objeto, "Cód. de Empleado", self.obj("barraestado")): self.buscar_empleados(objeto, "idPersona", valor, "Cód. de Empleado") elif objeto == self.obj("txt_01_2"): self.buscar_empleados(objeto, "NroDocumento", "'" + valor + "'" + " AND idTipoDocumento = '" + str(self.idTipoDoc) + "'", "Nro. de Documento") elif objeto == self.obj("txt_02"): self.obj("barraestado").push(0, "")
def focus_out_event(self, objeto, evento): valor = objeto.get_text() if len(valor) == 0: self.obj("barraestado").push(0, "") if objeto == self.obj("txt_01"): # Código de Empleado self.obj("txt_01_1").set_text("") self.obj("txt_01_2").set_text("") elif objeto == self.obj("txt_01_2") \ and len(self.obj("txt_01").get_text()) == 0: # Nro. Documento de Empleado self.obj("txt_01_1").set_text("") else: if objeto == self.obj("txt_00"): # Cuando crea nuevo registro o, al editar, valor es diferente del original, # y si es un numero entero, comprueba si ya ha sido registado if (not self.editando or valor != self.cond) and \ Op.comprobar_numero(int, objeto, "Código", self.obj("barraestado")): Op.comprobar_unique( self.nav.datos_conexion, self.nav.tabla + "_s", self.nav.campoid, valor, objeto, self.estadoguardar, self.obj("barraestado"), "El Código introducido ya ha sido registado.") elif objeto == self.obj("txt_01"): if Op.comprobar_numero(int, objeto, "Cód. de Empleado", self.obj("barraestado")): self.buscar_empleados(objeto, "idPersona", valor, "Cód. de Empleado") elif objeto == self.obj("txt_01_2"): self.buscar_empleados( objeto, "NroDocumento", "'" + valor + "'" + " AND idTipoDocumento = '" + str(self.idTipoDoc) + "'", "Nro. de Documento") elif objeto == self.obj("txt_02"): self.obj("barraestado").push(0, "") elif objeto == self.obj("txt_03"): if Op.comprobar_numero(int, objeto, "Nro. de Comprobante de Pago", self.obj("barraestado")): conexion = Op.conectar(self.nav.datos_conexion) cursor = Op.consultar( conexion, "NroComprobante", "comprobantepagos_s", " WHERE NroComprobante = " + valor + " AND Confirmado = 1") datos = cursor.fetchall() cant = cursor.rowcount conexion.close() # Finaliza la conexión if cant > 0: self.obj("barraestado").push(0, "") self.verificacion(0) else: objeto.grab_focus() self.estadoguardar(False) self.obj("barraestado").push( 0, "El Nro. de Comprobante de Pago no es válido.")
def focus_out_event(self, objeto, evento): valor = objeto.get_text() if len(valor) == 0: self.obj("barraestado").push(0, "") if objeto == self.obj("txt_02"): self.obj("txt_02_1").set_text("") self.obj("txt_02_2").set_text("") self.obj("txt_02_3").set_text("") else: if objeto == self.obj("txt_00"): # Cuando crea nuevo registro o, al editar, valor es diferente del original, # y si es un numero entero, comprueba si ya ha sido registado if (not self.editando or valor != self.cond) and \ Op.comprobar_numero(int, self.obj("txt_00"), "Código", self.obj("barraestado")): Op.comprobar_unique( self.nav.datos_conexion, self.nav.tabla + "_s", self.nav.campoid, valor, self.obj("txt_00"), self.obj("btn_guardar"), self.obj("barraestado"), "El Código introducido ya ha sido registado.") elif objeto == self.obj("txt_01"): busc = "" if not self.editando else " AND " + self.nav.campoid + " <> " + self.cond # Comprueba si el nombre o la descripcion ya ha sido registado/a Op.comprobar_unique( self.nav.datos_conexion, self.nav.tabla + "_s", "Descripcion", "'" + valor + "'" + busc, objeto, self.obj("btn_guardar"), self.obj("barraestado"), "La Descripción introducida ya ha sido registada.") elif objeto == self.obj("txt_02"): if Op.comprobar_numero(int, objeto, "Nro. Establecimiento", self.obj("barraestado")): conexion = Op.conectar(self.nav.datos_conexion) cursor = Op.consultar( conexion, "Nombre, Ciudad, " + "Direccion, NroTelefono", "establecimientos_s", " WHERE NroEstablecimiento = " + valor) datos = cursor.fetchall() cant = cursor.rowcount conexion.close() # Finaliza la conexión if cant > 0: direccion = "" if datos[0][ 2] is None else ", " + datos[0][2] telefono = "" if datos[0][3] is None else datos[0][3] self.obj("txt_02_1").set_text(datos[0][0]) self.obj("txt_02_2").set_text(datos[0][1] + direccion) self.obj("txt_02_3").set_text(telefono) self.obj("barraestado").push(0, "") else: self.obj("btn_guardar").set_sensitive(False) objeto.grab_focus() self.obj("barraestado").push( 0, "El Nro. Establecimiento no es válido.") self.obj("txt_02_1").set_text("") self.obj("txt_02_2").set_text("") self.obj("txt_02_3").set_text("")
def focus_out_event(self, objeto, evento): valor = objeto.get_text() if len(valor) == 0: self.obj("barraestado").push(0, "") if objeto in (self.obj("txt_01"), self.obj("txt_01_2")): self.obj("txt_01_1").set_text("") self.obj("txt_01_2").set_text("") self.obj("txt_01_3").set_text("") self.obj("txt_01_4").set_text("") elif objeto in (self.obj("txt_02"), self.obj("txt_02_2")): self.obj("txt_02_1").set_text("") self.obj("txt_02_2").set_text("") else: if objeto == self.obj("txt_00"): # Cuando crea nuevo registro o, al editar, valor es diferente del original busq = "" if not self.editando else " AND " + self.nav.campoid + " <> '" + self.cond + "'" Op.comprobar_unique(self.nav.datos_conexion, self.nav.tabla + "_s", self.nav.campoid, "'" + valor + "'" + busq, objeto, self.obj("btn_guardar"), self.obj("barraestado"), "El Nro. de Tarjeta introducido ya ha sido registado.") elif objeto == self.obj("txt_01"): if Op.comprobar_numero(int, objeto, "Cód. de Banco", self.obj("barraestado")): self.buscar_personas(objeto, "idPersona", valor, "Cód. de Banco", objeto, self.obj("txt_01_1"), self.obj("txt_01_2"), self.obj("cmb_doc_banco"), self.obj("txt_01_3"), self.obj("txt_01_4")) elif objeto == self.obj("txt_01_2"): self.buscar_personas(objeto, "NroDocumento", "'" + valor + "'" + " AND idTipoDocumento = '" + self.idTipoDocBanco + "'", "Nro. de Documento del Banco", self.obj("txt_01"), self.obj("txt_01_1"), objeto, self.obj("cmb_doc_banco"), self.obj("txt_01_3"), self.obj("txt_01_4")) elif objeto == self.obj("txt_02"): if Op.comprobar_numero(int, objeto, "Cód. de Titular", self.obj("barraestado")): self.buscar_personas(objeto, "idPersona", valor, "Cód. de Titular", objeto, self.obj("txt_02_1"), self.obj("txt_02_2"), self.obj("cmb_doc_titular")) elif objeto == self.obj("txt_02_2"): self.buscar_personas(objeto, "NroDocumento", "'" + valor + "'" + " AND idTipoDocumento = '" + self.idTipoDocTitular + "'", "Nro. de Documento del Titular", self.obj("txt_02"), self.obj("txt_02_1"), objeto, self.obj("cmb_doc_titular")) elif objeto == self.obj("txt_03"): if Op.compara_fechas(self.nav.datos_conexion, "NOW()", ">=", "'" + self.fecha_ven + "'") == 1: self.obj("btn_guardar").set_sensitive(False) objeto.grab_focus() self.obj("barraestado").push(0, "La Fecha de Vencimiento debe estar en el FUTURO.") else: self.obj("barraestado").push(0, "")
def buscar_familiar(self, objeto, campo, valor, nombre): conexion = Op.conectar(self.nav.datos_conexion) cursor = Op.consultar( conexion, "idPersona, RazonSocial, NroDocumento, " + "idTipoDocumento, FechaNacimiento, Genero", "personas_s", " WHERE " + campo + " = " + valor + " AND Empleado <> 1 " + "AND Empresa <> 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]) self.obj("txt_01_3").set_text(Cal.mysql_fecha(datos[0][4])) self.obj("txt_01_4").set_text(datos[0][5]) # Asignación de Tipo de Documento en Combo model, i = self.obj("cmb_tipo_doc_ben").get_model(), 0 while model[i][0] != datos[0][3]: i += 1 self.obj("cmb_tipo_doc_ben").set_active(i) self.obj("barraestado").push(0, "") self.verificacion_benef(0) # Verificar que no se haya regitrado ya como Beneficiario por el Empleado actual if Op.comprobar_unique( self.conexion, "beneficiarios_s", "idFamiliar", self.obj("txt_01").get_text() + " AND idEmpleado = " + self.obj("txt_00").get_text(), self.obj("txt_01"), self.obj("btn_guardar_benef"), self.obj("barraestado"), "El Familiar introducido ya ha sido registado."): # Si no encuentra coincidencias verifica si está registrado por otro Empleado Op.comprobar_unique( self.nav.datos_conexion, "beneficiarios_s", "idFamiliar", valor, self.obj("txt_00"), self.obj("btn_guardar_benef"), self.obj("barraestado"), "El Familiar introducido ha sido registado por otro Empleado." ) else: objeto.grab_focus() self.obj("btn_guardar_benef").set_sensitive(False) 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 focus_out_event(self, objeto, evento): valor = objeto.get_text() if len(valor) == 0: self.obj("barraestado").push(0, "") if objeto == self.obj("txt_01"): # Código de Empleado self.obj("txt_01_2").set_text("") elif objeto == self.obj("txt_01_2"): # Nro. Documento de Empleado self.obj("txt_01").set_text("") if objeto == self.obj("txt_01") or (objeto == self.obj("txt_01_2") \ and len(self.obj("txt_01").get_text()) == 0): self.obj("txt_01_1").set_text("") self.obj("txt_01_3").set_text("") self.obj("txt_01_4").set_text("") else: if objeto == self.obj("txt_00"): # Cuando crea nuevo registro o, al editar, valor es diferente del original, # y si es un numero entero, comprueba si ya ha sido registado if (not self.editando or valor != self.cond) and \ Op.comprobar_numero(int, objeto, "Código", self.obj("barraestado")): Op.comprobar_unique(self.nav.datos_conexion, "contratos_s", self.nav.campoid, valor, self.obj("txt_00"), self.estadoedicion, self.obj("barraestado"), "El Código introducido ya ha sido registado.") elif objeto == self.obj("txt_01"): if Op.comprobar_numero(int, objeto, "Cód. de Empleado", self.obj("barraestado")): self.buscar_empleados(objeto, "idPersona", valor, "Cód. de Empleado") elif objeto == self.obj("txt_01_2"): self.buscar_empleados(objeto, "NroDocumento", "'" + valor + "'" + " AND idTipoDocumento = '" + self.idTipoDoc + "'", "Nro. de Documento") elif objeto in (self.obj("txt_04"), self.obj("txt_05")): if len(self.obj("txt_04").get_text()) > 0 and len(self.obj("txt_05").get_text()) > 0: if Op.compara_fechas(self.nav.datos_conexion, "'" + self.fecha_ini + "'", ">=", "'" + self.fecha_fin + "'"): self.estadoedicion(False) objeto.grab_focus() self.obj("barraestado").push(0, "La Fecha de Inicio NO puede ser posterior a la de Terminación.") else: self.obj("barraestado").push(0, "") elif objeto in (self.obj("txt_06"), self.obj("txt_07")): if len(self.obj("txt_06").get_text()) > 0 and len(self.obj("txt_07").get_text()) > 0: if Op.compara_fechas(self.nav.datos_conexion, "'" + self.prueba_ini + "'", ">=", "'" + self.prueba_fin + "'"): self.estadoedicion(False) objeto.grab_focus() self.obj("barraestado").push(0, "La Fecha de Inicio del Periodo de Prueba NO puede ser posterior a la de Terminación.") else: self.obj("barraestado").push(0, "")
def focus_out_event(self, objeto, evento): valor = objeto.get_text() if len(valor) == 0: self.obj("barraestado").push(0, "") if objeto == self.obj("txt_02"): self.obj("txt_02_1").set_text("") else: if objeto == self.obj("txt_00"): # Cuando crea nuevo registro o, al editar, valor es diferente del original, # y si es un numero entero, comprueba si ya ha sido registado if (not self.editando or valor != self.cond) and \ Op.comprobar_numero(int, objeto, "Nro. de Establecimiento", self.obj("barraestado")): Op.comprobar_unique( self.nav.datos_conexion, "establecimientos_s", "NroEstablecimiento", valor, self.obj("txt_00"), self.obj("btn_guardar"), self.obj("barraestado"), "El Nro. de Establecimiento introducido ya ha sido registado." ) elif objeto == self.obj("txt_01"): busc = "" if not self.editando else " AND NroEstablecimiento <> " + self.cond # Comprueba si el nombre ya ha sido registado/a Op.comprobar_unique( self.nav.datos_conexion, "establecimientos_s", "Nombre", "'" + valor + "'" + busc, self.obj("txt_01"), self.obj("btn_guardar"), self.obj("barraestado"), "El Nombre introducido ya ha sido registado.") elif objeto == self.obj("txt_02"): if Op.comprobar_numero(int, objeto, "Cód. de Empresa", self.obj("barraestado")): conexion = Op.conectar(self.nav.datos_conexion) cursor = Op.consultar(conexion, "RazonSocial", "empresas_s", " WHERE idEmpresa = " + valor) datos = cursor.fetchall() cant = cursor.rowcount conexion.close() # Finaliza la conexión if cant > 0: self.obj("txt_02_1").set_text(datos[0][0]) self.obj("barraestado").push(0, "") self.verificacion(0) else: objeto.grab_focus() self.obj("btn_guardar").set_sensitive(False) self.obj("txt_02_1").set_text("") self.obj("barraestado").push( 0, "El Cód. de Empresa no es válido.") elif objeto == self.obj("txt_03"): self.obj("barraestado").push(0, "")
def focus_out_event(self, objeto, evento): valor = objeto.get_text() if len(valor) == 0: self.obj("barraestado").push(0, "") if objeto == self.obj("txt_03"): # Código de Proveedor self.obj("txt_03_1").set_text("") self.obj("txt_03_2").set_text("") self.obj("txt_03_3").set_text("") self.obj("txt_03_4").set_text("") elif objeto == self.obj("txt_03_2") \ and len(self.obj("txt_03").get_text()) == 0: # Nro. Documento de Proveedor self.obj("txt_03_1").set_text("") self.obj("txt_03_3").set_text("") self.obj("txt_03_4").set_text("") else: if objeto in (self.obj("txt_00"), self.obj("txt_01")): fact = self.obj("txt_00").get_text() timb = self.obj("txt_01").get_text() if len(timb) > 0 and len(fact) > 0 and Op.comprobar_numero(int, self.obj("txt_01"), "Nro. de Timbrado", self.obj("barraestado")): # Al editar, comprueba que los valores son diferentes del original busq = "" if not self.editando else " AND " + \ "(NroTimbrado <> " + self.cond_timb + " OR" + \ " NroFactura <> '" + self.cond_fact + "')" Op.comprobar_unique(self.nav.datos_conexion, self.nav.tabla + "_s", "NroFactura", "'" + fact + "' AND NroTimbrado = " + timb + busq, objeto, self.estadoguardar, self.obj("barraestado"), "La Factura de Compra introducida ya ha sido registada.") elif objeto == self.obj("txt_02"): if Op.compara_fechas(self.nav.datos_conexion, "'" + self.fecha + "'", ">=", "NOW()"): self.estadoguardar(False) objeto.grab_focus() self.obj("barraestado").push(0, "La Fecha de expedición de la Factura NO puede estar en el Futuro.") else: self.obj("barraestado").push(0, "") elif objeto == self.obj("txt_orden"): self.obj("barraestado").push(0, "") elif objeto == self.obj("txt_03"): if Op.comprobar_numero(int, objeto, "Cód. de Proveedor", self.obj("barraestado")): self.buscar_proveedores(objeto, "idPersona", valor, "Cód. de Proveedor") elif objeto == self.obj("txt_03_2"): self.buscar_proveedores(objeto, "NroDocumento", "'" + valor + "'" + " AND idTipoDocumento = '" + self.idTipoDoc + "'", "Nro. de Documento")
def focus_out_event(self, objeto, evento): valor = objeto.get_text() if len(valor) == 0: self.obj("barraestado").push(0, "") if objeto == self.obj("txt_01"): self.obj("txt_01_1").set_text("") self.obj("txt_01_2").set_text("") self.obj("txt_01_3").set_text("") elif objeto == self.obj("txt_02"): self.obj("txt_02_1").set_value(0) else: if objeto == self.obj("txt_00"): # Cuando crea nuevo registro o, al editar, valor es diferente del original, # y si es un numero entero, comprueba si ya ha sido registado if (not self.editando or valor != self.cond) and \ Op.comprobar_numero(int, objeto, "Código", self.obj("barraestado")): Op.comprobar_unique(self.nav.datos_conexion, "empresas_s", self.nav.campoid, valor, self.obj("txt_00"), self.estadoedicion, self.obj("barraestado"), "El Código introducido ya ha sido registado.") if objeto == self.obj("txt_01"): if Op.comprobar_numero(int, objeto, "Cód. de Propietario o Representante Legal", self.obj("barraestado")): conexion = Op.conectar(self.nav.datos_conexion) cursor = Op.consultar(conexion, "idPersona, NombreApellido, " + "DireccionPrincipal, TelefonoPrincipal", "personafisicas_s", " WHERE idPersona = " + valor) datos = cursor.fetchall() cant = cursor.rowcount conexion.close() # Finaliza la conexión if cant > 0: direccion = "" if datos[0][2] is None else datos[0][2] telefono = "" if datos[0][3] is None else datos[0][3] self.obj("txt_01_1").set_text(datos[0][1]) self.obj("txt_01_2").set_text(direccion) self.obj("txt_01_3").set_text(telefono) self.obj("barraestado").push(0, "") self.verificacion(0) else: self.estadoedicion(False) self.obj("barraestado").push(0, "El Cód. de Propietario o Representante Legal no es válido.") self.obj("txt_01_1").set_text("") self.obj("txt_01_2").set_text("") self.obj("txt_01_3").set_text("") elif objeto == self.obj("txt_02"): pass
def comprobar_cheque(self, objeto): cheque = self.obj("txt_01").get_text() cuenta = self.obj("txt_02").get_text() banco = self.obj("txt_03").get_text() if len(cheque) > 0 and len(cuenta) > 0 and len(banco) > 0: # Al editar, comprueba que los valores son diferentes del original busq = "" if not self.editando else " AND " + self.nav.campoid + " <> " + self.cond Op.comprobar_unique(self.nav.datos_conexion, self.nav.tabla + "_s", "NroCheque", cheque + " AND " + "NroCuenta = '" + cuenta + "' AND idBanco = " + banco + busq, objeto, self.obj("btn_guardar"), self.obj("barraestado"), "El Cheque introducido ya ha sido registado.")
def on_pedido_focus_out_event(self, objeto, evento): valor = objeto.get_text() if len(valor) == 0: self.obj("barraestado").push(0, "") else: # Cuando crea nuevo registro o, al editar, valor es diferente del original, # y si es un numero entero, comprueba si ya ha sido registado if (not self.editando or valor != self.cond) and \ Op.comprobar_numero(int, objeto, "Nro. de Pedido", self.obj("barraestado")): Op.comprobar_unique( self.nav.datos_conexion, self.nav.tabla + "_s", "NroPedidoCompra", valor, objeto, self.estadoguardar, self.obj("barraestado"), "El Nro. de Pedido introducido ya ha sido registado.")
def on_txt_cod_dif_focus_out_event(self, objeto, evento): valor = objeto.get_text() if len(valor) == 0: self.obj("barraestado").push(0, "") else: # Cuando crea nuevo registro o, al editar, valor es diferente del original, # y si es un numero entero, comprueba si ya ha sido registado if (not self.editando or valor != self.hora) and \ Op.comprobar_numero(int, objeto, "Cód. de Horario", self.obj("barraestado")): Op.comprobar_unique( self.origen.conexion, "horarios_s", "idHorario", valor + " AND NroContrato = " + self.origen.obj("txt_00").get_text(), objeto, self.obj("btn_guardar_hora"), self.obj("barraestado"), "El Cód. de Horario introducido ya ha sido registado.")
def focus_out_event(self, objeto, evento): valor = objeto.get_text() if len(valor) == 0: self.obj("barraestado").push(0, "") if objeto == self.obj("txt_02"): self.obj("txt_02_1").set_text("") else: if objeto == self.obj("txt_00"): # Cuando crea nuevo registro o, al editar, valor es diferente del original, # y si es un numero entero, comprueba si ya ha sido registado if (not self.editando or valor != self.cond) and \ Op.comprobar_numero(int, self.obj("txt_00"), "Código", self.obj("barraestado")): Op.comprobar_unique( self.nav.datos_conexion, self.nav.tabla + "_s", self.nav.campoid, valor, objeto, self.obj("btn_guardar"), self.obj("barraestado"), "El Código introducido ya ha sido registado.") elif objeto == self.obj("txt_01"): busq = "" if not self.editando else " AND " + self.nav.campoid + " <> " + self.cond # Comprueba si el nombre ya ha sido registado Op.comprobar_unique( self.nav.datos_conexion, self.nav.tabla + "_s", "Nombre", "'" + valor + "'" + busq, objeto, self.obj("btn_guardar"), self.obj("barraestado"), "El Nombre introducido ya ha sido registado.") elif objeto == self.obj("txt_02"): if Op.comprobar_numero(int, objeto, "Cód. de País", self.obj("barraestado")): conexion = Op.conectar(self.nav.datos_conexion) cursor = Op.consultar(conexion, "Nombre", "paises", " WHERE idPais = " + valor) datos = cursor.fetchall() cant = cursor.rowcount conexion.close() # Finaliza la conexión if cant > 0: self.obj("txt_02_1").set_text(datos[0][0]) self.obj("barraestado").push(0, "") else: self.obj("btn_guardar").set_sensitive(False) objeto.grab_focus() self.obj("barraestado").push( 0, "El Cód. de País NO es válido.") self.obj("txt_02_1").set_text("")
def on_lote_focus_out_event(self, objeto, evento): valor = objeto.get_text() if len(valor) == 0: self.obj("barraestado").push(0, "") else: if objeto == self.obj("txt_01"): cursor = Op.consultar( self.conexion, "FechaVencimiento", "lotes", " WHERE idItem = " + self.idItem + " AND NroLote = '" + valor + "'") datos = cursor.fetchall() cant = cursor.rowcount if cant > 0: if self.tabla == "facturacompras": self.editando_lote = True self.cond_lote = valor self.fecha_venc = str(datos[0][0]) fecha = Cal.mysql_fecha(datos[0][0]) self.obj("txt_02").set_text(fecha) busq = "" if not self.editando else " AND NroLote <> '" + self.cond_lote + "'" # Comprueba si el Nro. de Lote introducido ya ha sido registado Op.comprobar_unique( self.conexion, self.tabla + "_inventario_s", "NroLote", "'" + valor + "' AND " + self.cond_buscar + " AND idItem = " + self.idItem + busq, objeto, self.obj("btn_guardar_lote"), self.obj("barraestado"), "El Nro. de Lote introducido ya ha sido registado (VEA LA TABLA)." ) else: if self.tabla == "facturacompras": self.editando_lote = False if not self.editando else True else: self.obj("txt_01").grab_focus() self.obj("barraestado").push( 0, "El Nro. de Lote NO es válido.") self.obj("btn_guardar_lote").set_sensitive(False) elif objeto == self.obj("txt_02"): self.obj("barraestado").push(0, "") elif objeto == self.obj("txt_03"): Op.comprobar_numero(float, objeto, "Cantidad de Ítems", self.obj("barraestado"))
def buscar_items(self, objeto, campo, valor, nombre): cursor = Op.consultar( self.conexion, "idItem, CodigoBarras, Nombre, " + "idPresentacion, Presentacion, idCategoria, Categoria, Porcentaje, " + "PrecioVenta, PrecioCosto", "items_s", " WHERE " + campo + " = " + valor) if cursor.rowcount > 0: datos = cursor.fetchall() self.obj("txt_it_00").set_text(str(datos[0][0])) codbar = "" if datos[0][1] is None else datos[0][1] self.obj("txt_it_00_1").set_text(codbar) self.obj("txt_it_00_2").set_text(datos[0][2]) self.obj("txt_it_00_3").set_text(str(datos[0][3])) self.obj("txt_it_00_4").set_text(datos[0][4]) self.obj("txt_it_00_5").set_text(str(datos[0][5])) self.obj("txt_it_00_6").set_text(datos[0][6]) self.obj("txt_it_00_7").set_text(str(datos[0][7])) self.obj("txt_it_02").set_text(str(datos[0][8])) self.obj("txt_it_02_1").set_text(str(datos[0][9])) # Cuando crea nuevo registro o, al editar, valor es diferente del original if not self.editando_item or str(datos[0][0]) != self.cond_item: self.guardar_encabezado() Op.comprobar_unique( self.conexion, self.tabla + "_detalles_s", "idItem", str(datos[0][0]) + " AND NroTimbrado = " + self.obj("txt_01_1").get_text() + " AND NroNotaDebito = " + self.obj("txt_00_3").get_text(), self.obj("txt_it_00"), self.obj("btn_guardar_item"), self.obj("barraestado"), "El Ítem introducido ya ha sido registrado en esta Nota de Débito." ) else: objeto.grab_focus() self.obj("btn_guardar_item").set_sensitive(False) self.obj("barraestado").push(0, "El " + nombre + " no es válido.") otro = self.obj("txt_it_00_1") if objeto == self.obj( "txt_it_00") else self.obj("txt_it_00") self.limpiar_items() otro.set_text("")
def focus_out_event(self, objeto, evento): valor = objeto.get_text() if len(valor) == 0: self.obj("barraestado").push(0, "") else: if objeto == self.obj("txt_00"): # Cuando crea nuevo registro o, al editar, valor es diferente del original, # y si es un numero entero, comprueba si ya ha sido registado if self.nav.tabla in ("generos", "tipodocumentos", "unidadmedidas"): busq = "" if not self.editando else " AND " + self.nav.campoid + " <> " + self.cond Op.comprobar_unique( self.nav.datos_conexion, self.nav.tabla, self.nav.campoid, "'" + valor + "'" + busq, self.obj("txt_00"), self.obj("btn_guardar"), self.obj("barraestado"), "El Código introducido ya ha sido registado.") else: if (not self.editando or valor != self.cond) and \ Op.comprobar_numero(int, self.obj("txt_00"), "Código", self.obj("barraestado")): Op.comprobar_unique( self.nav.datos_conexion, self.nav.tabla, self.nav.campoid, valor, self.obj("txt_00"), self.obj("btn_guardar"), self.obj("barraestado"), "El Código introducido ya ha sido registado.") elif objeto == self.obj("txt_01"): x = ["La ", "a" ] if self.nav.campodos == "Descripcion" else ["El ", "o"] busq = "" if not self.editando else " AND " + self.nav.campoid + " <> " + self.cond # Comprueba si el nombre o la descripcion ya ha sido registado/a Op.comprobar_unique( self.nav.datos_conexion, self.nav.tabla, self.nav.campodos, "'" + valor + "'" + busq, self.obj("txt_01"), self.obj("btn_guardar"), self.obj("barraestado"), x[0] + self.nav.titulodos + " introducid" + x[1] + " ya ha sido registad" + x[1] + ".") else: if self.nav.tabla in ("monedas", "paises"): x = ["La ", "a" ] if self.nav.tabla == "paises" else ["El ", "o"] busq = "" if not self.editando else " AND " + self.nav.campoid + " <> " + self.cond # Comprueba si el símbolo o la nacionalidad ya ha sido registado/a Op.comprobar_unique( self.nav.datos_conexion, self.nav.tabla, self.nav.campotres, "'" + valor + "'" + busq, self.obj("txt_02"), self.obj("btn_guardar"), self.obj("barraestado"), x[0] + self.nav.titulotres + " introducid" + x[1] + " ya ha sido registad" + x[1] + ".")
def on_item_focus_out_event(self, objeto, evento): valor = objeto.get_text() if len(valor) == 0: self.obj("barraestado").push(0, "") if objeto == self.obj("txt_it_01"): # Código del Ítem self.obj("txt_it_01_1").set_text("") self.limpiar_items() elif objeto == self.obj("txt_it_01_1") and len( self.obj("txt_it_01").get_text()) == 0: self.obj("txt_it_01").set_text("") self.limpiar_items() else: if objeto == self.obj("txt_it_00"): # Cuando crea nuevo registro o, al editar, valor es diferente del original, # y si es un numero entero, comprueba si ya ha sido registado if (not self.editando or valor != self.cond_det) and \ Op.comprobar_numero(int, objeto, "Cód. de Detalle", self.obj("barraestado")): Op.comprobar_unique( self.conexion, self.tabla + "_detalles_s", "idDetalle", valor + " AND NroPedidoVenta = " + self.obj("txt_00").get_text(), objeto, self.estadoguardar, self.obj("barraestado"), "El Código introducido ya ha sido registado en este Pedido." ) if objeto == self.obj("txt_it_01"): if Op.comprobar_numero(int, objeto, "Cód. de Ítem", self.obj("barraestado")): self.buscar_items(objeto, valor, "Cód. de Ítem") elif objeto == self.obj("txt_it_01_1"): self.buscar_items(objeto, valor, "Código de Barras") elif objeto == self.obj("txt_it_02"): Op.comprobar_numero(float, objeto, "Cantidad de Ítems", self.obj("barraestado")) elif objeto == self.obj("txt_it_02"): Op.comprobar_numero(float, objeto, "Precio Unitario", self.obj("barraestado"))
def focus_out_event(self, objeto, evento): valor = objeto.get_text() if len(valor) == 0: self.obj("barraestado").push(0, "") else: if objeto == self.obj("txt_00"): # Cuando crea nuevo registro o, al editar, valor es diferente del original, # y si es un numero entero, comprueba si ya ha sido registado if (not self.editando or valor != self.cond) and \ Op.comprobar_numero(int, self.obj("txt_00"), "Cód. de Grupo", self.obj("barraestado")): Op.comprobar_unique(self.nav.datos_conexion, "grupousuarios_s", "idGrupoUsuario", valor, self.obj("txt_00"), self.obj("btn_guardar"), self.obj("barraestado"), "El Código introducido ya ha sido registado.") else: busc = "" if not self.editando else " AND idGrupoUsuario <> " + self.cond # Comprueba si la descripcion ya ha sido registada Op.comprobar_unique(self.nav.datos_conexion, "grupousuarios_s", "Descripcion", "'" + valor + "'" + busc, self.obj("txt_01"), self.obj("btn_guardar"), self.obj("barraestado"), "La Descripción introducida ya ha sido registada.")
def on_concepto_focus_out_event(self, objeto, evento): valor = objeto.get_text() if len(valor) == 0: self.obj("barraestado").push(0, "") if objeto == self.obj("txt_c_02"): self.obj("txt_c_02_1").set_text("") else: if objeto == self.obj("txt_c_01"): # Cuando crea nuevo registro o, al editar, valor es diferente del original, # y si es un numero entero, comprueba si ya ha sido registado if (not self.editando_concepto or valor != self.cond_concepto) and \ Op.comprobar_numero(int, objeto, "Cód. de Detalle", self.obj("barraestado")): Op.comprobar_unique( self.nav.datos_conexion, "comprobantepagos_detalles_s", "idDetalle", valor + " AND NroComprobante = " + self.obj("txt_00").get_text(), objeto, self.obj("btn_guardar_concepto"), self.obj("barraestado"), "El Cód. de Detalle introducido ya ha sido registado en este Comprobante." ) elif objeto == self.obj("txt_c_02"): if Op.comprobar_numero(int, objeto, "Cód. de Concepto", self.obj("barraestado")): conexion = Op.conectar(self.nav.datos_conexion) cursor = Op.consultar(conexion, "Descripcion", "conceptopagos", " WHERE idConcepto = " + valor) datos = cursor.fetchall() cant = cursor.rowcount conexion.close() # Finaliza la conexión if cant > 0: self.obj("txt_c_02_1").set_text(datos[0][0]) self.obj("barraestado").push(0, "") else: objeto.grab_focus() self.obj("btn_guardar_concepto").set_sensitive(False) self.obj("barraestado").push( 0, "El Cód. de Concepto no es válido.")
def buscar_item(self, objeto, campo, valor, nombre): conexion = Op.conectar(self.nav.datos_conexion) cursor = Op.consultar( conexion, "idItem, CodigoBarras, Nombre, " + "Presentacion, Categoria", "items_s", " WHERE " + campo + " = " + valor) datos = cursor.fetchall() cant = cursor.rowcount conexion.close() # Finaliza la conexión if cant > 0: codbar = "" if datos[0][1] is None else datos[0][1] present = "" if datos[0][3] is None else datos[0][3] categ = "" if datos[0][4] is None else datos[0][4] self.obj("txt_it_01").set_text(str(datos[0][0])) self.obj("txt_it_01_1").set_text(codbar) self.obj("txt_it_01_2").set_text(datos[0][2]) self.obj("txt_it_01_3").set_text(present) self.obj("txt_it_01_4").set_text(categ) Op.comprobar_unique( self.nav.datos_conexion, "pedidocompras_detalles_s", "idItem", str(datos[0][0]) + " AND NroPedidoCompra = " + self.obj("txt_00").get_text(), self.obj("txt_it_01"), self.obj("btn_guardar_item"), self.obj("barraestado"), "El Ítem introducido ya ha sido registado en este Pedido.") else: objeto.grab_focus() self.obj("btn_guardar_item").set_sensitive(False) self.obj("barraestado").push( 0, "El Código de " + nombre + " no es válido.") otro = self.obj("txt_it_01_1") if objeto == self.obj( "txt_it_01") else self.obj("txt_it_01") otro.set_text("") self.obj("txt_it_01_2").set_text("") self.obj("txt_it_01_3").set_text("") self.obj("txt_it_01_4").set_text("")
def focus_out_event(self, objeto, evento): valor = objeto.get_text() if len(valor) == 0: self.obj("barraestado").push(0, "") else: if objeto == self.obj("txt_00"): # Cuando crea nuevo registro o, al editar, valor es diferente del original, # y si es un numero entero, comprueba si ya ha sido registado if (not self.editando or valor != self.cond) and \ Op.comprobar_numero(int, self.obj("txt_00"), "Código", self.obj("barraestado")): Op.comprobar_unique( self.nav.datos_conexion, self.nav.tabla + "_s", self.nav.campoid, valor, objeto, self.obj("btn_guardar"), self.obj("barraestado"), "El Código introducido ya ha sido registado.") elif objeto == self.obj("txt_01"): busq = "" if not self.editando else " AND " + self.nav.campoid + " <> " + self.cond # Comprueba si el Nro. R.U.A. ya ha sido registado Op.comprobar_unique( self.nav.datos_conexion, self.nav.tabla + "_s", "NroRUA", "'" + valor + "'" + busq, objeto, self.obj("btn_guardar"), self.obj("barraestado"), "El Nro. R.U.A. introducido ya ha sido registado.") elif objeto == self.obj("txt_02"): busq = "" if not self.editando else " AND " + self.nav.campoid + " <> " + self.cond # Comprueba si el Nro. de Placa ya ha sido registado Op.comprobar_unique( self.nav.datos_conexion, self.nav.tabla + "_s", "NroPlaca", "'" + valor + "'" + busq, objeto, self.obj("btn_guardar"), self.obj("barraestado"), "El Nro. de Placa introducido ya ha sido registado.")
def focus_out_event(self, objeto, evento): valor = objeto.get_text() if len(valor) == 0: self.obj("barraestado").push(0, "") else: if objeto == self.obj("txt_00"): # Cuando crea nuevo registro o, al editar, valor es diferente del original, # y si es un numero entero, comprueba si ya ha sido registado if (not self.editando or valor != self.cond) and \ Op.comprobar_numero(int, objeto, "Código", self.obj("barraestado")): Op.comprobar_unique(self.nav.datos_conexion, self.nav.tabla + "_s", self.nav.campoid, valor, objeto, self.obj("btn_guardar"), self.obj("barraestado"), "El Código introducido ya ha sido registado.") elif objeto == self.obj("txt_01"): # Si edita debe ser diferente a la denominacion y moneda originales busq = "" if not self.editando else " AND " + self.nav.campoid + " <> " + self.cond # Comprueba si la descripcion ya ha sido registada Op.comprobar_unique(self.nav.datos_conexion, self.nav.tabla + "_s", "Descripcion", "'" + valor + "'" + busq, objeto, self.obj("btn_guardar"), self.obj("barraestado"), "La Descripción introducida ya ha sido registada.")
def focus_out_event(self, objeto, evento): valor = objeto.get_text() if len(valor) == 0: self.obj("barraestado").push(0, "") else: if objeto == self.obj("txt_00"): # Cuando crea nuevo registro o, al editar, valor es diferente del original, # y si es un numero entero, comprueba si ya ha sido registado if (not self.editando or valor != self.cond_id or str(self.idMoneda) != str(self.cond_moneda)) \ and Op.comprobar_numero(int, self.obj("txt_00"), "Código", self.obj("barraestado")): Op.comprobar_unique( self.nav.datos_conexion, self.nav.tabla + "_s", self.nav.campoid, valor + " AND idMoneda = " + str(self.idMoneda), objeto, self.obj("btn_guardar"), self.obj("barraestado"), "El Cód. de Cotización introducido ya ha sido registado para esta Moneda." ) elif objeto == self.obj("txt_01"): if Op.compara_fechas(self.nav.datos_conexion, "'" + self.fecha + "'", ">", "NOW()"): self.obj("btn_guardar").set_sensitive(False) objeto.grab_focus() self.obj("barraestado").push( 0, "La Fecha NO puede estar en el Futuro.") else: self.obj("barraestado").push(0, "") elif objeto == self.obj("txt_02"): Op.comprobar_numero(float, self.obj("txt_02"), "Monto de Compra", self.obj("barraestado")) elif objeto == self.obj("txt_03"): Op.comprobar_numero(float, self.obj("txt_03"), "Monto de Venta", self.obj("barraestado"))
def on_descuento_focus_out_event(self, objeto, evento): valor = objeto.get_text() if len(valor) == 0: self.obj("barraestado").push(0, "") else: if objeto == (self.obj("txt_i_02"), self.obj("txt_d_02")): self.obj("barraestado").push(0, "") elif objeto == self.obj("txt_i_04"): if Op.comprobar_numero(float, objeto, "Monto a Descontar por Periodo", self.obj("barraestado")): cant = self.obj("txt_i_01").get_value_as_int() total = round(Decimal(valor), 2) * cant self.obj("txt_i_05").set_text(str(total)) self.obtener_porcentaje(valor, self.obj("txt_i_porc")) elif objeto == self.obj("txt_i_05"): if Op.comprobar_numero(float, objeto, "Monto Total a Descontar", self.obj("barraestado")): cant = self.obj("txt_i_01").get_value_as_int() monto = round(Decimal(valor), 2) / cant self.obj("txt_i_04").set_text(str(round(monto, 2))) self.obtener_porcentaje(monto, self.obj("txt_i_porc")) elif objeto == self.obj("txt_d_01"): # Cuando crea nuevo registro o, al editar, valor es diferente del original, # y si es un numero entero, comprueba si ya ha sido registado if (not self.editando_descuento or valor != self.cond_descuento) and \ Op.comprobar_numero(int, objeto, "Cód. de Descuento", self.obj("barraestado")): Op.comprobar_unique(self.nav.datos_conexion, "descuentos_periodocobros", "idCobro", valor + " AND idDescuento = " + self.obj("txt_00").get_text(), objeto, self.obj("btn_guardar_descuento"), self.obj("barraestado"), "El Cód. de Descuento introducido ya ha sido registado.") elif objeto == self.obj("txt_d_03"): if Op.comprobar_numero(float, objeto, "Monto de Cuota", self.obj("barraestado")): self.obtener_porcentaje(valor, self.obj("txt_d_porc"))
def focus_out_event(self, objeto, evento): valor = objeto.get_text() if len(valor) == 0: self.obj("barraestado").push(0, "") if objeto == self.obj("txt_02"): self.obj("txt_02_1").set_text("") elif objeto == self.obj("txt_03"): self.obj("txt_03_1").set_text("") else: if objeto == self.obj("txt_00"): # Comprueba que existan los datos y sean números enteros if len(self.obj("txt_00").get_text()) > 0 and len(self.obj("txt_02").get_text()) > 0 \ and Op.comprobar_numero(int, self.obj("txt_00"), "Código", self.obj("barraestado")) \ and Op.comprobar_numero(int, self.obj("txt_02"), "Cód. de País", self.obj("barraestado")): if self.nav.tabla == "ciudades": if len(self.obj("txt_03").get_text() ) > 0 and Op.comprobar_numero( int, self.obj("txt_03"), "Cód. de Departamento", self.obj("barraestado")): busq = "" if not self.editando else \ " AND (idPais <> " + str(self.cond_pais) + \ " OR idDepartamento <> " + str(self.cond_dep) + \ " OR idCiudad <> " + str(self.cond) + ")" Op.comprobar_unique( self.nav.datos_conexion, self.nav.tabla + "_s", self.nav.campoid, self.obj("txt_00").get_text() + " AND idPais = " + self.obj("txt_02").get_text() + " AND idDepartamento = " + self.obj("txt_03").get_text() + busq, self.obj("txt_00"), self.obj("btn_guardar"), self.obj("barraestado"), "Ya han sido registados los Códigos de Ciudad, Departamento y País introducidos." ) else: # Departamentos # Al editar, comprueba que los valores son diferentes del original busq = "" if not self.editando else \ " AND (idPais <> " + str(self.cond_pais) + \ " OR idDepartamento <> " + str(self.cond) + ")" Op.comprobar_unique( self.nav.datos_conexion, self.nav.tabla + "_s", self.nav.campoid, self.obj("txt_00").get_text() + " AND idPais = " + self.obj("txt_02").get_text() + busq, self.obj("txt_00"), self.obj("btn_guardar"), self.obj("barraestado"), "Ya han sido registados los Códigos de Departamento y País introducidos." ) elif objeto == self.obj("txt_01"): busc = "" if not self.editando else " AND " + self.nav.campoid + " <> " + self.cond # Comprueba si el nombre o la descripcion ya ha sido registado/a Op.comprobar_unique( self.nav.datos_conexion, self.nav.tabla + "_s", "Nombre", "'" + valor + "'" + busc, objeto, self.obj("btn_guardar"), self.obj("barraestado"), "El Nombre introducido ya ha sido registado.") elif objeto == self.obj("txt_02"): self.buscar_foraneos(objeto, self.obj("txt_02_1"), "País", "paises", "idPais", valor) elif objeto == self.obj("txt_03") and len( self.obj("txt_02").get_text()) > 0: self.buscar_foraneos( objeto, self.obj("txt_03_1"), "Departamento", "departamentos_s", "idDepartamento", valor, " AND idPais = " + self.obj("txt_02").get_text())
def focus_out_event(self, objeto, evento): valor = objeto.get_text() if len(valor) == 0: self.obj("barraestado").push(0, "") if objeto == self.obj("txt_01"): # Código de Empleado self.idPersona == None self.obj("txt_01_1").set_text("") self.obj("txt_01_2").set_text("") elif objeto == self.obj("txt_01_2") \ and len(self.obj("txt_01").get_text()) == 0: # Nro. Documento de Empleado self.obj("txt_01_1").set_text("") elif objeto == self.obj("txt_02"): # Número de Contrato self.obj("txt_02_1").set_text("") else: if objeto == self.obj("txt_00"): # Cuando crea nuevo registro o, al editar, valor es diferente del original, # y si es un numero entero, comprueba si ya ha sido registado if (not self.editando or valor != self.cond) and \ Op.comprobar_numero(int, objeto, "Código", self.obj("barraestado")): Op.comprobar_unique(self.nav.datos_conexion, self.nav.tabla + "_s", self.nav.campoid, valor, objeto, self.estadoguardar, self.obj("barraestado"), "El Código introducido ya ha sido registado.") elif objeto == self.obj("txt_01"): if Op.comprobar_numero(int, objeto, "Cód. de Empleado", self.obj("barraestado")): self.buscar_empleados(objeto, "idPersona", valor, "Cód. de Empleado") elif objeto == self.obj("txt_01_2"): self.buscar_empleados(objeto, "NroDocumento", "'" + valor + "'" + " AND idTipoDocumento = '" + str(self.idTipoDoc) + "'", "Nro. de Documento") elif objeto == self.obj("txt_02"): if Op.comprobar_numero(int, objeto, "Nro. de Contrato", self.obj("barraestado")): conexion = Op.conectar(self.nav.datos_conexion) cursor = Op.consultar(conexion, "idEmpleado, Cargo, Vigente", "contratos_s", " WHERE NroContrato = " + valor) datos = cursor.fetchall() cant = cursor.rowcount conexion.close() # Finaliza la conexión if cant > 0: if datos[0][2] == 1: self.obj("txt_01").set_text(str(datos[0][0])) self.obj("txt_02_1").set_text(datos[0][1]) self.obj("barraestado").push(0, "") self.borrar_contrato = False self.focus_out_event(self.obj("txt_01"), 0) else: objeto.grab_focus() self.estadoguardar(False) self.obj("barraestado").push(0, "El Contrato seleccionado ya no se encuentra vigente.") else: objeto.grab_focus() self.estadoguardar(False) self.obj("barraestado").push(0, "El Nro. de Contrato no es válido.") elif objeto == self.obj("txt_04"): self.obj("barraestado").push(0, "") elif objeto in (self.obj("txt_05"), self.obj("txt_06")): if len(self.obj("txt_05").get_text()) > 0 \ and len(self.obj("txt_06").get_text()) > 0: if Op.compara_fechas(self.nav.datos_conexion, "'" + self.fechaini + "'", ">", "'" + self.fechafin + "'"): self.estadoguardar(False) objeto.grab_focus() self.obj("barraestado").push(0, "La Fecha de Inicio del Reposo NO puede ser posterior a la de Finalización.") else: # Cálculo de la Cantidad de Días dias = str(Cal.cantidad_dias(self.fechaini, self.fechafin)) self.obj("txt_07").set_text(dias) self.obj("barraestado").push(0, "")
def focus_out_event(self, objeto, evento): valor = objeto.get_text() if len(valor) == 0: self.obj("barraestado").push(0, "") if objeto == self.obj("txt_01"): # Código de Empleado self.idPersona == None self.obj("txt_01_1").set_text("") self.obj("txt_01_2").set_text("") elif objeto == self.obj("txt_01_2") \ and len(self.obj("txt_01").get_text()) == 0: # Nro. Documento de Empleado self.obj("txt_01_1").set_text("") elif objeto == self.obj("txt_02"): # Número de Contrato self.obj("txt_02_1").set_text("") self.obj("txt_02_2").set_text("") else: if objeto == self.obj("txt_00"): if Op.comprobar_numero(int, objeto, "Código", self.obj("barraestado")) \ and len(self.obj("txt_02").get_text()) > 0: Op.comprobar_unique(self.nav.datos_conexion, self.nav.tabla + "_s", self.nav.campoid, valor + " AND NroContrato = " + self.obj("txt_02").get_text(), objeto, self.obj("btn_guardar"), self.obj("barraestado"), "El Código introducido ya ha sido registado.") elif objeto == self.obj("txt_01"): if Op.comprobar_numero(int, objeto, "Cód. de Empleado", self.obj("barraestado")): self.buscar_empleados(objeto, "idPersona", valor, "Cód. de Empleado") elif objeto == self.obj("txt_01_2"): self.buscar_empleados(objeto, "NroDocumento", "'" + valor + "'" + " AND idTipoDocumento = '" + str(self.idTipoDoc) + "'", "Nro. de Documento") elif objeto == self.obj("txt_02"): if Op.comprobar_numero(int, objeto, "Nro. de Contrato", self.obj("barraestado")): conexion = Op.conectar(self.nav.datos_conexion) cursor = Op.consultar(conexion, "idEmpleado, Cargo, SalarioMensual, Vigente", "contratos_s", " WHERE NroContrato = " + valor) datos = cursor.fetchall() cant = cursor.rowcount conexion.close() # Finaliza la conexión if cant > 0: if datos[0][3] == 1: self.obj("txt_01").set_text(str(datos[0][0])) self.obj("txt_02_1").set_text(datos[0][1]) self.obj("txt_02_2").set_text(str(datos[0][2])) # Nuevo Código de Anticipo self.obj("txt_00").set_text(Op.nuevoid( self.nav.datos_conexion, self.nav.tabla + "_s " + "WHERE NroContrato = " + valor, self.nav.campoid)) self.obj("barraestado").push(0, "") self.borrar_contrato = False self.focus_out_event(self.obj("txt_01"), 0) self.focus_out_event(self.obj("txt_04"), 0) else: objeto.grab_focus() self.obj("btn_guardar").set_sensitive(False) self.obj("barraestado").push(0, "El Contrato seleccionado ya no se encuentra vigente.") else: objeto.grab_focus() self.obj("btn_guardar").set_sensitive(False) self.obj("barraestado").push(0, "El Nro. de Contrato no es válido.") elif objeto == self.obj("txt_04"): salario = self.obj("txt_02_2").get_text() if len(salario) > 0: porcentaje = Decimal(valor) * 100 / Decimal(salario) self.obj("txt_03").set_value(round(porcentaje, 2)) self.obj("txt_04").set_text(valor) if porcentaje > 50: objeto.grab_focus() self.obj("btn_guardar").set_sensitive(False) self.obj("barraestado").push(0, "El Monto del Anticipo no puede ser mayor al 50% del Salario Mensual.")
def focus_out_event(self, objeto, evento): valor = objeto.get_text() if len(valor) == 0: self.obj("barraestado").push(0, "") if objeto == self.obj("txt_ch_02"): # Código de Banco (Cheque) self.obj("txt_ch_02_1").set_text("") self.obj("txt_ch_02_2").set_text("") self.obj("txt_ch_02_3").set_text("") self.obj("txt_ch_02_4").set_text("") elif objeto == self.obj("txt_ch_02_2") and len( self.obj("txt_ch_02").get_text()) == 0: self.obj("txt_ch_02_1").set_text("") self.obj("txt_ch_02_3").set_text("") self.obj("txt_ch_02_4").set_text("") elif objeto == self.obj("txt_ch_03"): # Código de Titular (Cheque) self.obj("txt_ch_03_1").set_text("") self.obj("txt_ch_03_2").set_text("") elif objeto == self.obj("txt_ch_03_2") and len( self.obj("txt_ch_03").get_text()) == 0: self.obj("txt_ch_03_1").set_text("") elif objeto == self.obj("txt_md_00"): # Código de Moneda self.obj("txt_md_00_1").set_text("") self.obj("txt_md_02").set_text("1.0") elif objeto == self.obj("txt_tj_01"): # Código de Banco (Tarjeta) self.obj("txt_tj_01_1").set_text("") self.obj("txt_tj_01_2").set_text("") self.obj("txt_tj_01_3").set_text("") self.obj("txt_tj_01_4").set_text("") elif objeto == self.obj("txt_tj_01_2") and len( self.obj("txt_tj_01").get_text()) == 0: self.obj("txt_tj_01_1").set_text("") self.obj("txt_tj_01_3").set_text("") self.obj("txt_tj_01_4").set_text("") elif objeto == self.obj( "txt_tj_02"): # Código de Titular (Tarjeta) self.obj("txt_tj_02_1").set_text("") self.obj("txt_tj_02_2").set_text("") elif objeto == self.obj("txt_tj_02_2") and len( self.obj("txt_tj_02").get_text()) == 0: self.obj("txt_tj_02_1").set_text("") else: if objeto in (self.obj("txt_ch_00"), self.obj("txt_ch_01")): if len(self.obj("txt_ch_00").get_text()) > 0 \ and len(self.obj("txt_ch_01").get_text()) > 0 \ and len(self.obj("txt_ch_02").get_text()) > 0: conexion = Op.conectar(self.datos_conexion) cursor = Op.consultar( conexion, "BancoRazonSocial, " + "BancoNroDocumento, BancoTipoDocumento, BancoDireccion, " + "BancoTelefono, idTitular, TitularRazonSocial, " + "TitularNroDocumento, TitularTipoDocumento, " + "idChequeTercero, Monto", "chequeterceros_s", " WHERE NroCheque = " + self.obj("txt_ch_00").get_text() + " AND NroCuenta = '" + self.obj("txt_ch_01").get_text() + "'" + " AND idBanco = " + self.obj("txt_ch_02").get_text()) datos = cursor.fetchall() cant = cursor.rowcount conexion.close() # Finaliza la conexión if cant > 0: direccion = "" if datos[0][3] is None else datos[0][3] telefono = "" if datos[0][4] is None else datos[0][4] self.obj("txt_ch_02_1").set_text(datos[0][0]) self.obj("txt_ch_02_2").set_text(datos[0][1]) self.obj("txt_ch_02_3").set_text(direccion) self.obj("txt_ch_02_4").set_text(telefono) # Asignación de Tipo de Documento (Banco) en Combo model, i = self.obj("cmb_ch_banco").get_model(), 0 while model[i][0] != datos[0][2]: i += 1 self.obj("cmb_ch_banco").set_active(i) self.obj("txt_ch_03").set_text(str(datos[0][5])) self.obj("txt_ch_03_1").set_text(datos[0][6]) self.obj("txt_ch_03_2").set_text(datos[0][7]) # Asignación de Tipo de Documento (Titular) en Combo model, i = self.obj("cmb_ch_titular").get_model(), 0 while model[i][0] != datos[0][8]: i += 1 self.obj("cmb_ch_titular").set_active(i) self.cod_cheque, self.monto_cheque = datos[0][ 9], datos[0][10] self.obj("barraestado").push(0, "") self.verificacion(0) # Verificar que el Cheque NO haya sido utilizado en otra Factura if Op.comprobar_unique( self.datos_conexion, "facturaventas_chequeterceros_s", "idChequeTercero", str(self.cod_cheque), self.obj("txt_ch_00"), self.obj("btn_guardar_cobro"), self.obj("barraestado"), "El Cheque introducido ya ha sido utilizado en otro Cobro (Factura)." ): # Verificar que el Cheque NO haya sido utilizado en otro Recibo # si no se ha utilizado en otra Factura Op.comprobar_unique( self.datos_conexion, "recibos_chequeterceros_s", "idChequeTercero", str(self.cod_cheque), self.obj("txt_ch_00"), self.obj("btn_guardar_cobro"), self.obj("barraestado"), "El Cheque introducido ya ha sido utilizado en otro Cobro (Recibo)." ) else: self.obj("btn_guardar_cobro").set_sensitive(False) self.obj("txt_ch_00").grab_focus() self.obj("barraestado").push( 0, "El Cheque introducido no es válido (NO ESTÁ REGISTRADO)." ) elif objeto == self.obj("txt_ch_02"): if Op.comprobar_numero(int, objeto, "Cód. de Banco", self.obj("barraestado")): self.buscar_personas(objeto, "idPersona", valor, "Cód. de Banco", objeto, self.obj("txt_ch_02_1"), self.obj("txt_ch_02_2"), self.obj("cmb_ch_banco"), self.obj("txt_ch_02_3"), self.obj("txt_ch_02_4")) self.focus_out_event(self.obj("txt_ch_00"), 0) elif objeto == self.obj("txt_ch_02_2"): self.buscar_personas( objeto, "NroDocumento", "'" + valor + "'" + " AND idTipoDocumento = '" + self.idTipoDocBancoCheque + "'", "Nro. de Documento del Banco", self.obj("txt_ch_02"), self.obj("txt_ch_02_1"), objeto, self.obj("cmb_ch_banco"), self.obj("txt_ch_02_3"), self.obj("txt_ch_02_4")) self.focus_out_event(self.obj("txt_ch_00"), 0) elif objeto == self.obj("txt_ch_03"): if Op.comprobar_numero(int, objeto, "Cód. de Titular", self.obj("barraestado")): self.buscar_personas(objeto, "idPersona", valor, "Cód. de Titular", objeto, self.obj("txt_ch_03_1"), self.obj("txt_ch_03_2"), self.obj("cmb_ch_titular")) elif objeto == self.obj("txt_ch_03_2"): self.buscar_personas( objeto, "NroDocumento", "'" + valor + "'" + " AND idTipoDocumento = '" + self.idTipoDocTitularCheque + "'", "Nro. de Documento del Titular", self.obj("txt_ch_03"), self.obj("txt_ch_03_1"), objeto, self.obj("cmb_ch_titular")) elif objeto == self.obj("txt_ch_04"): if Op.comprobar_numero(float, objeto, "Monto a Cobrar (Cheque)", self.obj("barraestado")): self.comprobar_valor_monto(objeto, Decimal(valor)) elif objeto == self.obj("txt_md_00"): conexion = Op.conectar(self.datos_conexion) cursor = Op.consultar(conexion, "Nombre, Venta", "monedas_s", " WHERE idMoneda = " + valor) datos = cursor.fetchall() cant = cursor.rowcount conexion.close() # Finaliza la conexión if cant > 0: self.obj("txt_md_00_1").set_text(datos[0][0]) self.obj("txt_md_02").set_text(str(datos[0][1])) self.obj("barraestado").push(0, "") self.verificacion(0) else: self.obj("btn_guardar_cobro").set_sensitive(False) self.obj("txt_md_00").grab_focus() self.obj("barraestado").push( 0, "El Cód. de Moneda introducido no es válido.") elif objeto == self.obj("txt_md_01"): if Op.comprobar_numero(float, objeto, "Monto a Cobrar (Moneda)", self.obj("barraestado")): cotizacion = self.obj("txt_md_02").get_text() if len(cotizacion) > 0: monto = round(Decimal(valor) * Decimal(cotizacion), 2) self.obj("txt_md_03").set_text(str(monto)) self.comprobar_valor_monto(self.obj("txt_md_01"), monto) elif objeto == self.obj("txt_md_02"): if Op.comprobar_numero(float, objeto, "Monto de Cotización", self.obj("barraestado")): cantidad = self.obj("txt_md_01").get_text() if len(cantidad) > 0: monto = round(Decimal(cantidad) * Decimal(valor), 2) self.obj("txt_md_03").set_text(str(monto)) self.comprobar_valor_monto(self.obj("txt_md_01"), monto) elif objeto == self.obj("txt_tj_00"): conexion = Op.conectar(self.datos_conexion) cursor = Op.consultar( conexion, "BancoRazonSocial, " + "BancoNroDocumento, BancoTipoDocumento, BancoDireccion, " + "BancoTelefono, idTitular, TitularRazonSocial, " + "TitularNroDocumento, TitularTipoDocumento", "tarjetas_s", " WHERE NroTarjeta = '" + valor + "'") datos = cursor.fetchall() cant = cursor.rowcount conexion.close() # Finaliza la conexión if cant > 0: direccion = "" if datos[0][3] is None else datos[0][3] telefono = "" if datos[0][4] is None else datos[0][4] self.obj("txt_tj_01_1").set_text(datos[0][0]) self.obj("txt_tj_01_2").set_text(datos[0][1]) self.obj("txt_tj_01_3").set_text(direccion) self.obj("txt_tj_01_4").set_text(telefono) # Asignación de Tipo de Documento (Banco) en Combo model, i = self.obj("cmb_tj_banco").get_model(), 0 while model[i][0] != datos[0][2]: i += 1 self.obj("cmb_tj_banco").set_active(i) self.obj("txt_tj_02").set_text(str(datos[0][5])) self.obj("txt_tj_02_1").set_text(datos[0][6]) self.obj("txt_tj_02_2").set_text(datos[0][7]) # Asignación de Tipo de Documento (Titular) en Combo model, i = self.obj("cmb_tj_titular").get_model(), 0 while model[i][0] != datos[0][8]: i += 1 self.obj("cmb_tj_titular").set_active(i) self.obj("barraestado").push(0, "") self.verificacion(0) else: self.obj("btn_guardar_cobro").set_sensitive(False) self.obj("txt_tj_00").grab_focus() self.obj("barraestado").push( 0, "La Tarjeta introducida no es válida (NO ESTÁ REGISTRADA)." ) elif objeto == self.obj("txt_tj_01"): if Op.comprobar_numero(int, objeto, "Cód. de Banco", self.obj("barraestado")): self.buscar_personas(objeto, "idPersona", valor, "Cód. de Banco", objeto, self.obj("txt_tj_01_1"), self.obj("txt_tj_01_2"), self.obj("cmb_tj_banco"), self.obj("txt_tj_01_3"), self.obj("txt_tj_01_4")) elif objeto == self.obj("txt_tj_01_2"): self.buscar_personas( objeto, "NroDocumento", "'" + valor + "'" + " AND idTipoDocumento = '" + self.idTipoDocBancoTarjeta + "'", "Nro. de Documento del Banco", self.obj("txt_tj_01"), self.obj("txt_tj_01_1"), objeto, self.obj("cmb_tj_banco"), self.obj("txt_tj_01_3"), self.obj("txt_tj_01_4")) elif objeto == self.obj("txt_tj_02"): if Op.comprobar_numero(int, objeto, "Cód. de Titular", self.obj("barraestado")): self.buscar_personas(objeto, "idPersona", valor, "Cód. de Titular", objeto, self.obj("txt_tj_02_1"), self.obj("txt_tj_02_2"), self.obj("cmb_tj_titular")) elif objeto == self.obj("txt_tj_02_2"): self.buscar_personas( objeto, "NroDocumento", "'" + valor + "'" + " AND idTipoDocumento = '" + self.idTipoDocTitularTarjeta + "'", "Nro. de Documento del Titular", self.obj("txt_tj_02"), self.obj("txt_tj_02_1"), objeto, self.obj("cmb_tj_titular")) elif objeto == self.obj("txt_tj_03"): if Op.comprobar_numero(float, objeto, "Monto a Cobrar (Tarjeta)", self.obj("barraestado")): self.comprobar_valor_monto(objeto, Decimal(valor))
def focus_out_event(self, objeto, evento): valor = objeto.get_text() if len(valor) == 0: self.obj("barraestado").push(0, "") if objeto == self.obj("txt_03"): self.obj("txt_03_1").set_text("") self.obj("txt_03_2").set_text("") self.obj("txt_03_3").set_text("") self.obj("txt_03_4").set_text("") elif objeto == self.obj("txt_04"): self.obj("txt_04_1").set_text("") self.obj("txt_04_2").set_text("") else: if objeto == self.obj("txt_00"): # Cuando crea nuevo registro o, al editar, valor es diferente del original, # y si es un numero entero, comprueba si ya ha sido registado if (not self.editando or valor != self.cond) and \ Op.comprobar_numero(int, objeto, "Código", self.obj("barraestado")): Op.comprobar_unique(self.nav.datos_conexion, self.nav.tabla + "_s", self.nav.campoid, valor, objeto, self.obj("btn_guardar"), self.obj("barraestado"), "El Código introducido ya ha sido registado.") elif objeto == self.obj("txt_01"): if Op.comprobar_numero(int, objeto, "Nro. de Cheque", self.obj("barraestado")): self.comprobar_cheque(objeto) elif objeto == self.obj("txt_02"): self.comprobar_cheque(objeto) elif objeto == self.obj("txt_03"): if Op.comprobar_numero(int, objeto, "Cód. de Banco", self.obj("barraestado")): self.buscar_personas(objeto, "idPersona", valor, "Cód. de Banco", objeto, self.obj("txt_03_1"), self.obj("txt_03_2"), self.obj("cmb_doc_banco"), self.obj("txt_03_3"), self.obj("txt_03_4")) self.comprobar_cheque(objeto) elif objeto == self.obj("txt_03_2"): self.buscar_personas(objeto, "NroDocumento", "'" + valor + "'" + " AND idTipoDocumento = '" + self.idTipoDocBanco + "'", "Nro. de Documento del Banco", self.obj("txt_03"), self.obj("txt_03_1"), objeto, self.obj("cmb_doc_banco"), self.obj("txt_03_3"), self.obj("txt_03_4")) self.comprobar_cheque(objeto) elif objeto == self.obj("txt_04"): if Op.comprobar_numero(int, objeto, "Cód. de Titular", self.obj("barraestado")): self.buscar_personas(objeto, "idPersona", valor, "Cód. de Titular", objeto, self.obj("txt_04_1"), self.obj("txt_04_2"), self.obj("cmb_doc_titular")) elif objeto == self.obj("txt_04_2"): self.buscar_personas(objeto, "NroDocumento", "'" + valor + "'" + " AND idTipoDocumento = '" + self.idTipoDocTitular + "'", "Nro. de Documento del Titular", self.obj("txt_04"), self.obj("txt_04_1"), objeto, self.obj("cmb_doc_titular")) elif objeto in (self.obj("txt_05"), self.obj("txt_06")): if len(self.obj("txt_05").get_text()) > 0 \ and len(self.obj("txt_06").get_text()) > 0 \ and Op.compara_fechas(self.nav.datos_conexion, "'" + self.fecha_emision + "'", ">", "'" + self.fecha_cobro + "'") == 1: self.obj("btn_guardar").set_sensitive(False) objeto.grab_focus() self.obj("barraestado").push(0, "La Fecha de Emisión NO puede posterior a la Fecha de Cobro.") else: self.obj("barraestado").push(0, "") elif objeto == self.obj("txt_07"): Op.comprobar_numero(float, objeto, "Monto del Cheque", self.obj("barraestado"))
def focus_out_event(self, objeto, evento): valor = objeto.get_text() if len(valor) == 0: self.obj("barraestado").push(0, "") if objeto == self.obj("txt_01"): # Código de Empleado self.idPersona == None self.obj("txt_01_1").set_text("") self.obj("txt_01_2").set_text("") elif objeto == self.obj("txt_01_2") \ and len(self.obj("txt_01").get_text()) == 0: # Nro. Documento de Empleado self.obj("txt_01_1").set_text("") elif objeto == self.obj("txt_02"): # Número de Contrato self.obj("txt_02_1").set_text("") self.obj("txt_02_2").set_text("") self.obj("txt_02_3").set_text("") else: if objeto == self.obj("txt_00"): # Cuando crea nuevo registro o, al editar, valor es diferente del original, # y si es un numero entero, comprueba si ya ha sido registado if (not self.editando or valor != self.cond) and \ Op.comprobar_numero(int, objeto, "Nro. de Comprobante", self.obj("barraestado")): Op.comprobar_unique( self.nav.datos_conexion, self.nav.tabla + "_s", self.nav.campoid, valor, objeto, self.estadoguardar, self.obj("barraestado"), "El Nro. de Comprobante introducido ya ha sido registado." ) elif objeto == self.obj("txt_01"): if Op.comprobar_numero(int, objeto, "Cód. de Empleado", self.obj("barraestado")): self.buscar_empleados(objeto, "idPersona", valor, "Cód. de Empleado") elif objeto == self.obj("txt_01_2"): self.buscar_empleados( objeto, "NroDocumento", "'" + valor + "'" + " AND idTipoDocumento = '" + str(self.idTipoDoc) + "'", "Nro. de Documento") elif objeto == self.obj("txt_02"): if Op.comprobar_numero(int, objeto, "Nro. de Contrato", self.obj("barraestado")): conexion = Op.conectar(self.nav.datos_conexion) cursor = Op.consultar( conexion, "idEmpleado, Cargo, " + "Salario, PeriodoPago, idPeriodoPago, Vigente", "contratos_s", " WHERE NroContrato = " + valor) datos = cursor.fetchall() cant = cursor.rowcount conexion.close() # Finaliza la conexión if cant > 0: if datos[0][5] == 1: self.obj("txt_01").set_text(str(datos[0][0])) self.obj("txt_02_1").set_text(datos[0][1]) self.obj("txt_02_2").set_text(str(datos[0][2])) self.obj("txt_02_3").set_text(datos[0][3]) self.idPeriodoPago = datos[0][4] self.obj("barraestado").push(0, "") if len(self.obj("txt_03").get_text()) == 0: # Buscar último pago y comparar fechas conexion = Op.conectar(self.nav.datos_conexion) cursor = Op.consultar( conexion, "MAX(FechaFin)", "comprobantepagos_s", " WHERE (NroContrato = " + valor + ")") datos = cursor.fetchall() cant = cursor.rowcount conexion.close() # Finaliza la conexión if datos[0][0] is None: fecha = "" else: fecha = Cal.mysql_fecha(datos[0][0]) self.fechaini = str(datos[0][0]) self.obj("txt_03").set_text(fecha) self.borrar_contrato = False self.focus_out_event(self.obj("txt_01"), 0) else: objeto.grab_focus() self.estadoguardar(False) self.obj("barraestado").push( 0, "El Contrato seleccionado ya no se encuentra vigente." ) else: objeto.grab_focus() self.estadoguardar(False) self.obj("barraestado").push( 0, "El Nro. de Contrato no es válido.") elif objeto == self.obj("txt_03"): if Op.compara_fechas(self.nav.datos_conexion, "'" + self.fechaini + "'", ">", "NOW()"): self.estadoguardar(False) objeto.grab_focus() self.obj("barraestado").push( 0, "La Fecha de Inicio del Periodo de Pago NO puede estar en el Futuro." ) else: self.comparar_fechas_periodo_pago() elif objeto == self.obj("txt_04"): if Op.compara_fechas(self.nav.datos_conexion, "'" + self.fechafin + "'", ">", "NOW()"): self.estadoguardar(False) objeto.grab_focus() self.obj("barraestado").push( 0, "La Fecha de Finalización del Periodo de Pago NO puede estar en el Futuro." ) else: self.comparar_fechas_periodo_pago()