private void btnCambiaStatoDistinte_Click(object sender, EventArgs e) { try { Cursor.Current = Cursors.WaitCursor; (sender as ToolStripMenuItem).Select(); lblElementi.Focus(); string status = Stato.InSviluppo; if ((sender as ToolStripMenuItem).Name == menuDistinteStatoCertificato.Name) { status = Stato.Certificato; } BCServices bc = new BCServices(); bc.CreaConnessione(); txtEsportazione.Text = string.Empty; foreach (ExpDistintaBusinessCentral d in _distinteExport) { try { if (d.Selezionato) { TestataDIBA testata = bc.EstraiTestataDIBA(d.Codice); if (testata != null) { bc.CambiaDescrizioneDB(d.Codice, testata.Description); testata = bc.EstraiTestataDIBA(d.Codice); bc.CambiaStatoDB(d.Codice, status); string messaggio = string.Format("Distinta {0} in stato: {1}", d.Codice, status); AggiornaMessaggio(messaggio); } else { string messaggio = string.Format("Distinta {0} non trovata", d.Codice, status); AggiornaMessaggio(messaggio); } } } catch (Exception ex) { string messaggio = string.Format("Distinta {0} errore: {1}", d.Codice, ex.Message); AggiornaMessaggio(messaggio); } } PopolaGrigliaDistinte(); } finally { Cursor.Current = Cursors.Default; } }
private void btnApriDistinta_Click(object sender, EventArgs e) { txtMessaggio.Text = string.Empty; try { if (string.IsNullOrEmpty(txtDistintaNo.Text)) { txtMessaggio.Text = "Inserire un codice distinta"; return; } BCServices bc = new BCServices(); bc.CreaConnessione(); TestataDIBA testata = bc.EstraiTestataDIBA(txtDistintaNo.Text); txtDistintaDescrizione.Text = testata.Description; txtCodiceVersioneDistinta.Text = testata.Version_Nos; txtMessaggio.Text = string.Format("{0} {1} {2}", testata.No, testata.Version_Nos, testata.Description); txtStatoDistinta.Text = testata.Status; } catch (Exception ex) { txtMessaggio.Text = estraiErrore(ex); } }
private void AggiornaStatoDistinte() { BCServices bc = new BCServices(); bc.CreaConnessione(); List <string> ds = (from distinte in _distinteExport where distinte.Componenti.Count > 0 select distinte.Codice).ToList(); foreach (ExpDistintaBusinessCentral d in _distinteExport) { if (!ds.Contains(d.Codice)) { continue; } TestataDIBA testata = bc.EstraiTestataDIBA(d.Codice); if (testata != null) { d.Stato = testata.Status; } else { d.Errore = "Distinta non trovata"; } } }
private void esportaDistinte(List <string> distinte, BackgroundWorker worker, DoWorkEventArgs e, ref int contatore) { BCServices bc = new BCServices(); bc.CreaConnessione(); WorkerDTO dto = (WorkerDTO)e.Argument; foreach (string distinta in distinte) { worker.ReportProgress(contatore, string.Format(string.Empty, distinta)); worker.ReportProgress(contatore, string.Format("Distinte {0}", distinta)); contatore++; try { TestataDIBA testata = bc.EstraiTestataDIBA(distinta); if (testata != null) { bc.CambiaDescrizioneDB(distinta, testata.Description); testata = bc.EstraiTestataDIBA(distinta); if (testata.Status != Stato.InSviluppo) { string messaggio = string.Format("Distinta {0} ignorata perchè in stato {1}", distinta, testata.Status); worker.ReportProgress(contatore, messaggio); if (worker.CancellationPending) { e.Cancel = true; return; } continue; } List <RigheDIBA> righe = bc.EstraiRigheDIBA(distinta); foreach (RigheDIBA riga in righe) { bc.RimuoviComponente(distinta, string.Empty, riga.Line_No, riga.No, false); } bc.Salva(); int numeroRiga = 0; foreach (ExpComponenteDistintaBusinessCentral c in dto.ComponentiExport.Where(x => x.DistintaPadre == distinta)) { try { c.Errore = string.Empty; decimal quantita = (decimal)c.Quantita; decimal scarto = (decimal)c.Scarto; decimal arrotondamento = (decimal)c.Arrotondamento; numeroRiga += 1000; bc.AggiungiComponente(distinta, string.Empty, numeroRiga, c.Tipo, c.Anagrafica, c.Descrizione, c.CodiceUM, quantita, c.Collegamento, scarto, arrotondamento); c.Esito = "OK"; } catch (Exception ex) { string messaggio = string.Format("Distinta {0} componente {1} non esportata per il seguente errore: {2}", distinta, c.Anagrafica, ex.Message); { c.Errore = ex.Message; c.Esito = "KO"; } worker.ReportProgress(contatore, messaggio); } } worker.ReportProgress(contatore, string.Format("Distinta {0} terminata", distinta)); } else { string messaggio = string.Format("La distinta {0} non è stata trovata", distinta); foreach (ExpComponenteDistintaBusinessCentral c in dto.ComponentiExport.Where(x => x.DistintaPadre == distinta)) { c.Errore = messaggio; c.Esito = "KO"; } worker.ReportProgress(contatore, messaggio); } } catch (Exception ex) { string messaggio = string.Format("Distinta {0} non esportata per il seguente errore: {1}", distinta, ex.Message); foreach (ExpComponenteDistintaBusinessCentral c in dto.ComponentiExport.Where(x => x.DistintaPadre == distinta)) { c.Errore = "Eccezione"; c.Esito = "KO"; } worker.ReportProgress(contatore, messaggio); } finally { bc.CreaConnessione(); } if (worker.CancellationPending) { e.Cancel = true; return; } } }