コード例 #1
0
ファイル: pedidos.py プロジェクト: edison-yamil/Distribuidora
    def buscar_clientes(self, objeto, campo, valor, nombre):
        conexion = Op.conectar(self.datos_conexion)
        cursor = Op.consultar(
            conexion, "idPersona, RazonSocial, NroDocumento, " +
            "idTipoDocumento, DireccionPrincipal, TelefonoPrincipal",
            "personas_s",
            " WHERE " + campo + " = " + valor + " AND Cliente = 1")
        datos = cursor.fetchall()
        cant = cursor.rowcount
        conexion.close()  # Finaliza la conexión

        if cant > 0:
            direc = "" if datos[0][4] is None else datos[0][4]
            telef = "" if datos[0][5] is None else datos[0][5]

            self.obj("txt_01").set_text(str(datos[0][0]))
            self.obj("txt_01_1").set_text(datos[0][1])
            self.obj("txt_01_2").set_text(datos[0][2])
            self.obj("txt_01_3").set_text(direc)
            self.obj("txt_01_4").set_text(telef)

            # Asignación de Tipo de Documento en Combo
            model, i = self.obj("cmb_tipo_doc").get_model(), 0
            while model[i][0] != datos[0][3]:
                i += 1
            self.obj("cmb_tipo_doc").set_active(i)

            # Buscar Tipo de Cliente y Vendedor
            conexion = Op.conectar(self.datos_conexion)
            cursor = Op.consultar(
                conexion, "idTipoCliente, idVendedor, " + "NombreApellido",
                "clientes_s", " WHERE idCliente = " + str(datos[0][0]))
            datos = cursor.fetchall()
            cant = cursor.rowcount
            conexion.close()  # Finaliza la conexión

            self.idTipoCliente = str(datos[0][0])
            self.obj("txt_02").set_text(str(datos[0][1]))
            self.obj("txt_02_1").set_text(datos[0][2])

            self.obj("barraestado").push(0, "")
            self.verificacion(0)

        else:
            self.estadoguardar(False)
            objeto.grab_focus()
            self.obj("barraestado").push(0, "El " + nombre + " no es válido.")

            otro = self.obj("txt_01_2") if objeto == self.obj(
                "txt_01") else self.obj("txt_01")
            otro.set_text("")

            self.obj("txt_01_1").set_text("")
            self.obj("txt_01_3").set_text("")
            self.obj("txt_01_4").set_text("")
コード例 #2
0
    def on_btn_eliminar_clicked(self, objeto):
        try:
            seleccion, iterador = self.obj("grilla").get_selection().get_selected()
            valor0 = str(seleccion.get_value(iterador, 0))  # Codigo
            valor1 = seleccion.get_value(iterador, 2)  # Nro. Doc.
            valor2 = seleccion.get_value(iterador, 3)  # Alias
        except:
            self.obj("barraestado").push(0, "Seleccione un Usuario de la lista. Luego presione Eliminar.")
        else:
            eleccion = Mens.pregunta_borrar("Seleccionó:\n\n" +
                "Nro. Documento: " + valor1 + "\nAlias: " + valor2)

            self.obj("grilla").get_selection().unselect_all()
            self.obj("barraestado").push(0, "")

            if eleccion:
                conexion = Op.conectar(self.datos_conexion)
                try:
                    cursor = conexion.cursor()
                    Op.eliminar(conexion, "usuarios", valor0)
                    cursor.execute("DROP USER '" + valor2 + "'")
                    conexion.commit()
                except:
                    conexion.rollback()
                    Mens.no_puede_borrar()
                else:
                    self.cargar_grilla()
                finally:
                    conexion.close()  # Finaliza la conexión
コード例 #3
0
def eliminar(self):
    seleccion, iterador = self.obj("grilla").get_selection().get_selected()
    valor0 = str(seleccion.get_value(iterador, 0))
    valor1 = seleccion.get_value(iterador, 5)
    valor2 = str(seleccion.get_value(iterador, 11))
    valor3 = seleccion.get_value(iterador, 14)
    valor4 = str(seleccion.get_value(iterador, 1))
    valor5 = str(seleccion.get_value(iterador, 9))

    eleccion = Mens.pregunta_borrar("Seleccionó:\n" +
        "\nCódigo: " + valor0 + "\nNombre y Apellido: " + valor1 +
        "\nMonto: " + valor2 + "\nUsuario Responsable: " + valor3)

    self.obj("grilla").get_selection().unselect_all()
    self.obj("barraestado").push(0, "")

    if eleccion:
        conexion = Op.conectar(self.datos_conexion)
        Op.eliminar(conexion, self.tabla, valor0 + ", " + valor4)

        eleccion = Mens.pregunta_anular("Se ha eliminado el Anticipo seleccionado." +
            "\n¿Desea anular el Comprobante de Pago asociado a este?")
        if eleccion:
            Op.anular(conexion, "comprobantepagos", valor5)

        conexion.commit()
        conexion.close()  # Finaliza la conexión
        cargar_grilla(self)
