def buscar_nro_nota_debito(self):
        timb = self.obj("txt_01_1").get_text()

        cursor = Op.consultar(
            self.conexion, "NumeroInicio, NumeroFin", "timbrados_s",
            " WHERE NroTimbrado = " + timb + " AND " +
            "idTipoDocumento = 3 AND FechaVencimiento > NOW() AND Anulado <> 1"
        )
        datos = cursor.fetchall()

        ini, fin = datos[0][0], datos[0][1]
        num_nota = Op.nuevoid(self.conexion,
                              self.tabla + "_s WHERE NroTimbrado = " + timb,
                              "NroNotaDebito")

        if int(num_nota) >= ini and int(num_nota) <= fin:
            self.obj("txt_00_3").set_text(Op.cadenanumeros(num_nota, 7))
        elif int(num_nota) < ini:
            self.obj("txt_00_3").set_text(Op.cadenanumeros(str(ini), 7))
        elif int(num_nota) > fin:
            Mens.error_generico(
                "¡ERROR!", "El nuevo Número de Nota de Débito es mayor " +
                "al último número\npara el Timbrado asignado a este Punto de Expedición."
                + "\n\nHable con el Administrador par resolver el problema.")
            self.estadoedicion(False)
            self.limpiarcampos()
Ejemplo n.º 2
0
    def funcion_items(self):
        self.guardar_encabezado()

        if self.editando_item:
            seleccion, iterador = self.obj(
                "grilla").get_selection().get_selected()
            item = str(seleccion.get_value(iterador, 4))
            cant = str(seleccion.get_value(iterador, 2))
            precio = str(seleccion.get_value(iterador, 3))

            self.obj("txt_it_00").set_text(self.cond_det)
            self.obj("txt_it_01").set_text(item)
            self.on_item_focus_out_event(self.obj("txt_it_01"), 0)
            self.obj("txt_it_02").set_text(cant)
            self.obj("txt_it_03").set_text(precio)
        else:
            self.obj("txt_it_00").set_text(
                Op.nuevoid(
                    self.conexion,
                    "pedidoventas_detalles_s WHERE NroPedidoVenta = " +
                    self.obj("txt_00").get_text(), "idDetalle"))

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

        self.estadoguardar(False)
        self.estadoitems(True)
Ejemplo n.º 3
0
    def funcion_conceptos(self):
        self.guardar_principal_comprobantes()

        if self.editando_concepto:
            seleccion, iterador = self.obj(
                "grilla").get_selection().get_selected()
            idcon = str(seleccion.get_value(iterador, 1))
            con = seleccion.get_value(iterador, 2)
            cant = str(seleccion.get_value(iterador, 3))
            monto = str(seleccion.get_value(iterador, 4))
            obs = seleccion.get_value(iterador, 6)

            self.obj("txt_c_01").set_text(self.cond_concepto)
            self.obj("txt_c_02").set_text(idcon)
            self.obj("txt_c_02_1").set_text(con)
            self.obj("txt_c_03").set_text(cant)
            self.obj("txt_c_04").set_text(monto)
            self.obj("txt_c_05").set_text(obs)
        else:
            self.obj("txt_c_01").set_text(
                Op.nuevoid(
                    self.conexion,
                    "comprobantepagos_detalles_s WHERE NroComprobante = " +
                    self.obj("txt_00").get_text(), "idDetalle"))

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

        self.obj("btn_guardar_concepto").set_sensitive(False)
        self.obj("grilla").get_selection().unselect_all()
        self.obj("barraestado").push(0, "")
Ejemplo n.º 4
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)
Ejemplo n.º 5
0
    def __init__(self, edit, origen):
        self.editando = edit
        self.nav = origen

        arch = Op.archivo("abm_denominaciones")
        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 Denominaciones")
        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(50)
        self.obj("txt_02").set_max_length(10)

        self.obj("txt_00").set_tooltip_text("Ingrese el Código de la Denominación")
        self.obj("txt_01").set_tooltip_text("Ingrese la Descripción de la Denominación")
        self.obj("txt_02").set_tooltip_text("Ingrese el Valor numérico de la Denominación")
        self.obj("txt_01").grab_focus()

        self.idMoneda = self.idTipoDen = -1
        Op.combos_config(self.nav.datos_conexion, self.obj("cmb_moneda"), "monedas_s", "idMoneda")
        Op.combos_config(self.nav.datos_conexion, self.obj("cmb_tipo_den"),
            "tipodenominaciones", "idTipoDenominacion")
        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))
            des = seleccion.get_value(iterador, 1)
            moneda = seleccion.get_value(iterador, 2)
            tipo = seleccion.get_value(iterador, 4)
            val = str(seleccion.get_value(iterador, 6))

            # Asignación de Moneda en Combo
            model, i = self.obj("cmb_moneda").get_model(), 0
            while model[i][0] != moneda: i += 1
            self.obj("cmb_moneda").set_active(i)

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

            self.obj("txt_00").set_text(self.cond)
            self.obj("txt_01").set_text(des)
            self.obj("txt_02").set_text(val)
        else:
            self.obj("txt_00").set_text(Op.nuevoid(self.nav.datos_conexion,
                self.nav.tabla + "_s", self.nav.campoid))
            self.obj("cmb_moneda").set_active(0)
            self.obj("cmb_tipo_den").set_active(0)

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

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

        self.obj("ventana").set_default_size(700, 500)
        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 del Grupo de Usuarios")

        self.obj("btn_guardar").set_tooltip_text("Presione este botón para guardar el registro del Grupo de Usuarios")
        self.obj("btn_cancelar").set_tooltip_text("Presione este botón para cerrar esta ventana sin guardar cambios")

        self.estadoedicion(True)
        self.estadoguardar(False)
        self.estadopermiso(False)

        self.txt_cod_tabla = self.obj("txt_cod_tabla")
        self.txt_des_tabla = self.obj("txt_des_tabla")

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

        self.obj("txt_00").set_tooltip_text("Ingrese el Código del Grupo de Usuarios")
        self.obj("txt_01").set_tooltip_text("Ingrese la Descripción del Grupo de Usuarios")
        self.obj("txt_01").grab_focus()

        self.obj("btn_nuevo").set_tooltip_text("Presione este botón para Agregar\nun permiso sobre una Tabla")
        self.obj("btn_modificar").set_tooltip_text("Presione este botón para Modificar\nel permiso sobre una Tabla")
        self.obj("btn_eliminar").set_tooltip_text("Presione este botón para Eliminar\nel permiso sobre una Tabla")

        self.obj("btn_guardar_tab").set_tooltip_text("Presione este botón para Guardar el registro")
        self.obj("btn_cancelar_tab").set_tooltip_text("Presione este botón para Cancelar esta operación")

        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))
            self.desc = seleccion.get_value(iterador, 1)

            self.obj("txt_00").set_text(self.cond)
            self.obj("txt_01").set_text(self.desc)
        else:
            self.obj("txt_00").set_text(Op.nuevoid(self.nav.datos_conexion,
                "grupousuarios_s", self.nav.campoid))
            self.obj("txt_01").set_text("")

        self.conexion = Op.conectar(self.nav.datos_conexion)
        self.config_grilla_tablas()
        self.cargar_grilla_tablas()

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

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

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

        self.obj("ventana").set_title("Creando Registro de Aguinaldo")
        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_01_2").set_max_length(12)
        self.obj("txt_02").set_max_length(10)
        self.obj("txt_05").set_max_length(100)

        self.obj("txt_00").set_tooltip_text("Ingrese el Código del Aguinaldo")
        self.obj("txt_01").set_tooltip_text(
            Mens.usar_boton("el Empleado cuyo Aguinaldo es registrado"))
        self.obj("txt_01_1").set_tooltip_text("Nombre y Apellido del Empleado")
        self.obj("txt_01_2").set_tooltip_text(
            "Ingrese el Nro. de Documento del Empleado")
        self.obj("txt_02").set_tooltip_text(
            Mens.usar_boton("el Contrato del Empleado seleccionado"))
        self.obj("txt_02_1").set_tooltip_text(
            "Cargo del Empleado dentro de la Empresa")
        self.obj("txt_02_2").set_tooltip_text("Salario Mensual del Empleado")
        self.obj("txt_03").set_tooltip_text(
            Mens.usar_boton(
                "el Monto en base al cual será calculado el Aguinaldo"))
        self.obj("txt_04").set_tooltip_text("Monto a pagar como Aguinaldo")
        self.obj("txt_05").set_tooltip_text(
            "Ingrese cualquier información adicional con respecto al Aguinaldo del Empleado"
        )
        self.obj("txt_02").grab_focus()

        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_cod_cnt, self.txt_crg_cnt, self.txt_sal_cnt = self.obj("txt_02"), \
            self.obj("txt_02_1"), self.obj("txt_02_2")

        self.idPersona, self.borrar_contrato, self.idTipoDoc = None, not edit, -1
        Op.combos_config(self.nav.datos_conexion, self.obj("cmb_tipo_doc"),
                         "tipodocumentos", "idTipoDocumento")
        arch.connect_signals(self)

        self.obj("txt_00").set_text(
            Op.nuevoid(self.nav.datos_conexion, self.nav.tabla + "_s",
                       self.nav.campoid))
        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()
