class AnagraficaCategorieArticoliDetail(AnagraficaDetail): """ Dettaglio dell'anagrafica delle categorie articoli """ def __init__(self, anagrafica): AnagraficaDetail.__init__(self, anagrafica, path='_anagrafica_categorie_articoli_elements.glade') def setDao(self, dao): self.dao = dao if dao is None: self.dao = CategoriaArticolo() self._anagrafica._newRow((self.dao, '', '')) #self._refresh() return self.dao def updateDao(self): if self.dao: self.dao = CategoriaArticolo().getRecord(id=self.dao.id) self._refresh() def _refresh(self): sel = self._anagrafica.anagrafica_treeview.get_selection() (model, iterator) = sel.get_selected() if iterator and self.dao: model.set_value(iterator, 0, self.dao) model.set_value(iterator, 1, self.dao.denominazione) model.set_value(iterator, 2, self.dao.denominazione_breve) def saveDao(self): sel = self._anagrafica.anagrafica_treeview.get_selection() (model, iterator) = sel.get_selected() denominazione = model.get_value(iterator, 1) or '' denominazioneBreve = model.get_value(iterator, 2) or '' if (denominazione == ''): obligatoryField(self._anagrafica.getTopLevel(), self._anagrafica.anagrafica_treeview) if (denominazioneBreve == ''): obligatoryField(self._anagrafica.getTopLevel(), self._anagrafica.anagrafica_treeview) self.dao.denominazione = denominazione self.dao.denominazione_breve = denominazioneBreve self.dao.persist() def deleteDao(self): usata = Articolo().select(idCategoria=self.dao.id, batchSize=None) if usata: msg = """NON è possibile cancellare questa CATEGORIA ARTICOLO perchè abbinata ad uno o più articoli ATTENZIONE ATTENZIONE!! E' però possibile "passare" tutti gli articoli della categoria che si vuole cancellare ad un'altra ancora presente. Inserite la descrizione breve ( Esattamente come è scritta) della categoria di destinazione qui sotto e premete SI L'operazione è irreversibile,retroattiva e potrebbe impiegare qualche minuto """ move, nuova_categoria = YesNoDialog(msg=msg, transient=None, show_entry=True) if move and nuova_categoria: cate = CategoriaArticolo().select( denominazioneBreveEM=nuova_categoria) if cate: idcat = cate[0].id else: msg = """NON è stato possibile trovare la categoria di passaggio, non faccio niente""" messageInfo(msg=msg) return for u in usata: u.id_categoria_articolo = idcat u.persist() self.dao.delete() else: self.dao.delete()