コード例 #4
0
def txt_tabla_focus_out(self, objeto, datos_conexion, boton_guardar):
    codigo = objeto.get_text()

    if len(codigo) > 0 and Op.comprobar_numero(int, objeto, "Código", self.obj("barraestado")):
        conexion = Op.conectar(datos_conexion)
        cursor = Op.consultar(conexion, "Nombre, Tabla",
            "sistematablas", " WHERE idTabla = " + codigo)
        datos = cursor.fetchall()
        cant = cursor.rowcount
        conexion.close()  # Finaliza la conexión

        if cant > 0:
            self.idTabla = int(codigo)
            self.obj("txt_des_tabla").set_text(datos[0][0])

            self.editando_tabla = cambiar_tabla_seleccionada(self)
        else:
            objeto.grab_focus()
            self.obj("txt_des_tabla").set_text("")
            boton_guardar.set_sensitive(False)
            self.obj("barraestado").push(0, "El Código de Tabla no es válido.")
    else:
        self.obj("txt_des_tabla").set_text("")
        boton_guardar.set_sensitive(False)

        self.idTabla = -1
        visibilidad_permisos(self)
コード例 #5
0
ファイル: ordenes.py プロジェクト: edison-yamil/Distribuidora
def eliminar(self):
    seleccion, iterador = self.obj("grilla").get_selection().get_selected()
    valor0 = str(seleccion.get_value(iterador, 0))
    valor1 = seleccion.get_value(iterador, 1)[0:-9]
    valor2 = seleccion.get_value(iterador, 1)[-8:]
    valor3 = seleccion.get_value(iterador, 11)
    aprobado = seleccion.get_value(iterador, 12)

    mensaje = "Seleccionó:\n\nNro. de Orden: " + valor0 + \
        "\nFecha: " + valor1 + "\nHora: " + valor2 + "\nResponsable: " + valor3

    if aprobado != 1:
        eleccion = Mens.pregunta_borrar(mensaje)
        self.obj("grilla").get_selection().unselect_all()
        self.obj("barraestado").push(0, "")

        if eleccion:
            conexion = Op.conectar(self.datos_conexion)
            Op.eliminar(conexion, self.tabla, valor0)
            conexion.commit()
            conexion.close()  # Finaliza la conexión
            cargar_grilla(self)
    else:
        Mens.no_puede_modificar_eliminar_anular(
            2, mensaje + "\n\nEsta Orden de Compra ya ha sido Aprobada." +
            "\nSolo puede eliminar Órdenes pendientes de aprobación.")
コード例 #6
0
def eliminar(self):
    seleccion, iterador = self.obj("grilla").get_selection().get_selected()
    valor0 = str(seleccion.get_value(iterador, 0))
    valor1 = seleccion.get_value(iterador, 5)
    valor2 = seleccion.get_value(iterador, 9)
    valor3 = seleccion.get_value(iterador, 10)
    valor4 = seleccion.get_value(iterador, 15)

    mensaje = "Seleccionó:\n\nNúmero: " + valor0 + "\nNombre y Apellido: " + valor1 + \
        "\nInicio de Periodo: " + valor2 + "\nFin de Periodo: " + valor3 + \
        "\nUsuario Responsable: " + valor4

    if self.eli_anu == "Anular":
        eleccion = Mens.pregunta_anular(mensaje)
    else:
        eleccion = Mens.pregunta_borrar(mensaje)

    self.obj("grilla").get_selection().unselect_all()
    self.obj("barraestado").push(0, "")

    if eleccion:
        conexion = Op.conectar(self.datos_conexion)

        if self.eli_anu == "Anular":
            Op.anular(conexion, self.tabla, valor0)
        else:
            Op.eliminar(conexion, self.tabla, valor0)

        conexion.commit()
        conexion.close()  # Finaliza la conexión
        cargar_grilla(self)
コード例 #7
0
    def on_btn_guardar_clicked(self, objeto):
        v1 = self.obj("txt_00").get_text()
        v2 = self.obj("txt_01").get_text()
        v3 = self.obj("txt_02").get_text()
        v4 = self.obj("txt_03").get_text()  # Banco
        v5 = self.obj("txt_04").get_text()  # Titular
        v6 = self.obj("txt_07").get_text()

        # Establece la conexión con la Base de Datos
        conexion = Op.conectar(self.nav.datos_conexion)

        sql = v1 + ", " + v4 + ", " + v5 + ", " + str(self.idTipoCheque) + \
            ", " + v2 + ", '" + v3 + "', '" + self.fecha_emision + "', " + \
            "'" + self.fecha_cobro + "', " + v6

        if not self.editando:
            Op.insertar(conexion, self.nav.tabla, sql)
        else:
            Op.modificar(conexion, self.nav.tabla, str(self.cond) + ", " + sql)

        conexion.commit()
        conexion.close()  # Finaliza la conexión

        self.obj("ventana").destroy()
        cargar_grilla(self.nav)