Ejemplo n.º 8
0
    def __init__(self, edit, origen):
        self.editando = edit
        self.nav = origen

        arch = Op.archivo("abm_vehiculos")
        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 Vehículos")
        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(50)
        self.obj("txt_02").set_max_length(10)

        self.obj("txt_00").set_tooltip_text("Ingrese el Código del Vehículo")
        self.obj("txt_01").set_tooltip_text(
            "Ingrese el Número del Registro Único del Automotor (R.U.A.) del Vehículo"
        )
        self.obj("txt_02").set_tooltip_text(
            "Ingrese el Número de Placa del Vehículo")
        self.obj("txt_01").grab_focus()

        self.idMarcaVeh = -1
        Op.combos_config(self.nav.datos_conexion, self.obj("cmb_marca"),
                         "marcavehiculos", "idMarcaVehiculo")
        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))
            marca = seleccion.get_value(iterador, 1)
            rua = seleccion.get_value(iterador, 3)
            placa = seleccion.get_value(iterador, 4)

            self.obj("txt_00").set_text(self.cond)
            self.obj("txt_01").set_text(rua)
            self.obj("txt_02").set_text(placa)

            # Asignación de Moneda en Combo
            model, i = self.obj("cmb_marca").get_model(), 0
            while model[i][0] != marca:
                i += 1
            self.obj("cmb_marca").set_active(i)
        else:
            self.obj("txt_00").set_text(
                Op.nuevoid(self.nav.datos_conexion, self.nav.tabla + "_s",
                           self.nav.campoid))
            self.obj("cmb_marca").set_active(0)

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

        arch = Op.archivo("abm_monedas")
        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 Monedas")
        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(50)
        self.obj("txt_02").set_max_length(10)
        self.obj("txt_03").set_max_length(5)

        self.obj("txt_00").set_tooltip_text("Ingrese el Código de la Moneda")
        self.obj("txt_01").set_tooltip_text("Ingrese el Nombre de la Moneda")
        self.obj("txt_02").set_tooltip_text(
            Mens.usar_boton("el País de origen de la Moneda"))
        self.obj("txt_02_1").set_tooltip_text("Nombre del País")
        self.obj("txt_03").set_tooltip_text("Ingrese el Símbolo de la Moneda")
        self.obj("txt_01").grab_focus()

        self.txt_cod_pais, self.txt_des_pais = self.obj("txt_02"), self.obj(
            "txt_02_1")
        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))
            nombre = seleccion.get_value(iterador, 1)
            codpais = str(seleccion.get_value(iterador, 2))
            pais = seleccion.get_value(iterador, 3)
            simbolo = seleccion.get_value(iterador, 4)

            self.obj("txt_00").set_text(self.cond)
            self.obj("txt_01").set_text(nombre)
            self.obj("txt_02").set_text(codpais)
            self.obj("txt_02_1").set_text(pais)
            self.obj("txt_03").set_text(simbolo)
        else:
            self.obj("txt_00").set_text(
                Op.nuevoid(self.nav.datos_conexion, self.nav.tabla + "_s",
                           self.nav.campoid))

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

        arch = Op.archivo("abm_categorias")
        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 Categorías")
        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(50)
        self.obj("txt_02").set_max_length(10)

        self.obj("txt_00").set_tooltip_text("Ingrese el Código de la Categoría")
        self.obj("txt_01").set_tooltip_text("Ingrese la Descripción de la Categoría")
        self.obj("txt_02").set_tooltip_text(Mens.usar_boton("el Impuesto que grava la Categoría"))
        self.obj("txt_02_1").set_tooltip_text("Nombre del Impuesto que grava la Categoría")
        self.obj("txt_03").set_tooltip_text("Porcentaje que grava el Impuesto a la Categoría")
        self.obj("txt_01").grab_focus()

        self.txt_cod_imp, self.txt_des_imp, self.txt_por_imp = self.obj("txt_02"), \
            self.obj("txt_02_1"), self.obj("txt_03")
        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))
            descrip = seleccion.get_value(iterador, 1)
            codimp = str(seleccion.get_value(iterador, 2))
            imp = seleccion.get_value(iterador, 3)
            porc = str(seleccion.get_value(iterador, 4))

            self.obj("txt_00").set_text(self.cond)
            self.obj("txt_01").set_text(descrip)
            self.obj("txt_02").set_text(codimp)
            self.obj("txt_02_1").set_text(imp)
            self.obj("txt_03").set_text(porc)
        else:
            self.obj("txt_00").set_text(Op.nuevoid(self.nav.datos_conexion,
                self.nav.tabla + "_s", self.nav.campoid))

        self.nav.obj("grilla").get_selection().unselect_all()
        self.nav.obj("barraestado").push(0, "")
        self.obj("ventana").show()
Ejemplo n.º 11
0
    def on_btn_guardar_hora_clicked(self, objeto):
        cont = self.origen.obj("txt_00").get_text()
        page = self.obj("notebook").get_current_page()

        if page == 0:  # Horas Iguales
            ent = self.obj("txt_hora_1_ig").get_text()
            sal = self.obj("txt_hora_2_ig").get_text()

            guardar, dia = True, self.idPrimerDia
            hora = int(
                Op.nuevoid(
                    self.origen.conexion, "horarios_s "
                    "WHERE NroContrato = " +
                    self.origen.obj("txt_00").get_text(), "idHorario"))

            while guardar:
                Op.insertar(
                    self.origen.conexion, "horarios",
                    cont + ", " + str(hora) + ", " + str(self.idTurno) + ", " +
                    str(dia) + ", '" + ent + "', '" + sal + "'")

                if dia == self.idUltimoDia:
                    guardar = False
                    break

                dia += 1
                if dia > 7:  # No puede ser mayor a 7
                    dia = 1
                hora += 1

        else:  # Horas Diferenciadas
            hor = self.obj("txt_cod_dif").get_text()
            ent = self.obj("txt_hora_1_dif").get_text()
            sal = self.obj("txt_hora_2_dif").get_text()

            sql = cont + ", " + hor + ", " + str(self.idTurno) + ", " + \
                str(self.idDia) + ", '" + ent + "', '" + sal + "'"

            if not self.editando:
                Op.insertar(self.origen.conexion, "horarios", sql)
            else:
                Op.modificar(self.origen.conexion, "horarios",
                             self.hora + ", " + sql)

        self.cargar_grilla()
        self.on_btn_cancelar_hora_clicked(0)
        self.obj("btn_guardar").set_sensitive(True)
Ejemplo n.º 12
0
    def funcion_horario(self):
        if self.editando:
            seleccion, iterador = self.obj(
                "grilla").get_selection().get_selected()
            self.hora = str(seleccion.get_value(iterador, 0))
            idturno = seleccion.get_value(iterador, 1)
            iddia = seleccion.get_value(iterador, 3)
            entrada = seleccion.get_value(iterador, 5)
            salida = seleccion.get_value(iterador, 6)

            self.obj("txt_cod_dif").set_text(self.hora)
            self.obj("txt_hora_1_dif").set_text(entrada)
            self.obj("txt_hora_2_dif").set_text(salida)

            # Asignación de Día en Combo
            model, i = self.obj("cmb_dia").get_model(), 0
            while model[i][0] != iddia:
                i += 1
            self.obj("cmb_dia").set_active(i)

            # Asignación de Turno en Combo
            model, i = self.obj("cmb_turno_dif").get_model(), 0
            while model[i][0] != idturno:
                i += 1
            self.obj("cmb_turno_dif").set_active(i)

            self.obj("notebook").set_current_page(1)
            self.obj("notebook").set_show_tabs(False)
        else:
            self.obj("txt_cod_dif").set_text(
                Op.nuevoid(
                    self.origen.conexion, "horarios_s WHERE NroContrato = " +
                    self.origen.obj("txt_00").get_text(), "idHorario"))

            self.obj("cmb_primer_dia").set_active(0)
            self.obj("cmb_ultimo_dia").set_active(0)
            self.obj("cmb_turno_ig").set_active(0)
            self.obj("cmb_dia").set_active(0)
            self.obj("cmb_turno_dif").set_active(0)

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

        self.obj("btn_guardar_hora").set_sensitive(False)
        self.estadoedicion(True)
