Esempio n. 1
0
 def inicializar_ventana(self):
     """
     Inicializa los controles de la ventana, estableciendo sus
     valores por defecto, deshabilitando los innecesarios,
     rellenando los combos, formateando el TreeView -si lo hay-...
     """
     # Inicialmente no se muestra NADA. Sólo se le deja al
     # usuario la opción de buscar o crear nuevo.
     self.activar_widgets(False)
     # Inicialización del resto de widgets:
     empls = [(c.id, c.nombre) 
              for c in pclases.Empleado.select(orderBy = "nombre")]
     utils.rellenar_lista(self.wids['cb_empleado'], empls)
     self.wids['b_guardar'] = gtk.Button("N/A")
     self.wids['b_guardar'].set_property("visible", False)
     self.wids['b_guardar'].set_sensitive(False)
     cols = (("Día", "gobject.TYPE_STRING", False, True, True, None), 
             ("Rendimiento", "gobject.TYPE_STRING", False,True,False,None), 
             ("Producción personal", "gobject.TYPE_STRING", False, True, 
                 False, None), 
             ("Ratio diario", "gobject.TYPE_STRING", False, True, False, 
                 None), 
             ("Media global", "gobject.TYPE_STRING", False, True, False, 
                 None), 
             ("nihil", "gobject.TYPE_INT64", False, False, False, None))
     tv = self.wids['tv_datos']
     utils.preparar_listview(tv, cols)
     tv.get_column(1).get_cell_renderers()[0].set_property('xalign', 0.9)
     tv.get_column(2).get_cell_renderers()[0].set_property('xalign', 0.9)
     tv.get_column(3).get_cell_renderers()[0].set_property('xalign', 0.9)
     tv.get_column(4).get_cell_renderers()[0].set_property('xalign', 0.9)
     self.colorear(tv)
 def inicializar_ventana(self):
     """
     Inicializa los controles de la ventana, estableciendo sus
     valores por defecto, deshabilitando los innecesarios,
     rellenando los combos, formateando el TreeView -si lo hay-...
     """
     # Inicialmente no se muestra NADA. Sólo se le deja al
     # usuario la opción de buscar o crear nuevo.
     self.wids['b_actualizar'].set_sensitive(False)
     self.wids['b_guardar'].set_sensitive(False)
     self.wids['b_nuevo'].set_sensitive(True)
     self.wids['b_buscar'].set_sensitive(True)
     self.activar_widgets(False)
     # Inicialización del resto de widgets:
     cols = (('Código', 'gobject.TYPE_STRING', False, True, False, None),
             ('Descripción', 'gobject.TYPE_STRING', False, True, True, None),
             ('Cantidad', 'gobject.TYPE_STRING', True, True, False, 
                 self.cambiar_cantidad_ldv),
             ('IDLDV', 'gobject.TYPE_INT64', False, False, False, None)
            )
     utils.preparar_treeview(self.wids['tv_ldvs'], cols)
     self.wids['tv_ldvs'].get_selection().set_mode(gtk.SELECTION_MULTIPLE)
     almacenes = [(a.id, a.nombre) 
                  for a in pclases.Almacen.select(
                      pclases.Almacen.q.activo == True, 
                      orderBy = "id")]
     utils.rellenar_lista(self.wids['cbe_almacen'], 
                          almacenes)
Esempio n. 3
0
 def inicializar_ventana(self):
     """
     Inicializa los controles de la ventana, estableciendo sus
     valores por defecto, deshabilitando los innecesarios,
     rellenando los combos, formateando el TreeView -si lo hay-...
     """
     # Inicialmente no se muestra NADA. Sólo se le deja al
     # usuario la opción de buscar o crear nuevo.
     self.activar_widgets(False)
     # Inicialización del resto de widgets:
     camps = [(c.id, "%s - %s" % (utils.str_fecha(c.fechaInicio), 
                                  utils.str_fecha(c.fechaFin)))
              for c in pclases.Campanna.select(orderBy = "fechaInicio")]
     utils.rellenar_lista(self.wids['cb_campanna'], camps)
     self.wids['b_guardar'] = gtk.Button("N/A")
     self.wids['b_guardar'].set_property("visible", False)
     self.wids['b_guardar'].set_sensitive(False)
     i = -1
     anno_actual = mx.DateTime.localtime().year
     model = self.wids['cb_campanna'].get_model()
     for i in range(len(model)):
         if str(anno_actual) in model[i][1]:
             break
         # Y si el año no está, se queda en la última campaña.
     self.wids['cb_campanna'].set_active(i)
 def __init__(self, objeto = None, usuario = None):
     """
     Constructor. objeto puede ser un objeto de pclases con el que
     comenzar la ventana (en lugar del primero de la tabla, que es
     el que se muestra por defecto).
     """
     global fin
     Ventana.__init__(self, 'consulta_lotes_por_producto.glade', objeto, usuario = usuario)
     connections = {'b_salir/clicked': self.salir,
                    'b_buscar/clicked': self.buscar,
                    'b_imprimir/clicked': self.imprimir,
                    'b_fecha_inicio/clicked': self.set_inicio,
                    'b_fecha_fin/clicked': self.set_fin, 
                    "b_exportar/clicked": self.exportar}
     self.add_connections(connections)
     cols = (('Num. Lote','gobject.TYPE_INT64',False,True,False,None),
             ('Código','gobject.TYPE_STRING',False,True,False,None),
             ('Tenacidad','gobject.TYPE_STRING',False,True,False,None),
             ('Elongación','gobject.TYPE_STRING',False,True,False,None),
             ('Rizo','gobject.TYPE_STRING',False,True,False,None),
             ('Encogimiento','gobject.TYPE_STRING',False,True,False,None),
             ('Grasa','gobject.TYPE_STRING',False,True,False,None),
             ('Idlote','gobject.TYPE_INT64',False,False,False,None))
     utils.preparar_listview(self.wids['tv_datos'], cols)
     self.wids['tv_datos'].connect("row-activated", self.abrir_parte_tv)
     utils.rellenar_lista(self.wids['cmbe_producto'], [(p.id, p.nombre) for p in pclases.ProductoVenta.select(pclases.ProductoVenta.q.camposEspecificosBalaID != None, orderBy = 'nombre')])
     temp = time.localtime()
     self.fin = mx.DateTime.localtime()
     self.wids['e_fechafin'].set_text(utils.str_fecha(temp))
     gtk.main()
