Exemple #1
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.")
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.")
def eliminar(self):
    seleccion, iterador = self.obj("grilla").get_selection().get_selected()
    valor0 = str(seleccion.get_value(iterador, 0))
    valor1 = str(seleccion.get_value(iterador, 7))
    valor2 = seleccion.get_value(iterador, 8)
    valor3 = str(seleccion.get_value(iterador, 9))
    valor4 = seleccion.get_value(iterador, 10)
    estado = seleccion.get_value(iterador, 20)

    valor5 = seleccion.get_value(iterador, 13)  # Ciudad
    valor6 = seleccion.get_value(iterador, 15)
    valor6 = "" if valor6 is None else ", " + valor6

    mensaje = "Seleccionó:\n\nNro. Timbrado: " + valor0 + "\nCaja: " + valor1 + ", " + valor2 + \
        "\nEstablecimiento: " + valor3 + ", " + valor4 + "\nDirección: " + valor5 + valor6

    if estado == "Vigente":
        eleccion = Mens.pregunta_anular(mensaje)
        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:
        Mens.no_puede_modificar_eliminar_anular(
            3,
            mensaje + "\n\nEste Nro. de Timbrado se encuentra actualmente " +
            estado + ".")
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, 4)
    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 Factura: " + valor0 + "\nNro. de Timbrado: " + valor1 + \
        "\nFecha: " + valor2 + "\nProveedor: " + valor3 + "\nTotal a Pagar: " + 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)

            # Modificar Cantidades de Lotes afectados
            cursor = Op.consultar(conexion, "NroLote, idItem, Cantidad",
                self.tabla + "_lotes_s", " WHERE NroTimbrado = " + valor1 +
                " AND NroFactura = '" + valor0 + "' ORDER BY idItem")
            datos = cursor.fetchall()
            cant = cursor.rowcount

            self.obj("barraestado").push(0, "Se han encontrado " + str(cant) + " Lotes a Modificar.")

            for i in range(0, cant):
                cursor = Op.consultar(conexion, "Cantidad",
                    "lotes", " WHERE NroLote = '" + datos[i][0] + "'" +
                    " AND idItem = " + str(datos[i][1]))
                cant_lote = cursor.fetchall()[0][0] - datos[i][2]

                Op.modificar(conexion, "lotes_cantidad",
                    "'" + datos[i][0] + "', " + str(datos[i][1]) + ", " + str(cant_lote))

                self.obj("barraestado").push(0, "Modificando el Lote " +
                "Nº " + str(i + 1) + " de " + str(cant) + ".")

            # Eliminar Factura de Compra
            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\nEsta Factura de Compra ya ha sido Confirmada." +
        "\nSolo puede eliminar Facturas pendientes de confirmación.")
    def __init__(self, edit, origen):
        self.editando = edit
        self.nav = origen

        arch = Op.archivo("compra_ordenes")
        self.obj = arch.get_object

        self.obj("ventana").set_position(1)
        self.obj("ventana").set_default_size(650, 600)
        self.obj("ventana").set_modal(True)

        edit = "Creando" if not self.editando else "Editando"
        self.obj("ventana").set_title(edit + " Registro de " + self.nav.titulo)
        Mens.boton_guardar_cancelar(self.obj("btn_guardar"),
                                    self.obj("btn_cancelar"))

        self.estadoedicion(True)
        self.estadoguardar(False)
        self.estadoitem(False)
        self.config_grilla_items()

        self.obj("txt_00").set_max_length(10)
        self.obj("txt_01").set_max_length(10)
        self.obj("txt_01_2").set_max_length(12)
        self.obj("txt_02").set_max_length(10)

        self.obj("txt_00").set_tooltip_text("Ingrese el Número de " +
                                            self.nav.titulo)
        self.obj("txt_01").set_tooltip_text(
            Mens.usar_boton("al Proveedor de los ítems"))
        self.obj("txt_01_1").set_tooltip_text("Razón Social del Proveedor")
        self.obj("txt_01_2").set_tooltip_text(
            "Nro. de Documento de Identidad del Proveedor")
        self.obj("txt_01_3").set_tooltip_text(
            "Dirección principal del Proveedor")
        self.obj("txt_01_4").set_tooltip_text(
            "Teléfono principal del Proveedor")
        self.obj("txt_02").set_tooltip_text(
            Mens.usar_boton("un Pedido de Compra para cargar la Orden"))
        self.obj("txt_00").grab_focus()

        self.obj("txt_it_01").set_max_length(10)
        self.obj("txt_it_01_1").set_max_length(40)
        self.obj("txt_it_02").set_max_length(14)
        self.obj("txt_it_03").set_max_length(14)
        self.obj("txt_it_05").set_max_length(100)

        self.obj("txt_it_01").set_tooltip_text("Ingrese el Código del Ítem")
        self.obj("txt_it_01_1").set_tooltip_text(
            "Ingrese el Código de Barras del Ítem")
        self.obj("txt_it_01_2").set_tooltip_text("Descripción del Ítem")
        self.obj("txt_it_01_3").set_tooltip_text("Presentación del Ítem")
        self.obj("txt_it_01_4").set_tooltip_text("Categoría del Ítem")
        self.obj("txt_it_02").set_tooltip_text("Ingrese la Cantidad de Ítems")
        self.obj("txt_it_03").set_tooltip_text(
            "Ingrese el Precio Acordado del Ítem")
        self.obj("txt_it_04").set_tooltip_text(
            "Ingrese el Porcentaje de Descuento Acordado")
        self.obj("txt_it_05").set_tooltip_text(
            "Ingrese una Observación sobre el Ítems")

        self.idFormaPago = self.idTipoDoc = -1
        self.txt_cod_per, self.txt_rzn_scl = self.obj("txt_01"), self.obj(
            "txt_01_1")
        self.txt_nro_doc, self.cmb_tip_doc = self.obj("txt_01_2"), self.obj(
            "cmb_tipo_doc")
        self.txt_dir_per, self.txt_tel_per = self.obj("txt_01_3"), self.obj(
            "txt_01_4")
        self.txt_nro_ped = self.obj("txt_02")

        self.txt_cod_it = self.obj("txt_it_01")
        self.txt_bar_it, self.txt_nom_it = self.obj("txt_it_01_1"), self.obj(
            "txt_it_01_2")
        self.txt_des_pres, self.txt_des_cat = self.obj(
            "txt_it_01_3"), self.obj("txt_it_01_4")

        Op.combos_config(self.nav.datos_conexion, self.obj("cmb_tipo_doc"),
                         "tipodocumentos", "idTipoDocumento")
        Op.combos_config(self.nav.datos_conexion, self.obj("cmb_pago"),
                         "formapagos", "idFormaPago")
        arch.connect_signals(self)

        if self.editando:
            seleccion, iterador = self.nav.obj(
                "grilla").get_selection().get_selected()
            self.cond = str(seleccion.get_value(iterador, 0))
            fecha = seleccion.get_value(iterador, 1)[0:-9]  # Quita la Hora
            ruc = seleccion.get_value(iterador, 2)
            nombre = seleccion.get_value(iterador, 3)
            direc = seleccion.get_value(iterador, 4)
            telef = seleccion.get_value(iterador, 5)
            pago = seleccion.get_value(iterador, 7)
            resp = seleccion.get_value(iterador, 11)
            aprob = seleccion.get_value(iterador, 12)

            idper = str(seleccion.get_value(iterador, 14))
            tipodoc = str(seleccion.get_value(iterador, 15))
            pedido = str(seleccion.get_value(iterador, 16))

            direc = "" if direc is None else direc
            telef = "" if telef is None else telef

            self.obj("txt_00").set_text(self.cond)
            self.obj("txt_fecha").set_text(fecha)
            self.obj("txt_01").set_text(idper)
            self.obj("txt_01_1").set_text(nombre)
            self.obj("txt_01_2").set_text(ruc)
            self.obj("txt_01_2").set_text(direc)
            self.obj("txt_01_3").set_text(telef)
            self.obj("txt_02").set_text(pedido)

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

            # Asignación de Forma de Pago en Combo
            model, i = self.obj("cmb_pago").get_model(), 0
            while model[i][0] != pago:
                i += 1
            self.obj("cmb_pago").set_active(i)

            if aprob != 1:
                self.obj("btn_aprobar").set_sensitive(True)
                self.obj("btn_rechazar").set_sensitive(True)
            else:
                self.obj("hbox1").set_sensitive(False)
                self.obj("vbox1").set_sensitive(False)
                self.obj("vbox3").set_sensitive(False)
                self.obj("hbox16").set_sensitive(False)
                self.obj("grilla").set_sensitive(False)
                self.obj("hbox18").set_sensitive(False)

                Mens.no_puede_modificar_eliminar_anular(
                    1, "Seleccionó:\n\nNro. de Orden: " + self.cond +
                    "\nFecha: " + fecha + "\nResponsable: " + resp +
                    "\n\nEsta Orden de Compra ya ha sido Aprobada." +
                    "\nSolo puede modificar Órdenes pendientes de aprobación.")

            self.encabezado_guardado = True
            self.editando_pedido = True if len(pedido) > 0 else False
        else:
            self.obj("txt_00").set_text(
                Op.nuevoid(self.nav.datos_conexion, self.nav.tabla + "_s",
                           self.nav.campoid))
            self.obj("txt_fecha").set_text(Cal.mysql_fecha(date.today()))

            self.obj("cmb_tipo_doc").set_active(0)
            self.obj("cmb_pago").set_active(0)
            self.encabezado_guardado = self.editando_pedido = False

        self.pedido_guardado = True
        self.conexion = Op.conectar(self.nav.datos_conexion)
        self.cargar_grilla_items()

        self.nav.obj("grilla").get_selection().unselect_all()
        self.nav.obj("barraestado").push(0, "")
        self.obj("ventana").show()