Ejemplo n.º 13
0
    def funcion_nuevo(self):
        self.obj("nuevo").set_position(1)
        self.obj("nuevo").set_title("Creando Usuario")
        self.obj("nuevo").set_modal(True)

        self.obj("btn_guardar_new").set_tooltip_text("Presione este botón para Guardar el registro de Usuarios")
        self.obj("btn_cancelar_new").set_tooltip_text("Presione este botón para Cancelar la operación")
        self.obj("btn_persona_new").set_tooltip_text("Presione este botón para buscar un Funcionario")
        self.obj("btn_guardar_new").set_sensitive(False)

        self.idTipoDoc = None
        self.txt_cod_per, self.txt_rzn_scl = self.obj("txt_new_per"), self.obj("txt_new_nomb")
        self.txt_nro_doc, self.cmb_tip_doc = self.obj("txt_new_doc"), self.obj("cmb_new_doc")

        self.obj("txt_new_cod").set_max_length(10)
        self.obj("txt_new_per").set_max_length(10)
        self.obj("txt_new_doc").set_max_length(12)
        self.obj("txt_new_alias").set_max_length(16)
        self.obj("txt_new_pass").set_max_length(50)
        self.obj("txt_new_conf").set_max_length(50)

        self.obj("txt_new_cod").set_tooltip_text("Ingrese el Código del Usuario")
        self.obj("txt_new_per").set_tooltip_text("Ingrese el Código del Funcionario que corresponda")
        self.obj("txt_new_nomb").set_tooltip_text("Nombre y Apellido del Funcionario seleccionado")
        self.obj("txt_new_doc").set_tooltip_text("Ingrese el Nro. de Documento del Funcionario")
        self.obj("txt_new_alias").set_tooltip_text("Ingrese el Alias del Usuario")
        self.obj("txt_new_pass").set_tooltip_text("Ingrese la Contraseña del Usuario")
        self.obj("txt_new_conf").set_tooltip_text("Confirme la Contraseña del Usuario")

        self.obj("txt_new_cod").set_text(Op.nuevoid(self.datos_conexion, "usuarios_s", "idUsuario"))
        self.obj("txt_new_per").set_text("")
        self.obj("txt_new_nomb").set_text("")
        self.obj("txt_new_doc").set_text("")
        self.obj("cmb_new_doc").set_active(0)
        self.obj("txt_new_alias").set_text("")
        self.obj("txt_new_pass").set_text("")
        self.obj("txt_new_conf").set_text("")

        self.obj("txt_new_per").grab_focus()

        self.obj("grilla").get_selection().unselect_all()
        self.obj("barraestado").push(0, "")
        self.obj("nuevo").show()
Ejemplo n.º 14
0
    def funcion_fechas(self):
        self.guardar_principal_vacaciones()
        self.pago_modificado = False

        if self.editando_fecha:
            seleccion, iterador = self.obj(
                "grilla").get_selection().get_selected()
            ini = seleccion.get_value(iterador, 1)
            fin = seleccion.get_value(iterador, 2)
            dias = str(seleccion.get_value(iterador, 3))
            comp = seleccion.get_value(iterador, 4)

            self.fechaini = seleccion.get_value(iterador, 6)
            self.fechafin = seleccion.get_value(iterador, 7)

            self.obj("txt_f_01").set_text(ini)
            self.obj("txt_f_02").set_text(fin)
            self.obj("txt_f_03").set_text(dias)

            if len(comp) == 0:
                self.editando_pago = False
            else:
                self.editando_pago = True
                self.obj("txt_f_04").set_text(comp)

        else:
            self.idToma = Op.nuevoid(
                self.conexion, "vacacionestomadas_s" + " WHERE idVacacion = " +
                self.obj("txt_00").get_text() + " AND NroContrato = " +
                self.obj("txt_02").get_text(), "idToma")
            self.editando_pago = False

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

        self.obj("btn_guardar_fecha").set_sensitive(False)
        self.obj("grilla").get_selection().unselect_all()
        self.obj("barraestado").push(0, "")
Ejemplo n.º 15
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.")
Ejemplo n.º 16
0
    def __init__(self, edit, origen, empresa=False):
        self.editando = edit
        self.nav = origen
        self.desde_empresa = empresa

        arch = Op.archivo("abm_establecimientos")
        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 Establecimiento")
        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(50)
        self.obj("txt_02").set_max_length(10)
        self.obj("txt_04").set_max_length(50)

        self.obj("txt_00").set_tooltip_text(
            "Ingrese el Nro. de Establecimiento")
        self.obj("txt_01").set_tooltip_text(
            "Ingrese el Nombre del Establecimiento")
        self.obj("txt_02").set_tooltip_text(
            Mens.usar_boton("la Empresa a la que pertenece"))
        self.obj("txt_02_1").set_tooltip_text("Nombre de la Empresa")
        self.obj("txt_03").set_tooltip_text(
            "Dirección o Localización de la Empresa")
        self.obj("txt_04").set_tooltip_text(
            "Número de Teléfono del Establecimiento")
        self.obj("txt_01").grab_focus()

        self.txt_cod_emp, self.txt_rzn_scl = self.obj("txt_02"), self.obj(
            "txt_02_1")
        self.idDirec, self.txt_des_dir = -1, self.obj("txt_03")

        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))
            nombre = seleccion.get_value(iterador, 1)
            razonsocial = seleccion.get_value(iterador, 3)
            ciudad = seleccion.get_value(iterador, 4)
            direccion = seleccion.get_value(iterador, 6)
            telefono = seleccion.get_value(iterador, 7)

            activo = True if seleccion.get_value(iterador, 8) == 1 else False
            direccion = "" if direccion is None else ", " + direccion
            telefono = "" if telefono is None else telefono

            empresa = str(seleccion.get_value(iterador, 9))
            self.idDirec = seleccion.get_value(iterador, 10)

            self.obj("txt_00").set_text(self.cond)
            self.obj("txt_01").set_text(nombre)
            self.obj("txt_02").set_text(empresa)
            self.obj("txt_02_1").set_text(razonsocial)
            self.obj("txt_03").set_text(ciudad + direccion)
            self.obj("txt_04").set_text(telefono)
            self.obj("rad_activo").set_active(activo)
        else:
            self.obj("txt_00").set_text(
                Op.nuevoid(self.nav.datos_conexion, "establecimientos_s",
                           "NroEstablecimiento"))
            self.obj("rad_activo").set_active(True)

        if self.desde_empresa:
            self.obj("txt_02").set_text(self.nav.obj("txt_00").get_text())
            self.obj("hbox3").set_visible(
                False)  # No permite cambiar de Empresa
            self.conexion = self.nav.conexion  # Utiliza la conexión de Empresas

            cursor = self.conexion.cursor()
            cursor.execute("SAVEPOINT establecimiento")
            cursor.close()
        else:
            self.conexion = Op.conectar(self.nav.datos_conexion)

        self.nav.obj("grilla").get_selection().unselect_all()
        self.nav.obj("barraestado").push(0, "")
        self.obj("ventana").show()
