def on_mostra_storico_button_clicked(self, widget): if self.ana.dao.id: my_page_data = { 'file': 'storico_documenti.html', 'padre': get_padre(self.ana.dao.id), 'figli': get_figli(self.ana.dao.id), 'dao': self.ana.dao } html = renderTemplate(pageData=my_page_data) self.web_view.load_html_string(html, "file:///"+sys.path[0]+os.sep) else: messageWarning("E' necessario salvare il documento prima di mostrarne lo storico.")
def ricerca_movimenti_spedizione(da_data, al_data, progress=None): tipi_ddt_figlio = ['DDT vendita', 'DDT vendita diretta'] # Tutti i documenti (ordini) non saldati dall'inizio dell'anno ordini = session.query(TestataDocumento).filter(TestataDocumento.data_documento >= da_data, TestataDocumento.operazione == 'Ordine da cliente', TestataDocumento.documento_saldato == False).all() res = [] for ordine in ordini: if progress: pbar(progress, parziale=ordini.index(ordine), totale=len(ordini), text="Attendere...", noeta=True) # ottengo tutti i figli di questo ordine figli = get_figli(ordine.id) for figlio in figli: if figlio.operazione in tipi_ddt_figlio: figlio._padre = get_padre(figlio.id) res.append(figlio) if progress: pbar(progress, stop=True) return res
def controlla_quantita(ordine): # costruisco un dizionario con gli id articolo e le quantità richieste per ciascun articolo qta_ordine = {} tipo = Operazione().getRecord(id=ordine.operazione) if tipo.segno != '' and tipo.segno is not None: tipoDOC = "MOV" else: tipoDOC = "DOC" for r in ordine.righe: if (tipoDOC == "MOV" and r.id_articolo == None) or tipoDOC == "DOC": continue else: # riga movimento qta_ordine[r.id_articolo] = r.quantita # raccolgo le quantità già inserite nei precedenti DDT qta_richieste = {} objs_figli = get_figli(ordine.id) for figlio in objs_figli: if figlio.operazione not in ['DDT vendita', 'DDT vendita diretta']: continue for r in figlio.righe: if r.id_articolo not in qta_richieste.keys(): qta_richieste[r.id_articolo] = r.quantita else: qta_richieste[r.id_articolo] += r.quantita posso_chiudere = True for k in qta_ordine: tmpp = D(qta_ordine[k] - qta_richieste[k]) if tmpp > D(3) or tmpp < D(-3): posso_chiudere = False return posso_chiudere