def filtrar_tildes_lista(lista): """ Devuelve una lista con los elementos de la recibida en los cuales se han sustituido las tildes por vocales sin tildar. """ res = [] for e in lista: res.append(utils.filtrar_tildes(e)) return res
def filtrar_por_forma_de_pago(self, r): res = r[:] if self.wids['ch_formapago'].get_active(): formapago = utils.combo_get_value(self.wids['cb_formapago']) if formapago != None: txtformapago = self.formaspago[formapago][1] res = [] for v in r: # v es una tupla con fecha, vencimiento o estimación y un boolean para indicar si es de LOGIC. # Las formas de pago en el combo están todas en minúsuclas y sin tildes: if not v[2] and txtformapago in utils.filtrar_tildes(v[1].observaciones).lower(): res.append(v) return res
def buscar(self,boton): """ Dadas fecha de inicio y de fin, devuelve todos los vencimientos no pagados al completo. """ vpro = VentanaProgreso(padre = self.wids['ventana']) vpro.mostrar() if self.inicio == None: pagos = pclases.Pago.select(pclases.Pago.q.fecha <= self.fin, orderBy = "fecha") pagares = pclases.PagarePago.select( pclases.PagarePago.q.fechaEmision <= self.fin, orderBy = "fechaEmision") else: pagos = pclases.Pago.select(pclases.AND( pclases.Pago.q.fecha >= self.inicio, pclases.Pago.q.fecha <= self.fin), orderBy='fecha') pagares = pclases.PagarePago.select(pclases.AND( pclases.PagarePago.q.fechaEmision >= self.inicio, pclases.PagarePago.q.fechaEmision <= self.fin), orderBy='fechaEmision') i = 0.0 tot = pagos.count() + pagares.count() proveedor = None idproveedor = utils.combo_get_value(self.wids['cmbe_proveedor']) if idproveedor != None: idproveedor = utils.combo_get_value(self.wids['cmbe_proveedor']) proveedor = pclases.Proveedor.get(idproveedor) self.resultado = [] filtrar_por_formapago = self.wids['ch_formapago'].get_active() formapago = utils.combo_get_value(self.wids['cb_formapago']) for pago in pagos: i += 1 vpro.set_valor(i/tot, "Buscando pagos... (%d/%d)" % (i, tot)) # Si es un pagaré, se trata en el siguiente bucle. if pago.pagarePago: continue if (not proveedor or (proveedor and pago.facturaCompra and pago.facturaCompra.proveedor == proveedor)): try: txtformapago = self.formaspago[formapago][1] except TypeError: # formapago es None. No se está filtrando # por forma de pago. filtrar_por_formapago = False self.wids['ch_formapago'].set_active(False) if (not filtrar_por_formapago or (txtformapago in utils.filtrar_tildes(pago.observaciones).lower())): self.resultado.append(pago) for pagare in pagares: i += 1 vpro.set_valor(i/tot, "Buscando pagos... (%d/%d)" % (i, tot)) for pago in pagare.pagos: if (not proveedor or (proveedor and pago.facturaCompra and pago.facturaCompra.proveedor == proveedor)): try: txtformapago = self.formaspago[formapago][1] except TypeError: # formapago es None. No se está filtrando # por forma de pago. filtrar_por_formapago = False self.wids['ch_formapago'].set_active(False) if (not filtrar_por_formapago or (txtformapago in utils.filtrar_tildes(pago.observaciones).lower())): self.resultado.append(pago) vpro.ocultar() self.rellenar_tabla(self.resultado)