Ejemplo n.º 17
0
    def __init__(self, datos, tab):
        self.datos_conexion = datos
        self.tabla = tab

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

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

        self.obj("ventana").set_title("Notas de Pedido")
        Mens.boton_guardar_cancelar(self.obj("btn_guardar"),
                                    self.obj("btn_cancelar"))

        self.obj("txt_01").set_tooltip_text(
            "Ingrese el Número de Documento de Identidad del Cliente")
        self.obj("txt_01_1").set_tooltip_text(
            "Nombre y Apellido o Razón Social del Cliente")
        self.obj("btn_cliente").set_tooltip_text(
            "Presione este botón para buscar datos de un Cliente")

        self.obj("btn_nuevo_item").set_tooltip_text(
            "Presione este botón para agregar un nuevo Item")
        self.obj("btn_modificar_item").set_tooltip_text(
            "Presione este botón para modificar datos de un Item")
        self.obj("btn_eliminar_item").set_tooltip_text(
            "Presione este botón para eliminar un Item")

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

        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_cod_vnd, self.txt_nom_vnd = self.obj("txt_02"), self.obj(
            "txt_02_1")

        self.txt_cod_it, self.txt_bar_it, self.txt_nom_it = self.obj("txt_it_01"), \
            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")

        arch.connect_signals(self)

        self.obj("txt_00").set_text(
            Op.nuevoid(self.datos_conexion, self.tabla + "_s",
                       "NroPedidoVenta"))
        self.obj("txt_fecha").set_text(Cal.mysql_fecha(date.today()))
        self.obj("cmb_tipo_doc").set_active(0)
        self.obj("txt_01").grab_focus()

        self.estadoitems(False)
        self.estadoguardar(False)
        self.editando = False

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

        self.obj("ventana").show()
Ejemplo n.º 18
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"):
                contrato = self.obj("txt_02").get_text()

                if len(contrato) > 0 and Op.comprobar_numero(
                        int, objeto, "Código", self.obj("barraestado")):
                    # Al editar, comprueba que los valores son diferentes del original
                    busq = "" if not self.editando else " AND " + \
                        "(" + self.nav.campoid + " <> " + self.cond_id + \
                        " OR NroContrato <> " + self.cond_cont + ")"

                    Op.comprobar_unique(
                        self.nav.datos_conexion, self.nav.tabla + "_s",
                        self.nav.campoid,
                        valor + " AND NroContrato = " + contrato + busq,
                        objeto, self.obj("btn_guardar"),
                        self.obj("barraestado"),
                        "El Código introducido ya ha sido registado para este Contrato."
                    )

            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 Horas Extraordinarias
                            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_03"):
                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 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:
                    conexion = Op.conectar(self.nav.datos_conexion)
                    cursor = conexion.cursor()
                    cursor.execute("SELECT diferencia_horas(" + "'" +
                                   self.obj("txt_04").get_text() + "', " +
                                   "'" + self.obj("txt_05").get_text() + "')")
                    horas = cursor.fetchall()[0][0]
                    conexion.close()  # Finaliza la conexión

                    self.obj("txt_06").set_text(str(horas))
Ejemplo n.º 19
0
    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()
Ejemplo n.º 20
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()
Ejemplo n.º 21
0
    def __init__(self, edit, origen):
        self.editando = edit
        self.nav = origen

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

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

        edit = "Creando" if not self.editando else "Editando"
        self.obj("ventana").set_title(edit +
                                      " Registro de Comprobante de Pago")
        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_01_2").set_max_length(12)
        self.obj("txt_02").set_max_length(10)
        self.obj("txt_05").set_max_length(100)

        self.obj("txt_c_01").set_max_length(10)
        self.obj("txt_c_02").set_max_length(10)
        self.obj("txt_c_03").set_max_length(12)

        self.obj("txt_00").set_tooltip_text(
            "Ingrese el Número de Comprobante de Pago")
        self.obj("txt_01").set_tooltip_text(
            Mens.usar_boton("el Empleado cuyo Pago es registrado"))
        self.obj("txt_01_1").set_tooltip_text("Nombre y Apellido del Empleado")
        self.obj("txt_01_2").set_tooltip_text(
            "Ingrese el Nro. de Documento del Empleado")
        self.obj("txt_02").set_tooltip_text(
            Mens.usar_boton("el Contrato del Empleado seleccionado"))
        self.obj("txt_02_1").set_tooltip_text(
            "Cargo del Empleado dentro de la Empresa")
        self.obj("txt_03").set_tooltip_text(
            Mens.usar_boton("la Fecha de Inicio del Periodo de Pago"))
        self.obj("txt_04").set_tooltip_text(
            Mens.usar_boton("la Fecha de Finalización del Periodo de Pago"))
        self.obj("txt_05").set_tooltip_text(
            "Ingrese cualquier información adicional con respecto al Pago")
        self.obj("txt_02").grab_focus()

        self.obj("txt_c_01").set_tooltip_text(
            "Ingrese el Código del Detalle del Pago")
        self.obj("txt_c_02").set_tooltip_text(
            Mens.usar_boton("el Concepto de Pago"))
        self.obj("txt_c_03").set_tooltip_text(
            "Ingrese la Cantidad que es Pagada\n(días trabajados, horas extraordinarias, cantidad de hijos...)"
        )
        self.obj("txt_c_04").set_tooltip_text("Ingrese el Monto a Pagar")

        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_cod_cnt, self.txt_crg_cnt = self.obj("txt_02"), self.obj(
            "txt_02_1")
        self.txt_cod_con, self.txt_des_con = self.obj("txt_c_02"), self.obj(
            "txt_c_02_1")

        self.idPersona, self.borrar_contrato, self.idTipoDoc = None, not edit, -1
        Op.combos_config(self.nav.datos_conexion, self.obj("cmb_tipo_doc"),
                         "tipodocumentos", "idTipoDocumento")

        self.salariominimo = Op.obtener_salario_minimo(self.nav.datos_conexion)
        arch.connect_signals(self)

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

        if self.editando:
            seleccion, iterador = self.nav.obj(
                "grilla").get_selection().get_selected()
            self.cond = str(seleccion.get_value(iterador, 0))
            idcont = str(seleccion.get_value(iterador, 1))
            fini = seleccion.get_value(iterador, 9)
            ffin = seleccion.get_value(iterador, 10)
            fecha = seleccion.get_value(iterador, 13)[:-9]

            obs = seleccion.get_value(iterador, 14)
            obs = "" if obs is None else obs

            self.fechaini = seleccion.get_value(iterador, 21)
            self.fechafin = seleccion.get_value(iterador, 22)

            self.obj("txt_00").set_text(self.cond)
            self.obj("txt_02").set_text(idcont)
            self.obj("txt_03").set_text(fini)
            self.obj("txt_04").set_text(ffin)
            self.obj("txt_05").set_text(obs)

            self.focus_out_event(self.obj("txt_02"), 0)
            self.obj("lbl_fecha").set_text(fecha)

            self.cargar_grilla_conceptos()
            self.estadoguardar(True)
        else:
            self.obj("txt_00").set_text(
                Op.nuevoid(self.nav.datos_conexion, self.nav.tabla + "_s",
                           self.nav.campoid))
            self.obj("cmb_tipo_doc").set_active(0)

            self.obj("lbl_fecha").set_text(Cal.mysql_fecha(date.today()))
            self.cargar_grilla_conceptos()
            self.estadoguardar(False)

        self.principal_guardado = True
        self.estadoedicion(False)

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

        # Necesario para Establecimientos
        self.datos_conexion = self.nav.datos_conexion

        arch = Op.archivo("rrhh_empresas")
        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 " + self.nav.titulo)
        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_03").set_max_length(12)
        self.obj("txt_04").set_max_length(10)
        self.obj("txt_05").set_max_length(50)
        self.obj("txt_06").set_max_length(50)

        self.obj("txt_m_01").set_max_length(100)
        self.obj("txt_m_02").set_max_length(100)
        self.obj("txt_a_00").set_max_length(10)
        self.obj("txt_a_01").set_max_length(100)

        self.obj("txt_00").set_tooltip_text("Ingrese el Código de la Empresa")
        self.obj("txt_01").set_tooltip_text(Mens.usar_boton("al Propietario de la Empresa"))
        self.obj("txt_01_1").set_tooltip_text("Nombre y Apellido del Propietario")
        self.obj("txt_01_2").set_tooltip_text("Dirección Principal del Propietario")
        self.obj("txt_01_3").set_tooltip_text("Teléfono Principal del Propietario")
        self.obj("txt_02").set_tooltip_text("Ingrese el R.U.C. de la Empresa")
        self.obj("txt_02_1").set_tooltip_text("Ingrese el Dígito Verificador")
        self.obj("txt_03").set_tooltip_text("Ingrese el Nro. Patronal del Instituto de Previsión Social (IPS)")
        self.obj("txt_04").set_tooltip_text("Ingrese el Nro. Patronal del Ministerio de Justicia y Trabajo (MJT)")
        self.obj("txt_05").set_tooltip_text("Ingrese la Razón Social de la Empresa")
        self.obj("txt_06").set_tooltip_text("Ingrese el Nombre de Fantasía de la Empresa")
        self.obj("txt_01").grab_focus()

        Op.combos_config(self.nav.datos_conexion, self.obj("cmb_medio"),
            "tipomediocontactos", "idTipoMedioContacto")

        self.txt_cod_per, self.txt_rzn_scl = self.obj("txt_01"), self.obj("txt_01_1")
        self.txt_dir_per, self.txt_tel_per = self.obj("txt_01_2"), self.obj("txt_01_3")
        self.txt_cod_act, self.txt_des_act = self.obj("txt_a_00"), self.obj("txt_a_00_1")

        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))
            codprop = str(seleccion.get_value(iterador, 4))
            prop = seleccion.get_value(iterador, 6)
            direccion = seleccion.get_value(iterador, 7)
            telefono = seleccion.get_value(iterador, 8)
            ruc = seleccion.get_value(iterador, 1)[:-2]  # Quita el dígito verificador
            verif = seleccion.get_value(iterador, 11)
            ips = seleccion.get_value(iterador, 9)
            mjt = str(seleccion.get_value(iterador, 10))
            social = seleccion.get_value(iterador, 2)
            fantasia = seleccion.get_value(iterador, 3)

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

            self.obj("txt_00").set_text(self.cond)
            self.obj("txt_01").set_text(codprop)
            self.obj("txt_01_1").set_text(prop)
            self.obj("txt_01_2").set_text(direccion)
            self.obj("txt_01_3").set_text(telefono)
            self.obj("txt_02").set_text(ruc)
            self.obj("txt_02_1").set_value(verif)
            self.obj("txt_03").set_text(ips)
            self.obj("txt_04").set_text(mjt)
            self.obj("txt_05").set_text(social)
            self.obj("txt_06").set_text(fantasia)
        else:
            self.obj("txt_00").set_text(Op.nuevoid(self.nav.datos_conexion,
                self.nav.tabla + "_s", self.nav.campoid))

        self.conexion = Op.conectar(self.nav.datos_conexion)
        self.principal_guardado = True

        self.estadoedicion_medio_contacto(False)
        self.estadoedicion_actividad(False)

        self.config_grilla_establecimiento()
        self.cargar_grilla_establecimiento()
        self.config_grilla_medio()
        self.cargar_grilla_medio()
        self.config_grilla_actividad()
        self.cargar_grilla_actividad()

        self.nav.obj("grilla").get_selection().unselect_all()
        self.nav.obj("barraestado").push(0, "")
        self.obj("ventana").show()
