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()
    def saveDao(self, tipo=None):
        """        """
        creaentryvarianti = False
        articolo = None
        if findIdFromCombobox(self.id_listino_customcombobox.combobox) is None:
            obligatoryField(self.dialogTopLevel, self.id_listino_customcombobox.combobox)

        if self.id_articolo_customcombobox.getId() is None:
            obligatoryField(self.dialogTopLevel, self.id_articolo_customcombobox)

        listin = findIdFromCombobox(self.id_listino_customcombobox.combobox)

        self.dao.id_listino = listin
        self.dao.id_articolo = self.id_articolo_customcombobox.getId()

        if posso("PW"):
            articolo = Articolo().getRecord(id=self.dao.id_articolo)
            if articleType(articolo) == "father":
                msg = 'Attenzione! Si sta aggiungengo un Articolo Padre, creare le voci listino anche delle varianti?'
                if YesNoDialog(msg=msg, transient=self.dialogTopLevel):
                    Environment.pg2log.info("CREO LE ENTRY DELLE VARIANTI DI LISTINO PERCHE' SI STA INSERENDO UN PADRE")
                    for art in articolo.articoliVarianti:
                        daoVariante = ListinoArticolo().select(idListino=listin,
                                                        idArticolo=art.id)
                        if daoVariante:
                            #daoVariante[0].delete()
                            daoVariante =daoVariante[0]
                        else:
                            daoVariante = ListinoArticolo()
                        if Environment.listinoFissato and self._anagrafica._idListino:
                            Environment.listinoFissato = None
                        daoVariante.id_articolo = art.id

                        daoVariante.id_listino = findIdFromCombobox(self.id_listino_customcombobox.combobox)
                        daoVariante.listino_attuale = True
                        daoVariante.ultimo_costo = float(self.ultimo_costo_entry.get_text())
                        daoVariante.prezzo_dettaglio = float(self.prezzo_dettaglio_entry.get_text())
                        daoVariante.prezzo_ingrosso = float(self.prezzo_ingrosso_entry.get_text())
                        daoVariante.data_listino_articolo = datetime.datetime.today()


                        sconti_dettaglio = []
                        daoVariante.applicazione_sconti = "scalare"
                        for s in self.sconti_dettaglio_widget.getSconti():
                            daoSconto = ScontoVenditaDettaglio()
                            daoSconto.valore = s["valore"]
                            daoSconto.tipo_sconto = s["tipo"]
                            sconti_dettaglio.append(daoSconto)

                        sconti_ingrosso = []
                        daoVariante.applicazione_sconti = "scalare"
                        for s in self.sconti_ingrosso_widget.getSconti():
                            daoSconto = ScontoVenditaIngrosso()
                            daoSconto.valore = s["valore"]
                            daoSconto.tipo_sconto = s["tipo"]
                            sconti_ingrosso.append(daoSconto)
                        daoVariante.persist(sconti={"dettaglio":sconti_dettaglio,"ingrosso":sconti_ingrosso})
                            #self.articolo_padre = articolo
                            #creaentryvarianti = True

        self.dao.listino_attuale = True
        self.dao.ultimo_costo = float(self.ultimo_costo_entry.get_text())
        self.dao.prezzo_dettaglio = float(self.prezzo_dettaglio_entry.get_text())
        self.dao.prezzo_ingrosso = float(self.prezzo_ingrosso_entry.get_text())
        self.dao.data_listino_articolo = datetime.datetime.today()

        sconti_dettaglio = []
        self.dao.applicazione_sconti = "scalare"
        for s in self.sconti_dettaglio_widget.getSconti():
            daoSconto = ScontoVenditaDettaglio()
            daoSconto.valore = s["valore"]
            daoSconto.tipo_sconto = s["tipo"]
            sconti_dettaglio.append(daoSconto)

        sconti_ingrosso = []
        self.dao.applicazione_sconti = "scalare"
        for s in self.sconti_ingrosso_widget.getSconti():
            daoSconto = ScontoVenditaIngrosso()
            daoSconto.valore = s["valore"]
            daoSconto.tipo_sconto = s["tipo"]
            sconti_ingrosso.append(daoSconto)
        #TODO :riportarlo alle property , risulta molto più pulito
        self.dao.persist(sconti={"dettaglio":sconti_dettaglio,"ingrosso":sconti_ingrosso})