Esempio n. 5
0
 def inicializar_ventana(self):
     """
     Inicialización de controles de la ventana.
     """
     self.wids['frame_observaciones'].set_property("visible", False)
     try:
         dde = pclases.DatosDeLaEmpresa.select()[0]
         if "Bogado" in dde.nombre:
             self.wids['frame_observaciones'].set_property("visible", True)
     except:
         pass
     self.activar_widgets(False)
     utils.rellenar_lista(self.wids['cbe_cuenta_origen'], 
                          [(c.id, "%s%s" % (c.ccc, c.nombre and " (%s)" % c.nombre or "")) for c in pclases.CuentaOrigen.select(orderBy = "nombre")])
     utils.rellenar_lista(self.wids['cbe_cuenta_bancaria_cliente'], 
                             [(c.id, "%s%s%s%s (%s)" % (
                                 c.cuenta, 
                                 c.iban and " | IBAN: " + c.iban or "", 
                                 c.swif and " | SWIF: " + c.swif or "", 
                                 c.banco and " (%s)" % c.banco or "", 
                                 c.cliente and c.cliente.nombre 
                                     or "SIN CLIENTE")) 
                              for c in pclases.CuentaBancariaCliente.select(orderBy = "id")])
     self.wids['b_actualizar'].set_sensitive(False)
     self.wids['b_guardar'].set_sensitive(False)
     self.wids['b_nuevo'].set_sensitive(True)
     self.wids['b_buscar'].set_sensitive(True)
 def __init__(self, objeto = None, usuario = None):
     """
     Constructor. objeto puede ser un objeto de pclases con el que
     comenzar la ventana (en lugar del primero de la tabla, que es
     el que se muestra por defecto).
     """
     global fin
     Ventana.__init__(self, 'consulta_albaranes_clientes.glade', objeto, usuario = usuario)
     connections = {'b_salir/clicked': self.salir,
                    'b_buscar/clicked': self.buscar,
                    'b_imprimir/clicked': self.imprimir,
                    'b_fecha_inicio/clicked': self.set_inicio,
                    'b_fecha_fin/clicked': self.set_fin, 
                    'b_exportar/clicked': self.exportar}
     self.add_connections(connections)
     utils.rellenar_lista(self.wids['cmbe_cliente'], [(c.id, c.nombre) for c in pclases.Cliente.select(orderBy='nombre')])
     cols = (('Cliente','gobject.TYPE_STRING',False,True,False,None),
             ('Fecha','gobject.TYPE_STRING',False,True,False,None),
             ('Albarán','gobject.TYPE_STRING',False,True,False,None),
             ('Destinatario','gobject.TYPE_STRING',False,True,False,None),
             ('Facturado', 'gobject.TYPE_BOOLEAN', False, True, False, None),
             ('Facturas', 'gobject.TYPE_STRING', False, True, False, None),
             ('Idalbaran','gobject.TYPE_INT64',False,False,False,None))
     utils.preparar_listview(self.wids['tv_datos'], cols)
     self.wids['tv_datos'].connect("row-activated", self.abrir_albaran)
     temp = time.localtime()
     self.fin = str(temp[0])+'/'+str(temp[1])+'/'+str(temp[2])
     self.wids['e_fechafin'].set_text(utils.str_fecha(temp))
     gtk.main()
 def __init__(self, objeto = None, usuario = None):
     """
     Constructor. objeto puede ser un objeto de pclases con el que
     comenzar la ventana (en lugar del primero de la tabla, que es
     el que se muestra por defecto).
     """
     self.grafico = None
     Ventana.__init__(self, 'historico_existencias.glade', objeto, usuario = usuario)
     connections = {'b_salir/clicked': self.salir,
                    'b_fecha/clicked': self.set_fecha,
                    'b_imprimir/clicked': self.imprimir,
                    'b_actualizar/clicked': self.cambiar_grafico, 
                   }
     self.add_connections(connections)
     self.wids['ventana'].set_title(
         "Histórico de existencias de productos de compra")
     fechactual = mx.DateTime.localtime()
     fechactual = mx.DateTime.DateTimeFrom(
         day = 1, month = fechactual.month, year = fechactual.year)
     primero_de_mes_corriente = utils.str_fecha(fechactual)
     self.wids['e_fecha'].set_text(primero_de_mes_corriente)
     opciones = [(p.id, p.descripcion) 
                 for p in pclases.ProductoCompra.select(
                     pclases.ProductoCompra.q.obsoleto == False, 
                     orderBy = "descripcion") 
                 if p.controlExistencias]
     opciones.insert(0, (-3, "Toda la materia prima"))
     opciones.insert(0, (-2, "Toda la granza"))
     opciones.insert(0, (-1, "Todos (escala logarítmica)"))
     utils.rellenar_lista(self.wids['cbe_grafico'], opciones)
     gtk.main()
Esempio n. 8
0
 def inicializar_ventana(self):
     """
     Inicializa los controles de la ventana, estableciendo sus
     valores por defecto, deshabilitando los innecesarios,
     rellenando los combos, formateando el TreeView -si lo hay-...
     """
     # Inicialmente no se muestra NADA. Sólo se le deja al
     # usuario la opción de buscar o crear nuevo.
     self.activar_widgets(False)
     self.wids['b_actualizar'].set_sensitive(False)
     self.wids['b_guardar'].set_sensitive(False)
     self.wids['b_nuevo'].set_sensitive(True)
     self.wids['b_buscar'].set_sensitive(True)
     # Inicialización del resto de widgets:
     utils.rellenar_lista(self.wids['cb_material'],[(t.id, t.descripcion) for t in pclases.TipoMaterialBala.select()])
     cols = (('Tarifa', 'gobject.TYPE_STRING', False, True, True, None),
             ('Precio', 'gobject.TYPE_FLOAT', False, True, False, None),
             ('ID', 'gobject.TYPE_INT64', False, False, False, None))
     utils.preparar_listview(self.wids['tv_tarifas'], cols)
     try:
         dde_nombre = pclases.DatosDeLaEmpresa.select()[0].nombre
     except IndexError:
         dde_nombre = ""
     clientes = ((0, dde_nombre), )
     for cliente in pclases.Cliente.select(
             pclases.Cliente.q.inhabilitado == False,
             orderBy = "nombre"):
         clientes += ((cliente.id, "%s (%s)" % (cliente.nombre,
                                                cliente.cif)), )
     utils.rellenar_lista(self.wids['cbe_cliente'], clientes)
     # HACK: Como glade-gtk2 ya no me abre el glade ni desde la 3.8.4:
     self.add_campo_obsoleto()