Ejemplo n.º 23
0
    def on_btn_guardar_lote_clicked(self, objeto):
        lote = self.obj("txt_01").get_text()
        cant = self.obj("txt_03").get_text()

        if self.disponible >= float(cant):
            if self.tabla == "facturacompras":  # Registro de Lotes
                sql = "'" + lote + "', " + self.idItem + ", '" + self.fecha_venc + "'"

                if not self.editando_lote:
                    Op.insertar(self.conexion, "lotes", sql)
                else:
                    Op.modificar(self.conexion, "lotes",
                                 "'" + self.cond_lote + "', " + sql)

            # Buscar datos del registro con NroLote = NULL
            cursor = Op.consultar(
                self.conexion, "idMovimiento, CantidadInv",
                self.tabla + "_inventario_s", " WHERE " + self.cond_buscar +
                " AND idItem = " + self.idItem + " AND NroLote IS NULL")
            datos = cursor.fetchall()
            filas = cursor.rowcount

            if not self.editando:
                idmov = str(datos[0][0])
                cant_null = datos[0][1]

                # Sumar o Restar en Inventario a registro con NroLote = NULL
                if self.tabla in ("facturacompras", "notadebitocompras",
                                  "notacreditoventas"):
                    cant_null -= float(cant)  # Resta Cantidad
                elif self.tabla in ("notacreditocompras", "facturaventas",
                                    "notadebitoventas"):
                    cant_null += float(cant)  # Suma Cantidad

                if self.disponible == float(cant):
                    # Agrega lote al registro con NroLote = NULL
                    Op.modificar(
                        self.conexion, "inventario", self.idItem + ", " +
                        self.idItem + ", " + idmov + ", " + self.dep + ", " +
                        lote + ", " + cant + ", " + self.obs)
                else:
                    # Restar o Sumar cantidad al registro con NroLote = NULL
                    Op.modificar(
                        self.conexion, "inventario", self.idItem + ", " +
                        self.idItem + ", " + idmov + ", " + self.dep +
                        ", NULL, " + str(cant_null) + ", " + self.obs)

                    # Insertar registro con nueva cantidad
                    mov = Op.nuevoid(
                        self.conexion,
                        "inventario" + " WHERE idItem = " + self.idItem,
                        "idMovimiento")

                    Op.insertar(
                        self.conexion, "inventario",
                        self.idItem + ", " + mov + ", " + self.dep + ", " +
                        lote + ", " + cant + ", " + self.obs)
                    Op.insertar(
                        self.conexion, self.tabla + "_inventario",
                        self.cond_guardar + ", " + self.idItem + ", " + mov)
            else:
                # Agrega la nueva cantidad al registro que está editando
                Op.modificar(
                    self.conexion, "inventario", self.idItem + ", " +
                    self.idItem + ", " + self.idmov + ", " + self.dep + ", " +
                    lote + ", " + cant + ", " + self.obs)

                if self.disponible == float(cant):
                    if filas > 0:
                        # Ya no quedan disponibles, entonces borrar registro con NroLote = NULL
                        Op.eliminar(
                            self.conexion, self.tabla + "_inventario",
                            self.cond_guardar + ", " + self.idItem + ", " +
                            str(datos[0][0]))
                        Op.eliminar(self.conexion, "inventario",
                                    self.idItem + ", " + str(datos[0][0]))
                    else:
                        pass  # No hay registro con NroLote = NULL
                else:
                    if filas > 0:  # Modificar registro con NroLote = NULL
                        idmov = str(datos[0][0])
                        cant_null = datos[0][1]
                        cant = self.disponible - cant_null - float(cant)

                        Op.modificar(
                            self.conexion, "inventario", self.idItem + ", " +
                            self.idItem + ", " + idmov + ", " + self.dep +
                            ", " + lote + ", " + str(cant) + ", " + self.obs)

                    else:  # Insertar registro con NroLote = NULL
                        mov = Op.nuevoid(
                            self.conexion,
                            "inventario" + " WHERE idItem = " + self.idItem,
                            "idMovimiento")
                        cant = self.disponible - float(cant)

                        Op.insertar(
                            self.conexion, "inventario",
                            self.idItem + ", " + mov + ", " + self.dep +
                            ", NULL, " + str(cant) + ", " + self.obs)
                        Op.insertar(
                            self.conexion, self.tabla + "_inventario",
                            self.cond_guardar + ", " + self.idItem + ", " +
                            mov)

            self.cargar_grilla_lotes()
            self.estadoedicion(False)
        else:
            self.obj("barraestado").push(
                0, "La Cantidad de Ítems " + "NO puede ser superior a " +
                str(self.disponible) + ".")
