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()
def on_ok_button_clicked(self, button): for dat in self.datas: codici = None articoloPadre = dat[0] if dat[1].__module__ =="promogest.modules.PromoWear.dao.Taglia": daoTaglia = dat[1] daoColore = dat[2] else: daoColore = dat[1] daoTaglia = dat[2] codiceabarre = dat[3] articoloFiglio = dat[4] if codiceabarre: if articoloFiglio: #verifico la correttezza del codice a barre della variante già esistente # in precedenza if codiceabarre != articoloFiglio.codice_a_barre: codici = CodiceABarreArticolo().select(codiceEM=codiceabarre, offset=None, batchSize=None) else: codici = CodiceABarreArticolo().select(codiceEM=codiceabarre, offset=None, batchSize=None) if codici: msg = """Attenzione ! Il codice a barre %s è gia' presente nel Database, ricontrolla!""" % codiceabarre dialog = gtk.MessageDialog(self.getTopLevel(), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_DIALOG_MESSAGE_QUESTION, GTK_BUTTON_OK, msg) response = dialog.run() dialog.destroy() return if articoloFiglio: #aggiorno articoloesistenze può essere cambiato solo il codice a barre if codiceabarre and codiceabarre != articoloFiglio.codice_a_barre: codici = CodiceABarreArticolo().select(codiceEM=codiceabarre, offset=None, batchSize=None) if not codici: cba = CodiceABarreArticolo() cba.codice = codiceabarre cba.id_articolo = articoloFiglio.id cba.primario = True cba.persist() else: #inserisco la nuova variazione articolo ed il relativo codice a barre articolo = Articolo() articolo.codice = articoloPadre.codice + articoloPadre.denominazione_gruppo_taglia[0:3] + daoTaglia.denominazione_breve + daoColore.denominazione_breve articolo.denominazione = articoloPadre.denominazione + ' ' + daoTaglia.denominazione_breve + ' ' + daoColore.denominazione articolo.id_aliquota_iva = articoloPadre.id_aliquota_iva articolo.id_famiglia_articolo = articoloPadre.id_famiglia_articolo articolo.id_categoria_articolo = articoloPadre.id_categoria_articolo articolo.id_unita_base = articoloPadre.id_unita_base articolo.id_stato_articolo = articoloPadre.id_stato_articolo articolo.id_imballaggio = articoloPadre.id_imballaggio articolo.produttore = articoloPadre.produttore articolo.unita_dimensioni = articoloPadre.unita_dimensioni articolo.unita_volume = articoloPadre.unita_volume articolo.unita_peso = articoloPadre.unita_peso articolo.lunghezza = articoloPadre.lunghezza articolo.larghezza = articoloPadre.larghezza articolo.altezza = articoloPadre.altezza articolo.volume = articoloPadre.volume articolo.peso_lordo = articoloPadre.peso_lordo articolo.peso_imballaggio = articoloPadre.peso_imballaggio articolo.stampa_etichetta = articoloPadre.stampa_etichetta articolo.codice_etichetta = articoloPadre.codice_etichetta articolo.descrizione_etichetta = articoloPadre.descrizione_etichetta articolo.stampa_listino = articoloPadre.stampa_listino articolo.descrizione_listino = articoloPadre.descrizione_listino articolo.note = articoloPadre.note articolo.sospeso = articoloPadre.sospeso articolo.cancellato = articoloPadre.cancellato articolo.aggiornamento_listino_auto = articoloPadre.aggiornamento_listino_auto articolo.persist() articoloTagliaColore = ArticoloTagliaColore() articoloTagliaColore.id_articolo = articolo.id articoloTagliaColore.id_articolo_padre = articoloPadre.id articoloTagliaColore.id_gruppo_taglia = articoloPadre.id_gruppo_taglia articoloTagliaColore.id_taglia = daoTaglia.id articoloTagliaColore.id_colore = daoColore.id if articoloPadre.id_anno == "": articoloTagliaColore.id_anno = None else: articoloTagliaColore.id_anno = articoloPadre.id_anno if articoloPadre.id_stagione == "": articoloTagliaColore.id_stagione = None else: articoloTagliaColore.id_stagione = articoloPadre.id_stagione if articoloPadre.id_genere == "": articoloTagliaColore.id_genere = None else: articoloTagliaColore.id_genere = articoloPadre.id_genere articoloTagliaColore.persist() if codiceabarre: codici = CodiceABarreArticolo().select(codiceEM=codiceabarre, offset=None, batchSize=None) if not codici: cba = CodiceABarreArticolo() cba.codice = codiceabarre cba.id_articolo = articolo.id cba.primario = True cba.persist() self.destroy()