Esempio n. 9
0
 def __init__(self, objeto = None, usuario = None):
     self.usuario = usuario
     Ventana.__init__(self, 'balas_cable.glade', objeto, usuario = usuario)
     connections = {'b_salir/clicked': self.salir,
                    'b_aplicar/clicked': self.actualizar_tabla,
                    'b_add/clicked': self.crear_bala,
                    'b_drop/clicked': self.drop_or_print,
                    'b_etiqueta/clicked': self.drop_or_print,
                    'b_mes/clicked': self.cambiar_mes_acumulado
                    }
     self.add_connections(connections)
     productos_cable = []
     for ceb in pclases.CamposEspecificosBala.select(
             pclases.CamposEspecificosBala.q.reciclada == True):
         try:
             obsoleto = ceb.productosVenta[0].obsoleto
         except AttributeError:
             obsoleto = False    # Versión antigua de la BD
         if not obsoleto:
             productos_cable.append(
                     (ceb.productosVenta[0].id,
                      ceb.productosVenta[0].descripcion))
     productos_cable.sort(
             lambda p1, p2: (p1[-1] < p2[-1] and -1)
                             or (p1[-1] > p2[-1] and 1)
                             or 0)
     utils.rellenar_lista(self.wids['cbe_producto'], productos_cable)
     self.wids['sp_ver'].set_value(15)
     self.preparar_tv(self.wids['tv_balas'])
     self.actualizar_tabla()
     gtk.main()
 def __init__(self, objeto = None, usuario = None):
     """
     Constructor. objeto puede ser un objeto de pclases con el que
     comenzar la ventana (en lugar del primero de la tabla, que es
     el que se muestra por defecto).
     """
     self.usuario = usuario
     global fin
     Ventana.__init__(self, 'consulta_pedidos_clientes.glade', objeto, usuario = usuario)
     connections = {'b_salir/clicked': self.salir,
                    'b_buscar/clicked': self.buscar,
                    'b_imprimir/clicked': self.imprimir,
                    'b_fecha_inicio/clicked': self.set_inicio,
                    'b_fecha_fin/clicked': self.set_fin,
                    'b_exportar/clicked': self.exportar}
     self.add_connections(connections)
     utils.rellenar_lista(self.wids['cmbe_cliente'], [(c.id, c.nombre) for c in pclases.Cliente.select(orderBy='nombre')])
     cols = (('Código', 'gobject.TYPE_STRING', False, True, False, None),
             ('Descripción', 'gobject.TYPE_STRING', False,True,False,None),
             ('Precio s/IVA', 'gobject.TYPE_STRING', False,True,False,None),
             ('ID', 'gobject.TYPE_STRING', False, False, False, None))
     utils.preparar_listview(self.wids['tv_datos'], cols)
     col = self.wids['tv_datos'].get_column(2)
     for cell in col.get_cell_renderers():
         cell.set_property("xalign", 1)
     self.wids['tv_datos'].connect("row-activated", self.abrir_producto)
     temp = time.localtime()
     self.fin = str(temp[0])+'/'+str(temp[1])+'/'+str(temp[2])
     self.wids['e_fecha_fin'].set_text(utils.str_fecha(temp))
     if objeto != None:
         utils.combo_set_from_db(self.wids["cmbe_cliente"], objeto.id)
         self.wids["b_buscar"].clicked()
     self.wids['hbox4'].set_property("visible", False)
     self.wids['ventana'].set_title("Productos facturados al cliente")
     gtk.main()
Esempio n. 11
0
 def __init__(self, mes = None, anno = None, ldp = None, solo_lectura = False, usuario = None):
     """
     Constructor. objeto puede ser un objeto de pclases  de la 
     línea de producción con la que comenzar la ventana.
     """
     self.escritura = not solo_lectura
     Ventana.__init__(self, 'calendario_laboral.glade', None, usuario = usuario)
     connections = {'b_salir/clicked': self.salir
                    }
     self.add_connections(connections)
     self.cal = []   # Los Gtk.Table no tienen método para acceder a los hijos por fila y columna (flipa!).
                     # Así que los iré guardando aquí para poderlos crear y destruir sobre la marcha.
     utils.rellenar_lista(self.wids['cbe_linea'], 
                          [(l.id, l.nombre) for l in pclases.LineaDeProduccion.select(orderBy='nombre')])
     if mes == None:
         mes = mx.DateTime.localtime().month
     if anno == None:
         anno = mx.DateTime.localtime().year
     self.wids['sp_mes'].set_value(mes)
     self.wids['sp_anno'].set_value(anno)
     self.wids['cbe_linea'].connect('changed', self.rellenar_widgets)
     self.wids['sp_mes'].connect('value-changed', self.rellenar_widgets)
     self.wids['sp_anno'].connect('value-changed', self.rellenar_widgets)
     if ldp == None:
         utils.combo_set_from_db(self.wids['cbe_linea'], pclases.LineaDeProduccion.select(orderBy='nombre')[0].id)
     else:
         utils.combo_set_from_db(self.wids['cbe_linea'], ldp.id)
     gtk.main()
Esempio n. 12
0
 def __init__(self, objeto = None, usuario = None):
     """
     Constructor. objeto puede ser un objeto de pclases con el que
     comenzar la ventana (en lugar del primero de la tabla, que es
     el que se muestra por defecto).
     """
     Ventana.__init__(self, 'busca_lote.glade', objeto, usuario = usuario)
     connections = {'b_salir/clicked': self.salir,
                    'b_buscar/clicked': self.buscar,
                    'b_ayuda/clicked': self.ayuda}
     self.add_connections(connections)
     cols = (('Num. Lote','gobject.TYPE_INT64',False,True,False,None),
             ('Código','gobject.TYPE_STRING',False,True,False,None),
             ('Tenacidad','gobject.TYPE_STRING',False,True,False,None),
             ('Elongación','gobject.TYPE_STRING',False,True,False,None),
             ('Rizo','gobject.TYPE_STRING',False,True,False,None),
             ('Encogimiento','gobject.TYPE_STRING',False,True,False,None),
             ('Idlote','gobject.TYPE_INT64',False,False,False,None))
     utils.preparar_listview(self.wids['tv_resultado'], cols)
     utils.rellenar_lista(self.wids['cmbe_producto'], [(p.id, p.nombre) for p in pclases.ProductoVenta.select(pclases.ProductoVenta.q.camposEspecificosBalaID != None, orderBy = 'nombre')])
     self.rellenar_tabla()
     # Valores por defecto:
     self.wids['e_tenacidad'].set_text('A')
     self.wids['e_elongacion'].set_text('A')
     self.wids['e_rizo'].set_text('6-7')
     self.wids['e_encogimiento'].set_text('A')
     self.wids['chk_tenacidad'].set_active(True)
     self.wids['chk_elongacion'].set_active(True)
     self.wids['chk_rizo'].set_active(True)
     self.wids['chk_encogimiento'].set_active(True)
     self.wids['chk_producto'].set_active(True)
     
     gtk.main()
Esempio n. 13
0
 def inicializar_ventana(self):
     """
     Inicializa los controles de la ventana, estableciendo sus
     valores por defecto, deshabilitando los innecesarios,
     rellenando los combos, formateando el TreeView -si lo hay-...
     """
     # Inicialmente no se muestra NADA. Sólo se le deja al
     # usuario la opción de buscar o crear nuevo.
     self.activar_widgets(False)
     self.wids['b_actualizar'].set_sensitive(False)
     self.wids['b_guardar'].set_sensitive(False)
     self.wids['b_nuevo'].set_sensitive(True)
     self.wids['b_buscar'].set_sensitive(True)
     self.wids['ventana'].set_title(self.clase.sqlmeta.table.upper())
     # Inicialización del resto de widgets:
     cols = (('Código', 'gobject.TYPE_STRING', False, True, True, None), 
             ('Concepto', 'gobject.TYPE_STRING', False, True, False, None), 
             ('Fecha', 'gobject.TYPE_STRING', False, True, False, None), 
             ('Importe', 'gobject.TYPE_STRING', False, True, False, None), 
             ('ID', 'gobject.TYPE_INT64', False, False, False, None))
             # La última columna (oculta en la Vista) siempre es el id.
     utils.preparar_listview(self.wids['tv_gastos'], cols)
     utils.rellenar_lista(self.wids['cbe_proveedorID'], 
                          [(p.id, p.nombre) for p in 
                             pclases.Proveedor.select(orderBy = "nombre")])
