def ricercaArticolo(self, isNode= False): def on_ricerca_articolo_hide(anagWindow, anag, isNode=False): if anag.dao is None: anagWindow.destroy() return anagWindow.destroy() if isNode: print "SEI PADRE" self.mostraArticoloPadre(anag.dao) else: print "SEI FIGLIO" self.mostraArticoloFiglio(anag.dao) codice = None codiceABarre = None denominazione = None codiceArticoloFornitore = None from promogest.ui.RicercaComplessaArticoli import RicercaComplessaArticoli anag = RicercaComplessaArticoli(denominazione=denominazione, codice=codice, codiceABarre=codiceABarre, codiceArticoloFornitore=codiceArticoloFornitore) anag.setTreeViewSelectionType(GTK_SELECTIONMODE_SINGLE) anagWindow = anag.getTopLevel() anagWindow.connect("hide", on_ricerca_articolo_hide, anag, isNode) anagWindow.set_transient_for(self.dialogTopLevel) anagWindow.show_all()
def on_combobox_articolo_search_clicked(self, combobox): #richiama la ricerca degli articoli def refresh_combobox_articolo(anagWindow): self._resultsCount = self._ricerca.getResultsCount() resultsElement = self._ricerca.getResultsElement() if not (self._resultsCount > 0): self.set_active(0) return if self._resultsCount == 1: id = resultsElement.id res = leggiArticolo(id) combobox.refresh(id, res["denominazione"], res) else: combobox.refresh( None, ('< %d articoli selezionati... >' % self._resultsCount), None, rowType='old_search') if self._callName is not None: self._callName() if combobox.on_selection_changed(): if self._ricerca is None: from promogest.ui.RicercaComplessaArticoli import RicercaComplessaArticoli self._ricerca = RicercaComplessaArticoli() if not self._filter: self._ricerca.setTreeViewSelectionType( gtk.SELECTION_SINGLE) else: self._ricerca.refresh() anagWindow = self._ricerca.getTopLevel() returnWindow = combobox.get_toplevel() anagWindow.set_transient_for(returnWindow) anagWindow.connect("hide", refresh_combobox_articolo) self._ricerca.getTopLevel().show_all() elif self._callName is not None: self._callName()
def on_icon_press(self,entry,position,event): """ scopettina agganciata ad un segnale generico """ if position.value_nick == "primary": def refresh_entry(anagWindow): self._resultsCount = self._ricerca.getResultsCount() resultsElement = self._ricerca.getResultsElement() if not(self._resultsCount > 0): self.set_active(0) return if self._resultsCount == 1: id = resultsElement.id res = leggiArticolo(id) denominazione = res["denominazione"] self.set_text(denominazione) self._id = id self._container = res["daoArticolo"] try: self.anaedit.on_id_articolo_customcombobox_changed() except: pass from promogest.ui.RicercaComplessaArticoli import RicercaComplessaArticoli self._ricerca = RicercaComplessaArticoli() if not self._filter: self._ricerca.setTreeViewSelectionType(GTK_SELECTIONMODE_SINGLE) else: self._ricerca.refresh() anagWindow = self._ricerca.getTopLevel() returnWindow = self.get_toplevel() anagWindow.set_transient_for(returnWindow) anagWindow.connect("hide", refresh_entry) self._ricerca.show_all() else: #secondary self.set_text("") self._id = None self.grab_focus()
class ArticoloSearchWidget(CustomComboBoxSearch): """ Classe base per la ricerca articoli """ __gtype_name__ = 'ArticoloSearchWidget' def __init__(self): CustomComboBoxSearch.__init__(self) self.connect('changed', self.on_entry_key_press_event) #self.setChangedHandler(idHandler) #self.connect("destroy-event", self.on_widget_destroy) self.connect("icon-press", self.on_icon_press) self._callName = None self._ricerca = None self._filter = True self._resultsCount = 0 self.clear() def on_icon_press(self,entry,position,event): """ scopettina agganciata ad un segnale generico """ if position.value_nick == "primary": def refresh_entry(anagWindow): self._resultsCount = self._ricerca.getResultsCount() resultsElement = self._ricerca.getResultsElement() if not(self._resultsCount > 0): self.set_active(0) return if self._resultsCount == 1: id = resultsElement.id res = leggiArticolo(id) denominazione = res["denominazione"] self.set_text(denominazione) self._id = id self._container = res["daoArticolo"] try: self.anaedit.on_id_articolo_customcombobox_changed() except: pass from promogest.ui.RicercaComplessaArticoli import RicercaComplessaArticoli self._ricerca = RicercaComplessaArticoli() if not self._filter: self._ricerca.setTreeViewSelectionType(GTK_SELECTIONMODE_SINGLE) else: self._ricerca.refresh() anagWindow = self._ricerca.getTopLevel() returnWindow = self.get_toplevel() anagWindow.set_transient_for(returnWindow) anagWindow.connect("hide", refresh_entry) self._ricerca.show_all() else: #secondary self.set_text("") self._id = None self.grab_focus() def ricercaDao(self, keyname): from promogest.dao.Articolo import Articolo cli = Articolo().select(denominazione=keyname, cancellato=True, batchSize=40) model = self.completion.get_model() model.clear() for m in cli: model.append(('empty', m.id, m.denominazione, m)) def setId(self, value): self.insertComboboxSearchArticolo(self, value) def getId(self): """ funziona modificata per passare una lista di id necessari alla ricerca prima veniva creata una tabella con i risultati della ricerca e la si usava per le ricerche successive, adesso si devono far passare i dati via codice """ if self.isEmpty(): self.clear() elif (self._resultsCount > 1) and (self._ricerca is not None): self._ricerca.refresh() return self.idlist return self._id def getData(self): return self._container def insertComboboxSearchArticolo(self, combobox, idArticolo, clear=False, filter=True): res = leggiArticolo(idArticolo) combobox.refresh(idArticolo, res["denominazione"], res, clear, filter) self._container = res def clear(self): self.set_active(0) def setOnChangedCall(self, callName=None): self._callName = callName def setSingleValue(self): self._filter = False def setMultipleValues(self): self._filter = True
class ArticoloSearchWidget(CustomComboBoxSearch): """ Classe base per la ricerca articoli """ def __init__(self): CustomComboBoxSearch.__init__(self) idHandler = self.connect('changed', self.on_combobox_articolo_search_clicked) self.setChangedHandler(idHandler) self._callName = None self._ricerca = None self._filter = True self._resultsCount = 0 self.clear() def on_combobox_articolo_search_clicked(self, combobox): #richiama la ricerca degli articoli def refresh_combobox_articolo(anagWindow): self._resultsCount = self._ricerca.getResultsCount() resultsElement = self._ricerca.getResultsElement() if not (self._resultsCount > 0): self.set_active(0) return if self._resultsCount == 1: id = resultsElement.id res = leggiArticolo(id) combobox.refresh(id, res["denominazione"], res) else: combobox.refresh( None, ('< %d articoli selezionati... >' % self._resultsCount), None, rowType='old_search') if self._callName is not None: self._callName() if combobox.on_selection_changed(): if self._ricerca is None: from promogest.ui.RicercaComplessaArticoli import RicercaComplessaArticoli self._ricerca = RicercaComplessaArticoli() if not self._filter: self._ricerca.setTreeViewSelectionType( gtk.SELECTION_SINGLE) else: self._ricerca.refresh() anagWindow = self._ricerca.getTopLevel() returnWindow = combobox.get_toplevel() anagWindow.set_transient_for(returnWindow) anagWindow.connect("hide", refresh_combobox_articolo) self._ricerca.getTopLevel().show_all() elif self._callName is not None: self._callName() def setId(self, value): self.insertComboboxSearchArticolo(self, value) def getId(self): if self.isEmpty(): self.clear() elif (self._resultsCount > 1) and (self._ricerca is not None): self._ricerca.refresh() return self._id def getData(self): return self._container def insertComboboxSearchArticolo(self, combobox, idArticolo, clear=False, filter=True): res = leggiArticolo(idArticolo) combobox.refresh(idArticolo, res["denominazione"], res, clear, filter) def clear(self): Environment.connection.execStoredProcedure('ArticoloFilteredDestroy', ()) self.set_active(0) def setOnChangedCall(self, callName=None): self._callName = callName def setSingleValue(self): self._filter = False def setMultipleValues(self): self._filter = True