Ejemplo n.º 24
0
    def __init__(self, edit, origen):
        self.editando = edit
        self.nav = origen

        arch = Op.archivo("abm_cotizaciones")
        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 Cotizaciones")
        Mens.boton_guardar_cancelar(self.obj("btn_guardar"),
                                    self.obj("btn_cancelar"))

        self.obj("txt_00").set_max_length(10)
        self.obj("txt_02").set_max_length(12)
        self.obj("txt_03").set_max_length(12)

        self.obj("txt_00").set_tooltip_text(
            "Ingrese el Código de la Cotización")
        self.obj("txt_01").set_tooltip_text(
            Mens.usar_boton("la Fecha de la Cotización"))
        self.obj("txt_02").set_tooltip_text(
            "Ingrese el Monto de Compra de la Cotización")
        self.obj("txt_03").set_tooltip_text(
            "Ingrese el Monto de Venta de la Cotización")
        self.obj("txt_01").grab_focus()

        self.idMoneda = -1
        Op.combos_config(self.nav.datos_conexion, self.obj("cmb_moneda"),
                         "monedas_s", "idMoneda")
        arch.connect_signals(self)

        if self.editando:
            seleccion, iterador = self.nav.obj(
                "grilla").get_selection().get_selected()
            self.cond_id = str(seleccion.get_value(iterador, 0))
            self.cond_moneda = seleccion.get_value(iterador, 1)
            fecha = seleccion.get_value(iterador, 3)
            compra = str(seleccion.get_value(iterador, 4))
            venta = str(seleccion.get_value(iterador, 5))
            self.fecha = seleccion.get_value(iterador, 6)

            # Asignación de Monedas en Combo
            model, i = self.obj("cmb_moneda").get_model(), 0
            while model[i][0] != self.cond_moneda:
                i += 1
            self.obj("cmb_moneda").set_active(i)

            self.obj("txt_00").set_text(self.cond_id)
            self.obj("txt_01").set_text(fecha)
            self.obj("txt_02").set_text(compra)
            self.obj("txt_03").set_text(venta)
        else:
            self.obj("txt_00").set_text(
                Op.nuevoid(self.nav.datos_conexion, self.nav.tabla + "_s",
                           self.nav.campoid))
            self.obj("cmb_moneda").set_active(0)

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

        arch = Op.archivo("rrhh_reposos")
        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 " + self.nav.titulo)
        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_01_2").set_max_length(12)
        self.obj("txt_02").set_max_length(10)
        self.obj("txt_03").set_max_length(20)
        self.obj("txt_08").set_max_length(100)

        self.obj("txt_00").set_tooltip_text("Ingrese el Código del Reposo")
        self.obj("txt_01").set_tooltip_text(Mens.usar_boton("el Empleado cuyo Reposo es registrado"))
        self.obj("txt_01_1").set_tooltip_text("Nombre y Apellido del Empleado")
        self.obj("txt_01_2").set_tooltip_text("Ingrese el Nro. de Documento del Empleado")
        self.obj("txt_02").set_tooltip_text(Mens.usar_boton("el Contrato del Empleado seleccionado"))
        self.obj("txt_02_1").set_tooltip_text("Cargo del Empleado dentro de la Empresa")
        self.obj("txt_03").set_tooltip_text("Ingrese el Nro. de Expediente o de Resolución que corresponde al Reposo del Empleado")
        self.obj("txt_04").set_tooltip_text(Mens.usar_boton("la Fecha de expedición del Expediente o de la Resolución"))
        self.obj("txt_05").set_tooltip_text(Mens.usar_boton("la Fecha de Inicio del Reposo del Empleado"))
        self.obj("txt_06").set_tooltip_text(Mens.usar_boton("la Fecha de Finalización del Reposo del Empleado"))
        self.obj("txt_07").set_tooltip_text("Tiempo de Duración, en Días, del Reposo del Empleado")
        self.obj("txt_08").set_tooltip_text("Ingrese cualquier información adicional con respecto al Reposo del Empleado")
        self.obj("txt_02").grab_focus()

        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_cod_cnt, self.txt_crg_cnt = self.obj("txt_02"), self.obj("txt_02_1")

        self.idPersona, self.borrar_contrato, self.idTipoDoc = None, not edit, -1
        Op.combos_config(self.nav.datos_conexion, self.obj("cmb_tipo_doc"), "tipodocumentos", "idTipoDocumento")
        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))
            idcont = str(seleccion.get_value(iterador, 1))
            idemp = str(seleccion.get_value(iterador, 2))
            tipodoc = seleccion.get_value(iterador, 3)
            nrodoc = seleccion.get_value(iterador, 4)
            nombre = seleccion.get_value(iterador, 5)
            cargo = seleccion.get_value(iterador, 8)
            fini = seleccion.get_value(iterador, 9)
            ffin = seleccion.get_value(iterador, 10)
            dias = str(seleccion.get_value(iterador, 11))
            exp = seleccion.get_value(iterador, 12)
            fexp = seleccion.get_value(iterador, 13)

            obs = seleccion.get_value(iterador, 14)
            obs = "" if obs is None else obs

            self.fechaini = seleccion.get_value(iterador, 19)
            self.fechafin = seleccion.get_value(iterador, 20)
            self.fechaexp = seleccion.get_value(iterador, 21)

            self.obj("txt_00").set_text(self.cond)
            self.obj("txt_01").set_text(idemp)
            self.obj("txt_01_1").set_text(nombre)
            self.obj("txt_01_2").set_text(nrodoc)
            self.obj("txt_02").set_text(idcont)
            self.obj("txt_02_1").set_text(cargo)
            self.obj("txt_03").set_text(exp)
            self.obj("txt_04").set_text(fexp)
            self.obj("txt_05").set_text(fini)
            self.obj("txt_06").set_text(ffin)
            self.obj("txt_07").set_text(dias)
            self.obj("txt_08").set_text(obs)

            # 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)
        else:
            self.obj("txt_00").set_text(Op.nuevoid(self.nav.datos_conexion,
                self.nav.tabla + "_s", self.nav.campoid))
            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()
Ejemplo n.º 26
0
    def on_btn_guardar_cuota_clicked(self, objeto):
        fact = self.obj("txt_fact").get_text()
        fact = "'" + fact + "'" if self.tabla == "cuentaspagar" else fact
        timb = self.obj("txt_timb").get_text()

        if self.obj("notebook").get_current_page() == 0:
            ini = int(
                Op.nuevoid(
                    self.datos_conexion, self.tabla + " WHERE NroTimbrado = " +
                    timb + " AND NroFactura = " + fact, "NroCuota"))

            resto = float(self.obj("txt_no_asignado").get_text())
            cant = float(self.obj("txt_i_00").get_text())
            monto = self.obj("txt_i_02").get_text()

            # Si cantidad es decimal, suma uno a la cantidad de cuotas
            if cant > int(cant):
                cant = int(cant) + ini + 1
            else:
                cant = int(cant) + ini

            # Valores Iniciales
            if self.pago == "Mensual":
                dia_venc = self.obj("txt_i_01_1").get_value_as_int()
                longitud_grilla = len(self.obj("grilla").get_model())

                if longitud_grilla == 0:  # Vacía
                    fecha = date.today()
                else:
                    conexion = Op.conectar(self.datos_conexion)
                    cursor = Op.consultar(
                        conexion, "FechaVencimiento", self.tabla,
                        " WHERE NroTimbrado = " + timb + " AND NroFactura = " +
                        fact + " ORDER BY NroCuota DESC")
                    fecha = cursor.fetchall()[0][0]
                    conexion.close()  # Finaliza la conexión

                anho = fecha.strftime("%Y")
                mes = fecha.strftime("%m")
                dia = fecha.strftime("%d")

                if longitud_grilla == 0:  # Vacía
                    if dia_venc < int(dia):
                        mes, anho = Cal.mes_mas_uno(mes, anho)
                else:
                    if dia_venc <= int(dia):
                        mes, anho = Cal.mes_mas_uno(mes, anho)

                dia = Op.cadenanumeros(dia_venc, 2)
            else:
                periodo = 7 if self.pago == "Semanal" else 14

                anho = self.fecha_inic[0:4]
                mes = self.fecha_inic[5:7]
                dia = self.fecha_inic[8:10]

            # Carga de Datos
            for nro in range(ini, cant):
                if int(mes) == 2:
                    # Años bisiestos: 1900, (2000), 2100, 2200, 2300, (2400), 2500
                    if int(anho) % 4 == 0:  # Es Múltiplo de 4
                        dia_max = 29
                        if int(anho) % 100 == 0:  # Pero NO es múltiplo de 100
                            if int(
                                    anho
                            ) % 400 != 0:  # Excepto si es múltiplo de 400
                                dia_max = 28
                    else:
                        dia_max = 28
                elif int(mes) in (4, 6, 9, 11):
                    dia_max = 30
                else:
                    dia_max = 31

                if self.pago == "Mensual":
                    if int(dia) > dia_max:
                        dia = str(dia_max)

                fecha = "'" + anho + "-" + mes + "-" + dia + "'"
                monto = str(resto) if float(monto) > resto else monto
                resto -= float(monto)

                sql = timb + ", " + fact + ", " + str(
                    nro) + ", " + fecha + ", " + monto
                Op.insertar(self.conexion, self.tabla, sql)

                if resto > 0:
                    # Modifica valores para proxima cuota
                    if self.pago == "Mensual":
                        dia = Op.cadenanumeros(int(dia_venc), 2)
                        mes, anho = Cal.mes_mas_uno(mes, anho)
                    else:
                        dia = str(int(dia) + periodo)
                        if int(dia) > dia_max:
                            dia = str(int(dia) - dia_max)
                            mes, anho = Cal.mes_mas_uno(mes, anho)
        else:
            nro = self.obj("txt_d_00").get_text()
            monto = self.obj("txt_d_02").get_text()

            sql = timb + ", " + fact + ", " + nro + ", '" + self.fecha_venc + "', " + monto

            if not self.editando_cuota:
                Op.insertar(self.conexion, self.tabla, sql)
            else:
                Op.modificar(self.conexion, self.tabla,
                             self.cond_cuota + ", " + sql)

        self.cargar_grilla_cuotas()
        self.on_btn_cancelar_cuota_clicked(0)