Esempio n. 14
0
    def __init__(self, objeto = None, usuario = None):
        """
        Constructor. objeto puede ser un objeto de pclases con el que
        comenzar la ventana (en lugar del primero de la tabla, que es
        el que se muestra por defecto).
        """
        global fin
        Ventana.__init__(self, 'consulta_entradas_almacen.glade', objeto, usuario = usuario)
        connections = {'b_salir/clicked': self.salir,
                       'b_buscar/clicked': self.buscar,
                       'b_imprimir/clicked': self.imprimir,
                       'b_fecha_inicio/clicked': self.set_inicio,
                       'b_producto/clicked': self.buscar_producto,
                       'b_fecha_fin/clicked': self.set_fin}
        self.add_connections(connections)
        utils.rellenar_lista(self.wids['cmbe_proveedor'], [(c.id, c.nombre) for c in pclases.Proveedor.select(orderBy='nombre')])

        cols = (('Proveedor', 'gobject.TYPE_STRING', False, True, False, None),
                ('Albarán', 'gobject.TYPE_STRING', False, True, True, None),
                ('Fecha', 'gobject.TYPE_STRING', False, True, False, None),
                ('Producto', 'gobject.TYPE_STRING', False, True, True, None),
                ('Cantidad', 'gobject.TYPE_FLOAT', False, True, False, None),
                ('Precio', 'gobject.TYPE_FLOAT', False, True, False, None),
                ('Subtotal', 'gobject.TYPE_FLOAT', False, True, False, None),
                ('idldc','gobject.TYPE_STRING',False,False,False,None))
        utils.preparar_listview(self.wids['tv_datos'], cols)
        for ncol in (4, 5, 6):
            col = self.wids['tv_datos'].get_column(ncol)
            for cell in col.get_cell_renderers():
                cell.set_property("xalign", 1)
        temp = time.localtime()
        self.fin = mx.DateTime.DateTimeFrom(day = temp[2], month = temp[1], year = temp[0])
        self.wids['e_fechafin'].set_text(utils.str_fecha(temp))
        self.producto = None
        gtk.main()
 def __init__(self, objeto = None, usuario = None):
     """
     Constructor. objeto puede ser un objeto de pclases con el que
     comenzar la ventana (en lugar del primero de la tabla, que es
     el que se muestra por defecto).
     """
     global fin
     Ventana.__init__(self, 'consulta_ventas.glade', objeto, usuario = usuario)
     connections = {'b_salir/clicked': self.salir,
                    'b_buscar/clicked': self.buscar,
                    'b_imprimir/clicked': self.imprimir,
                    'b_fecha_inicio/clicked': self.set_inicio,
                    'b_fecha_fin/clicked': self.set_fin}
     self.add_connections(connections)
     cols = (('Cliente','gobject.TYPE_STRING',False,True,False,None),
             ('Factura','gobject.TYPE_STRING',False,True,True,None),
             ('Fecha','gobject.TYPE_STRING',False,True,False,None),
             ('Total','gobject.TYPE_STRING',False,True,False,None),
             ('Beneficio','gobject.TYPE_STRING',False,True,False,None),
             ('Pendiente','gobject.TYPE_STRING',False,True,False,None),
             ('Id','gobject.TYPE_INT64',False,False,False,None))
     utils.preparar_treeview(self.wids['tv_datos'], cols)
     self.wids['tv_datos'].connect("row-activated", self.abrir_prefactura)
     self.wids['tv_datos'].get_column(3).get_cell_renderers()[0].set_property('xalign', 1) 
     self.wids['tv_datos'].get_column(4).get_cell_renderers()[0].set_property('xalign', 1) 
     self.wids['tv_datos'].get_column(5).get_cell_renderers()[0].set_property('xalign', 1) 
     temp = time.localtime()
     self.fin = str(temp[0])+'/'+str(temp[1])+'/'+str(temp[2])
     self.wids['e_fechafin'].set_text(utils.str_fecha(temp))
     self.metros_totales = 0.0
     self.kilos_totales = 0.0
     opciones = [(c.id, c.nombre) for c in pclases.Cliente.select(orderBy = "nombre")]
     opciones.insert(0, (-1, "Todos"))
     utils.rellenar_lista(self.wids['cbe_cliente'], opciones)
     utils.combo_set_from_db(self.wids['cbe_cliente'], -1)
     self.wids['label7'].set_text("Total beneficio estimado: ")
     #self.wids['label7'].set_property("visible", False)
     #self.wids['e_total_kilos'].set_property("visible", False)
     self.wids['label8'].set_property("visible", False)
     self.wids['e_total_metros'].set_property("visible", False)
     self.wids['label9'].set_property("visible", False)
     self.wids['cbe_cliente'].set_property("visible", False)
     self.wids['ventana'].set_title("Listado de prefacturas")
     self.wids['notebook1'].remove_page(1)
     self.wids['label1'].set_text("Por cliente")
     labpdte = gtk.Label("Total pendiente:")
     labpdte.show()
     self.wids['hbox4'] = gtk.HBox()
     self.wids['hbox4'].add(labpdte)
     self.wids['e_totpdte'] = gtk.Entry()
     self.wids['e_totpdte'].set_property("editable", False)
     self.wids['e_totpdte'].set_property("has-frame", False)
     self.wids['hbox4'].add(self.wids['e_totpdte'])
     self.wids['hbox4'].show_all()
     self.wids['vbox2'].add(self.wids['hbox4'])
     self.wids['vbox2'].reorder_child(self.wids['hbox4'], 2)
     self.wids['e_totpdte'].show()
     gtk.main()
Esempio n. 16
0
 def __init__(self, objeto=None, usuario=None):
     """
     Constructor. objeto puede ser un objeto de pclases con el que
     comenzar la ventana (en lugar del primero de la tabla, que es
     el que se muestra por defecto).
     """
     self.usuario = usuario
     Ventana.__init__(self, 'consulta_pedidos_clientes.glade', objeto,
                      usuario=usuario)
     connections = {'b_salir/clicked': self.salir,
                    'b_buscar/clicked': self.buscar,
                    'b_imprimir/clicked': self.imprimir,
                    'b_fecha_inicio/clicked': self.set_fecha,
                    'b_fecha_fin/clicked': self.set_fecha,
                    'b_exportar/clicked': self.exportar,
                    'e_fecha_inicio/focus-out-event': act_fecha,
                    'e_fecha_fin/focus-out-event': act_fecha,
                   }
     self.add_connections(connections)
     utils.rellenar_lista(self.wids['cmbe_cliente'],
             [(c.id, c.nombre)
                 for c in pclases.Cliente.select(orderBy='nombre')])
     cols = (('Cliente', 'gobject.TYPE_STRING', False, True, False, None),
             ('Fecha', 'gobject.TYPE_STRING', False, True, False, None),
             ('Pedido', 'gobject.TYPE_STRING', False, True, False, None),
             ('Producto', 'gobject.TYPE_STRING', False, True, False, None),
             ('Cantidad\npedida', 'gobject.TYPE_STRING',
                                                 False, True, False, None),
             ('Cantidad\nservida', 'gobject.TYPE_STRING',
                                                 False, True, False, None),
             ('Importe\npedido\n(c/IVA)', 'gobject.TYPE_STRING',
                                                 False, True, False, None),
             ('Importe\nservido\n(c/IVA)', 'gobject.TYPE_STRING',
                                                 False, True, False, None),
             ("Bloqueado", "gobject.TYPE_BOOLEAN", False, True, False, None),
             ("Cerrado", "gobject.TYPE_BOOLEAN", False, True, False, None),
             ('PUIDPEDIDO;PUIDPRODUCTO', 'gobject.TYPE_STRING', # HACK
                                                 False, False, False, None))
     utils.preparar_listview(self.wids['tv_datos'], cols)
     for ncol in (4, 5, 6, 7):
         col = self.wids['tv_datos'].get_column(ncol)
         for cell in col.get_cell_renderers():
             cell.set_property("xalign", 1)
     for col in self.wids['tv_datos'].get_columns():
         col.connect("clicked", self.order_changed_refresh_grafica)
     self.wids['tv_datos'].connect("row-activated", self.abrir_pedido)
     self.resultado = []
     self.fin = utils.str_fecha(datetime.date.today())
     self.inicio = None
     self.wids['e_fecha_fin'].set_text(self.fin)
     self.wids['e_fecha_inicio'].set_text("")
     if objeto != None:
         utils.combo_set_from_db(self.wids["cmbe_cliente"], objeto.id)
         self.wids["b_buscar"].clicked()
     self.add_widgets_extra()
     self.servido_por_producto = defaultdict(lambda: 0)
     self.wids['cmbe_cliente'].grab_focus()
     gtk.main()