Exemple #6
0
    def __init__(self, edit, origen):
        self.editando = edit
        self.nav = origen

        arch = Op.archivo("abm_cheques")
        self.obj = arch.get_object

        self.obj("ventana").set_position(1)
        self.obj("ventana").set_modal(True)

        edit = "Creando" if not self.editando else "Editando"
        self.obj("ventana").set_title(edit + " Registro de Cheques de Terceros")
        Mens.boton_guardar_cancelar(self.obj("btn_guardar"), self.obj("btn_cancelar"))

        self.obj("txt_00").set_max_length(10)
        self.obj("txt_01").set_max_length(10)
        self.obj("txt_02").set_max_length(20)
        self.obj("txt_03").set_max_length(10)
        self.obj("txt_03_2").set_max_length(12)
        self.obj("txt_04").set_max_length(10)
        self.obj("txt_04_2").set_max_length(12)
        self.obj("txt_07").set_max_length(12)

        self.obj("txt_00").set_tooltip_text("Ingrese el Código del Cheque")
        self.obj("txt_01").set_tooltip_text("Ingrese el Nro. de Cheque")
        self.obj("txt_02").set_tooltip_text("Ingrese el Nro. de Cuenta")
        self.obj("txt_03").set_tooltip_text(Mens.usar_boton("el Banco del Cheque"))
        self.obj("txt_03_1").set_tooltip_text("Razón Social del Banco")
        self.obj("txt_03_2").set_tooltip_text("Ingrese el Nro. de Documento del Banco")
        self.obj("txt_03_3").set_tooltip_text("Dirección del Banco")
        self.obj("txt_03_4").set_tooltip_text("Teléfono del Banco")
        self.obj("txt_04").set_tooltip_text(Mens.usar_boton("el Titular del Cheque"))
        self.obj("txt_04_1").set_tooltip_text("Razón Social del Titular")
        self.obj("txt_04_2").set_tooltip_text("Ingrese el Nro. de Documento del Titular")
        self.obj("txt_05").set_tooltip_text(Mens.usar_boton("la Fecha de Emisión del Cheque"))
        self.obj("txt_06").set_tooltip_text(Mens.usar_boton("la Fecha de Cobro del Cheque"))
        self.obj("txt_07").set_tooltip_text("Ingrese el Monto del Cheque")
        self.obj("txt_01").grab_focus()

        mostrar_ventana = True
        self.idTipoDocBanco = self.idTipoDocTitular = self.idTipoCheque = -1
        Op.combos_config(self.nav.datos_conexion, self.obj("cmb_doc_banco"), "tipodocumentos", "idTipoDocumento")
        Op.combos_config(self.nav.datos_conexion, self.obj("cmb_doc_titular"), "tipodocumentos", "idTipoDocumento")
        Op.combos_config(self.nav.datos_conexion, self.obj("cmb_tipo"), "tipocheques", "idTipoCheque")
        arch.connect_signals(self)

        if self.editando:
            seleccion, iterador = self.nav.obj("grilla").get_selection().get_selected()
            self.cond = str(seleccion.get_value(iterador, 0))
            cheque = str(seleccion.get_value(iterador, 1))
            cuenta = seleccion.get_value(iterador, 2)
            banco = str(seleccion.get_value(iterador, 3))
            tip_banco = seleccion.get_value(iterador, 4)
            doc_banco = seleccion.get_value(iterador, 5)
            nom_banco = seleccion.get_value(iterador, 6)
            dir_banco = seleccion.get_value(iterador, 7)
            tel_banco = seleccion.get_value(iterador, 8)
            titular = str(seleccion.get_value(iterador, 9))
            tip_tit = seleccion.get_value(iterador, 10)
            doc_tit = seleccion.get_value(iterador, 11)
            nom_tit = seleccion.get_value(iterador, 12)
            tipo = seleccion.get_value(iterador, 13)
            emision = seleccion.get_value(iterador, 15)
            cobro = seleccion.get_value(iterador, 16)
            monto = str(seleccion.get_value(iterador, 17))
            anulado = seleccion.get_value(iterador, 18)

            if anulado != 1:
                self.fecha_emision = seleccion.get_value(iterador, 19)
                self.fecha_cobro = seleccion.get_value(iterador, 20)

                dir_banco = "" if dir_banco is None else dir_banco
                tel_banco = "" if tel_banco is None else tel_banco

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

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

                # Asignación del Tipo de Cheque en Combo
                model, i = self.obj("cmb_tipo").get_model(), 0
                while model[i][0] != tipo: i += 1
                self.obj("cmb_tipo").set_active(i)

                self.obj("txt_00").set_text(self.cond)
                self.obj("txt_01").set_text(cheque)
                self.obj("txt_02").set_text(cuenta)
                self.obj("txt_03").set_text(banco)
                self.obj("txt_03_1").set_text(nom_banco)
                self.obj("txt_03_2").set_text(doc_banco)
                self.obj("txt_03_3").set_text(dir_banco)
                self.obj("txt_03_4").set_text(tel_banco)
                self.obj("txt_04").set_text(titular)
                self.obj("txt_04_1").set_text(nom_tit)
                self.obj("txt_04_2").set_text(doc_tit)
                self.obj("txt_05").set_text(emision)
                self.obj("txt_06").set_text(cobro)
                self.obj("txt_07").set_text(monto)
            else:
                Mens.no_puede_modificar_eliminar_anular(1, "Seleccionó:\n" +
                    "\nNro. Cheque: " + cheque + "\nNro. Cuenta: " + cuenta +
                    "\nBanco: " + nom_banco + "\nTitular: " + nom_tit +
                    "\nFecha de Emisión: " + emision + "\nFecha de Cobro: " + cobro +
                    "\n\nEste Cheque se encuentra actualmente ANULADO.")
                self.obj("ventana").destroy()
                mostrar_ventana = False
        else:
            self.obj("txt_00").set_text(Op.nuevoid(self.nav.datos_conexion,
                self.nav.tabla + "_s", self.nav.campoid))
            self.obj("cmb_doc_banco").set_active(0)
            self.obj("cmb_doc_titular").set_active(0)
            self.obj("cmb_tipo").set_active(0)

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

        if mostrar_ventana:
            self.obj("ventana").show()
