def on_fecha_focus_out_event(self, objeto, evento): valor = objeto.get_text() if len(valor) == 0: self.obj("barraestado").push(0, "") else: if objeto in (self.obj("txt_f_01"), self.obj("txt_f_02")): if len(self.obj("txt_f_01").get_text()) > 0 \ and len(self.obj("txt_f_02").get_text()) > 0: if Op.compara_fechas(self.nav.datos_conexion, "'" + self.fechaini + "'", ">", "'" + self.fechafin + "'"): self.obj("btn_guardar_fecha").set_sensitive(False) objeto.grab_focus() self.obj("barraestado").push( 0, "La Fecha de Inicio del Periodo de Vacaciones 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_f_03").set_text(dias) self.obj("barraestado").push(0, "") elif objeto == self.obj("txt_f_04"): 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.obj("btn_guardar_fecha").set_sensitive(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_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, "")