コード例 #8
0
ファイル: lotes.py プロジェクト: edison-yamil/Distribuidora
    def cargar_items(self, objeto, campo, valor, nombre):
        conexion = Op.conectar(self.datos_conexion)
        cursor = Op.consultar(
            conexion, "idItem, CodigoBarras, Nombre, " +
            "idPresentacion, Presentacion, idCategoria, Categoria, Porcentaje",
            "items_s", " WHERE " + campo + " = " + valor)
        datos = cursor.fetchall()
        cant = cursor.rowcount
        conexion.close()  # Finaliza la conexión

        if cant > 0:
            self.obj("txt_00").set_text(str(datos[0][0]))
            codbar = "" if datos[0][1] is None else datos[0][1]

            self.obj("txt_00_1").set_text(codbar)
            self.obj("txt_00_2").set_text(datos[0][2])
            self.obj("txt_00_3").set_text(str(datos[0][3]))
            self.obj("txt_00_4").set_text(datos[0][4])
            self.obj("txt_00_5").set_text(str(datos[0][5]))
            self.obj("txt_00_6").set_text(datos[0][6])
            self.obj("txt_00_7").set_text(str(datos[0][7]))

            self.cargar_grilla_lotes()
            self.estadoguardar(True)
        else:
            objeto.grab_focus()
            self.estadoguardar(False)
            self.obj("barraestado").push(0, "El " + nombre + " no es válido.")

            otro = self.obj("txt_00_1") if objeto == self.obj(
                "txt_00") else self.obj("txt_00")
            self.limpiar_items()
            otro.set_text("")
コード例 #9
0
def eliminar(self):
    seleccion, iterador = self.obj("grilla").get_selection().get_selected()
    valor0 = str(seleccion.get_value(iterador, 0))
    valor1 = seleccion.get_value(iterador, 1)
    valor2 = str(seleccion.get_value(iterador, 2))  # País
    valor3 = seleccion.get_value(iterador, 3)

    if self.tabla == "ciudades":
        valor4 = str(seleccion.get_value(iterador, 4))
        valor5 = seleccion.get_value(iterador, 5)

        opcion = "\nDepartamento: " + valor5
        campos = valor2 + ", " + valor4 + ", " + valor0

    else:  # Departamentos
        opcion = ""
        campos = valor2 + ", " + valor0

    eleccion = Mens.pregunta_borrar("Seleccionó:\n\nCód.: " + valor0 +
                                    "\nNombre: " + valor1 + "\nPaís: " +
                                    valor3 + opcion)

    self.obj("grilla").get_selection().unselect_all()
    self.obj("barraestado").push(0, "")

    if eleccion:
        conexion = Op.conectar(self.datos_conexion)
        Op.eliminar(conexion, self.tabla, campos)
        conexion.commit()
        conexion.close()  # Finaliza la conexión
        cargar_grilla(self)
コード例 #10
0
def cargar_grilla(self):
    opcion = "" if len(self.obj("txt_buscar").get_text()) == 0 else \
    " WHERE " + self.campo_buscar + " LIKE '%" + self.obj("txt_buscar").get_text() + "%'"

    if len(self.condicion) > 0:
        self.condicion = " WHERE " + self.condicion if len(opcion) == 0 \
        else " AND " + self.condicion

    campos, camporden = self.campoid + ", Nombre, idPais, Pais", ""
    if self.tabla == "ciudades":
        campos += ", idDepartamento, Departamento"
        camporden += "idDepartamento, "

    conexion = Op.conectar(self.datos_conexion)
    cursor = Op.consultar(
        conexion, campos, self.tabla + "_s", opcion + self.condicion +
        " ORDER BY idPais, " + camporden + self.campoid)
    datos = cursor.fetchall()
    cant = cursor.rowcount
    conexion.close()  # Finaliza la conexión

    lista = self.obj("grilla").get_model()
    lista.clear()

    for i in range(0, cant):
        fila = [datos[i][0], datos[i][1], datos[i][2], datos[i][3]]
        if self.tabla == "ciudades":
            fila += [datos[i][4], datos[i][5]]
        lista.append(fila)

    cant = str(cant) + " registro encontrado." if cant == 1 \
        else str(cant) + " registros encontrados."
    self.obj("barraestado").push(0, cant)
コード例 #11
0
    def buscar_foraneos(self,
                        objeto,
                        companero,
                        nombre,
                        tabla,
                        campo,
                        valor,
                        condicion=""):
        if Op.comprobar_numero(int, objeto, "Cód. de " + nombre,
                               self.obj("barraestado")):
            conexion = Op.conectar(self.nav.datos_conexion)
            cursor = Op.consultar(
                conexion, "Nombre", tabla,
                " WHERE " + campo + " = " + valor + condicion)
            datos = cursor.fetchall()
            cant = cursor.rowcount
            conexion.close()  # Finaliza la conexión

            if cant > 0:
                companero.set_text(datos[0][0])
                self.obj("barraestado").push(0, "")

                if self.nav.tabla == "ciudades" and objeto == self.obj("txt_02") \
                and len(self.obj("txt_03_1").get_text()) == 0:
                    # Con paises, si no aparece el nombre del departamento, lo buscará
                    self.focus_out_event(self.obj("txt_03"), 0)
                else:
                    self.focus_out_event(self.obj("txt_00"), 0)

            else:
                self.obj("btn_guardar").set_sensitive(False)
                objeto.grab_focus()
                self.obj("barraestado").push(
                    0, "El Cód. de " + nombre + " no es válido.")
                companero.set_text("")