Esempio n. 17
0
 def inicializar_ventana(self):
     """
     Inicializa los controles de la ventana, estableciendo sus
     valores por defecto, deshabilitando los innecesarios,
     rellenando los combos, formateando el TreeView -si lo hay-...
     """
     # Inicialmente no se muestra NADA. Sólo se le deja al
     # usuario la opción de buscar o crear nuevo.
     self.activar_widgets(False)
     self.wids['b_actualizar'].set_sensitive(False)
     self.wids['b_guardar'].set_sensitive(False)
     self.wids['b_nuevo'].set_sensitive(True)
     self.wids['b_buscar'].set_sensitive(True)
     self.wids['ventana'].set_title(self.clase.sqlmeta.table.upper())
     # Inicialización del resto de widgets:
     cols = (('Producto', 'gobject.TYPE_STRING', False, True, False, None),
             ('Cantidad', 'gobject.TYPE_STRING', True, True, False, 
                 self.cambiar_cantidad), 
             ('Precio', 'gobject.TYPE_STRING', True, True, False, 
                 self.cambiar_precio), 
             ('Importe s/IVA', 'gobject.TYPE_STRING',False,True,False,None), 
             ('ID', 'gobject.TYPE_INT64', False, False, False, None))
     utils.preparar_listview(self.wids['tv_ldvs'], cols, multi = True)
     cols = (('Cantidad', 'gobject.TYPE_DOUBLE', True, True, False, 
                 self.cambiar_cantidad_srv),
             ('Concepto', 'gobject.TYPE_STRING', True, True, True, 
                 self.cambiar_concepto_srv),
             ('Precio', 'gobject.TYPE_DOUBLE', True, True, False, 
                 self.cambiar_precio_srv),
             ('Descuento', 'gobject.TYPE_DOUBLE', True, True, False, 
                 self.cambiar_descuento_srv),
             ('Total', 'gobject.TYPE_DOUBLE', False, True, False, None),
             ('ID', 'gobject.TYPE_INT64', False, False, False, None))
     utils.preparar_listview(self.wids['tv_servicios'], cols)
     clientes = [(c.id, "%s (%s)" % (c.nombre, c.cif))
                  for c in pclases.Cliente.select(orderBy = "nombre")]
     utils.rellenar_lista(self.wids['cbe_clienteID'], clientes)
     proveedores = [(p.id, "%s (%s)" % (p.nombre, p.cif))
                     for p in pclases.Proveedor.select(orderBy = "nombre")]
     utils.rellenar_lista(self.wids['cbe_proveedorID'], proveedores)
     cols = (("Fecha", "gobject.TYPE_STRING", True, True, True, 
                 self.cambiar_fecha_vto), 
             ("Cantidad", "gobject.TYPE_STRING", True, True, False, 
                 self.cambiar_importe_vto), 
             ("ID", "gobject.TYPE_INT64", False, False, False, None))
     utils.preparar_listview(self.wids['tv_vencimientos'], cols)
     #cols = (("Fecha", "gobject.TYPE_STRING", True, True, True, 
     #            self.cambiar_fecha_cobro), 
     #        ("Cantidad", "gobject.TYPE_STRING", True, True, False, 
     #            self.cambiar_importe_cobro), 
     #        ("Observaciones", "gobject.TYPE_STRING", True, True, False, 
     #            self.cambiar_observaciones_cobro), 
     #        ("ID", "gobject.TYPE_INT64", False, False, False, None))
     #utils.preparar_listview(self.wids['tv_cobros'], cols)
     # TODO: ¿Las facturas de otros proveedores se imprimen como propias?
     #       "Pa" mí que no, así que deshabilito.
     self.wids['b_imprimir'].set_property("visible", False)
Esempio n. 18
0
def build_widget_valor(col):
    """
    Recibe un objeto de la familia SOCol y devuelve el 
    widget adecuado para mostrar su valor.
    Si es un texto, entero o float: entry.
    Si es un boolean: checkbutton.
    Si es una fecha: entry con un botón para mostrar el calendario.
    Si es un ForeignKey, usar un ComboBoxEntry con utils.rellenar... con las
    tuplas de la tabla referenciada.
    """
    box = None  # Posible contenedor externo.
    if isinstance(col, pclases.SOStringCol): 
        w = gtk.Entry()
        w.set_name(col.name)
    elif isinstance(col, pclases.SOIntCol):
        w = gtk.Entry()
        w.set_name(col.name)
    elif isinstance(col, pclases.SOFloatCol):
        w = gtk.Entry()
        w.set_name(col.name)
    elif isinstance(col, pclases.SOBoolCol):
        w = gtk.CheckButton()
        w.set_name(col.name)
    elif isinstance(col, pclases.SODateCol):
        box = gtk.HBox()
        w = gtk.Entry()
        w.set_name(col.name)
        button = gtk.Button(label = "Buscar _fecha")
        button.connect("clicked", lambda boton: w.set_text(utils.str_fecha(utils.mostrar_calendario())))
        button.set_name("b_%s" % (col.name))
        box.add(w)
        box.add(button)
    elif isinstance(col, pclases.SOForeignKey):
        w = gtk.ComboBoxEntry()
        w.set_name(col.name)
        tablajena = col.foreignKey
        clase_tablajena = getattr(pclases, tablajena)
        func_select = getattr(clase_tablajena, "select")
        datos = []
        for reg in func_select():
            campos = []
            for columna in clase_tablajena.sqlmeta.columns:
                valor = getattr(reg, columna)
                campos.append(`valor`)
            info = ", ".join(campos)
            # info = reg.get_info()
            datos.append((reg.id, info))
        utils.rellenar_lista(w, datos)
    else:
        w = gtk.Entry()
        w.set_name(col.name)
    return w, box
Esempio n. 19
0
    def _construir_model_a(self, widget, col):
        """
        Averigua la fuente del widget según el nombre de la columna 
        recibida y asocia un model sencillo al widget, que debe ser 
        un ComboBox[Entry].
        """
        from framework import pclases

        nomclase = col.name.replace("ID", "")
        nomclase = nomclase[0].upper() + nomclase[1:]
        clase = getattr(pclases, nomclase)
        primera_col = clase.sqlmeta.columnList[0].name
        filas = [(r.id, getattr(r, primera_col)) for r in clase.select(orderBy=primera_col)]
        rellenar_lista(widget, filas)
Esempio n. 20
0
 def inicializar_ventana(self):
     """
     Inicializa los controles de la ventana, estableciendo sus
     valores por defecto, deshabilitando los innecesarios,
     rellenando los combos, formateando el TreeView -si lo hay-...
     """
     # Inicialmente no se muestra NADA. Sólo se le deja al
     # usuario la opción de buscar o crear nuevo.
     self.activar_widgets(False)
     self.wids['b_actualizar'].set_sensitive(False)
     self.wids['b_guardar'].set_sensitive(False)
     self.wids['b_nuevo'].set_sensitive(True)
     self.wids['b_buscar'].set_sensitive(True)
     self.wids['ventana'].set_title(self.clase.sqlmeta.table.upper())
     # Inicialización del resto de widgets:
     utils.rellenar_lista(self.wids['cbe_cuentaGastosID'], 
                          [(p.id, p.descripcion) for p in 
                       pclases.CuentaGastos.select(orderBy = "descripcion")])
     utils.rellenar_lista(self.wids['cbe_parcelaID'], 
                          [(p.id, p.parcela) for p in 
                             pclases.Parcela.select(orderBy = "parcela")])
     utils.rellenar_lista(self.wids['cbe_facturaCompraID'], 
                          [(p.id, p.numfactura) for p in 
                       pclases.FacturaCompra.select(orderBy = "numfactura")])
     return
     # XXX: Aquí generalmente se inicializan los TreeViews y combos.
     cols = (('XXXNombreCol', 'gobject.TYPE_STRING', XXXEditable, XXXOrdenable, XXXBuscable, XXXCallbackEdicion),
             ('ID', 'gobject.TYPE_INT64', False, False, False, None))
             # La última columna (oculta en la Vista) siempre es el id.
     utils.preparar_listview(self.wids['XXXtv_treeview'], cols)
     utils.rellenar_lista(self.wids['XXXcbe_comboboxentry'], 
                          [(p.id, p.XXXcampo) for p in 
                             pclases.XXXClase.select(orderBy = "XXXcampo")])
 def __init__(self, objeto=None, usuario=None):
     """
     Constructor. objeto puede ser un objeto de pclases con el que
     comenzar la ventana (en lugar del primero de la tabla, que es
     el que se muestra por defecto).
     """
     global fin
     Ventana.__init__(self, "consulta_partidas_por_producto.glade", objeto, usuario=usuario)
     connections = {
         "b_salir/clicked": self.salir,
         "b_buscar/clicked": self.buscar,
         "b_imprimir/clicked": self.imprimir,
         "b_fecha_inicio/clicked": self.set_inicio,
         "b_fecha_fin/clicked": self.set_fin,
         "b_exportar/clicked": self.exportar,
     }
     self.add_connections(connections)
     cols = (
         ("Num. Partida", "gobject.TYPE_INT64", False, True, False, None),
         ("Código", "gobject.TYPE_STRING", False, True, False, None),
         ("Fecha fab.", "gobject.TYPE_STRING", False, True, False, None),
         ("Longitudinal", "gobject.TYPE_STRING", False, True, False, None),
         ("Transversal", "gobject.TYPE_STRING", False, True, False, None),
         ("Compresión", "gobject.TYPE_STRING", False, True, False, None),
         ("Perforación", "gobject.TYPE_STRING", False, True, False, None),
         ("Permeabilidad", "gobject.TYPE_STRING", False, True, False, None),
         ("Poros", "gobject.TYPE_STRING", False, True, False, None),
         ("Espesor", "gobject.TYPE_STRING", False, True, False, None),
         ("Piramidal", "gobject.TYPE_STRING", False, True, False, None),
         ("Idpartida", "gobject.TYPE_INT64", False, False, False, None),
     )
     utils.preparar_listview(self.wids["tv_datos"], cols)
     self.wids["tv_datos"].connect("row-activated", self.abrir_parte_tv)
     utils.rellenar_lista(
         self.wids["cmbe_producto"],
         [
             (p.id, p.descripcion)
             for p in pclases.ProductoVenta.select(
                 pclases.ProductoVenta.q.camposEspecificosRolloID != None, orderBy="descripcion"
             )
         ],
     )
     temp = time.localtime()
     self.fin = mx.DateTime.localtime()
     self.inicio = None
     self.resultado = []
     self.wids["e_fechafin"].set_text(utils.str_fecha(temp))
     gtk.main()
Esempio n. 22
0
 def inicializar_ventana(self):
     """
     Inicializa los controles de la ventana, estableciendo sus
     valores por defecto, deshabilitando los innecesarios,
     rellenando los combos, formateando el TreeView -si lo hay-...
     """
     # Inicialmente no se muestra NADA. Sólo se le deja al
     # usuario la opción de buscar o crear nuevo.
     self.activar_widgets(False)
     self.wids['b_actualizar'].set_sensitive(False)
     self.wids['b_guardar'].set_sensitive(False)
     self.wids['b_nuevo'].set_sensitive(True)
     self.wids['b_buscar'].set_sensitive(True)
     series = [(s.id, s.get_next_numfactura()) for s 
               in pclases.SerieFacturasVenta.select(orderBy = "prefijo")]
     utils.rellenar_lista(self.wids['cb_serieFacturasVentaID'], series)
