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()