コード例 #12
0
ファイル: salidas.py プロジェクト: edison-yamil/Distribuidora
    def buscar_empleados(self, objeto, campo, valor, nombre):
        conexion = Op.conectar(self.nav.datos_conexion)
        cursor = Op.consultar(
            conexion,
            "idPersona, RazonSocial, " + "NroDocumento, idTipoDocumento",
            "personas_s",
            " WHERE " + campo + " = " + valor + " AND Empleado = 1")
        datos = cursor.fetchall()
        cant = cursor.rowcount
        conexion.close()  # Finaliza la conexión

        if cant > 0:
            self.obj("txt_01").set_text(str(datos[0][0]))
            self.obj("txt_01_1").set_text(datos[0][1])
            self.obj("txt_01_2").set_text(datos[0][2])

            # Asignación de Tipo de Documento en Combo
            model, i = self.obj("cmb_tipo_doc").get_model(), 0
            while model[i][0] != datos[0][3]:
                i += 1
            self.obj("cmb_tipo_doc").set_active(i)

            self.obj("barraestado").push(0, "")
            self.verificacion(0)

        else:
            self.estadoguardar(False)
            objeto.grab_focus()
            self.obj("barraestado").push(0, "El " + nombre + " no es válido.")

            otro = self.obj("txt_01_2") if objeto == self.obj(
                "txt_01") else self.obj("txt_01")
            otro.set_text("")
            self.obj("txt_01_1").set_text("")
コード例 #13
0
ファイル: salidas.py プロジェクト: edison-yamil/Distribuidora
    def on_btn_guardar_clicked(self, objeto):
        cod = self.obj("txt_00").get_text()
        emp = self.obj("txt_01").get_text()
        obs = self.obj("txt_04").get_text()
        obs = "NULL" if len(obs) == 0 else "'" + obs + "'"

        # Establece la conexión con la Base de Datos
        conexion = Op.conectar(self.nav.datos_conexion)

        sql = cod + ", " + emp + ", " + str(self.idMotivoSalida) + \
            ", '" + self.fecha + "', " + obs

        if not self.editando:
            Op.insertar(conexion, self.nav.tabla, sql)
        else:
            Op.modificar(conexion, self.nav.tabla, self.cond + ", " + sql)

        if self.pago_modificado:
            pago = self.obj("txt_03").get_text()
            if len(pago) == 0:
                if self.editando_pago:
                    Op.eliminar(conexion, "salidas_comprpagos", cod)
            else:
                sql = cod + ", " + pago
                if not self.editando_pago:
                    Op.insertar(conexion, "salidas_comprpagos", sql)
                else:
                    Op.modificar(conexion, "salidas_comprpagos", sql)

        conexion.commit()
        conexion.close()  # Finaliza la conexión

        self.obj("ventana").destroy()
        cargar_grilla(self.nav)
コード例 #14
0
    def on_btn_guardar_clicked(self, objeto):
        cod = self.obj("txt_00").get_text()
        cont = self.obj("txt_02").get_text()
        exp = self.obj("txt_03").get_text()
        car = self.obj("txt_04").get_text()
        juz = self.obj("txt_05").get_text()
        obs = self.obj("txt_09").get_text()
        obs = "NULL" if len(obs) == 0 else "'" + obs + "'"

        # Establece la conexión con la Base de Datos
        conexion = Op.conectar(self.nav.datos_conexion)

        sql = cod + ", " + cont + ", " + str(self.idTipoJuzgado) + ", " + \
            str(self.idTurnoJuzgado) + ", '" + self.fechaini + "', " + \
            "'" + self.fechafin + "', '" + exp + "', '" + car + "', " + \
            "'" + juz + "', " + obs

        if not self.editando:
            Op.insertar(conexion, self.nav.tabla, sql)
        else:
            Op.modificar(conexion, self.nav.tabla, self.cond + ", " + sql)

        conexion.commit()
        conexion.close()  # Finaliza la conexión

        self.obj("ventana").destroy()
        cargar_grilla(self.nav)
コード例 #15
0
    def on_btn_consulta_clicked(self, objeto):
        cont = self.obj("txt_02").get_text()

        if len(cont) > 0:
            conexion = Op.conectar(self.nav.datos_conexion)

            # Obtener monto total cobrado durante el presente año
            cursor = Op.consultar(
                conexion, "IFNULL(SUM(TotalPagar), 0)", "comprobantepagos_s",
                " WHERE (YEAR(FechaHoraExp) = YEAR(NOW())) AND (NroContrato = "
                + cont + ")")
            datos = cursor.fetchall()
            cant = cursor.rowcount

            if datos[0][0] == 0:
                Mens.informa_generico(
                    "Revise los datos",
                    "No se han encontrado registros de pagos realizados\n" +
                    "al Empleado relacionado al Contrato Nro. " + cont)
                total = Decimal(0.00)
            else:
                total = round(Decimal(datos[0][0]))
            self.obj("txt_03").set_text(str(total))

            # Cálculo del Aguinaldo
            monto = round(total / 12)
            self.obj("txt_04").set_text(str(monto))
        else:
            self.obj("barraestado").push(
                0, "Seleccione un Contrato primero, luego podrá consultar.")