Esempio n. 23
0
 def __init__(self, objeto=None, usuario=None):
     """
     Constructor. objeto puede ser un objeto de pclases con el que
     comenzar la ventana (en lugar del primero de la tabla, que es
     el que se muestra por defecto).
     """
     self.usuario = usuario
     Ventana.__init__(self, 'consulta_saldo_proveedores.glade', objeto,
                      usuario=usuario)
     connections = {'b_salir/clicked': self.salir,
                    'b_buscar/clicked': self.buscar,
                    'b_imprimir/clicked': self.imprimir,
                    'b_fecha_inicio/clicked': self.set_fecha,
                    'b_fecha_fin/clicked': self.set_fecha,
                    'b_exportar/clicked': self.exportar,
                    'e_fecha_inicio/focus-out-event': act_fecha,
                    'e_fecha_fin/focus-out-event': act_fecha,
                   }
     self.add_connections(connections)
     utils.rellenar_lista(self.wids['cmbe_proveedor'],
             [(0, "Todos")] +
             [(c.id, c.nombre)
                 for c in pclases.Proveedor.select(orderBy='nombre')])
     cols = (('Proveedor', 'gobject.TYPE_STRING', False, True, False, None),
             ('Factura', 'gobject.TYPE_STRING', False, True, False, None),
             ('Fecha', 'gobject.TYPE_STRING', False, True, False, None),
             ('Importe', 'gobject.TYPE_STRING', False, True, False, None),
             ('Vencimientos', 'gobject.TYPE_STRING', False, True, False, None),
             ('Pagado', 'gobject.TYPE_STRING', False, True, False, None),
             ('Pendiente', 'gobject.TYPE_STRING', False, True, False, None),
             ('DBPUID', 'gobject.TYPE_STRING', False, False, False, None))
     utils.preparar_treeview(self.wids['tv_datos'], cols)
     for ncol in (3, 4, 5, 6):
         col = self.wids['tv_datos'].get_column(ncol)
         for cell in col.get_cell_renderers():
             cell.set_property("xalign", 1)
     self.wids['tv_datos'].connect("row-activated", self.abrir_objeto)
     self.resultado = []
     self.fin = utils.str_fecha(datetime.date.today())
     self.inicio = None
     self.wids['e_fecha_fin'].set_text(self.fin)
     self.wids['e_fecha_inicio'].set_text("")
     if objeto != None:
         utils.combo_set_from_db(self.wids["cmbe_proveedor"], objeto.id)
         self.wids["b_buscar"].clicked()
     self.wids['cmbe_proveedor'].grab_focus()
     gtk.main()
 def __init__(self, objeto = None, usuario = None):
     self.usuario = usuario
     Ventana.__init__(self, 'consulta_existencias_por_tipo.glade', 
                      objeto, self.usuario)
     connections = {'b_salir/clicked': self.salir,
                    'b_actualizar/clicked': self.buscar,
                    'b_imprimir/clicked': self.imprimir,
                    'b_exportar/clicked': self.exportar, 
                    'cb_almacen/changed': self.buscar} 
     self.add_connections(connections)
     for nomtv in ("tv_fibra", "tv_gtx", "tv_cemento"):
         cols = [
             ('Producto', 'gobject.TYPE_STRING', False, True, True, None),#0
             ('A (Kg)', 'gobject.TYPE_STRING', False, True, False, None),
             ('A (#)', 'gobject.TYPE_STRING', False, True, False, None),
             ('B (Kg)', 'gobject.TYPE_STRING', False, True, False, None),
             ('B (#)', 'gobject.TYPE_STRING', False, True, False, None),
             ('C (Kg)', 'gobject.TYPE_STRING', False, True, False, None),
             ('C (#)', 'gobject.TYPE_STRING', False, True, False, None),
             ('Total (Kg)', 'gobject.TYPE_STRING', False, True, False, None),
             ('Total (#)', 'gobject.TYPE_STRING', False, True, False, None),
             ('PUID', 'gobject.TYPE_STRING', False, False, False, None)]#(5)
         if nomtv == "tv_gtx":
             cols.insert(2, 
               ('A (m²)', 'gobject.TYPE_STRING', False, True, False, None))
             cols.insert(5, 
               ('B (m²)', 'gobject.TYPE_STRING', False, True, False, None))
             cols.insert(8, 
               ('C (m²)', 'gobject.TYPE_STRING', False, True, False, None))
             cols.insert(11, 
               ('Total (m²)', 
                   'gobject.TYPE_STRING', False, True, False, None))
         tv = self.wids[nomtv]
         utils.preparar_listview(tv, cols)
         tv.connect("row-activated", self.abrir_objeto)
         for ncol in range(1, len(cols) - 1):
             col = tv.get_column(ncol)
             col.get_cell_renderers()[0].set_property('xalign', 1.0) 
         col = tv.get_column(0)
         col.set_expand(True)
     almacenes = pclases.Almacen.select(
             pclases.Almacen.q.activo == True, 
             orderBy = "id")
     opciones = [(0, "Todos")] + [(a.id, a.nombre) for a in almacenes]
     utils.rellenar_lista(self.wids['cb_almacen'], opciones)
     utils.combo_set_from_db(self.wids['cb_almacen'], 0)
     gtk.main()
Esempio n. 25
0
 def inicializar_ventana(self):
     """
     Inicializa los controles de la ventana, estableciendo sus
     valores por defecto, deshabilitando los innecesarios,
     rellenando los combos, formateando el TreeView -si lo hay-...
     """
     # Inicialmente no se muestra NADA. Sólo se le deja al
     # usuario la opción de buscar o crear nuevo.
     self.activar_widgets(False)
     self.wids['b_actualizar'].set_sensitive(False)
     self.wids['b_guardar'].set_sensitive(False)
     self.wids['b_nuevo'].set_sensitive(True)
     self.wids['b_buscar'].set_sensitive(True)
     self.wids['ventana'].set_title(self.clase.sqlmeta.table.upper())
     utils.rellenar_lista(self.wids['cbe_envaseID'], 
                         [(e.id, e.nombre) 
                         for e in pclases.Envase.select(orderBy = "nombre")])
Esempio n. 26
0
 def inicializar_ventana(self):
     """
     Inicializa los controles de la ventana, estableciendo sus
     valores por defecto, deshabilitando los innecesarios,
     rellenando los combos, formateando el TreeView -si lo hay-...
     """
     # Inicialmente no se muestra NADA. Sólo se le deja al
     # usuario la opción de buscar o crear nuevo.
     self.activar_widgets(False)
     self.wids['b_actualizar'].set_sensitive(False)
     self.wids['b_guardar'].set_sensitive(False)
     self.wids['b_nuevo'].set_sensitive(True)
     self.wids['b_buscar'].set_sensitive(True)
     # Inicialización del resto de widgets:
     cols = (('Confirmado', 'gobject.TYPE_BOOLEAN', True, True, False, 
                 self.confirmar_efecto),
             ('Código', 'gobject.TYPE_STRING', False, True, True, None),
             ('Cliente', 'gobject.TYPE_STRING', False, True, False, None),
             ('Importe', 'gobject.TYPE_STRING', False, True, False, None),
             ('PUID', 'gobject.TYPE_STRING', False, False, False, None))
             # La última columna (oculta en la Vista) siempre es el id.
     utils.preparar_listview(self.wids['tv_efectos'], cols, multi = True)
     col_confirmado = self.wids['tv_efectos'].get_column(0)
     ch_todos = gtk.CheckButton("Todos")
     ch_todos.connect("clicked", self.marcar_todos)
     ch_todos.show()
     col_confirmado.set_property("widget", ch_todos)
     cols = (('Porcentaje','gobject.TYPE_STRING', False, True, False, None),
             ('Cliente', 'gobject.TYPE_STRING', False, True, True, None),
             ('Importe', 'gobject.TYPE_STRING', False, True, False, None), 
             ('PUID cliente', 'gobject.TYPE_STRING', 
                 False, False, False, None))
     utils.preparar_listview(self.wids['tv_concentracion'], cols)
     utils.rellenar_lista(self.wids['cb_banco'], 
                          [(p.id, p.nombre) for p in 
                             pclases.Banco.select(orderBy = "nombre")])
     self.wids['tv_efectos'].connect("row-activated", self.abrir_efecto) 
     col = self.wids['tv_efectos'].get_column(3)
     for cell in col.get_cell_renderers():
         cell.set_property("xalign", 1)
     self.wids['ch_aceptada'].set_sensitive(False)
     self.wids['b_confirmar'].set_sensitive(
             self.objeto and not self.objeto.aceptada or False)
     self.wids['b_add_efecto'].set_sensitive(
             self.objeto and not self.objeto.aceptada or False)
