Creare un gestionale per strutture ricettive in C# – 19 – Caricamento Documento ed Extra

Creare un gestionale per strutture ricettive in C# - 19 - Caricamento Documenti ed Extra

Creare un gestionale per strutture ricettive in C# – 19 – Caricamento Documento ed Extra: In questo diciannovesimo tutorial del corso di C# andremo ad aggiungere il codice che permetterà di caricare i documenti degli ospidi e di caricare la lista dei costi extra e degli sconti.

Proseguendo nello sviluppo del nostro gestionale andiamo ad aggiungere nuove funzionalità al progetto, tra cui il caricamento dei documenti d’identità degli ospiti e la lista di eventuali costi extra e sconti.

Creare un gestionale per strutture ricettive in C# – 19 – Caricamento Documento ed Extra

Caricamento Documenti

Per il caricamento dei documenti useremo un OpenFileDialog impostato per caricare file di tipo:

  • PDF
  • JPG
  • PNG
  • DOC
  • DOCX

Il percorso del file caricato verrà inserito nella TextBox ed utilizzato nei prossimi tutorial per copiare il file di origine nella cartella di destinazione.

private void btnCaricaDocumento_Click(object sender, EventArgs e)
        {
            CaricaDocumenti.ShowDialog();

            if (CaricaDocumenti.FileName != null)
            {
                if (System.IO.File.Exists(CaricaDocumenti.FileName) == true)
                {
                    txtCaricaDocumento.Text = CaricaDocumenti.FileName;
                }
            }
        }

In questa sezione si potrebbe aggiungere un’ulteriore verifica per limitare le dimensioni dei file caricati (ad esempio per impostare un limite massimo di 5mb per file).

Caricamento Costi Extra e Sconti

Per i costi extra e gli sconti andremo ad utilizzare lo stesso metodo usato per il caricamento delle camere, andremo quindi a creare un oggetto ExtraScontiItem che gestirà i dati presi dalle 2 tabelle (tblExtra e tblSconti).

public class ExtraScontiItem : Object
    {
        protected string NomeElemento;
        protected decimal Prezzo;
        protected int Tipologia;
        public ExtraScontiItem(string NomeElementoInput, decimal PrezzoInput, int TipologiaInput)
        {
            NomeElemento = NomeElementoInput;
            Prezzo = PrezzoInput;
            Tipologia = TipologiaInput;
        }
        public override string ToString()
        {
            return NomeElemento;
        }
        public int TipologiaExtra()
        {
            return Tipologia;
        }
        public decimal PrezzoExtra()
        {
            return Prezzo;
        }
    }

Andremo inoltre ad inserire una Groupbox che coprirà l’intera pagina della tab e mostrerà una combobox per la scelta di uno sconto o di un extra da aggiungere.

private void btnAggiungiCosti_Click(object sender, EventArgs e)
        {
            grpCostiSconti.Text = "Seleziona Costo Extra";
            grpCostiSconti.Tag = "costoextra";
            grpCostiSconti.Visible = true;
            grpCostiSconti.Left = 5;
            grpCostiSconti.Top = 8;
            grpCostiSconti.Width = 318;
            grpCostiSconti.Height = 565;
            CaricaDatabaseCostiSconti();
        }

private async void CaricaDatabaseCostiSconti()
        {
            cmbExtra.Items.Clear();

            //CONNESSIONE DATABASE
            string stringa_connessione = Properties.Settings.Default.CamereConnectionString;
            SqlConnection connessioneDB = new SqlConnection(stringa_connessione);
            string sqlQuery = "";
            if (grpCostiSconti.Tag == "costoextra")
            {
                sqlQuery = "SELECT * FROM [tblExtra]";
            }
            else if (grpCostiSconti.Tag == "scontoextra")
            {
                sqlQuery = "SELECT * FROM [tblSconti]";
            }
            using (connessioneDB)
            {
                try
                {
                    await connessioneDB.OpenAsync();
                    var InviaQuery = new SqlCommand(sqlQuery, connessioneDB);
                    SqlDataReader DatiTabellaScontiExtra = await InviaQuery.ExecuteReaderAsync();
                    while (DatiTabellaScontiExtra.Read())
                    {
                        cmbExtra.Items.Add(new ExtraScontiItem(DatiTabellaScontiExtra.GetString(1), DatiTabellaScontiExtra.GetDecimal(2), DatiTabellaScontiExtra.GetInt32(3)));
                    }
                }
                catch (SqlException ex)
                {
                    MessageBox.Show(ex.Message);
                }
                finally
                {
                    if (connessioneDB.State == ConnectionState.Open)
                    {
                        connessioneDB.Close();
                    }
                }
            }

            if (cmbExtra.Items.Count > 0)
            {
                cmbExtra.SelectedIndex = 0;
            }
        }

Download Codice Sorgente