コード例 #16
0
 def on_btn_per_todos_clicked(self, objeto):
     eleccion = Mens.pregunta_borrar(
         "Seleccionó revocar todos los permisos del Usuario.")
     if eleccion:
         conexion = Op.conectar(self.datos_conexion)
         try:
             cursor = conexion.cursor()
             cursor.execute("REVOKE ALL PRIVILEGES, GRANT OPTION FROM '" +
                            self.usuario + "'")
             Op.concede_select(cursor, "tablas_s", self.usuario)
             Op.concede_select(cursor, "vistas_s", self.usuario)
             Op.concede_select(cursor, "procedimientos_s", self.usuario)
             conexion.commit()
         except MySqlErr.DatabaseError as e:
             print(("Error de Base de Datos:\n" + str(e) + "\n"))
             self.obj("barraestado").push(
                 0,
                 "No ha sido posible revocar Todos los Permisos del Usuario."
             )
         except:
             print("Error: ", exc_info()[0])
             conexion.rollback()
             self.obj("barraestado").push(
                 0,
                 "No ha sido posible revocar Todos los Permisos del Usuario."
             )
         else:
             self.cargar_grilla()
         finally:
             conexion.close()  # Finaliza la conexión
コード例 #17
0
    def borrar_permiso_administrativo(self):
        conexion = Op.conectar(self.datos_conexion)
        cursor = conexion.cursor()

        cursor.execute("REVOKE ALL PRIVILEGES, GRANT OPTION FROM '" +
                       self.usuario + "'")
        Op.concede_select(cursor, "tablas_s", self.usuario)
        Op.concede_select(cursor, "vistas_s", self.usuario)
        Op.concede_select(cursor, "procedimientos_s", self.usuario)

        conexion.close()  # Finaliza la conexión
        lista = self.obj("grilla").get_model()
        cant = len(lista)

        for i in range(0, cant):
            self.idTabla = lista[i][0]

            if self.idTabla != 48:
                con = True if lista[i][2] == 1 else False
                ins = True if lista[i][3] == 1 else False
                act = True if lista[i][4] == 1 else False
                eli = True if lista[i][5] == 1 else False
                anu = True if lista[i][6] == 1 else False

                self.permisos_tablas(con, ins, act, eli, anu, True)
コード例 #18
0
    def on_btn_guardar_clicked(self, objeto):
        v1 = self.obj("txt_00").get_text()
        v2 = self.obj("txt_01").get_text()
        v3 = self.obj("txt_02").get_text()  # País

        if self.nav.tabla == "ciudades":
            v4 = self.obj("txt_03").get_text()  # Departamento

            sql = "" if not self.editando else str(self.cond_pais) + ", " + \
                str(self.cond_dep) + ", " + str(self.cond) + ", "
            sql += v3 + ", " + v4 + ", " + v1 + ", '" + v2 + "'"

        else:  # Departamentos
            sql = "" if not self.editando else str(
                self.cond_pais) + ", " + str(self.cond) + ", "
            sql += v3 + ", " + v1 + ", '" + v2 + "'"

        # Establece la conexión con la Base de Datos
        conexion = Op.conectar(self.nav.datos_conexion)

        if not self.editando:
            Op.insertar(conexion, self.nav.tabla, sql)
        else:
            Op.modificar(conexion, self.nav.tabla, sql)

        conexion.commit()
        conexion.close()  # Finaliza la conexión

        self.obj("ventana").destroy()
        cargar_grilla(self.nav)
コード例 #19
0
ファイル: lotes.py プロジェクト: edison-yamil/Distribuidora
    def cargar_grilla_buscar(self):
        buscar = self.obj("txt_buscar").get_text()

        if self.campo_buscar == "FechaVencimiento":
            opcion = "" if len(buscar) == 0 else \
            " WHERE " + self.campo_buscar + " BETWEEN '" + self.fecha_ini + "' AND '" + self.fecha_fin + "'"
        else:
            opcion = "" if len(buscar) == 0 else \
            " AND " + self.campo_buscar + " LIKE '%" + buscar + "%'"

        conexion = Op.conectar(self.origen.datos_conexion)
        cursor = Op.consultar(
            conexion, "NroLote, FechaVencimiento, " + "Cantidad", "lotes",
            " WHERE idItem = " + self.idItem + opcion +
            " ORDER BY FechaVencimiento DESC")
        datos = cursor.fetchall()
        cant = cursor.rowcount
        conexion.close()  # Finaliza la conexión

        lista = self.obj("grilla_buscar").get_model()
        lista.clear()

        for i in range(0, cant):
            lista.append([
                datos[i][0],
                Cal.mysql_fecha(datos[i][1]), datos[i][2],
                str(datos[i][1])
            ])

        cant = str(cant) + " registro encontrado." if cant == 1 \
            else str(cant) + " registros encontrados."
        self.obj("barraestado").push(0, cant)
コード例 #20
0
    def cargar_grilla(self, grilla, barraestado):
        opcion = "" if not self.obj("chk_empleado").get_active() else \
            " AND NroContrato = " + self.obj("txt_02").get_text()

        conexion = Op.conectar(self.datos_conexion)
        cursor = Op.consultar(conexion, "NroContrato, idEmpleado, " +
            "idTipoDocumento, NroDocumento, NombreApellido, Cargo, " +
            "Fecha, Hora, Entrada, Puntual, Observaciones, Alias",
            "asistencias_s", " WHERE Fecha BETWEEN '" + self.fechaini + "'" +
            " AND '" + self.fechafin + "'" + opcion + " ORDER BY Fecha, Hora")
        datos = cursor.fetchall()
        cant = cursor.rowcount
        conexion.close()  # Finaliza la conexión

        lista = grilla.get_model()
        lista.clear()

        for i in range(0, cant):
            estado = "Entrada" if datos[i][8] == 1 else "Salida"
            puntual = "Puntual" if datos[i][9] == 1 else ""
            obs = "" if datos[i][10] is None else datos[i][10]

            lista.append([str(datos[i][0]), str(datos[i][1]), datos[i][2],
                datos[i][3], datos[i][4], datos[i][5], Cal.mysql_fecha(datos[i][6]),
                str(datos[i][7]), estado, puntual, obs, datos[i][11],
                str(datos[i][6])])

        cant = str(cant) + " registro encontrado." if cant == 1 \
            else str(cant) + " registros encontrados."
        barraestado.push(0, cant)
コード例 #21
0
def eliminar(self):
    seleccion, iterador = self.obj("grilla").get_selection().get_selected()
    anulado = seleccion.get_value(iterador, 18)

    if anulado != 1:
        valor0 = str(seleccion.get_value(iterador, 0))
        valor1 = str(seleccion.get_value(iterador, 1))
        valor2 = seleccion.get_value(iterador, 2)
        valor3 = seleccion.get_value(iterador, 6)
        valor4 = seleccion.get_value(iterador, 12)
        valor5 = seleccion.get_value(iterador, 15)
        valor6 = seleccion.get_value(iterador, 16)

        eleccion = Mens.pregunta_anular("Seleccionó:\n" +
            "\nNro. Cheque: " + valor1 + "\nNro. Cuenta: " + valor2 +
            "\nBanco: " + valor3 + "\nTitular: " + valor4 +
            "\nFecha de Emisión: " + valor5 + "\nFecha de Cobro: " + valor6)

        self.obj("grilla").get_selection().unselect_all()
        self.obj("barraestado").push(0, "")

        if eleccion:
            conexion = Op.conectar(self.datos_conexion)
            Op.anular(conexion, self.tabla, valor0)
            conexion.commit()
            conexion.close()  # Finaliza la conexión
            cargar_grilla(self)
    else:
        self.obj("barraestado").push(0, "NO puede Anular un Cheque que ya ha sido Anulado.")
コード例 #22
0
def eliminar(self):
    seleccion, iterador = self.obj("grilla").get_selection().get_selected()
    valor0 = seleccion.get_value(iterador, 1)
    valor1 = str(seleccion.get_value(iterador, 0))
    valor2 = seleccion.get_value(iterador, 2)
    valor3 = seleccion.get_value(iterador, 6)
    valor4 = str(seleccion.get_value(iterador, 9))
    valor5 = str(seleccion.get_value(iterador, 10))
    valor6 = seleccion.get_value(iterador, 13)
    confirmado = seleccion.get_value(iterador, 14)

    mensaje = "Seleccionó:\n\nNro. de Nota: " + valor0 + \
        "\nNro. de Timbrado: " + valor1 + "\nFecha: " + valor2 + \
        "\nProveedor: " + valor3 + "\nTotal: " + valor4 + \
        "\nTotal Liq. del IVA: " + valor5 + "\nResponsable: " + valor6

    if confirmado != 1:
        eleccion = Mens.pregunta_borrar(mensaje)
        self.obj("grilla").get_selection().unselect_all()
        self.obj("barraestado").push(0, "")

        if eleccion:
            conexion = Op.conectar(self.datos_conexion)
            Op.eliminar(conexion, self.tabla, valor1 + ", '" + valor0 + "'")
            conexion.commit()
            conexion.close()  # Finaliza la conexión
            cargar_grilla(self)
    else:
        Mens.no_puede_modificar_eliminar_anular(
            2, mensaje + "\n\nLa Nota seleccionada ya ha sido Confirmada." +
            "\nSolo puede eliminar Notas pendientes de confirmación.")
コード例 #23
0
ファイル: ordenes.py プロジェクト: edison-yamil/Distribuidora
    def cargar_item_pedido(self):
        self.pedido_guardado = False
        self.guardar_encabezado()

        orden = self.obj("txt_00").get_text()
        pedido = self.obj("txt_02").get_text()

        # Eliminando Items del Pedido anterior
        datos = self.obj("grilla").get_model()
        cant = len(datos)
        if cant > 0:  # Si existen ítems registrados en la Orden, los elimina
            for i in range(0, cant):
                Op.eliminar(self.conexion, "ordencompras_detalles",
                            orden + ", " + str(datos[i][0]))

        # Obteniendo Items desde Pedido seleccionado
        conexion = Op.conectar(self.nav.datos_conexion)
        cursor = Op.consultar(conexion, "idItem, Cantidad",
                              "pedidocompras_detalles_s",
                              " WHERE NroPedidoCompra = " + pedido)
        datos = cursor.fetchall()
        cant = cursor.rowcount
        conexion.close()  # Finaliza la conexión

        # Cargando Items desde Pedido seleccionado
        for i in range(0, cant):
            Op.insertar(
                self.conexion, "ordencompras_detalles",
                orden + ", " + str(datos[i][0]) + ", " + str(datos[i][1]) +
                ", NULL, NULL, NULL")

        self.cargar_grilla_items()
        self.verificacion(0)
