def saveDao(self, tipo=None): if self.denominazione_entry.get_text() == '': obligatoryField(self.dialogTopLevel, self.denominazione_entry, msg='Inserire la denominazione!') if findStrFromCombobox(self.tipo_combobox, 0) == '': obligatoryField(self.dialogTopLevel, self.tipo_combobox, msg='Inserire il tipo di pagamento!') self.dao.id_aliquota_iva = findIdFromCombobox(self.id_aliquota_iva_ccb.combobox) self.dao.denominazione = self.denominazione_entry.get_text() self.dao.spese = float(self.spese_entry.get_text()) self.dao.codice = self.codice_entry.get_text() self.dao.tipo = findStrFromCombobox(self.tipo_combobox, 0) self.dao.persist()
def refresh(self): """ Allora, si è resa necessaria una soluzione tampone per la ricerca avanzata, non avendo più la tabella d'appoggio come prima viaggia una lista di id che deve essere gestita poi in una query il risultato è minore pulizia ma maggiore velocità """ listcount = 0 multilistCount = 0 multilist = [] if type(self.orderBy) == type(None): self.orderBy = Articolo.denominazione.asc() if not self.join: self.join = Articolo idArt = [] articolo = self.id_articolo_filter.get_text() if articolo: idArt = [a.id for a in Articolo().select(denominazione=articolo, batchSize=None)] idListino = findIdFromCombobox(self.id_listino_filter_combobox) idFami = findIdFromCombobox(self.id_famiglia_articolo_filter_combobox) idCate = findIdFromCombobox(self.id_categoria_articolo_filter_combobox) idArt2 = [] if idFami: idArt2 = [a.id for a in Articolo().select(idFamiglia= idFami, batchSize=None)] idArt3 = [] if idCate: idArt3 = [a.id for a in Articolo().select(idCategoria= idCate, batchSize=None)] idArticolo = idArt+idArt2+idArt3 if idArticolo == []: idArticolo=None idSottoListino = findIdFromCombobox(self.id_sotto_listino_filter_combobox) if not idSottoListino and self.isComplexPriceList: for sottolist in self.isComplexPriceList: multilist.append(sottolist.id_listino) idListino=multilist elif idSottoListino and self.isComplexPriceList : idListino=idSottoListino def filterCountClosure(): return ListinoArticolo().count(idListino=idListino, idArticolo=idArticolo, listinoAttuale=True) self._filterCountClosure = filterCountClosure self.numRecords = self.countFilterResults() self._refreshPageCount() # Let's save the current search as a closure def filterClosure(offset, batchSize): return ListinoArticolo().select(orderBy=self.orderBy, idListino=idListino, idArticolo=idArticolo, listinoAttuale=True, offset=offset, join=self.join, batchSize=batchSize) self._filterClosure = filterClosure self.liss = self.runFilter() # self.xptDaoList = self.runFilter(offset=None, batchSize=None) modelRow = [] modelRowPromoWear = [] self._treeViewModel.clear() for l in self.liss: modelRow = [l, l.denominazione or 'PP', l.codice_articolo or '', l.articolo or '', dateToString(l.data_listino_articolo), str(mN(l.prezzo_dettaglio) or 0), str(mN(l.prezzo_ingrosso) or 0), str(mN(l.ultimo_costo) or 0)] if posso("PW"): modelRowPromoWear=[l.denominazione_gruppo_taglia or '', l.denominazione_taglia or '', l.denominazione_colore or '', l.anno or '', l.stagione or '', l.genere or ''] if modelRowPromoWear: self._treeViewModel.append(modelRow +modelRowPromoWear) else: self._treeViewModel.append((modelRow))