示例#1
0
    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.")
示例#2
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("")
        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, "")