Ejemplo n.º 27
0
    def __init__(self, edit, origen):
        self.editando = edit
        self.nav = origen

        arch = Op.archivo("rrhh_gratificaciones")
        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 Gratificación")
        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_01_2").set_max_length(12)
        self.obj("txt_02").set_max_length(10)
        self.obj("txt_03").set_max_length(12)
        self.obj("txt_04").set_max_length(100)

        self.obj("txt_00").set_tooltip_text("Ingrese el Código de la Gratificación")
        self.obj("txt_01").set_tooltip_text(Mens.usar_boton("el Empleado cuya Gratificación es registrada"))
        self.obj("txt_01_1").set_tooltip_text("Nombre y Apellido del Empleado")
        self.obj("txt_01_2").set_tooltip_text("Ingrese el Nro. de Documento del Empleado")
        self.obj("txt_02").set_tooltip_text(Mens.usar_boton("el Contrato del Empleado seleccionado"))
        self.obj("txt_02_1").set_tooltip_text("Cargo del Empleado dentro de la Empresa")
        self.obj("txt_02_2").set_tooltip_text("Salario Mensual del Empleado")
        self.obj("txt_03").set_tooltip_text("Ingrese el Monto a pagar como Gratificación")
        self.obj("txt_04").set_tooltip_text("Ingrese cualquier información adicional con respecto a la Gratificación del Empleado")
        self.obj("txt_02").grab_focus()

        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_cod_cnt, self.txt_crg_cnt, self.txt_sal_cnt = self.obj("txt_02"), \
            self.obj("txt_02_1"), self.obj("txt_02_2")

        self.idPersona, self.borrar_contrato = None, not edit
        self.idTipoDoc = self.idMotivoGratificacion = -1
        Op.combos_config(self.nav.datos_conexion, self.obj("cmb_tipo_doc"), "tipodocumentos", "idTipoDocumento")
        Op.combos_config(self.nav.datos_conexion, self.obj("cmb_motivo"), "motivogratificaciones", "idMotivoGratificacion")

        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))
            idcont = str(seleccion.get_value(iterador, 1))
            motivo = seleccion.get_value(iterador, 9)
            monto = str(seleccion.get_value(iterador, 11))

            obs = seleccion.get_value(iterador, 13)
            obs = "" if obs is None else obs

            self.obj("txt_00").set_text(self.cond)
            self.obj("txt_02").set_text(idcont)
            self.obj("txt_03").set_text(monto)
            self.obj("txt_04").set_text(obs)

            # Asignación de Motivo en Combo
            model, i = self.obj("cmb_motivo").get_model(), 0
            while model[i][0] != motivo: i += 1
            self.obj("cmb_motivo").set_active(i)

            self.focus_out_event(self.obj("txt_02"), 0)
        else:
            self.obj("txt_00").set_text(Op.nuevoid(self.nav.datos_conexion,
                self.nav.tabla + "_s", self.nav.campoid))
            self.obj("cmb_tipo_doc").set_active(0)
            self.obj("cmb_motivo").set_active(0)

        self.nav.obj("grilla").get_selection().unselect_all()
        self.nav.obj("barraestado").push(0, "")
        self.obj("ventana").show()
Ejemplo n.º 28
0
    def __init__(self, edit, origen, contr=None):
        self.editando = edit
        self.contrato = contr  # Está creando desde Contratos
        self.nav = origen

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

        self.obj("ventana").set_position(1)
        self.obj("ventana").set_default_size(500, 550)
        self.obj("ventana").set_modal(True)

        edit = "Creando" if not self.editando else "Editando"
        self.obj("ventana").set_title(edit + " Registro de Vendedores")
        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_02_2").set_max_length(12)

        self.obj("txt_00").set_tooltip_text("Ingrese el Código del Vendedor")
        self.obj("txt_01").set_tooltip_text(Mens.usar_boton("el Contrato del Vendedor"))
        self.obj("txt_02").set_tooltip_text(Mens.usar_boton("el Vendedor con quien se celebró el Contrato"))
        self.obj("txt_02_1").set_tooltip_text("Nombre y Apellido del Vendedor")
        self.obj("txt_02_2").set_tooltip_text("Ingrese el Nro. de Documento del Vendedor")
        self.obj("txt_02_3").set_tooltip_text("Dirección Principal del Vendedor")
        self.obj("txt_02_4").set_tooltip_text("Teléfono del Vendedor")

        self.txt_cod_cnt, self.idTipoDoc = self.obj("txt_01"), -1
        self.txt_cod_per, self.txt_rzn_scl = self.obj("txt_02"), self.obj("txt_02_1")
        self.txt_nro_doc, self.cmb_tip_doc = self.obj("txt_02_2"), self.obj("cmb_tipo_doc")
        self.txt_dir_per, self.txt_tel_per = self.obj("txt_02_3"), self.obj("txt_02_4")

        self.txt_cod_it = self.obj("txt_it_00")
        self.txt_bar_it, self.txt_nom_it = self.obj("txt_it_00_1"), self.obj("txt_it_00_2")
        self.txt_cod_pres, self.txt_des_pres = self.obj("txt_it_00_3"), self.obj("txt_it_00_4")

        self.idPersona, self.borrar_contrato, self.idTipoDoc = None, not edit, -1
        Op.combos_config(self.nav.datos_conexion, self.obj("cmb_tipo_doc"), "tipodocumentos", "idTipoDocumento")
        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))
            contrato = str(seleccion.get_value(iterador, 1))
            empleado = str(seleccion.get_value(iterador, 2))
            tipodoc = seleccion.get_value(iterador, 3)
            nrodoc = seleccion.get_value(iterador, 4)
            nombre = seleccion.get_value(iterador, 5)
            direccion = seleccion.get_value(iterador, 6)
            telefono = seleccion.get_value(iterador, 7)

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

            self.obj("txt_00").set_text(self.cond)
            self.obj("txt_01").set_text(contrato)
            self.obj("txt_02").set_text(empleado)
            self.obj("txt_02_1").set_text(nombre)
            self.obj("txt_02_2").set_text(nrodoc)
            self.obj("txt_02_3").set_text(direccion)
            self.obj("txt_02_4").set_text(telefono)

            # 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)
        else:
            self.obj("txt_00").set_text(Op.nuevoid(self.nav.datos_conexion,
                "vendedores_s", "idVendedor"))
            self.obj("cmb_tipo_doc").set_active(0)

        self.conexion = Op.conectar(self.nav.datos_conexion)
        self.principal_guardado = True

        self.estadoedicion(False)
        self.config_grilla_categorias()
        self.cargar_grilla_categorias()
        self.config_grilla_items()
        self.cargar_grilla_items()

        if self.contrato is None:
            self.nav.obj("grilla").get_selection().unselect_all()
            self.nav.obj("barraestado").push(0, "")
        else:
            # Datos del Contrato del Empleado
            self.obj("txt_01").set_text(self.contrato)
            self.focus_out_event(self.obj("txt_01"), 0)

            # No puede cambiar el Empleado ni el Contrato
            self.obj("vbox1").set_sensitive(False)

        self.obj("ventana").show()