コード例 #24
0
    def focus_out_event(self, objeto, evento):
        if len(self.obj("txt_fact").get_text()) == 0 or len(
                self.obj("txt_timb").get_text()) == 0:
            self.obj("barraestado").push(0, "")
        else:
            fact = self.obj("txt_fact").get_text()
            timb = self.obj("txt_timb").get_text()

            if self.tabla == "cuentaspagar":
                fact = "'" + fact + "'"
                tabla = "facturacompras_s"
            else:
                tabla = "facturaventas_s"

            conexion = Op.conectar(self.datos_conexion)
            cursor = Op.consultar(
                conexion, "Total", tabla, " WHERE " + "NroTimbrado = " + timb +
                " AND NroFactura = " + fact)
            datos = cursor.fetchall()
            cant = cursor.rowcount
            conexion.close()  # Finaliza la conexión

            if cant > 0:
                self.obj("txt_total_fact").set_text(str(datos[0][0]))
                self.obj("barraestado").push(0, "")
                self.cargar_grilla_cuotas()
            else:
                self.estadoguardar(False)
                self.obj("txt_fact").grab_focus()
                self.obj("barraestado").push(
                    0, "El Nro. Factura introducido no es válido (NO EXISTE).")
                self.obj("txt_total_fact").set_text("")
                self.obj("txt_no_asignado").set_text("")
コード例 #25
0
def cargar_grilla(self):
    opcion = "" if len(self.obj("txt_buscar").get_text()) == 0 else \
    " WHERE " + self.campo_buscar + " LIKE '%" + self.obj("txt_buscar").get_text() + "%'"

    if self.obj("rad_act").get_active() or self.obj("rad_ina").get_active():
        activo = "1" if self.obj("rad_act").get_active() else "0"
        opcion += " WHERE " if len(opcion) == 0 else " AND "
        opcion += "Activo = " + activo

    conexion = Op.conectar(self.datos_conexion)
    cursor = Op.consultar(
        conexion, "NroEstablecimiento, Nombre, " +
        "NroDocumento, RazonSocial, Ciudad, Barrio, Direccion, " +
        "NroTelefono, Activo, idEmpresa, idDireccion", self.tabla + "_s",
        opcion + " ORDER BY " + self.campoid)
    datos = cursor.fetchall()
    cant = cursor.rowcount
    conexion.close()  # Finaliza la conexión

    lista = self.obj("grilla").get_model()
    lista.clear()

    for i in range(0, cant):
        lista.append([
            datos[i][0], datos[i][1], datos[i][2], datos[i][3], datos[i][4],
            datos[i][5], datos[i][6], datos[i][7], datos[i][8], datos[i][9],
            datos[i][10]
        ])

    cant = str(cant) + " registro encontrado." if cant == 1 \
        else str(cant) + " registros encontrados."
    self.obj("barraestado").push(0, cant)
コード例 #26
0
    def cargar_grilla_buscar(self):
        if self.campo_buscar == "FechaVencimiento":
            opcion = "" if len(self.obj("txt_buscar").get_text()) == 0 else \
            " WHERE " + self.campo_buscar + " BETWEEN '" + self.fecha_ini + "' AND '" + self.fecha_fin + "'"
        else:
            opcion = "" if len(self.obj("txt_buscar").get_text()) == 0 else \
            " WHERE " + self.campo_buscar + " LIKE '%" + self.obj("txt_buscar").get_text() + "%'"

        conexion = Op.conectar(self.origen.datos_conexion)
        cursor = Op.consultar(
            conexion,
            "NroTimbrado, NroFactura, " + "NroCuota, FechaVencimiento, Monto",
            "cuentascobrar", opcion + " ORDER BY FechaVencimiento")
        datos = cursor.fetchall()
        cant = cursor.rowcount
        conexion.close()  # Finaliza la conexión

        lista = self.obj("grilla_buscar").get_model()
        lista.clear()

        for i in range(0, cant):
            lista.append([
                datos[i][0], datos[i][1], datos[i][2],
                Cal.mysql_fecha(datos[i][3]), datos[i][4],
                str(datos[i][3])
            ])

        cant = str(cant) + " registro encontrado." if cant == 1 \
            else str(cant) + " registros encontrados."
        self.obj("barraestado").push(0, cant)
コード例 #27
0
def cargar_grilla(self):
    if self.campo_buscar in ("FechaHora", "FechaHoraExp", "FechaNacimiento"):
        opcion = "" if len(self.obj("txt_buscar").get_text()) == 0 else \
        " WHERE " + self.campo_buscar + " BETWEEN '" + self.fecha_ini + "' AND '" + self.fecha_fin + "'"
    else:
        opcion = "" if len(self.obj("txt_buscar").get_text()) == 0 else \
        " WHERE " + self.campo_buscar + " LIKE '%" + self.obj("txt_buscar").get_text() + "%'"

    conexion = Op.conectar(self.datos_conexion)
    cursor = Op.consultar(conexion, "idAnticipo, NroContrato, idEmpleado, " +
        "idTipoDocumento, NroDocumento, NombreApellido, FechaNacimiento, " +
        "Edad, Cargo, NroComprobante, FechaHoraExp, Monto, FechaHora, " +
        "Observaciones, Alias, NroDocUsuario, NombreUsuario",
        self.tabla + "_s", opcion + " ORDER BY NroContrato, " + self.campoid)
    datos = cursor.fetchall()
    cant = cursor.rowcount
    conexion.close()  # Finaliza la conexión

    lista = self.obj("grilla").get_model()
    lista.clear()

    for i in range(0, cant):
        fechanac = "" if datos[i][6] is None else Cal.mysql_fecha(datos[i][6])
        fechacomp = "" if datos[i][10] is None else Cal.mysql_fecha_hora(datos[i][10])
        fechaexp = "" if datos[i][12] is None else Cal.mysql_fecha_hora(datos[i][12])

        lista.append([datos[i][0], datos[i][1], datos[i][2], datos[i][3],
            datos[i][4], datos[i][5], fechanac, datos[i][7], datos[i][8],
            datos[i][9], fechacomp, datos[i][11], fechaexp, datos[i][13],
            datos[i][14], datos[i][15], datos[i][16], str(datos[i][6]),
            str(datos[i][10]), str(datos[i][12])])

    cant = str(cant) + " registro encontrado." if cant == 1 \
        else str(cant) + " registros encontrados."
    self.obj("barraestado").push(0, cant)
コード例 #28
0
def cargar_grilla(self):
    opcion = "" if len(self.obj("txt_buscar").get_text()) == 0 else \
    " WHERE " + self.campo_buscar + " LIKE '%" + self.obj("txt_buscar").get_text() + "%'"

    conexion = Op.conectar(self.datos_conexion)
    cursor = Op.consultar(conexion, self.campoid + ", NroDocumento, " +
        "DigitoVerificador, RazonSocial, NombreFantasia, idPropietario, " +
        "NroDocPropietario, NombreApellido, DireccionPrincipal, " +
        "TelefonoPrincipal, NroPatronalIPS, NroPatronalMJT", self.tabla + "_s",
        opcion + " ORDER BY " + self.campoid)
    datos = cursor.fetchall()
    cant = cursor.rowcount
    conexion.close()  # Finaliza la conexión

    lista = self.obj("grilla").get_model()
    lista.clear()

    for i in range(0, cant):
        documento = str(datos[i][1]) + "-" + str(datos[i][2])
        lista.append([datos[i][0], documento, datos[i][3], datos[i][4],
            datos[i][5], datos[i][6], datos[i][7], datos[i][8], datos[i][9],
            datos[i][10], datos[i][11], datos[i][2]])

    cant = str(cant) + " registro encontrado." if cant == 1 \
        else str(cant) + " registros encontrados."
    self.obj("barraestado").push(0, cant)
コード例 #29
0
    def on_btn_guardar_clicked(self, objeto):
        cont = self.obj("txt_02").get_text()
        monto = self.obj("txt_04").get_text()

        # Establece la conexión con la Base de Datos
        conexion = Op.conectar(self.nav.datos_conexion)

        # Crear encabezado de Comprobante de Pago
        comp = Op.nuevoid(self.nav.datos_conexion, "comprobantepagos_s", "NroComprobante")
        sql = comp + ", " + cont + ", '" + str(date.today()) + "', " + \
            "'" + str(date.today()) + "', NULL, 1"
        Op.insertar(conexion, "comprobantepagos", sql)

        # Crear detalle de Comprobante de Pago (1 - Anticipo)
        sql = comp + ", 1, 1, " + monto + ", 1, NULL"
        Op.insertar(conexion, "comprobantepagos_detalles", sql)
        conexion.commit()

        # Agregar-Modificar registro de Anticipo
        cod = self.obj("txt_00").get_text()
        obs = self.obj("txt_05").get_text()
        obs = "NULL" if len(obs) == 0 else "'" + obs + "'"

        sql = cod + ", " + cont + ", " + comp + ", " + monto + ", " + obs
        Op.insertar(conexion, self.nav.tabla, sql)

        conexion.commit()
        conexion.close()  # Finaliza la conexión

        # Generar Comprobante de Pago
        from informes.rrhh_comprobantes import genera_comprobante_pago
        genera_comprobante_pago(self.nav.datos_conexion, comp)

        self.obj("ventana").destroy()
        cargar_grilla(self.nav)
コード例 #30
0
    def concesion_de_permisos_grupos(self, codigo):
        cant = len(self.obj("grilla").get_model())
        if cant > 0:
            eleccion = Mens.pregunta_generico(
                "¿Desea conservar los permisos?",
                "El usuario ya posee pemisos sobre unas " + str(cant) +
                " entidades.")

            if not eleccion:
                self.on_btn_per_todos_clicked(0)

        conexion = Op.conectar(self.datos_conexion)
        cursor = Op.consultar(
            conexion, "*", "grupousuarios_permisos_s",
            " WHERE idGrupoUsuario = " + codigo + " ORDER BY idTabla")
        datos = cursor.fetchall()
        cant = cursor.rowcount
        conexion.close()  # Finaliza la conexión

        for i in range(0, cant):
            self.idTabla = datos[i][2]
            con = True if datos[i][4] == 1 else False
            ins = True if datos[i][5] == 1 else False
            act = True if datos[i][6] == 1 else False
            eli = True if datos[i][7] == 1 else False
            anu = True if datos[i][8] == 1 else False
            self.permisos_tablas(con, ins, act, eli, anu, True)

        self.cargar_grilla()