def articolo_table(soup=None, op=None, dao=None, row=None, all=False): d = None if soup and not all: record = soup.articolo.get(loads(row.object)) else: record = row if op == "DELETE": if all: d = Articolo().getRecord(id=row.id) else: d = Articolo().getRecord(id=loads(row.object)) if d: d.delete() return True elif op == "INSERT": if all: d = Articolo() d.id = record.id else: d = Articolo().getRecord(id=loads(row.object)) elif op == "UPDATE": if all: d = Articolo().getRecord(id=row.id) else: d = Articolo().getRecord(id=loads(row.object)) if not d: d = Articolo() d.id = record.id d.codice = record.codice d.denominazione = record.denominazione d.id_aliquota_iva = record.id_aliquota_iva d.id_famiglia_articolo = record.id_famiglia_articolo d.id_categoria_articolo = record.id_categoria_articolo d.id_immagine = record.id_immagine d.id_unita_base = record.id_unita_base d.id_stato_articolo = record.id_stato_articolo d.produttore = record.produttore d.unita_dimensioni = record.unita_dimensioni d.lunghezza = record.lunghezza d.larghezza = record.larghezza d.altezza = record.altezza d.unita_volume = record.unita_volume d.volume = record.volume d.unita_peso = record.unita_peso d.peso_lordo = record.peso_lordo d.id_imballaggio = record.id_imballaggio d.peso_imballaggio = record.peso_imballaggio d.stampa_etichetta = record.stampa_etichetta d.codice_etichetta = record.codice_etichetta d.descrizione_etichetta = record.descrizione_etichetta d.stampa_listino = record.stampa_listino d.descrizione_listino = record.descrizione_listino d.aggiornamento_listino_auto = record.aggiornamento_listino_auto d.timestamp_variazione = record.timestamp_variazione d.note = record.note d.contenuto = record.contenuto d.cancellato = record.cancellato d.sospeso = record.sospeso d.quantita_minima = record.quantita_minima a = d.persist() if not a: g = Articolo().select(codice=record.codice) if g: g = g[0] g.codice = g.codice + "BIS" b = g.persist() if not b: print "PROPRIO NON SO COSA FARE HO ANCHE CAMBIATO IL CODICE" articolo_table(soup=soup, op=op, dao=dao, row=row, all=all) return True
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()