Advertisement
Guest User

Untitled

a guest
Oct 20th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.62 KB | None | 0 0
  1.  
  2. def esplodiTuttiTrovaStatore(force=False):
  3.     # funzione per includere tutti i prodotti che hanno uno statore abilitante per i test
  4.     # per tutta l'anagrafica articoli compila il campo anaHaStatore con
  5.     # lo statore che e in distinta dell'articolo
  6.     # TODO: inoltre, se lo statore ha una sequenza di prova predefinita, associa anche all'articolo
  7.     # la sequenza dello statore
  8.     dbgruppo = "XS"
  9.     destination, engine = make_session(todb)
  10.     dmeta = MetaData(bind=engine)
  11.     tableArtAnagrafica = Table("ArtAnagrafica", dmeta, autoload=True)
  12.     queryarticoli = destination.query(tableArtAnagrafica)
  13.     queryarticoli = queryarticoli.filter(tableArtAnagrafica.c.CodArt.startswith("S"))
  14.     # ripasso tutti i semilavorati giร  processati
  15.     if not force:
  16.         queryarticoli = queryarticoli.filter(tableArtAnagrafica.c.anaHaStatore == None)
  17.     for art in queryarticoli.all():
  18.         codice = getattr(art, "CodArt")
  19.         haStatore = getattr(art, "anaHaStatore")
  20.         print("   Verifico campo HaStatore per l'articolo " + codice)
  21.         distinta = esplodiArticolo(codice)
  22.         for part in distinta:
  23.             querystatore = destination.query(tableArtAnagrafica)
  24.             querystatore = querystatore.filter(tableArtAnagrafica.c.CodArt == part)
  25.             querystatore = querystatore.filter(tableArtAnagrafica.c.anaIsStatore == True)
  26.             # se non ha statore
  27.             sta = querystatore.first()
  28.             if sta == None:
  29.                 continue
  30.             else:
  31.                 # part รจ uno statore
  32.                 # update
  33.                 # recupero dati su sequenza predefinita per quello statore (e per i prodotti che usano quello statore)
  34.                 idSequenza = getattr(sta, "anaIdSequenzaProve")
  35.                 revSequenza = getattr(sta, "anaRevSeqProve")
  36.                 stmt = tableArtAnagrafica.update().values({tableArtAnagrafica.c.anaHaStatore:part,
  37.                 tableArtAnagrafica.c.anaEseguiProveSicurezzaElettrica:True,
  38.                 tableArtAnagrafica.c.anaEseguiProveFunzionali:True,
  39.                 tableArtAnagrafica.c.anaIdSequenzaProve:idSequenza,
  40.                 tableArtAnagrafica.c.anaRevSeqProve:revSequenza,
  41.                 }).where(tableArtAnagrafica.c.CodArt == codice)
  42.                 destination.execute(stmt)
  43.                 destination.commit()
  44.                 print("aggiunto statore " + part + " all'articolo " + codice)
  45.                 break
  46.         stmt = tableArtAnagrafica.update().values({tableArtAnagrafica.c.anaHaStatore:""}).where(tableArtAnagrafica.c.CodArt == codice)
  47.         destination.execute(stmt)
  48.         destination.commit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement