def provvSaveDao(self): self.dao_provv_pg_az_art = ProvvPgAzArt().select(id_persona_giuridica_from=self.ana.dao.id, batchSize=None) for a in self.dao_provv_pg_az_art: a.delete() for a in self.provv_listore: if a[2] != "": dao_provv = Provvigione() dao_provv.valore_provv = a[2] dao_provv.tipo_provv = a[3] dao_provv.persist() dao_provv_pg_az_art = ProvvPgAzArt() dao_provv_pg_az_art.id_persona_giuridica_to = a[0].id dao_provv_pg_az_art.id_persona_giuridica_from = self.ana.dao.id dao_provv_pg_az_art.id_provvigione = dao_provv.id dao_provv_pg_az_art.persist()
def setDao(self, dao): """ Si istanzia un nuovo DAO o nuovo o prelevato dalla Treeview principale """ if dao is None: self.dao = ProvvPgAzArt() self.__dao_provv = Provvigione() else: self.dao = dao self.__dao_provv = self.dao.provv self._refresh() return self.dao
class AnagraficaProvvEdit(AnagraficaEdit): """ Modifica un record dell'anagrafica delle provvigioni """ def __init__(self, anagrafica, daoFrom=None, tipo="Cliente"): AnagraficaEdit.__init__(self, anagrafica, 'Gestione Provvigioni', root='anagrafica_provv_detail_vbox', path='Provvigione/gui/_anagrafica_provv_elements.glade', isModule=True) self._widgetFirstFocus = self.provv_ArticoloSearchWidget self.anagrafica = anagrafica self.daoFrom = daoFrom self.tipo = tipo def draw(self, cplx=False): """ Funzione che "disegna l'interfaccia, devi annullare alcune combo a seconda di cosa richiama la finestra...iniziamo dal caso cliente """ if self.tipo == "Cliente": self.provv_ClienteSearchWidget.set_sensitive(False) self.provv_PersonaGiuridicaSearchWidget.set_sensitive(False) def setDao(self, dao): """ Si istanzia un nuovo DAO o nuovo o prelevato dalla Treeview principale """ if dao is None: self.dao = ProvvPgAzArt() self.__dao_provv = Provvigione() else: self.dao = dao self.__dao_provv = self.dao.provv self._refresh() return self.dao def _refresh(self): """Funzione che rinfresca la UI all'apertura e dopo alcune operazioni di modifica """ if self.dao.provv: self.valore_provv_entry.set_value(mN(self.dao.provv.valore_provv, 2)) else: self.valore_provv_entry.set_text("") if self.dao.provv and self.dao.provv.tipo_provv == "€": tippo = 1 else: tippo = 0 self.tipo_provv_euro_radiobutton.set_active(tippo) self.provv_ClienteSearchWidget.setId(self.daoFrom.id) self.provv_FornitoreSearchWidget.setId(self.dao.id_persona_giuridica_to) self.provv_ArticoloSearchWidget.setId(self.dao.id_articolo) def clear(self): """ Funzione di reset o pulizia della UI """ return def saveDao(self, tipo=None): """ Si effettuano controlli di coerenza, eventuale presenza di campi obbligatori ei provvedere a salvare il record dopo aver assegnato i valori necessari """ provv_valore = self.valore_provv_entry.get_value() if self.tipo_provv_euro_radiobutton.get_active(): tippo = "€" else: tippo = "%" provv_tipo = tippo self.__dao_provv.valore_provv = provv_valore self.__dao_provv.tipo_provv = provv_tipo self.__dao_provv.persist() self.dao.id_articolo = self.provv_ArticoloSearchWidget.getId() self.dao.id_persona_giuridica_from = self.daoFrom.id self.dao.id_persona_giuridica_to = self.provv_FornitoreSearchWidget.getId() self.dao.id_provvigione = self.__dao_provv.id self.dao.persist() self.clear()