コード例 #1
0
ファイル: listado_productos.py プロジェクト: pacoqueen/ginn
 def sugerir_productos(self, txt):
     """
     Intenta sugerir productos según el corrector Norving.
     """
     from lib import spelling
     palabras = []
     for pc in pclases.ProductoCompra.select():
         palabras.append(pc.codigo.lower())
         palabras.append(pc.descripcion.lower())
     for pc in pclases.ProductoVenta.select():
         palabras.append(pc.codigo.lower())
         palabras.append(pc.descripcion.lower())
     palabras = " ".join(palabras)
     corrector = spelling.SpellCorrector(palabras)
     sugerencia = corrector.correct(txt.lower())
     if sugerencia != txt:
         res = utils.dialogo(titulo = "SUGERENCIA DE BÚSQUEDA", 
                 texto="No se encontró «%s», ¿tal vez quiso decir «%s»?" % (
                         txt, sugerencia), 
                 padre = self.wids['ventana'])
         if res:
             res = ([p for p in utils.buscar_productos_compra(sugerencia)]+ 
                    [p for p in utils.buscar_productos_venta(sugerencia)])
         else:
             res = []
     else:
         raise ValueError, "Sin alternativas que sugerir."
     return res
コード例 #2
0
 def pedir_producto_compra(self):
     """
     Devuelve UN producto de compra obtenido a partir 
     de una búsqueda, etc.
     """
     producto = None
     a_buscar = utils.dialogo_entrada(titulo = "BUSCAR MATERIAL", 
             texto = "Introduzca texto a buscar en productos de compra:", 
             padre = self.wids['ventana'])
     if a_buscar != None:
         resultados = utils.buscar_productos_compra(a_buscar)
         if resultados.count() > 1:
             ## Refinar los resultados:
             filas_res = []
             for r in resultados:
                 filas_res.append((r.id, r.codigo, r.descripcion))
             idproducto = utils.dialogo_resultado(filas_res, 
                     titulo = 'Seleccione producto', 
                     cabeceras = ('ID Interno', 'Código', 'Descripción'), 
                     padre = self.wids['ventana'])
             if idproducto < 0:
                 return
             producto = pclases.ProductoCompra.get(idproducto)
                 # id es clave primaria, esta comprensión debería devolver un único producto
         elif resultados.count() < 1:
             ## La búsqueda no produjo resultados.
             utils.dialogo_info('SIN RESULTADOS', 
                 'La búsqueda no produjo ningún resultado.\nIntente una '
                 'búsqueda menos restrictiva usando un texto más corto.', 
                 padre = self.wids['ventana'])
             return None
         else:
             producto = resultados[0]
     return producto
コード例 #3
0
ファイル: listado_productos.py プロジェクト: pacoqueen/ginn
 def buscar(self, boton):
     a_buscar = self.wids['e_buscar'].get_text()
     productos = []
     for p in utils.buscar_productos_compra(a_buscar):
         productos.append(p)
     for p in utils.buscar_productos_venta(a_buscar):
         productos.append(p)
     if not len(productos) and len(a_buscar): 
         # Busca algo de texto pero no se encontró
         try:
             productos = self.sugerir_productos(a_buscar)
         except (ImportError, ValueError):
             utils.dialogo_info(titulo = "SIN RESULTADOS", 
                                texto = "No se encontraron productos con el"
                                        "texto «%s»." % a_buscar, 
                                padre = self.wids['ventana'])
     self.rellenar_tabla(productos)