Ejemplo n.º 1
0
 def __init__(self, padre):
     self.padre = padre
     arch = leerglade.leer('nav_expediciones.glade')
     self.nav = arch.get_object
     self.nav('window1').set_title('Registro de Punto de Expediciones')
     self.nav('window1').set_default_size(800, 600)
     self.nav('window1').set_position(1)
     self.nav('bt_nuevo').set_label('Nuevo')
     self.nav('bt_editar').set_label('Editar')
     self.nav('bt_eliminar').set_label('Eliminar')
     self.nav('bt_cerrar').set_label('Cerrar')
     self.entity = PuntoExpediciones()
     self.establecimeintos = Establecimientos()
     self.nav('window1').set_transient_for(self.padre.main('window1'))
     self.nav('window1').set_modal(True)
     self.nav('window1').set_border_width(5)
     self.nav('window1').show_all()
     arch.connect_signals(self)
     self.consultar()
Ejemplo n.º 2
0
class RegExpediciones:
    def __init__(self, padre):
        self.padre = padre
        arch = leerglade.leer('nav_expediciones.glade')
        self.nav = arch.get_object
        self.nav('window1').set_title('Registro de Punto de Expediciones')
        self.nav('window1').set_default_size(800, 600)
        self.nav('window1').set_position(1)
        self.nav('bt_nuevo').set_label('Nuevo')
        self.nav('bt_editar').set_label('Editar')
        self.nav('bt_eliminar').set_label('Eliminar')
        self.nav('bt_cerrar').set_label('Cerrar')
        self.entity = PuntoExpediciones()
        self.establecimeintos = Establecimientos()
        self.nav('window1').set_transient_for(self.padre.main('window1'))
        self.nav('window1').set_modal(True)
        self.nav('window1').set_border_width(5)
        self.nav('window1').show_all()
        arch.connect_signals(self)
        self.consultar()

    def consultar(self, widget=None):
        self.nav('liststore1').clear()
        color = False
        for row in self.entity.all(order_by=1, descripcion__ilike='%'+self.nav('entry1').get_text()+'%'):
            if not color:
                t_color = "#FFFFDA"
                color = True
            else:
                t_color = "#A9FFA9"
                color = False
            self.nav('liststore1').append([str(row[0]), row[1], str(row[2]), t_color])

        if len(self.nav('liststore1')) == 0:
            self.nav('bt_editar').set_sensitive(False)
            self.nav('bt_eliminar').set_sensitive(False)
            self.nav('label1').set_text(' 0 Registros Encontrados')
        else:
            self.nav('bt_editar').set_sensitive(True)
            self.nav('bt_eliminar').set_sensitive(True)
            self.nav('label1').set_text(' %s Registros Encontrados' % len(self.nav('liststore1')))

        self.nav('entry1').set_text(self.nav('entry1').get_text().upper())

    def bt_nuevo_cb(self, widget):
        self.formulario()
        self.cargar_combos()
        self.frm('entry1').set_text(str(self.entity.get_max_ex(self.get_active_text())))
        self.frm('entry1').grab_focus()

    def bt_editar_cb(self, widget):
        sl, it = self.nav('treeview1').get_selection().get_selected()
        try:
            pk = sl.get_value(it, 0)
            est = sl.get_value(it, 2)
        except:
            msg.errorMsgBox(self.nav('window1'), "Sin selección", "Es necesario seleccionar un registo para la edición")
            return

        datos = self.entity.find(idpunto_expedicion=pk, idestablecimiento=est)
        self.formulario()
        self.frm('entry1').set_text(str(self.entity.idpunto_expedicion))
        self.frm('entry2').set_text(self.entity.descripcion)
        self.set_active_combo(self.entity.idestablecimiento)

        self.frm('combobox1').set_sensitive(False)

    def bt_eliminar_cb(self, widget):
        sl, it = self.nav('treeview1').get_selection().get_selected()
        try:
            pk = sl.get_value(it, 0)
            est = sl.get_value(it, 2)
        except:
            msg.errorMsgBox(self.nav('window1'), "Sin selección", "Es necesario seleccionar un registo")
            return
        res = msg.preguntaMsgBox(self.nav('window1'), "Eliminar Registro", "Estas Seguro?")

        if res == -8:
            datos = self.entity.find(idpunto_expedicion=pk, idestablecimiento=est)
            if self.entity.delete():
                self.consultar()

    def bt_cerrar_cb(self, widget):
        self.nav('window1').destroy()

    def formulario(self):
        arch = leerglade.leer('frm_expediciones.glade')
        self.frm = arch.get_object
        self.frm('window1').set_default_size(500, -1)
        self.frm('window1').set_transient_for(self.nav('window1'))
        self.frm('window1').set_position(1)
        self.frm('window1').set_modal(True)
        self.frm('window1').set_border_width(5)
        self.frm('window1').set_title('Formulario de Registro')
        self.frm('window1').show_all()
        arch.connect_signals(self)
        self.validar_entrys(None)
        self.cargar_combos()

    def validar_entrys(self, widget=None):
        if len(self.frm('entry1').get_text()) == 0 \
            or len(self.frm('entry2').get_text()) == 0:
            self.frm('button2').set_sensitive(False)
        else:
            self.frm('button2').set_sensitive(True)

        if widget is not None:
            #convierte todos los valores de los campos en mayusculas
            widget.set_text(widget.get_text().upper())

    def guardar_cb(self, widget):

        self.entity.idpunto_expedicion = self.frm('entry1').get_text()
        self.entity.descripcion = self.frm('entry2').get_text()
        self.entity.idestablecimiento = self.get_active_text()
        if self.entity.save():
            self.frm('window1').destroy()
            self.consultar()

    def cancelar_cb(self, widget):
        self.frm('window1').destroy()

    def cargar_combos(self):
        self.frm('liststore1').clear()
        for row in self.establecimeintos.all(order_by=1, direccion__ilike="%%"):
            self.frm('liststore1').append([str(row[0])+'-'+row[1]])
        self.frm('combobox1').set_active(0)

    def set_active_combo(self, pk):
        it = 0
        for row in self.frm('liststore1'):
            if row[0].split('-')[0] == str(pk):
                self.frm('combobox1').set_active(it)
                break
            it += 1

    def get_active_text(self):
        it = self.frm('combobox1').get_active()
        if len(self.frm('liststore1')) == 0:
            return 0
        else:
            return self.frm('liststore1')[it][0].split('-')[0]

    def combo_changed_cb(self, widget):
        self.frm('entry1').set_text(str(self.entity.get_max_ex(self.get_active_text())))

    def set_focus(self, widget):
        widget.get_toplevel().child_focus(Gtk.DirectionType.TAB_FORWARD)