Beispiel #1
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, "")
Beispiel #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.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("")
Beispiel #4
0
    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, "")
Beispiel #5
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, "")
Beispiel #8
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")
Beispiel #9
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"):
                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
Beispiel #10
0
    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.")
Beispiel #11
0
 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.")
Beispiel #12
0
 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.")
Beispiel #13
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, 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("")
Beispiel #14
0
    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("")
Beispiel #16
0
    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] + ".")
Beispiel #17
0
    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.")
Beispiel #19
0
    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.")
Beispiel #20
0
    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("")
Beispiel #21
0
    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.")
Beispiel #22
0
    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.")
Beispiel #23
0
    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())
Beispiel #26
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, "")
Beispiel #27
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.")
Beispiel #28
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_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))
Beispiel #29
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"):
                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"))
Beispiel #30
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("")
                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()