예제 #1
0
    def addTagliaColoreData(self, tipo =None, articolo=None, articoloPadre=None):
        """
        modello, genere, colore, gruppo taglia, taglia, stagione, anno
        """
        artTC = None
        if articolo and articolo.id and tipo == "FATHER":
            artTC = ArticoloTagliaColore().select(idArticolo = articolo.id)
        elif articolo and articolo.id and articoloPadre and tipo =="SON":
            artTC = ArticoloTagliaColore().select(idArticolo = articolo.id,
                                            idArticoloPadre=articoloPadre.id)

        if artTC:
            artTC = artTC[0]
        else:
            artTC = ArticoloTagliaColore()
            if tipo =="SON":
                artTC.id_articolo_padre = articoloPadre.id
        #MODELLO
        if self.modello:
            mode = Modello().select(denominazione = self.modello)
            artTC.id_modello = mode[0].id
        elif not self.modello:
            try:
                artTC.id_modello = articoloPadre.id_modello
            except:
                print " questo csv non ha modello"
        #ANNO
        if self.anno:
            anno = AnnoAbbigliamento().select(denominazione = self.anno)
            artTC.id_anno = anno[0].id
        elif not self.anno:
            artTC.id_annno = articoloPadre.id_anno
        #GENERE
        if self.genere:
            genere = GenereAbbigliamento().select(denominazione = self.genere.capitalize())
            artTC.id_genere = genere[0].id
        elif not self.genere:
            artTC.id_genere = articoloPadre.id_genere
        #GRUPPO TAGLIA
        if self.gruppo_taglia:
            gruppo_taglia = GruppoTaglia().select(denominazione = self.gruppo_taglia)[0].id
            artTC.id_gruppo_taglia = gruppo_taglia
        elif not self.gruppo_taglia:
            artTC.id_gruppo_taglia = articoloPadre.id_gruppo_taglia
        #TAGLIA
        if self.taglia:
            taglia = Taglia().select(denominazione = self.taglia)[0].id
            artTC.id_taglia = taglia
        #COLORE
        if self.colore:
            artTC.id_colore = Colore().select(denominazione = self.colore)[0].id
        #STAGIONE
        if self.stagione:
            stagione = StagioneAbbigliamento().select(denominazione = self.stagione)
            if stagione:
                artTC.id_stagione = stagione[0].id
        elif not self.stagione:
            artTC.id_stagione = articoloPadre.id_stagione
        self.daoArticolo.articoloTagliaColore = artTC
        artTC = None
    def saveDao(self, tipo=None):
        """ Salvataggio del dao con un po' di logica legata alle diverse
            tipologie di articolo :noleggio, su misura, promowear
        """
        if self.codice_entry.get_text() == '':
            obligatoryField(self.dialogTopLevel,
                            self.codice_entry,
                            campo="Codice")
        if self.denominazione_entry.get_text() == '':
            obligatoryField(self.dialogTopLevel,
                            self.denominazione_entry,
                            campo="Denominazione")
        if findIdFromCombobox(self.id_aliquota_iva_customcombobox.combobox) is None:
            obligatoryField(self.dialogTopLevel,
                            self.id_aliquota_iva_customcombobox.combobox,
                            campo="Aliquota Iva")
        if findIdFromCombobox(self.id_famiglia_articolo_customcombobox.combobox) is None:
            obligatoryField(self.dialogTopLevel,
                            self.id_famiglia_articolo_customcombobox.combobox,
                            campo="Famiglia merceologica")
        if findIdFromCombobox(self.id_categoria_articolo_customcombobox.combobox) is None:
            obligatoryField(self.dialogTopLevel,
                            self.id_categoria_articolo_customcombobox.combobox,
                            campo="Categoria articolo")
        if findIdFromCombobox(self.id_unita_base_combobox) is None:
            obligatoryField(self.dialogTopLevel,
                            self.id_unita_base_combobox,
                            campo="Unita' base")
        pbar(self.dialog.pbar,parziale=1, totale=4)
        if posso("PW") and (articleType(self.dao) == "plus" or self.plus_radiobutton.get_active()):
            articoloTagliaColore = ArticoloTagliaColore()
            articoloTagliaColore.id_gruppo_taglia = findIdFromCombobox(
                self.id_gruppo_taglia_customcombobox.combobox)
            articoloTagliaColore.id_taglia = findIdFromCombobox(
                self.id_taglia_customcombobox.combobox)
            articoloTagliaColore.id_colore = findIdFromCombobox(
                self.id_colore_customcombobox.combobox)
            articoloTagliaColore.id_modello = findIdFromCombobox(
                self.id_modello_customcombobox.combobox)
            articoloTagliaColore.id_anno = findIdFromCombobox(
                self.id_anno_combobox)
            articoloTagliaColore.id_stagione = findIdFromCombobox(
                self.id_stagione_combobox)
            articoloTagliaColore.id_genere = findIdFromCombobox(
                self.id_genere_combobox)
            self.dao.articoloTagliaColore = articoloTagliaColore
            articoloTagliaColore = None
            #potrà sembrare una ripetizione ma preferisco gestirlo di fino con altri controlli
        elif posso("PW") and (articleType(self.dao) == "son" and self.con_taglie_colori_radiobutton.get_active()):
            articoloTagliaColore = ArticoloTagliaColore()
            articoloTagliaColore.id_gruppo_taglia = findIdFromCombobox(self.id_gruppo_taglia_customcombobox.combobox)
            articoloTagliaColore.id_taglia = findIdFromCombobox(self.id_taglia_customcombobox.combobox)
            articoloTagliaColore.id_colore = findIdFromCombobox(self.id_colore_customcombobox.combobox)
            articoloTagliaColore.id_modello = findIdFromCombobox(self.id_modello_customcombobox.combobox)
            articoloTagliaColore.id_anno = findIdFromCombobox(self.id_anno_combobox)
            articoloTagliaColore.id_stagione = findIdFromCombobox(self.id_stagione_combobox)
            articoloTagliaColore.id_genere = findIdFromCombobox(self.id_genere_combobox)
            articoloTagliaColore.id_articolo_padre = self.dao.id_articolo_padre
            self.dao.articoloTagliaColore = articoloTagliaColore
            articoloTagliaColore = None
        elif posso("PW") and (articleType(self.dao) == "father" or self.con_taglie_colori_radiobutton.get_active()):
            print "SALVATAGGIO ARTICOLO PADRE"
            if self.dao.denominazione != self.denominazione_entry.get_text():
                msg = """ATTENZIONE La descrizione di un articolo padre è cambiata, vuoi riportare la modifica anche ai suoi figli?"""
                if YesNoDialog(msg=msg, transient=None):
                    if self.dao.articoliVarianti:
                        for ar in self.dao.articoliVarianti:
                            ar.denominazione= self.denominazione_entry.get_text() +" "+ ar.denominazione_breve_taglia + ' ' + ar.denominazione_breve_colore
                            ar.persist()

            if self.dao.produttore != self.produttore_comboboxentry.get_child().get_text():
                msg = """ATTENZIONE Il  produttore di un articolo padre è cambiata, vuoi riportare la modifica anche ai suoi figli?"""
                if YesNoDialog(msg=msg, transient=None):
                    if self.dao.articoliVarianti:
                        for ar in self.dao.articoliVarianti:
                            ar.produttore = self.produttore_comboboxentry.get_child().get_text()
                            ar.persist()

            articoloTagliaColore = ArticoloTagliaColore()
            articoloTagliaColore.id_gruppo_taglia = findIdFromCombobox(self.id_gruppo_taglia_customcombobox.combobox)
            articoloTagliaColore.id_taglia = findIdFromCombobox(self.id_taglia_customcombobox.combobox)
            articoloTagliaColore.id_colore = findIdFromCombobox(self.id_colore_customcombobox.combobox)
            articoloTagliaColore.id_modello = findIdFromCombobox(self.id_modello_customcombobox.combobox)
            if articoloTagliaColore.id_taglia or articoloTagliaColore.id_colore:
                msg =""" ATTENZIONE: Articolo Padre Taglia e Colore NON
    può avere Colore o Taglia propri."""
                messageInfo(msg=msg)
                return
            articoloTagliaColore.id_anno = findIdFromCombobox(self.id_anno_combobox)
            articoloTagliaColore.id_stagione = findIdFromCombobox(self.id_stagione_combobox)
            articoloTagliaColore.id_genere = findIdFromCombobox(self.id_genere_combobox)
            self.dao.articoloTagliaColore = articoloTagliaColore
            articoloTagliaColore = None
        pbar(self.dialog.pbar,parziale=2, totale=4)
        self.dao.codice = str(self.codice_entry.get_text()).strip()
        self.dao.codice = omogeneousCode(section="Articoli", string=self.dao.codice )
        cod=checkCodiceDuplicato(codice=self.dao.codice,id=self.dao.id, tipo="Articolo")
        if not cod:
            raise Exception, 'Operation aborted campo obbligatorio'
        #else:
            #raise Exception, 'Operation aborted codice articolo duplicato'
        self.dao.denominazione = self.denominazione_entry.get_text()
        if posso("GN"):
            self.dao.divisore_noleggio_value_set = self.divisore_noleggio_entry.get_text().strip()
        if posso("ADR"):
            self.dao.articolo_adr_dao = self.adr_page.adrSaveDao()
        if posso("CSA"):
            self.dao.articolo_csa_dao = self.csa_page.csaSaveDao()
        self.dao.id_aliquota_iva = findIdFromCombobox(self.id_aliquota_iva_customcombobox.combobox)
        self.dao.id_famiglia_articolo = findIdFromCombobox(self.id_famiglia_articolo_customcombobox.combobox)
        self.dao.id_categoria_articolo = findIdFromCombobox(self.id_categoria_articolo_customcombobox.combobox)
        self.dao.id_unita_base = findIdFromCombobox(self.id_unita_base_combobox)
        self.dao.id_stato_articolo = findIdFromCombobox(self.id_stato_articolo_combobox)
        self.dao.id_imballaggio = findIdFromCombobox(self.id_imballaggio_customcombobox.combobox)
        self.dao.produttore = self.produttore_comboboxentry.get_child().get_text()
        self.dao.unita_dimensioni = self.unita_dimensioni_comboboxentry.get_child().get_text()
        self.dao.unita_volume = self.unita_volume_comboboxentry.get_child().get_text()
        self.dao.unita_peso = self.unita_peso_comboboxentry.get_child().get_text()
        self.dao.lunghezza = float(self.lunghezza_entry.get_text() or 0)
        self.dao.larghezza = float(self.larghezza_entry.get_text() or 0)
        self.dao.altezza = float(self.altezza_entry.get_text() or 0)
        self.dao.volume = float(self.volume_entry.get_text() or 0)
        self.dao.peso_lordo = float(self.peso_lordo_entry.get_text() or 0)
        self.dao.peso_imballaggio = float(self.peso_imballaggio_entry.get_text() or 0)
        self.dao.quantita_minima = float(self.quantita_minima_entry.get_text() or 0)
        self.dao.stampa_etichetta = self.stampa_etichetta_checkbutton.get_active()
        self.dao.codice_etichetta = self.codice_etichetta_entry.get_text()
        self.dao.descrizione_etichetta = self.descrizione_etichetta_entry.get_text()
        self.dao.stampa_listino = self.stampa_listino_checkbutton.get_active()
        self.dao.descrizione_listino = self.descrizione_listino_entry.get_text()
        textBuffer = self.note_textview.get_buffer()
        self.dao.note = textBuffer.get_text(textBuffer.get_start_iter(),
                                            textBuffer.get_end_iter(),True)
        self.dao.sospeso = self.sospeso_checkbutton.get_active()
        if self.dao.cancellato == None:
            self.dao.cancellato = False
        if self.dao.aggiornamento_listino_auto == None:
            self.dao.aggiornamento_listino_auto = False
        self.dao.url_immagine = self.url_articolo_entry.get_text()
        pbar(self.dialog.pbar,parziale=3, totale=4)
        self.dao.persist()
        pbar(self.dialog.pbar,parziale=4, totale=4)
        pbar(self.dialog.pbar,stop=True)

        if self._duplicatedDaoId is not None:
            self.duplicaListini()