Esempio n. 27
0
 def rellenar_widgets(self):
     """
     Introduce la información de la cuenta actual
     en los widgets.
     No se chequea que sea != None, así que
     hay que tener cuidado de no llamar a 
     esta función en ese caso.
     """
     utils.rellenar_lista(self.wids['cb_precioID'], 
                         [(p.id, "%s (%s)" % (
                             utils.float2str(p.get_importe()), 
                             p.tarifa and p.tarifa.nombre or "Sin tarifa"))
                         for p in self.objeto.precios])
     adaptadores = self.adaptador.get_adaptadores()
     for col in adaptadores.keys():
         adaptadores[col]['mostrar'](self.objeto)
     self.objeto.make_swap()
     self.wids['ventana'].set_title(self.objeto.get_info())
 def __init__(self, objeto = None, usuario = None):
     """
     Constructor. objeto puede ser un objeto de pclases con el que
     comenzar la ventana (en lugar del primero de la tabla, que es
     el que se muestra por defecto).
     """
     self.usuario = usuario
     global fin
     Ventana.__init__(self, 'consulta_vencimientos_cobro.glade', objeto, usuario = usuario)
     connections = {'b_salir/clicked': self.salir,
                    'b_buscar/clicked': self.buscar,
                    'b_imprimir/clicked': self.imprimir,
                    'b_fecha_inicio/clicked': self.set_inicio,
                    'b_fecha_fin/clicked': self.set_fin, 
                    'b_exportar/clicked': self.exportar}
     self.add_connections(connections)
     utils.rellenar_lista(self.wids['cmbe_cliente'], [(c.id, c.nombre) for c in pclases.Cliente.select(orderBy='nombre')])
     cols = (('Factura','gobject.TYPE_STRING',False,True, False,None),
             ('Fecha vto.','gobject.TYPE_STRING',False,True,False,None),
             ('Importe','gobject.TYPE_STRING',False,False,False,None),
             ('Observaciones/Forma de cobro','gobject.TYPE_STRING',False,True, False,None),
             ('Cliente', 'gobject.TYPE_STRING', False, True, True, None),
             ('id','gobject.TYPE_STRING',False,False,False,None))
     utils.preparar_listview(self.wids['tv_datos'], cols)
     self.wids['tv_datos'].connect("row-activated", self.abrir_factura)
     self.colorear(self.wids['tv_datos'])
     col = self.wids['tv_datos'].get_column(2)
     for cell in col.get_cell_renderers():
         cell.set_property("xalign", 1)
     self.wids['tv_datos'].connect('button_press_event', self.button_clicked)
     self.wids['tv_datos'].set_hover_selection(True)
     cols = (('Año y mes','gobject.TYPE_STRING', False,True, True, None),
             ('Total','gobject.TYPE_STRING', False, True, False, None),
             ('nada','gobject.TYPE_STRING', False, False, False, None))
     utils.preparar_treeview(self.wids['tv_totales'], cols)
     col = self.wids['tv_totales'].get_column(1)
     for cell in col.get_cell_renderers():
         cell.set_property("xalign", 1)
     temp = time.localtime()
     self.fin = mx.DateTime.DateTimeFrom(day = temp[2], month = temp[1], year = temp[0])
     self.wids['e_fechafin'].set_text(utils.str_fecha(temp))
     self.inicio = mx.DateTime.DateTimeFrom(day = 1, month = mx.DateTime.localtime().month, year = mx.DateTime.localtime().year)
     self.wids['e_fechainicio'].set_text(utils.str_fecha(self.inicio))
     gtk.main()
Esempio n. 29
0
 def inicializar_ventana(self):
     """
     Inicializa los controles de la ventana, estableciendo sus
     valores por defecto, deshabilitando los innecesarios,
     rellenando los combos, formateando el TreeView -si lo hay-...
     """
     # Inicialmente no se muestra NADA. Sólo se le deja al
     # usuario la opción de buscar o crear nuevo.
     self.activar_widgets(False)
     self.wids['b_actualizar'].set_sensitive(False)
     self.wids['b_guardar'].set_sensitive(False)
     self.wids['b_nuevo'].set_sensitive(True)
     self.wids['b_buscar'].set_sensitive(True)
     provs = pclases.Proveedor.select(orderBy = 'nombre')
     lista_provs = [(p.id, p.nombre) for p in provs if not p.inhabilitado]
     utils.rellenar_lista(self.wids['cmbe_proveedor'], lista_provs)
     lista_alms = [(a.id, a.nombre)
                   for a in pclases.Almacen.select(
                       pclases.Almacen.q.activo == True,
                       orderBy = "id")]
     utils.rellenar_lista(self.wids['cbe_almacenID'], lista_alms)
     # Inicialización del resto de widgets:
     cols = (('Código', 'gobject.TYPE_STRING', False, True, False, None),
             ('Descripción', 'gobject.TYPE_STRING', False,True,False,None),
             ('Cantidad recibida', 'gobject.TYPE_STRING',
                 True, True, False, self.cambiar_cantidad),
             ('Precio s/IVA', 'gobject.TYPE_STRING',
                 True, True, False, self.cambiar_precio),
             ('IVA', 'gobject.TYPE_STRING',
                 True, True, False, self.cambiar_iva),
             ('Descuento', 'gobject.TYPE_STRING',
                 True, True, False, self.cambiar_descuento_ldc),
             ('Total línea', 'gobject.TYPE_STRING', False,True,False,None),
             ('Silo', 'gobject.TYPE_STRING', False, True, False, None),
             ('pedido en', 'gobject.TYPE_STRING', False, True, False, None),
             ('con fecha', 'gobject.TYPE_STRING', False, True, False, None),
             ('IDProducto', 'gobject.TYPE_INT64', False, False, False, None)
            )
     utils.preparar_listview(self.wids['tv_ldvs'], cols)
     for n in (2, 3, 4, 5, 7):
         for cell in self.wids['tv_ldvs'].get_column(n).get_cell_renderers():
             cell.set_property('xalign', 1.0)
     self.cambiar_por_combo(self.wids['tv_ldvs'], 7)
Esempio n. 30
0
 def rellenar_widgets(self):
     """
     Introduce la información del cuenta actual
     en los widgets.
     No se chequea que sea != None, así que
     hay que tener cuidado de no llamar a 
     esta función en ese caso.
     """
     if self.objeto.facturaCompra and self.objeto.facturaCompra.proveedor != self.objeto.proveedor: # Cuando hay que recurrir a estas cosas, es que el diseño no es bueno.
         self.objeto.facturaCompra = None
     if self.objeto.proveedorID != None:     # Meto en las cuentas sólo las del proveedor de la transferencia.
         utils.rellenar_lista(self.wids['cbe_destino'], 
                              [(p.id, p.nombre + " " + p.cuenta) for p in pclases.CuentaDestino.select(pclases.CuentaDestino.q.proveedorID == self.objeto.proveedor.id, orderBy = "nombre")])
     else:
         utils.rellenar_lista(self.wids['cbe_destino'], [(p.id, p.nombre + " " + p.cuenta) for p in pclases.CuentaDestino.select(orderBy = "nombre")])
     for nombre_col in self.dic_campos:
         self.escribir_valor(self.objeto.sqlmeta.columns[nombre_col], getattr(self.objeto, nombre_col), self.dic_campos[nombre_col])
     self.wids['e_factura'].set_text(self.objeto.concepto)
     self.objeto.make_swap()