Пример #1
0
    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))