def setDao(self, dao): if dao is None: # Crea un nuovo Dao vuoto self.dao = Multiplo() else: # Ricrea il Dao con una connessione al DBMS SQL self.dao = Multiplo().getRecord(id=dao.id) self._refresh() return self.dao
class AnagraficaMultipliEdit(AnagraficaEdit): """ Modifica un record dell'anagrafica dei multipli """ def __init__(self, anagrafica): AnagraficaEdit.__init__( self, anagrafica, "Dati multiplo", root="anagrafica_multipli_detail_table", path="_anagrafica_multipli_elements.glade", ) self._widgetFirstFocus = self.denominazione_entry def draw(self, cplx=False): # Popola combobox unita di misura base fillComboboxUnitaBase(self.id_unita_base_combobox) if self._anagrafica._idUnitaBase is not None: self.id_unita_base_combobox.set_sensitive(False) def setDao(self, dao): if dao is None: # Crea un nuovo Dao vuoto self.dao = Multiplo() else: # Ricrea il Dao con una connessione al DBMS SQL self.dao = Multiplo().getRecord(id=dao.id) self._refresh() return self.dao def _refresh(self): self.denominazione_entry.set_text(self.dao.denominazione or "") self.denominazione_breve_entry.set_text(self.dao.denominazione_breve or "") moltiplicatore = self.dao.moltiplicatore or 0 self.moltiplicatore_entry.set_text("%-6.4f" % moltiplicatore) findComboboxRowFromId(self.id_unita_base_combobox, self.dao.id_unita_base or self._anagrafica._idUnitaBase) if self._anagrafica._idUnitaBase is not None: self.id_unita_base_combobox.set_sensitive(False) def saveDao(self, tipo=None): if self.denominazione_entry.get_text() == "": obligatoryField(self.dialogTopLevel, self.denominazione_entry) if self.denominazione_breve_entry.get_text() == "": obligatoryField(self.dialogTopLevel, self.denominazione_breve_entry) if self.moltiplicatore_entry.get_text() == "": obligatoryField(self.dialogTopLevel, self.moltiplicatore_entry) if findIdFromCombobox(self.id_unita_base_combobox) is None: obligatoryField(self.dialogTopLevel, self.id_unita_base_combobox) if self._anagrafica._idArticolo is not None: if self.dao.id_unita_base is not None: # il multiplo esiste gia' ed e' generico e tale deve restare return else: # e' un multiplo legato all'articolo self.dao.id_articolo = self._anagrafica._idArticolo self.dao.id_unita_base = None else: # il multiplo e' generico self.dao.id_articolo = None self.dao.id_unita_base = findIdFromCombobox(self.id_unita_base_combobox) self.dao.denominazione = self.denominazione_entry.get_text() self.dao.denominazione_breve = self.denominazione_breve_entry.get_text() self.dao.moltiplicatore = float(self.moltiplicatore_entry.get_text()) self.dao.persist()