예제 #1
0
 def __init__(self, padre):
     self.padre = padre
     arch = leerglade.leer('frm_recibos.glade')
     self.frm = arch.get_object
     self.frm('window1').set_title('Recibos')
     self.frm('window1').set_default_size(800, 600)
     self.entity = Recibos()
     self.detalle_recibos = DetalleRecibos()
     self.contactos = Contactos()
     self.cuentas = CuentasaCobrar()
     self.idapertura_caja = self.padre.idapertura_caja
     self.frm('window1').set_transient_for(self.padre.main('window1'))
     self.frm('window1').set_position(1)
     self.frm('window1').set_border_width(5)
     self.frm('window1').set_modal(True)
     self.frm('window1').show_all()
     arch.connect_signals(self)
     self.inicializar_campos()
예제 #2
0
class RegRecibos:
    def __init__(self, padre):
        self.padre = padre
        arch = leerglade.leer('frm_recibos.glade')
        self.frm = arch.get_object
        self.frm('window1').set_title('Recibos')
        self.frm('window1').set_default_size(800, 600)
        self.entity = Recibos()
        self.detalle_recibos = DetalleRecibos()
        self.contactos = Contactos()
        self.cuentas = CuentasaCobrar()
        self.idapertura_caja = self.padre.idapertura_caja
        self.frm('window1').set_transient_for(self.padre.main('window1'))
        self.frm('window1').set_position(1)
        self.frm('window1').set_border_width(5)
        self.frm('window1').set_modal(True)
        self.frm('window1').show_all()
        arch.connect_signals(self)
        self.inicializar_campos()
        #self.frm('window1').maximize()

    def inicializar_campos(self):
        self.frm('entry1').set_text('')
        self.frm('liststore1').clear()
        self.frm('label3').set_text('0')
        self.frm('entry1').grab_focus()

    def pegar_clientes(self, widget, event):
        if event.keyval == 65470:
            datos = self.contactos.all()
            busquedas.Buscar(self, datos, widget)


    def set_focus(self, widget):

        if widget == self.frm('entry1'):
            self.cargar_cuentas()
        widget.get_toplevel().child_focus(Gtk.DirectionType.TAB_FORWARD)

    def cargar_cuentas(self):
        if len(self.frm('entry1').get_text()) > 0:
            idcontacto = self.frm('entry1').get_text().split('-')[0]
            self.frm('liststore1').clear()
            for row in self.cuentas.cuentas_all(idcontacto):
                self.frm('liststore1').append([str(row[0]),
                                               str(row[1]),
                                               str(row[2]),
                                               Format.number(row[3]),
                                               row[4]])
        if len(self.frm('liststore1')) == 0:
            msg.errorMsgBox(self.frm('window1'),
                            "Cliente sin cuentas",
                            "Cliente sin cuentas pendientes de pago.")
    def sel_toggled(self, widget, path):
        self.frm('liststore1')[path][4] = not self.frm('liststore1')[path][4]
        self.calcular_pago()

    def calcular_pago(self):
        total = 0.0
        for row in self.frm('liststore1'):
            if row[4]:
                total += float(row[3].replace(',', ''))

        self.frm('label3').set_text(Format.number(total))
                                      
    def confirmar_cb(self, widget):
        recibo = self.entity.get_max()
        self.entity.numero = recibo
        self.entity.fecha = datetime.now().strftime("%d/%m/%Y")
        self.entity.idapertura_caja = self.idapertura_caja
        self.entity.idforma_transacciones = 1                               
        if self.entity.save():
            pass
        else:
            print "error al registrar recibos"
            return

        for row in self.frm('liststore1'):
            self.detalle_recibos.numero = recibo
            self.detalle_recibos.nro_factura = row[1]
            self.detalle_recibos.nro_timbrado = row[2]
            self.detalle_recibos.idpunto_expedicion = 1
            self.detalle_recibos.idestablecimiento = 1
            if self.detalle_recibos.save():
                pass
            else:
                print "error guardando datos detalle"
                return

        self.inicializar_campos()



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