
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:
- 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;
}
}
Rispondi