def _refresh(self):
     if self.dao.id_taglia is not None:
         self.taglia = Taglia().getRecord(id= self.dao.id_taglia)
     else:
         self.taglia = Taglia()
     self.denominazione_entry.set_text(self.taglia.denominazione or '')
     self.denominazione_breve_entry.set_text(self.taglia.denominazione_breve or '')
     fillComboboxGruppiTaglia(self.gruppo_taglia_combobox)
     findComboboxRowFromId(self.gruppo_taglia_combobox,
                                             self.dao.id_gruppo_taglia)
     self.ordine_spinbutton.set_value(self.dao.ordine or 1)
Example #2
0
    def addGruppiTaglia(self):
        for riga in self.listaRighe:
            if "Gruppo Taglia" in riga and \
                    riga["Gruppo Taglia"] and \
                    "Taglia" in riga and\
                    riga["Taglia"] == "":
                gruppo_taglia = GruppoTaglia().select(denominazione = riga["Gruppo Taglia"])
                if not gruppo_taglia:
                    a = GruppoTaglia()
                    a.denominazione = riga["Gruppo Taglia"]
                    a.denominazione_breve = riga["Gruppo Taglia"]
                    a.persist()
            elif "Gruppo Taglia" in riga and \
                        riga["Gruppo Taglia"] and\
                        "Taglia" in riga and\
                        riga["Taglia"]:
                _taglia = Taglia().select(denominazione = riga["Taglia"])
                if not _taglia:
                    t = Taglia()
                    t.denominazione = riga["Taglia"]
                    t.denominazione_breve = riga["Taglia"]
                    t.persist()
                tid = Taglia().select(denominazione = riga["Taglia"])[0].id
                gtids = GruppoTaglia().select(denominazione = riga["Gruppo Taglia"])
                if gtids:
                    gtid =  gtids[0].id
                if tid and gtid:
                    gtt = GruppoTagliaTaglia().select(idGruppoTaglia= gtid,
                                                    idTaglia = tid)
                    if not gtt:
                        numero_taglie = GruppoTagliaTaglia().count(idGruppoTaglia= gtid)
                        gtt = GruppoTagliaTaglia()
                        gtt.id_gruppo_taglia = gtid
                        gtt.id_taglia = tid
                        gtt.ordine = (numero_taglie or 1) +1
                        gtt.persist()
            if "Modello" in riga and riga["Modello"]:
                mo = Modello().select(denominazione = riga["Modello"])
                if not mo:
                    mm = Modello()
                    mm.denominazione = riga["Modello"]
                    mm.denominazione_breve = riga["Modello"]
                    mm.persist()

            if "Colore" in riga and riga["Colore"]:
                co = Colore().select(denominazione = riga["Colore"])
                if not co:
                    c = Colore()
                    c.denominazione = riga["Colore"]
                    c.denominazione_breve = riga["Colore"]
                    c.persist()
class AnagraficaTaglieEdit(AnagraficaEdit):
    """ Modifica un record dell'anagrafica delle famiglie articoli """

    def __init__(self, anagrafica):
        AnagraficaEdit.__init__(self,
                anagrafica,
                'Dati taglia',
                root='anagrafica_taglie_detail_table',
                path="PromoWear/gui/_anagrafica_taglie_elements.glade",
                isModule=True)
        self._widgetFirstFocus = self.denominazione_entry

    def draw(self, cplx=False):
        """popola combobox gruppi taglia"""
        fillComboboxGruppiTaglia(self.gruppo_taglia_combobox)

    def setDao(self, dao):
        self.dao = dao
        if dao is None:
            self.dao = GruppoTagliaTaglia()

        self.taglia = None
        self._refresh()
        return self.dao

    def _refresh(self):
        if self.dao.id_taglia is not None:
            self.taglia = Taglia().getRecord(id= self.dao.id_taglia)
        else:
            self.taglia = Taglia()
        self.denominazione_entry.set_text(self.taglia.denominazione or '')
        self.denominazione_breve_entry.set_text(self.taglia.denominazione_breve or '')
        fillComboboxGruppiTaglia(self.gruppo_taglia_combobox)
        findComboboxRowFromId(self.gruppo_taglia_combobox,
                                                self.dao.id_gruppo_taglia)
        self.ordine_spinbutton.set_value(self.dao.ordine or 1)

    def saveDao(self, tipo=None):
        if (self.denominazione_entry.get_text() == ''):
            obligatoryField(self.dialogTopLevel, self.denominazione_entry)

        id_gruppo_taglia = findIdFromCombobox(self.gruppo_taglia_combobox)
        if id_gruppo_taglia is None:
            obligatoryField(self.dialogTopLevel, self.gruppo_taglia_combobox)
#        if id_gruppo_taglia == 1:
#            obligatoryField(self.dialogTopLevel, self.gruppo_taglia_combobox,
#                            'Impossibile inserire nel gruppo "taglia unica" !')

        if self.dao.id_taglia is not None:
            gts = GruppoTagliaTaglia().select(idTaglia=self.dao.id_taglia,
                                                            batchSize=None)
            if len(gts) > 1:
                msg = ('La taglia e\' collegata a diversi gruppi taglia:\n' +
                       'la modifica sara\' visibile su tutti i gruppi taglia ai quali la taglia e\' legata.\n\nContinuare ?')
                if YesNoDialog(msg=msg, transient=self.dialogTopLevel):
                    raise Exception, 'Operation aborted: Errore in taglie'

        # Controllo se esiste gia' la taglia
        self.taglia.denominazione = self.denominazione_entry.get_text()
        self.taglia.denominazione_breve = self.denominazione_breve_entry.get_text()
        tag = Taglia().select(denominazioneBreve = self.taglia.denominazione_breve)
        if not tag:
            self.taglia.persist()
            tagliaid = self.taglia.id
        else:
            tagliaid = tag[0].id
        self.dao.id_gruppo_taglia = findIdFromCombobox(self.gruppo_taglia_combobox)
        self.dao.id_taglia = tagliaid
        self.dao.ordine = self.ordine_spinbutton.get_value_as_int()
        self.dao.persist()