private void BTNOK_Click(object sender, EventArgs e)
        {
            if (ddlTipoMovimento.SelectedIndex == -1)
            {
                MessageBox.Show("Selezionare un tipo movimento", "ATTENZIONE", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }
            if (string.IsNullOrEmpty(TXTCAUSALE.Text))
            {
                MessageBox.Show("Indicare la causale", "ATTENZIONE", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }
            if (numQuta.Value == 0)
            {
                MessageBox.Show("Indicare una quantità", "ATTENZIONE", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }

            Spedizioni spedizioni = new Spedizioni();
            string     esito      = spedizioni.Movimenta(_saldo.IDSALDO, numQuta.Value, TXTCAUSALE.Text, (string)ddlTipoMovimento.SelectedItem, _utente);

            if (esito == "COMPLETATA")
            {
                MessageBox.Show("Operazione eseguita con successo", "INFORMAZIONE", MessageBoxButtons.OK, MessageBoxIcon.Information);
                DialogResult = DialogResult.OK;
                Close();
            }
            else
            {
                MessageBox.Show(esito, "ATTENZIONE", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
        }
        private void btnCreaOpera_Click(object sender, EventArgs e)
        {
            try
            {
                List <SpedizioniDS.SPOPERARow> righeDaSalvare = _ds.SPOPERA.Where(x => x.VALIDATA && !x.IsIDUBICAZIONENull()).ToList();

                if (righeDaSalvare.Count == 0)
                {
                    MessageBox.Show("NESSUNA RIGA VALIDATA. Non ci sono righe da salvare.", "ATTENZIONE", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                SpedizioniDS dsSalvataggi = new SpedizioniDS();
                Spedizioni   spedizioni   = new Spedizioni();

                foreach (SpedizioniDS.SPOPERARow rigaDaSalvare in righeDaSalvare)
                {
                    dsSalvataggi.SPSALDI.Clear();
                    spedizioni.FillSaldi(dsSalvataggi, rigaDaSalvare.CODICE, rigaDaSalvare.MODELLO_CODICE, true);
                    SpedizioniDS.MAGAZZRow magazz = spedizioni.GetMagazz(_ds, rigaDaSalvare.MODELLO_CODICE);

                    SpedizioniDS.SPSALDIEXTRow saldo = dsSalvataggi.SPSALDIEXT.Where(x => x.IDUBICAZIONE == rigaDaSalvare.IDUBICAZIONE && x.IDMAGAZZ == magazz.IDMAGAZZ).FirstOrDefault();
                    if (saldo == null)
                    {
                        rigaDaSalvare.NOTE = string.Format("Errore nell'estrazione del saldo. CODICE = {0} MODELLO = {1}", rigaDaSalvare.CODICE, magazz.MODELLO);
                        continue;
                    }

                    if (saldo.QUANTITA < rigaDaSalvare.QTAUBIUTIL)
                    {
                        rigaDaSalvare.NOTE = string.Format("Errore quantità in saldo non sufficiente. CODICE = {0} MODELLO= {1}", rigaDaSalvare.CODICE, magazz.MODELLO);

                        continue;
                    }

                    decimal quantitaUtilizzata = rigaDaSalvare.QTAUBIUTIL;
                    if (saldo.QUANTITA < quantitaUtilizzata)
                    {
                        rigaDaSalvare.NOTE = string.Format("Errore quantità in saldo non sufficiente. CODICE = {0} MODELLO= {1}", rigaDaSalvare.CODICE, magazz.MODELLO);
                        continue;
                    }

                    string causale = string.Format("OPERA {0} - {1}", _brand, rigaDaSalvare.DATA_RICHIESTA.ToShortDateString());
                    rigaDaSalvare.NOTE = spedizioni.Movimenta(dsSalvataggi, saldo.IDSALDO, quantitaUtilizzata, causale, "PRELIEVO", _utenteConnesso);
                }

                if (righeDaSalvare.Count > 0)
                {
                    CreaFileExcelOpera(righeDaSalvare);
                }
            }
            catch (Exception ex)
            {
                ExceptionFrm frm = new ExceptionFrm(ex);
                frm.ShowDialog();
            }
        }