Exemple #7
0
    def __init__(self, edit, origen):
        self.editando = edit
        self.nav = origen

        arch = Op.archivo("compra_notas_credito_debito")
        self.obj = arch.get_object

        self.obj("ventana").set_position(1)
        self.obj("ventana").set_default_size(760, 600)
        self.obj("ventana").set_modal(True)

        edit = "Creando" if not self.editando else "Editando"
        self.obj("ventana").set_title(edit + " Registro de " + self.nav.titulo)
        Mens.boton_guardar_cancelar(self.obj("btn_guardar"),
                                    self.obj("btn_cancelar"))

        self.obj("btn_lotes").set_tooltip_text(
            "Presione este botón para registrar los Lotes de los Ítems seleccionados"
        )
        self.obj("btn_confirmar").set_tooltip_text(
            "Presione este botón para Guardar el registro y/o Confirmarlo\n" +
            "Las " + self.nav.titulo +
            " confirmadas no podrán ser Modificadas o Eliminadas con posterioridad\n"
            + "Por lo tanto, compruebe que los datos están todos correctos")

        self.obj("txt_00").set_max_length(15)
        self.obj("txt_01").set_max_length(10)
        self.obj("txt_04").set_max_length(10)
        self.obj("txt_04_2").set_max_length(12)

        self.obj("txt_00").set_tooltip_text(
            "Ingrese el Número de la Nota actual")
        self.obj("txt_01").set_tooltip_text(
            "Ingrese el Número de Timbrado de la Nota actual")
        self.obj("txt_02").set_tooltip_text(
            Mens.usar_boton("la Fecha de expedición de la Nota actual"))
        self.obj("txt_03").set_tooltip_text(
            Mens.usar_boton("la Factura modificada por la Nota actual"))
        self.obj("txt_03_1").set_tooltip_text(
            "Fecha de Expedición de la Factura seleccionada")
        self.obj("txt_04").set_tooltip_text(
            Mens.usar_boton("al Proveedor de los ítems"))
        self.obj("txt_04_1").set_tooltip_text("Razón Social del Proveedor")
        self.obj("txt_04_2").set_tooltip_text(
            "Ingrese el Nro. de Documento de Identidad del Proveedor")
        self.obj("txt_04_3").set_tooltip_text(
            "Dirección principal del Proveedor")
        self.obj("txt_04_4").set_tooltip_text(
            "Teléfono principal del Proveedor")
        self.obj("txt_00").grab_focus()

        self.nro_timb = -1
        self.txt_nro_fact, self.txt_fec_fact = self.obj("txt_03"), self.obj(
            "txt_03_1")
        self.txt_cod_per, self.txt_rzn_scl = self.obj("txt_04"), self.obj(
            "txt_04_1")
        self.txt_nro_doc, self.cmb_tip_doc = self.obj("txt_04_2"), self.obj(
            "cmb_tipo_doc")
        self.txt_dir_per, self.txt_tel_per = self.obj("txt_04_3"), self.obj(
            "txt_04_4")

        self.idTipoDoc = -1
        Op.combos_config(self.nav.datos_conexion, self.obj("cmb_tipo_doc"),
                         "tipodocumentos", "idTipoDocumento")

        self.estadoguardar(False)
        self.config_grilla_detalles()
        self.conexion = Op.conectar(self.nav.datos_conexion)

        arch.connect_signals(self)

        if self.editando:
            seleccion, iterador = self.nav.obj(
                "grilla").get_selection().get_selected()
            self.cond_timb = str(seleccion.get_value(iterador, 0))
            self.cond_nro = seleccion.get_value(iterador, 1)

            self.fecha = seleccion.get_value(iterador, 18)
            fecha = seleccion.get_value(iterador, 2)

            self.nro_timb = seleccion.get_value(iterador, 3)
            fact = seleccion.get_value(iterador, 4)
            fecha_fact = seleccion.get_value(iterador, 17)

            idpro = str(seleccion.get_value(iterador, 15))
            tipodoc = seleccion.get_value(iterador, 16)
            nrodoc = seleccion.get_value(iterador, 5)
            nombre = seleccion.get_value(iterador, 6)
            direc = seleccion.get_value(iterador, 7)
            telef = seleccion.get_value(iterador, 8)

            resp = seleccion.get_value(iterador, 13)
            conf = seleccion.get_value(iterador, 14)

            direc = "" if direc is None else direc
            telef = "" if telef is None else telef

            self.obj("txt_00").set_text(self.cond_nro)
            self.obj("txt_01").set_text(self.cond_timb)
            self.obj("txt_02").set_text(fecha)
            self.obj("txt_03").set_text(fact)
            self.obj("txt_03_1").set_text(fecha_fact)
            self.obj("txt_04").set_text(idpro)
            self.obj("txt_04_1").set_text(nombre)
            self.obj("txt_04_2").set_text(ruc)
            self.obj("txt_04_3").set_text(direc)
            self.obj("txt_04_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] != tipodoc:
                i += 1
            self.obj("cmb_tipo_doc").set_active(i)

            self.cargar_grilla_detalles()

            if conf != 1:
                self.estadoguardar(True)
                self.encabezado_guardado = True
            else:
                self.obj("vbox1").set_sensitive(False)
                self.obj("vbox2").set_sensitive(False)
                self.obj("buttonbox_abm").set_sensitive(False)
                self.obj("grilla").set_sensitive(False)
                self.obj("vbox3").set_sensitive(False)
                self.obj("hbox14").set_sensitive(False)

                Mens.no_puede_modificar_eliminar_anular(
                    1, "Seleccionó:\n\nNro. de Nota: " + self.cond_nro +
                    "\n\nNro. de Timbrado: " + self.cond_timb + "\nFecha: " +
                    fecha + "\nResponsable: " + resp +
                    "\n\nLa presente Nota ya ha sido Confirmada." +
                    "\nSolo puede modificar Notas pendientes de confirmación.")
        else:
            self.obj("cmb_tipo_doc").set_active(0)

        self.nav.obj("grilla").get_selection().unselect_all()
        self.nav.obj("barraestado").push(0, "")
        self.obj("ventana").show()
    def __init__(self, edit, origen):
        self.editando = edit
        self.nav = origen

        arch = Op.archivo("compra_facturas")
        self.obj = arch.get_object

        self.obj("ventana").set_position(1)
        self.obj("ventana").set_default_size(870, 650)
        self.obj("ventana").set_modal(True)

        edit = "Creando" if not self.editando else "Editando"
        self.obj("ventana").set_title(edit + " Registro de " + self.nav.titulo)
        Mens.boton_guardar_cancelar(self.obj("btn_guardar"), self.obj("btn_cancelar"))

        self.obj("btn_lotes").set_tooltip_text(
        "Presione este botón para registrar los Lotes de los Ítems seleccionados")
        self.obj("btn_cuentas").set_tooltip_text(
        "Presione este botón para registrar las Cuentas a Pagar de las Facturas a Crédito")
        self.obj("btn_confirmar").set_tooltip_text(
        "Presione este botón para Guardar el registro y/o Confirmarlo\n" +
        "Una Factura confirmada no podrá ser Modificada o Eliminada con posterioridad\n" +
        "Por lo tanto, compruebe que los datos están todos correctos")

        self.obj("txt_00").set_max_length(15)
        self.obj("txt_01").set_max_length(10)

        self.obj("txt_00").set_tooltip_text("Ingrese el Número de " + self.nav.titulo)
        self.obj("txt_01").set_tooltip_text("Ingrese el Número de Timbrado de la Factura")
        self.obj("txt_02").set_tooltip_text(Mens.usar_boton("la Fecha de expedición de la Factura"))
        self.obj("txt_03").set_tooltip_text(Mens.usar_boton("al Proveedor de los ítems"))
        self.obj("txt_03_1").set_tooltip_text("Razón Social del Proveedor")
        self.obj("txt_03_2").set_tooltip_text("Ingrese el Nro. de Documento de Identidad del Proveedor")
        self.obj("txt_03_3").set_tooltip_text("Dirección principal del Proveedor")
        self.obj("txt_03_4").set_tooltip_text("Teléfono principal del Proveedor")
        self.obj("txt_00").grab_focus()

        self.idTipoFact = self.idTipoDoc = -1
        self.txt_nro_ord, self.txt_fch_ord = self.obj("txt_orden"), self.obj("txt_fecha")
        self.txt_cod_per, self.txt_rzn_scl = self.obj("txt_03"), self.obj("txt_03_1")
        self.txt_nro_doc, self.cmb_tip_doc = self.obj("txt_03_2"), self.obj("cmb_tipo_doc")
        self.txt_dir_per, self.txt_tel_per = self.obj("txt_03_3"), self.obj("txt_03_4")

        Op.combos_config(self.nav.datos_conexion, self.obj("cmb_tipo_fact"), "tipofacturas", "idTipoFactura")
        Op.combos_config(self.nav.datos_conexion, self.obj("cmb_tipo_doc"), "tipodocumentos", "idTipoDocumento")
        arch.connect_signals(self)

        self.conexion = Op.conectar(self.nav.datos_conexion)
        self.config_grilla_detalles()

        if self.editando:
            seleccion, iterador = self.nav.obj("grilla").get_selection().get_selected()
            self.cond_timb = str(seleccion.get_value(iterador, 0))
            self.cond_fact = seleccion.get_value(iterador, 1)
            fecha = seleccion.get_value(iterador, 2)
            tipo = seleccion.get_value(iterador, 7)
            resp = seleccion.get_value(iterador, 13)
            conf = seleccion.get_value(iterador, 14)

            idper = str(seleccion.get_value(iterador, 16))
            tipodoc = seleccion.get_value(iterador, 17)
            ruc = seleccion.get_value(iterador, 3)
            nombre = seleccion.get_value(iterador, 4)
            direc = seleccion.get_value(iterador, 5)
            telef = seleccion.get_value(iterador, 6)

            direc = "" if direc is None else direc
            telef = "" if telef is None else telef

            self.obj("txt_00").set_text(self.cond_fact)
            self.obj("txt_01").set_text(self.cond_timb)
            self.obj("txt_02").set_text(fecha)
            self.obj("txt_03").set_text(idper)
            self.obj("txt_03_1").set_text(nombre)
            self.obj("txt_03_2").set_text(ruc)
            self.obj("txt_03_3").set_text(direc)
            self.obj("txt_03_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] != tipodoc: i += 1
            self.obj("cmb_tipo_doc").set_active(i)

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

            self.cargar_grilla_detalles()
            self.obj("notebook").set_current_page(1)

            if conf != 1:
                self.fecha = seleccion.get_value(iterador, 15)
                self.estadoguardar(True)
                self.encabezado_guardado = True

                orden = seleccion.get_value(iterador, 18)
                fecha = seleccion.get_value(iterador, 19)

                if orden is not None:
                    self.obj("txt_orden").set_text(orden)
                    self.obj("txt_fecha").set_text(fecha)
                    self.orden_guardada = self.editando_orden = True
                else:
                    self.orden_guardada = self.editando_orden = False
            else:
                self.obj("notebook").set_show_tabs(False)
                self.obj("box1").set_sensitive(False)
                self.obj("box2").set_sensitive(False)
                self.obj("notebook").set_sensitive(False)
                self.obj("grilla").set_sensitive(False)
                self.obj("box4").set_sensitive(False)
                self.obj("hbox16").set_sensitive(False)

                Mens.no_puede_modificar_eliminar_anular(1,
                    "Seleccionó:\n\nNro. de Factura: " + self.cond_fact +
                    "\n\nNro. de Timbrado: " + self.cond_timb +
                    "\nFecha: " + fecha + "\nResponsable: " + resp +
                    "\n\nEsta Factura de Compra ya ha sido Confirmada." +
                    "\nSolo puede modificar Facturas pendientes de confirmación.")
        else:
            self.obj("cmb_tipo_fact").set_active(0)
            self.obj("cmb_tipo_doc").set_active(0)

            self.estadoguardar(False)
            self.encabezado_guardado = self.orden_guardada = self.editando_orden = False

        self.nav.obj("grilla").get_selection().unselect_all()
        self.nav.obj("barraestado").push(0, "")
        self.obj("ventana").show()
    def __init__(self, edit, origen):
        self.editando = edit
        self.nav = origen

        arch = Op.archivo("abm_timbrados")
        self.obj = arch.get_object

        self.obj("ventana").set_position(1)
        self.obj("ventana").set_modal(True)

        edit = "Creando" if not self.editando else "Editando"
        self.obj("ventana").set_title(edit + " Registro de Timbrados")
        Mens.boton_guardar_cancelar(self.obj("btn_guardar"),
                                    self.obj("btn_cancelar"))

        self.obj("txt_00").set_max_length(10)
        self.obj("txt_01").set_max_length(10)
        self.obj("txt_02").set_max_length(10)

        self.obj("txt_00").set_tooltip_text("Ingrese el Nro. de Timbrado")
        self.obj("txt_01").set_tooltip_text(
            Mens.usar_boton("el Establecimiento que afectará"))
        self.obj("txt_01_1").set_tooltip_text("Nombre del Establecimiento")
        self.obj("txt_01_2").set_tooltip_text(
            "Dirección o Localización del Establecimiento")
        self.obj("txt_01_3").set_tooltip_text("Teléfono del Establecimiento")
        self.obj("txt_02").set_tooltip_text(
            Mens.usar_boton("el Punto de Expedición que afectará"))
        self.obj("txt_02_1").set_tooltip_text("Nombre del Punto de Expedición")
        self.obj("txt_03").set_tooltip_text(
            Mens.usar_boton("la Fecha de Emisión del Timbrado"))
        self.obj("txt_04").set_tooltip_text(
            Mens.usar_boton("la Fecha de Vencimiento del Timbrado"))
        self.obj("txt_05").set_tooltip_text(
            "Ingrese el Primer Número de Documento abarcado")
        self.obj("txt_06").set_tooltip_text(
            "Ingrese el Último Número de Documento abarcado")
        self.obj("txt_00").grab_focus()

        mostrar_ventana = True
        self.txt_nro_est, self.txt_nom_est = self.obj("txt_01"), self.obj(
            "txt_01_1")
        self.txt_dir_est, self.txt_tel_est = self.obj("txt_01_2"), self.obj(
            "txt_01_3")
        self.txt_nro_cja, self.txt_nom_cja = self.obj("txt_02"), self.obj(
            "txt_02_1")

        self.idTipoDoc = -1
        Op.combos_config(self.nav.datos_conexion, self.obj("cmb_tipo_doc"),
                         "tipodocumentocomerciales",
                         "idTipoDocumentoComercial")
        arch.connect_signals(self)

        if self.editando:
            seleccion, iterador = self.nav.obj(
                "grilla").get_selection().get_selected()
            self.cond = str(seleccion.get_value(iterador, 0))
            codcaja = str(seleccion.get_value(iterador, 7))
            caja = seleccion.get_value(iterador, 8)
            codestab = str(seleccion.get_value(iterador, 9))
            estab = seleccion.get_value(iterador, 10)
            ciudad = seleccion.get_value(iterador, 13)
            direccion = seleccion.get_value(iterador, 15)
            telefono = seleccion.get_value(iterador, 16)
            tipodoc = seleccion.get_value(iterador, 5)

            emision = seleccion.get_value(iterador, 1)
            vencimiento = seleccion.get_value(iterador, 2)
            inicio = seleccion.get_value(iterador, 3)
            ultimo = seleccion.get_value(iterador, 4)
            estado = seleccion.get_value(iterador, 20)

            direccion = "" if direccion is None else ", " + direccion
            telefono = "" if telefono is None else telefono

            if estado == "Vigente":
                self.fecha_emi = seleccion.get_value(iterador, 18)
                self.fecha_ven = seleccion.get_value(iterador, 19)

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

                self.obj("txt_00").set_text(self.cond)
                self.obj("txt_01").set_text(codestab)
                self.obj("txt_01_1").set_text(estab)
                self.obj("txt_01_2").set_text(ciudad + direccion)
                self.obj("txt_01_3").set_text(telefono)
                self.obj("txt_02").set_text(codcaja)
                self.obj("txt_02_1").set_text(caja)
                self.obj("txt_03").set_text(emision)
                self.obj("txt_04").set_text(vencimiento)
                self.obj("txt_05").set_value(inicio)
                self.obj("txt_06").set_value(ultimo)
            else:
                Mens.no_puede_modificar_eliminar_anular(
                    1, "Seleccionó:\n" + "\nNro. Timbrado: " + self.cond +
                    "\nCaja: " + codcaja + ", " + caja +
                    "\nEstablecimiento: " + codestab + ", " + estab +
                    "\nDirección: " + ciudad + direccion +
                    "\n\nEste Nro. de Timbrado se encuentra actualmente " +
                    estado + ".")
                self.obj("ventana").destroy()
                mostrar_ventana = False
        else:
            self.obj("txt_00").set_text("")
            self.obj("cmb_tipo_doc").set_active(0)

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

        if mostrar_ventana:
            self.obj("ventana").show()