Ejemplo n.º 29
0
    def __init__(self, edit, origen):
        self.editando = edit
        self.nav = origen

        # Necesario para Vendedores
        self.datos_conexion = self.nav.datos_conexion

        arch = Op.archivo("rrhh_contratos")
        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 Contratos")
        Mens.boton_guardar_cancelar(self.obj("btn_guardar"), self.obj("btn_cancelar"))
        self.permiso_vendedores()

        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_00").set_tooltip_text("Ingrese el Código de Contrato")
        self.obj("txt_01").set_tooltip_text(Mens.usar_boton("el Empleado con quien se celebró el Contrato"))
        self.obj("txt_01_2").set_tooltip_text("Ingrese el Nro. de Documento del Empleado")

        self.obj("txt_04").set_tooltip_text(Mens.usar_boton("la Fecha de Inicio de Actividades"))
        self.obj("txt_05").set_tooltip_text(Mens.usar_boton("la Fecha de Finalización de Actividades"))
        self.obj("txt_06").set_tooltip_text(Mens.usar_boton("la Fecha de Inicio del Periodo de Prueba"))
        self.obj("txt_07").set_tooltip_text(Mens.usar_boton("la Fecha de Finalización del Periodo de Prueba"))

        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")

        Op.combos_config(self.nav.datos_conexion, self.obj("cmb_tipo_doc"), "tipodocumentos", "idTipoDocumento")
        Op.combos_config(self.nav.datos_conexion, self.obj("cmb_cargo"), "cargos", "idCargo")
        Op.combos_config(self.nav.datos_conexion, self.obj("cmb_tipo_contrato"), "tipocontratos", "idTipoContrato")
        Op.combos_config(self.nav.datos_conexion, self.obj("cmb_periodo_pago"), "periodopagos", "idPeriodoPago")
        Op.combos_config(self.nav.datos_conexion, self.obj("cmb_forma_pago"), "formapagos", "idFormaPago")
        Op.combos_config(self.nav.datos_conexion, self.obj("cmb_tipo_salario"), "tiposalarios", "idTipoSalario")

        self.salariominimo = Op.obtener_salario_minimo(self.nav.datos_conexion)
        arch.connect_signals(self)

        self.obj("cmb_tipo_doc").set_active(0)
        self.obj("cmb_cargo").set_active(0)
        self.obj("cmb_tipo_contrato").set_active(0)
        self.obj("cmb_periodo_pago").set_active(0)
        self.obj("cmb_forma_pago").set_active(0)
        self.obj("cmb_tipo_salario").set_active(0)

        if self.editando:
            seleccion, iterador = self.nav.obj("grilla").get_selection().get_selected()
            self.cond = str(seleccion.get_value(iterador, 0))
            idper = str(seleccion.get_value(iterador, 1))
            tipodoc = seleccion.get_value(iterador, 2)
            nrodoc = seleccion.get_value(iterador, 3)
            nombre = seleccion.get_value(iterador, 4)
            direccion = seleccion.get_value(iterador, 6)
            telefono = seleccion.get_value(iterador, 7)

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

            self.obj("txt_00").set_text(self.cond)
            self.obj("txt_01").set_text(idper)
            self.obj("txt_01_1").set_text(nombre)
            self.obj("txt_01_2").set_text(nrodoc)
            self.obj("txt_01_3").set_text(direccion)
            self.obj("txt_01_4").set_text(telefono)

            # 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)

            cargo = seleccion.get_value(iterador, 12)
            formapago = seleccion.get_value(iterador, 14)
            periodopago = seleccion.get_value(iterador, 16)
            tipocontrato = seleccion.get_value(iterador, 18)
            tiposalario = seleccion.get_value(iterador, 20)

            # Asignación de Cargo en Combo
            model, i = self.obj("cmb_cargo").get_model(), 0
            while model[i][0] != cargo: i += 1
            self.obj("cmb_cargo").set_active(i)

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

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

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

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

            # Salario
            minimo = True if seleccion.get_value(iterador, 34) == 1 else False
            cantsal = seleccion.get_value(iterador, 35)
            salario = str(seleccion.get_value(iterador, 24))

            self.obj("rad_minimo").set_active(minimo)
            if cantsal is not None:
                self.obj("txt_02").set_value(float(cantsal))
            self.obj("txt_03").set_text(salario)

            # Fechas
            fecha_ini = seleccion.get_value(iterador, 22)
            fecha_fin = seleccion.get_value(iterador, 23)
            prueba_ini = seleccion.get_value(iterador, 25)
            prueba_fin = seleccion.get_value(iterador, 26)

            self.obj("txt_04").set_text(fecha_ini)
            self.obj("txt_05").set_text(fecha_fin)
            self.obj("txt_06").set_text(prueba_ini)
            self.obj("txt_07").set_text(prueba_fin)

            self.fecha_ini = seleccion.get_value(iterador, 30)
            self.fecha_fin = seleccion.get_value(iterador, 31)
            self.prueba_ini = seleccion.get_value(iterador, 32)
            self.prueba_fin = seleccion.get_value(iterador, 33)
        else:
            self.obj("txt_00").set_text(Op.nuevoid(self.nav.datos_conexion,
                self.nav.tabla + "_s", self.nav.campoid))

            self.obj("rad_minimo").set_active(True)
            self.fecha_ini = self.fecha_fin = self.prueba_ini = self.prueba_fin = None

        self.conexion = Op.conectar(self.nav.datos_conexion)
        self.principal_guardado = True

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

        arch = Op.archivo("rrhh_salidas")
        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 Salidas")
        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_01_2").set_max_length(12)
        self.obj("txt_03").set_max_length(10)
        self.obj("txt_04").set_max_length(100)

        self.obj("txt_00").set_tooltip_text("Ingrese el Código de la Salida")
        self.obj("txt_01").set_tooltip_text(
            Mens.usar_boton("el Empleado cuya Salida es registrada"))
        self.obj("txt_01_1").set_tooltip_text("Nombre y Apellido del Empleado")
        self.obj("txt_01_2").set_tooltip_text(
            "Ingrese el Nro. de Documento del Empleado")
        self.obj("txt_02").set_tooltip_text(
            Mens.usar_boton("la Fecha de Salida del Empleado seleccionado"))
        self.obj("txt_03").set_tooltip_text(
            Mens.usar_boton(
                "el Comprobante de Pago en que se procede a la liquidación del Empleado"
            ))
        self.obj("txt_04").set_tooltip_text(
            "Ingrese cualquier información adicional con respecto a la Salida del Empleado"
        )
        self.obj("txt_01").grab_focus()

        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_cod_cmp = self.obj("txt_03")

        self.idTipoDoc = self.idMotivoSalida = -1
        Op.combos_config(self.nav.datos_conexion, self.obj("cmb_tipo_doc"),
                         "tipodocumentos", "idTipoDocumento")
        Op.combos_config(self.nav.datos_conexion, self.obj("cmb_motivo"),
                         "motivosalidas", "idMotivoSalida")
        self.pago_modificado = False

        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))
            idemp = str(seleccion.get_value(iterador, 1))
            tipodoc = seleccion.get_value(iterador, 2)
            nrodoc = seleccion.get_value(iterador, 3)
            nombre = seleccion.get_value(iterador, 4)
            fecha = seleccion.get_value(iterador, 7)
            compr = seleccion.get_value(iterador, 8)
            motivo = seleccion.get_value(iterador, 10)
            obs = seleccion.get_value(iterador, 12)
            obs = "" if obs is None else obs

            self.fecha = seleccion.get_value(iterador, 17)

            self.obj("txt_00").set_text(self.cond)
            self.obj("txt_01").set_text(idemp)
            self.obj("txt_01_1").set_text(nombre)
            self.obj("txt_01_2").set_text(nrodoc)
            self.obj("txt_02").set_text(fecha)

            self.obj("txt_04").set_text(obs)

            # 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 Motivo en Combo
            model, i = self.obj("cmb_motivo").get_model(), 0
            while model[i][0] != motivo:
                i += 1
            self.obj("cmb_motivo").set_active(i)

            if len(compr) == 0:
                self.editando_pago = False
            else:
                self.editando_pago = True
                self.obj("txt_03").set_text(compr)

        else:
            self.obj("txt_00").set_text(
                Op.nuevoid(self.nav.datos_conexion, self.nav.tabla + "_s",
                           self.nav.campoid))
            self.obj("cmb_tipo_doc").set_active(0)
            self.obj("cmb_motivo").set_active(0)

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