def on_combobox_persona_giuridica_search_clicked(self, combobox): #richiama la ricerca clienti/fornitori def refresh_combobox_persona_giuridica(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 if self._type == 'cliente': res = leggiCliente(id) elif self._type == 'fornitore': res = leggiFornitore(id) denominazione = res["ragioneSociale"] if denominazione == '': denominazione = res["nome"] + ' ' + res["cognome"] combobox.refresh(id, denominazione, res) else: if self._type == 'cliente': combobox.refresh( None, ('< %d clienti selezionati... >' % self._resultsCount), None, rowType='old_search') elif self._type == 'fornitore': combobox.refresh(None, ('< %d fornitori 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: if self._type == 'cliente': from promogest.ui.RicercaComplessaClienti import RicercaComplessaClienti self._ricerca = RicercaComplessaClienti() elif self._type == 'fornitore': from promogest.ui.RicercaComplessaFornitori import RicercaComplessaFornitori self._ricerca = RicercaComplessaFornitori() 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_persona_giuridica) 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 self.setId(id) try: self.anaedit.persona_giuridica_changed(self) except: pass if self._type == 'cliente': from promogest.ui.RicercaComplessaClienti import RicercaComplessaClienti self._ricerca = RicercaComplessaClienti() elif self._type == 'fornitore': from promogest.ui.RicercaComplessaFornitori import RicercaComplessaFornitori self._ricerca = RicercaComplessaFornitori() 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.clean_entry()
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 = leggiFornitore(id) denominazione = res["ragioneSociale"] if denominazione == '': denominazione = res["nome"] + ' ' + res["cognome"] self.set_text(denominazione) self._id = id #self.on_completion_match_main() from promogest.ui.RicercaComplessaFornitori import RicercaComplessaFornitori try: idCat = findIdFromCombobox(self.anaedit. id_categoria_fornitore_customcombobox.combobox) except: idCat = None self._ricerca = RicercaComplessaFornitori(idCategoria = idCat) 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.clear_entry()
class PersonaGiuridicaSearchWidget(CustomComboBoxSearch): """ Classe base per la ricerca clienti """ __gtype_name__ = 'PersonaGiuridicaSearchWidget' def __init__(self): CustomComboBoxSearch.__init__(self) self.connect("delete-event", self.on_widget_delete) self.connect('changed', self.on_entry_key_press_event) #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._type = 'cliente' 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 self.setId(id) try: self.anaedit.persona_giuridica_changed(self) except: pass if self._type == 'cliente': from promogest.ui.RicercaComplessaClienti import RicercaComplessaClienti self._ricerca = RicercaComplessaClienti() elif self._type == 'fornitore': from promogest.ui.RicercaComplessaFornitori import RicercaComplessaFornitori self._ricerca = RicercaComplessaFornitori() 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.clean_entry() def ricercaDao(self, keyname): from promogest.dao.Cliente import Cliente from promogest.dao.Fornitore import Fornitore if self._type == "fornitore": cli = Fornitore().select(ragioneSociale=keyname, batchSize=40) else: cli = Cliente().select(ragioneSociale=keyname, batchSize=40) model = self.completion.get_model() model.clear() for m in cli: rag = m.ragione_sociale or (m.cognome + " " + m.nome) model.append(('empty', m.id, rag, m)) def setId(self, value): self.insertComboboxSearchPersonaGiuridica(self, value) self._id = value def getId(self): #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): self.insertComboboxSearchPersonaGiuridica(self, self._id) return self._container def insertComboboxSearchPersonaGiuridica(self, combobox, id, clear=False, filter=True): if self._type == 'cliente': res = leggiCliente(id) elif self._type == 'fornitore': res = leggiFornitore(id) denominazione = res["ragioneSociale"] or (res["nome"] + ' ' + res["cognome"]) #if denominazione == '': #denominazione = res["nome"] + ' ' + res["cognome"] combobox.refresh(id, denominazione, res, clear, filter) #self.set_text(denominazione) #print "IDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD", id #self._id = id #self.set_text(denominazione) 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 def setType(self, type='cliente'): if self._type != type and self._ricerca is not None: anagWindow = self._ricerca.getTopLevel() anagWindow.destroy() del self._ricerca self._ricerca = None self._type = type def getType(self): return self._type def on_widget_delete(self, widget, event): if self._ricerca is not None: anagWindow = self._ricerca.getTopLevel() anagWindow.destroy() del self._ricerca self._ricerca = None
class PersonaGiuridicaSearchWidget(CustomComboBoxSearch): """ Classe base per la ricerca clienti """ def __init__(self): CustomComboBoxSearch.__init__(self) idHandler = self.connect( 'changed', self.on_combobox_persona_giuridica_search_clicked) self.setChangedHandler(idHandler) self.connect("delete-event", self.on_widget_delete) self._callName = None self._ricerca = None self._filter = True self._resultsCount = 0 self._type = 'cliente' self.clear() def on_combobox_persona_giuridica_search_clicked(self, combobox): #richiama la ricerca clienti/fornitori def refresh_combobox_persona_giuridica(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 if self._type == 'cliente': res = leggiCliente(id) elif self._type == 'fornitore': res = leggiFornitore(id) denominazione = res["ragioneSociale"] if denominazione == '': denominazione = res["nome"] + ' ' + res["cognome"] combobox.refresh(id, denominazione, res) else: if self._type == 'cliente': combobox.refresh( None, ('< %d clienti selezionati... >' % self._resultsCount), None, rowType='old_search') elif self._type == 'fornitore': combobox.refresh(None, ('< %d fornitori 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: if self._type == 'cliente': from promogest.ui.RicercaComplessaClienti import RicercaComplessaClienti self._ricerca = RicercaComplessaClienti() elif self._type == 'fornitore': from promogest.ui.RicercaComplessaFornitori import RicercaComplessaFornitori self._ricerca = RicercaComplessaFornitori() 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_persona_giuridica) self._ricerca.getTopLevel().show_all() elif self._callName is not None: self._callName() def setId(self, value): self.insertComboboxSearchPersonaGiuridica(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 insertComboboxSearchPersonaGiuridica(self, combobox, id, clear=False, filter=True): if self._type == 'cliente': res = leggiCliente(id) elif self._type == 'fornitore': res = leggiFornitore(id) denominazione = res["ragioneSociale"] if denominazione == '': denominazione = res["nome"] + ' ' + res["cognome"] combobox.refresh(id, denominazione, res, clear, filter) def clear(self): if self._type == 'cliente': Environment.connection.execStoredProcedure( 'ClienteFilteredDestroy', ()) elif self._type == 'fornitore': Environment.connection.execStoredProcedure( 'FornitoreFilteredDestroy', ()) self.set_active(0) def setOnChangedCall(self, callName=None): self._callName = callName def setSingleValue(self): self._filter = False def setMultipleValues(self): self._filter = True def setType(self, type='cliente'): if self._type != type and self._ricerca is not None: anagWindow = self._ricerca.getTopLevel() anagWindow.destroy() del self._ricerca self._ricerca = None self._type = type def getType(self): return self._type def on_widget_delete(self, widget, event): if self._ricerca is not None: anagWindow = self._ricerca.getTopLevel() anagWindow.destroy() del self._ricerca self._ricerca = None
class FornitoreSearchWidget(CustomComboBoxSearch): """ Classe base per la ricerca fornitori """ __gtype_name__ = 'FornitoreSearchWidget' def __init__(self): CustomComboBoxSearch.__init__(self) self.connect('changed', self.on_entry_key_press_event) 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 = leggiFornitore(id) denominazione = res["ragioneSociale"] if denominazione == '': denominazione = res["nome"] + ' ' + res["cognome"] self.set_text(denominazione) self._id = id #self.on_completion_match_main() from promogest.ui.RicercaComplessaFornitori import RicercaComplessaFornitori try: idCat = findIdFromCombobox(self.anaedit. id_categoria_fornitore_customcombobox.combobox) except: idCat = None self._ricerca = RicercaComplessaFornitori(idCategoria = idCat) 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.clear_entry() def ricercaDao(self, keyname): from promogest.dao.Fornitore import Fornitore try: idCat = findIdFromCombobox(self.anaedit. id_categoria_fornitore_customcombobox.combobox) except: idCat = None cli = Fornitore().select(ragioneSociale=keyname,idCategoria=idCat, batchSize=40) model = self.completion.get_model() model.clear() for m in cli: model.append(('empty', m.id, m.ragione_sociale, m)) def setId(self, value): self.insertComboboxSearchFornitore(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.idlist return self._id def getData(self): return self._container def insertComboboxSearchFornitore(self, combobox, idFornitore, clear=False, filter=True): res = leggiFornitore(idFornitore) denominazione = res["ragioneSociale"] if denominazione == '': denominazione = res["nome"] + ' ' + res["cognome"] combobox.refresh(idFornitore, denominazione, res, clear, filter) 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 def on_widget_destroy(self, widget, event): if self._ricerca is not None: anagWindow = self._ricerca.getTopLevel() anagWindow.destroy() del self._ricerca self._ricerca = None