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

author avatar
Claudio Masci
Sono innanzitutto un appassionato di informatica e tecnologia in generale. Lavoro in ambito informatico da circa 16 anni, spaziando in diversi campi, andando dalla programmazione web, allo sviluppo di software, dalla grafica alla modellazione 3d ed al video editing, ho sempre voluto approfondire ogni aspetto e questo mi ha permesso di lavorare in diversi ambiti informatici.