private void btnAggiungiComponente_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(); bc.CambiaStatoDB(txtDistintaNo.Text, Stato.InSviluppo); bc.AggiungiComponente(txtDistintaNo.Text, txtCodiceVersioneDistinta.Text, (int)nNRRigaComponente.Value, txtTipoCoponente.Text, txtNRComponente.Text, txtDescrizioneComponente.Text, txtUnitàMisuraComponente.Text, nQuantitaPerCompoente.Value, txtCodiceCollegamentoCicliDiBa.Text, nScartoComponente.Value, nArrotondamentoComponente.Value); bc.CambiaStatoDB(txtDistintaNo.Text, Stato.Certificato); txtMessaggio.Text = "Componente aggiunto"; } catch (Exception ex) { txtMessaggio.Text = estraiErrore(ex); } }
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; } } }