Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def esplodiTuttiTrovaStatore(force=False):
- # funzione per includere tutti i prodotti che hanno uno statore abilitante per i test
- # per tutta l'anagrafica articoli compila il campo anaHaStatore con
- # lo statore che e in distinta dell'articolo
- # TODO: inoltre, se lo statore ha una sequenza di prova predefinita, associa anche all'articolo
- # la sequenza dello statore
- dbgruppo = "XS"
- destination, engine = make_session(todb)
- dmeta = MetaData(bind=engine)
- tableArtAnagrafica = Table("ArtAnagrafica", dmeta, autoload=True)
- queryarticoli = destination.query(tableArtAnagrafica)
- queryarticoli = queryarticoli.filter(tableArtAnagrafica.c.CodArt.startswith("S"))
- # ripasso tutti i semilavorati giร processati
- if not force:
- queryarticoli = queryarticoli.filter(tableArtAnagrafica.c.anaHaStatore == None)
- for art in queryarticoli.all():
- codice = getattr(art, "CodArt")
- haStatore = getattr(art, "anaHaStatore")
- print(" Verifico campo HaStatore per l'articolo " + codice)
- distinta = esplodiArticolo(codice)
- for part in distinta:
- querystatore = destination.query(tableArtAnagrafica)
- querystatore = querystatore.filter(tableArtAnagrafica.c.CodArt == part)
- querystatore = querystatore.filter(tableArtAnagrafica.c.anaIsStatore == True)
- # se non ha statore
- sta = querystatore.first()
- if sta == None:
- continue
- else:
- # part รจ uno statore
- # update
- # recupero dati su sequenza predefinita per quello statore (e per i prodotti che usano quello statore)
- idSequenza = getattr(sta, "anaIdSequenzaProve")
- revSequenza = getattr(sta, "anaRevSeqProve")
- stmt = tableArtAnagrafica.update().values({tableArtAnagrafica.c.anaHaStatore:part,
- tableArtAnagrafica.c.anaEseguiProveSicurezzaElettrica:True,
- tableArtAnagrafica.c.anaEseguiProveFunzionali:True,
- tableArtAnagrafica.c.anaIdSequenzaProve:idSequenza,
- tableArtAnagrafica.c.anaRevSeqProve:revSequenza,
- }).where(tableArtAnagrafica.c.CodArt == codice)
- destination.execute(stmt)
- destination.commit()
- print("aggiunto statore " + part + " all'articolo " + codice)
- break
- stmt = tableArtAnagrafica.update().values({tableArtAnagrafica.c.anaHaStatore:""}).where(tableArtAnagrafica.c.CodArt == codice)
- destination.execute(stmt)
- destination.commit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement