public void CambiaDescrizioneDB(string No, string descrizione)
        {
            TestataDIBA testata = EstraiTestataDIBA(No);

            testata.Description = descrizione;
            _nav.UpdateObject(testata);
            Salva();
        }
        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;
            }
        }
        public void CambiaStatoDB(string No, string stato)
        {
            TestataDIBA testata = EstraiTestataDIBA(No);

            if (testata == null)
            {
                throw new Exception(string.Format("Distinta {0} non trovata", No));
            }
            if (testata.Status != stato)
            {
                testata.Status = stato;
                _nav.UpdateObject(testata);
                Salva();
            }
        }
 public TestataDIBA EstraiTestataDIBA(string No)
 {
     if (_nav == null)
     {
         return(null);
     }
     try
     {
         TestataDIBA t = _nav.TestataDIBA.Where(x => x.No == No).FirstOrDefault();
         return(t);
     }
     catch
     {
         return(null);
     }
 }
Ejemplo n.º 5
0
 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;
                }
            }
        }