コード例 #1
0
ファイル: DataAccessGateway.cs プロジェクト: eddiez/soggiorni
 internal List<Soggiorno> cercaSoggiorniProssimoMese()
 {
     OleDbConnection conn = new OleDbConnection(Properties.Settings.Default.SoggiorniDbConnectionString);
     string queryString = "SELECT * FROM QuerySoggiorniByArrivoBetween";
     OleDbCommand cmd = new OleDbCommand(queryString, conn);
     cmd.Parameters.Add("Oggi", OleDbType.Date).Value = DateTime.Today;
     cmd.Parameters.Add("ProssimoMese", OleDbType.Date).Value = DateTime.Today.AddMonths(1);
     conn.Open();
     OleDbDataReader reader = cmd.ExecuteReader();
     List<Soggiorno> list = new List<Soggiorno>();
     while (reader.Read())
     {
         var sog = new Soggiorno();
         sog.Id = int.Parse(reader[0].ToString());
         sog.Arrivo = DateTime.Parse(reader[1].ToString());
         sog.Partenza = DateTime.Parse(reader[2].ToString());
         sog.Confermato = bool.Parse(reader[3].ToString());
         sog.Cliente = new Cliente { Cognome = reader[4].ToString() };
         sog.Camera = new Camera { 
             Numero = int.Parse(reader[5].ToString()),
             Agriturismo = reader[6].ToString()
         };
         list.Add(sog);
     }
     reader.Close();
     conn.Close();
     return list;
 }
コード例 #2
0
ファイル: DataAccessGateway.cs プロジェクト: eddiez/soggiorni
 internal List<Soggiorno> cercaArriviOggi()
 {
     OleDbConnection conn = new OleDbConnection(Properties.Settings.Default.SoggiorniDbConnectionString);
     string queryString = "SELECT * FROM QuerySoggiorniByArrivoExact";
     OleDbCommand cmd = new OleDbCommand(queryString, conn);
     cmd.Parameters.Add("Arrivo", OleDbType.Date).Value = DateTime.Today;
     conn.Open();
     OleDbDataReader reader = cmd.ExecuteReader();
     List<Soggiorno> list = new List<Soggiorno>();
     while (reader.Read())
     {
         //Soggiorno.ID, Soggiorno.IsCheckedIn, Cliente.Cognome, Camera.Numero, Camera.Agriturismo
         var sog = new Soggiorno();
         sog.Id = int.Parse(reader[0].ToString());
         sog.IsCheckedIn = bool.Parse(reader[1].ToString());
         sog.Cliente = new Cliente { Cognome = reader[2].ToString() };
         sog.Camera = new Camera
         {
             Numero = int.Parse(reader[3].ToString()),
             Agriturismo = reader[4].ToString()
         };
         list.Add(sog);
     }
     reader.Close();
     conn.Close();
     return list;
 }
コード例 #3
0
 public CambiaPeriodoCameraWindow(Soggiorno s)
 {
     InitializeComponent();
     dag = new DataAccessGateway();
     sog = s;
     loadCameraDataAndSelect();
     datePickerArrivo.SelectedDate = sog.Arrivo;
     datePickerPartenza.SelectedDate = sog.Partenza;
 }
コード例 #4
0
ファイル: Pagamento.cs プロジェクト: eddiez/soggiorni
        public void addSoggiorno(Soggiorno sg)
        {
            if (sg == null)
                return;

            if (_soggiorni == null)
                _soggiorni = new List<Soggiorno>();

            _soggiorni.Add(sg);
        }
コード例 #5
0
        public AddSoggiornoWindow(Soggiorno ipotesi) :this()
        {
            //imposta date in base all'ipotesi di pernotto
            datepickerPartenza.SelectedDate = ipotesi.Partenza;
            datepickerArrivo.SelectedDate = ipotesi.Arrivo;

            //selezionare numero camera da ipotesi
            var cameraToSelect = (from c in allCamera where c.Numero==ipotesi.Camera.Numero select c).FirstOrDefault();
            cbxNumCamera.SelectedItem = cameraToSelect;
        }
コード例 #6
0
        public ModificaSoggiornoWindow(int idSoggiorno)
        {
            InitializeComponent();

            dag = new DataAccessGateway();

            soggiorno = dag.cercaSoggiornoById(idSoggiorno);

            loadDatiSoggiorno();

            
//            MessageBox.Show(System.Drawing.Color.LawnGreen.ToArgb().ToString());
  //          MessageBox.Show(System.Drawing.Color.FromArgb(-8586240).ToString());
        }
コード例 #7
0
        public CheckoutSoggiornoWindow(Soggiorno s)
        {
            InitializeComponent();

            this.sog = s;
            dag = new DataAccessGateway();
            this.isPagato = s.IsCheckedOut;
            newPagamento = false;

            if (!isPagato)
            {
                //se non è pagato allora abilito solo i due pulsanti di scelta: nuovo pagamento e pag.esistente
                gridDatiPag.IsEnabled = false;
                gridDatiPag.Opacity = 0.50;
                btnDissocia.IsEnabled = false;
                btnSalva.IsEnabled = false;
                
            }
            else
            {
                //se è già pagato, carico i dati del rispettivo pagamento, senza permettere di crearne uno nuovo o selezionarne un altro
                btnNewPagamento.IsEnabled = false;
                btnPagamEsist.IsEnabled = false;

                //vai a pescare i dati del pagamento nel db
                pag = dag.cercaPagamentoById(sog.IdPagamento);
                if (pag.IsFattura)
                {
                    radioButtonFatt.IsChecked = true;
                    txtLastFattura.FontWeight = FontWeights.Bold;
                }
                else
                {
                    radioButtonRicFisc.IsChecked = true;
                    txtLastRicFisc.FontWeight = FontWeights.Bold;
                }

                txtboxNum.Text = pag.Numero.ToString();
                datePickerData.SelectedDate = pag.Data;
                txtboxDest.Text = pag.Destinatario;
                txtboxSede.Text = pag.Sede;
                txtboxPiva.Text = pag.Piva;
                txtboxCf.Text = pag.Cf;
                txtboxNote.Text = pag.ModoPagamento;
            }
        }
コード例 #8
0
        private void btnCheckout_Click(object sender, RoutedEventArgs e)
        {
            //caso 0 risultati
            if (dataGridSoggiorni.Items.Count == 0)
            {
                MessageBox.Show("E' necessario avere almeno un risultato per selezionare un soggiorno", "Nessun risultato di ricerca", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            //caso nessuna riga selezionata
            if (dataGridSoggiorni.SelectedItems.Count == 0)
            {
                MessageBox.Show("E' necessario selezionare un soggiorno dalla griglia", "Nessuna selezione", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            soggiornoSelezionato = (Soggiorno)dataGridSoggiorni.SelectedItems[0];
            this.DialogResult = true;
        }
コード例 #9
0
ファイル: DataAccessGateway.cs プロジェクト: eddiez/soggiorni
        internal List<Soggiorno> cercaSoggiorniByPagamento(int idpag)
        {
            var sogta = new SoggiornoTableAdapter();
            var sogdt = sogta.GetDataByPagamento(idpag);

            var clita = new ClienteTableAdapter();
            var camta = new CameraTableAdapter();
            var slist = new List<Soggiorno>();
            Soggiorno sog;
            foreach (var s in sogdt)
            {
                sog = new Soggiorno
                {
                    Id = s.ID,
                    Arrivo = s.Arrivo,
                    Partenza = s.Partenza,
                    TotaleSoggiorno = s.IsTotaleSoggiornoNull() ? 0 : s.TotaleSoggiorno,
                    TotalePernotto = s.IsTotaleCameraNull() ? 0 : s.TotaleCamera
                };
                var clidt = clita.GetDataById(s.ClienteId);
                sog.Cliente = new Cliente
                {
                    Id = clidt[0].ID,
                    Cognome = clidt[0].Cognome
                };
                var camdt = camta.GetDataById(s.CameraId);
                sog.Camera = new Camera
                {
                    Id = camdt[0].ID,
                    Numero = camdt[0].Numero
                };
                slist.Add(sog);
            }
            return slist;
        }
コード例 #10
0
 private void btnPrenota_Click(object sender, RoutedEventArgs e)
 {
     if (dataGridCamere.Items.Count > 0 && dataGridCamere.SelectedItems.Count > 0)
     {
         ipotesiSelezionata = new Soggiorno
         {
             Arrivo = (DateTime)datepickerArrivo.SelectedDate,
             Partenza = (DateTime)datepickerPartenza.SelectedDate,
             Camera = (Camera)dataGridCamere.SelectedItems[0]
         };
         //MessageBox.Show(((Camera)dataGridCamere.SelectedItems[0]).Nome);
         this.DialogResult = true;
     }
 }
コード例 #11
0
ファイル: DataAccessGateway.cs プロジェクト: eddiez/soggiorni
 internal List<Soggiorno> cercaSoggiorniTableau(DateTime inizio, DateTime fine)
 {
     OleDbConnection conn = new OleDbConnection(Properties.Settings.Default.SoggiorniDbConnectionString);
     string queryString = "SELECT * FROM QuerySoggiorniTableau";
     OleDbCommand cmd = new OleDbCommand(queryString, conn);
     cmd.Parameters.Add("Inizio", OleDbType.Date).Value = inizio;
     cmd.Parameters.Add("Fine", OleDbType.Date).Value = fine;
     conn.Open();
     OleDbDataReader reader = cmd.ExecuteReader();
     var list = new List<Soggiorno>();
     while (reader.Read())
     {
         var sog = new Soggiorno();
         sog.Id = int.Parse(reader[0].ToString());
         sog.Arrivo = DateTime.Parse(reader[1].ToString());
         sog.Partenza = DateTime.Parse(reader[2].ToString());
         sog.Confermato = bool.Parse(reader[3].ToString());
         sog.Cliente = new Cliente { Cognome = reader[4].ToString() };
         sog.Camera = new Camera
         {
             Numero = int.Parse(reader[5].ToString()),
             Agriturismo = reader[6].ToString()
         };
         sog.ColoreGruppoArgb = (reader[7].ToString() == "") ? 0 : int.Parse(reader[7].ToString());
         list.Add(sog);
     }
     reader.Close();
     conn.Close();
     return list;
 }
コード例 #12
0
 private void salvaDatiSoggiorno()
 {
     nuovoSoggiorno = new Soggiorno
     {
         Arrivo = (DateTime)datepickerArrivo.SelectedDate,
         Partenza = (DateTime)datepickerPartenza.SelectedDate,
         Cliente = new Cliente
         {
             Id = idSelectedClient,
             Nome = txtboxNome.Text,
             Cognome = txtboxCognome.Text,
             Email = txtboxMail.Text,
             Telefoni = txtboxTel.Text,
             Descr = txtboxNoteCliente.Text
         }, 
         Camera = ((Camera)cbxNumCamera.SelectedItem),
         UsoCamera = cbxUsoCamera.Text,
         Caparra = txtboxCaparra.Text=="" ? 0 : decimal.Parse(txtboxCaparra.Text),
         NoteCaparra = txtboxNoteCaparra.Text,
         NoteDurata = txtboxNotePeriodo.Text,
         Prenotante = txtboxPrenotante.Text,
         Confermato = (bool)checkBoxConfermaSoggiorno.IsChecked,
         NoteCamera = txtboxNoteCamera.Text
     };
 }
コード例 #13
0
        private void dataGridViewTableau_CellMouseUp(object sender, System.Windows.Forms.DataGridViewCellMouseEventArgs e)
        {
            endCol = e.ColumnIndex;
            //validazione estremi
            if (startCol >= endCol || 
                startRow < 0 || startRow >= dataGridTableau.RowCount ||
                startCol < 0 || startCol >= dataGridTableau.ColumnCount ||
                endCol < 0 || endCol >= dataGridTableau.ColumnCount) return;

            //verifica se si sovrappone a soggiorni esistenti
            for (int i = startCol; i <= endCol; i++)
            {
                if (dataGridTableau[i, startRow].InheritedStyle.BackColor != System.Drawing.Color.LightGray &&
                    dataGridTableau[i, startRow].InheritedStyle.BackColor != System.Drawing.Color.White)
                    return;
            }

            var s = new Soggiorno();
            s.Arrivo = colToDate(startCol);
            s.Partenza = colToDate(endCol).AddDays(1);
            s.Camera = new Camera { Numero = getCameraNumero(e.RowIndex) };
            asw = new AddSoggiornoWindow(s);
            asw.ShowDialog();
            
            if (asw.DialogResult.HasValue && asw.DialogResult.Value)
            {
                dag.inserisciSoggiorno(asw.nuovoSoggiorno, asw.isNuovoCliente);
                insertSoggiornoInGrid(asw.nuovoSoggiorno);
                soggiorni = dag.cercaSoggiorniTableau(firstDay, lastDay);
            }
        }
コード例 #14
0
ファイル: DataAccessGateway.cs プロジェクト: eddiez/soggiorni
        internal void inserisciSoggiorno(Soggiorno sg, bool nuovoCliente)
        {
            OleDbConnection conn = new OleDbConnection(Properties.Settings.Default.SoggiorniDbConnectionString);
            OleDbCommand cmd;
            string queryString;

            if (nuovoCliente)
            {
                conn.Open();

                queryString = "INSERT INTO Cliente (Nome, Cognome, Telefoni, Descrizione, Email) VALUES (?, ?, ?, ?, ?)";
                cmd = new OleDbCommand(queryString, conn);
                cmd.Parameters.Add("Nome", OleDbType.Char, 255).Value = sg.Cliente.Nome;
                cmd.Parameters.Add("Cognome", OleDbType.Char, 255).Value = sg.Cliente.Cognome;
                cmd.Parameters.Add("Telefoni", OleDbType.Char, 255).Value = sg.Cliente.Telefoni;
                cmd.Parameters.Add("Descrizione", OleDbType.Char, 255).Value = sg.Cliente.Descr;
                cmd.Parameters.Add("Email", OleDbType.Char, 255).Value = sg.Cliente.Email;

                cmd.ExecuteNonQuery();

                //eseguo la query per ottenere l'id appena inserito
                cmd = new OleDbCommand("SELECT @@IDENTITY", conn);
                sg.Cliente.Id = (int)cmd.ExecuteScalar();

            }
            else
            {//aggiornamento dati (essenziali) cliente esistente
                var cta = new ClienteTableAdapter();
                cta.UpdateEssentialById(sg.Cliente.Nome, sg.Cliente.Cognome, sg.Cliente.Telefoni,
                    sg.Cliente.Descr, sg.Cliente.Email, sg.Cliente.Id);
            }

            //inserimento dati soggiorno
            if(conn.State != System.Data.ConnectionState.Open)
                conn.Open();


            /* Arrivo, Partenza, Cliente.ID, Camera.ID, UsoCamera, Caparra, NoteCaparra, NoteDurataSoggiorno,
             * NomePrenotante, Confermato, NoteNumeroOspiti
             * */
            queryString = "INSERT INTO Soggiorno (Arrivo, Partenza, ClienteId, CameraId, UsoCamera, Caparra, "+
                "NoteCaparra, NoteDurataSoggiorno, NomePrenotante, Confermato, NoteNumeroOspiti) VALUES "+
                "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
            cmd = new OleDbCommand(queryString, conn);
            cmd.Parameters.Add("Arrivo", OleDbType.Date).Value = sg.Arrivo;
            cmd.Parameters.Add("Partenza", OleDbType.Date).Value = sg.Partenza;
            cmd.Parameters.Add("IdCliente", OleDbType.Integer).Value = sg.Cliente.Id;
            cmd.Parameters.Add("IdCamera", OleDbType.Integer).Value = sg.Camera.Id;
            cmd.Parameters.Add("UsoCamera", OleDbType.Char, 255).Value = sg.UsoCamera;
            cmd.Parameters.Add("Caparra", OleDbType.Single).Value = sg.Caparra;
            cmd.Parameters.Add("NoteCaparra", OleDbType.Char, 255).Value = sg.NoteCaparra;
            cmd.Parameters.Add("NoteSoggiorno", OleDbType.Char, 255).Value = sg.NoteDurata;
            cmd.Parameters.Add("Prenotante", OleDbType.Char, 255).Value = sg.Prenotante;
            cmd.Parameters.Add("Confermato", OleDbType.Boolean).Value = sg.Confermato;
            cmd.Parameters.Add("NoteCamera", OleDbType.Char, 255).Value = sg.NoteCamera;

            cmd.ExecuteNonQuery();
            
            conn.Close();
        }
コード例 #15
0
 private void modificaSoggiornoInGrid(Soggiorno oldSog, Soggiorno newSog)
 {
     if (oldSog.Arrivo != newSog.Arrivo ||
        oldSog.Partenza != newSog.Partenza ||
        oldSog.Camera.Numero != newSog.Camera.Numero ||
        oldSog.Cliente.Cognome != newSog.Cliente.Cognome ||
        oldSog.Confermato != newSog.Confermato ||
        oldSog.ColoreGruppoArgb != newSog.ColoreGruppoArgb)
     {
         cancellaSoggiornoFromGrid(oldSog);
         insertSoggiornoInGrid(newSog);
     }
 }
コード例 #16
0
        private void cancellaSoggiornoFromGrid(Soggiorno sog)
        {
            int startCol, endCol, row;
            startCol = dateToColumn(sog.Arrivo);
            endCol = dateToColumn(sog.Partenza);
            row = getRowCamera(sog.Camera.Numero);
            System.Drawing.Color cellCol = (row % 2) == 0 ? System.Drawing.Color.White : System.Drawing.Color.LightGray;
            if (sog.Arrivo < firstDay) startCol = 1;
            if (sog.Partenza > lastDay) endCol = dataGridTableau.ColumnCount - 1;

            for (int i = startCol; i <= endCol; i++)
            {
                dataGridTableau[i, row].Value = "";
                dataGridTableau[i, row].Style.BackColor = cellCol;
            }
        }
コード例 #17
0
 private void coloraCella(Soggiorno s, int rowCamera, int col)
 {
     if (s.ColoreGruppoArgb != 0)
         dataGridTableau[col, rowCamera].Style.BackColor = System.Drawing.Color.FromArgb(s.ColoreGruppoArgb);
     else
     {
         dataGridTableau[col, rowCamera].Style.BackColor = defaultColor;
         /*if (s.Confermato)
             dataGridTableau[col, rowCamera].Style.BackColor = confermataColor;
         else
             dataGridTableau[col, rowCamera].Style.BackColor = prenotataColor;*/
     }
 }
コード例 #18
0
        private void dataGridTableau_CellDoubleClick(object sender, System.Windows.Forms.DataGridViewCellEventArgs e)
        {
            int maxCol = dataGridTableau.ColumnCount;
            int maxRow = dataGridTableau.RowCount;
            //MessageBox.Show(dataGridTableau[5, 50].Value.ToString());
            if (e.RowIndex < 0 || e.ColumnIndex <= 0 || e.RowIndex >=maxRow || e.ColumnIndex >= maxCol) return;

            if (dataGridTableau[e.ColumnIndex, e.RowIndex].InheritedStyle.BackColor != System.Drawing.Color.LightGray &&
                dataGridTableau[e.ColumnIndex, e.RowIndex].InheritedStyle.BackColor != System.Drawing.Color.White)
            {//modifica soggiorno
                var date = colToDate(e.ColumnIndex);
                //seleziona soggiorno cliccato
                var sog = (from s in soggiorni
                           where (s.Camera.Numero == getCameraNumero(e.RowIndex)) &&
                           (date >= s.Arrivo && date < s.Partenza)
                           select s).First();
                
                msw = new ModificaSoggiornoWindow(sog.Id);
                msw.ShowDialog();
                if (msw.DialogResult.HasValue && msw.DialogResult.Value)
                {
                    if (msw.soggiorno == null)
                        cancellaSoggiornoFromGrid(sog);
                    else
                        modificaSoggiornoInGrid(sog, msw.soggiorno);

                    soggiorni = dag.cercaSoggiorniTableau(firstDay, lastDay);
                }
            }
            else
            {//nuovo soggiorno
                var s = new Soggiorno();
                s.Arrivo = colToDate(e.ColumnIndex);
                s.Partenza = s.Arrivo.AddDays(1);
                s.Camera = new Camera { Numero = getCameraNumero(e.RowIndex) };
                asw = new AddSoggiornoWindow(s);
                asw.ShowDialog();
                if (asw.DialogResult.HasValue && asw.DialogResult.Value)
                {
                    dag.inserisciSoggiorno(asw.nuovoSoggiorno, asw.isNuovoCliente);
                    insertSoggiornoInGrid(asw.nuovoSoggiorno);
                    soggiorni = dag.cercaSoggiorniTableau(firstDay, lastDay);
                }
            }
        }
コード例 #19
0
        private void insertSoggiornoInGrid(Soggiorno s)
        {
            int startColumn, endColumn, numCellToColor;
            string notti = s.Notti == 1 ? s.Notti + " notte" : s.Notti + " notti";
            int rowCamera = getRowCamera(s.Camera.Numero);

            //soggiorno che inizia prima di  firstDay
            if (s.Arrivo < firstDay)
            {
                if (s.Partenza == firstDay) return;

                numCellToColor = s.Partenza.Subtract(firstDay).Days;
                for (int i = 1; i <= numCellToColor; i++)
                {
                    dataGridTableau[i, rowCamera].ToolTipText = notti;
                    coloraCella(s, rowCamera, i);
                }

                dataGridTableau[1, rowCamera].Value = s.Cliente.Cognome;
                return;
            }
            //soggiorno che termina dopo lastDay
            if (s.Partenza > lastDay)
            {
                numCellToColor = lastDay.Subtract(s.Arrivo).Days;
                startColumn = dateToColumn(s.Arrivo);
                for (int i = startColumn; i <= startColumn + numCellToColor; i++)
                {
                    dataGridTableau[i, rowCamera].ToolTipText = notti;
                    coloraCella(s, rowCamera, i);
                }
                dataGridTableau[startColumn, rowCamera].Value = s.Cliente.Cognome;
                return;
            }
            //soggiorno tutto compreso nel periodo
            startColumn = dateToColumn(s.Arrivo);
            endColumn = dateToColumn(s.Partenza.AddDays(-1));
            for (int i = startColumn; i <= endColumn; i++)
            {
                dataGridTableau[i, rowCamera].ToolTipText = notti;
                coloraCella(s, rowCamera, i);
            }
            dataGridTableau[startColumn, rowCamera].Value = s.Cliente.Cognome;
        }
コード例 #20
0
ファイル: DataAccessGateway.cs プロジェクト: eddiez/soggiorni
        internal Soggiorno cercaSoggiornoById(int idSoggiorno)
        {
            //query per ricezione soggiorno
            OleDbConnection conn = new OleDbConnection(Properties.Settings.Default.SoggiorniDbConnectionString);
            string queryString = "SELECT * FROM QuerySoggiornoById";
            OleDbCommand cmd = new OleDbCommand(queryString, conn);
            cmd.Parameters.Add("IdSoggiorno", OleDbType.Integer).Value = idSoggiorno;
            conn.Open();
            OleDbDataReader reader = cmd.ExecuteReader();
            var sog = new Soggiorno();
            reader.Read();

            /*Campi query:
            * Soggiorno.ID, Soggiorno.Arrivo, Soggiorno.Partenza, Soggiorno.UsoCamera, Soggiorno.PrezzoANotteCamera, 
            * Soggiorno.Caparra, Soggiorno.NoteCaparra, Soggiorno.TotaleSoggiorno, Soggiorno.NoteSaldoSoggiorno, 
            * Soggiorno.NoteDurataSoggiorno, Soggiorno.TotaleCamera, Soggiorno.Confermato, Soggiorno.NoteNumeroOspiti,
            * Cliente.ID, Cliente.Cognome, Camera.ID, Camera.Numero, Soggiorno.NomePrenotante,Soggiorno.IsCheckedIn, 
            * Soggiorno.IsCheckedOut, Soggiorno.PagamentoId, Soggiorno.ColoreGruppo
            * */

            sog.Id = idSoggiorno;
            sog.Arrivo = DateTime.Parse(reader[1].ToString());
            sog.Partenza = DateTime.Parse(reader[2].ToString());
            sog.UsoCamera = reader[3].ToString();
            sog.PrezzoANotte = (reader[4].ToString() == "") ? 0 : decimal.Parse(reader[4].ToString());
            sog.Caparra = (reader[5].ToString() == "") ? 0 : decimal.Parse(reader[5].ToString());
            sog.NoteCaparra = reader[6].ToString();
            sog.TotaleSoggiorno = (reader[7].ToString() == "") ? 0 : decimal.Parse(reader[7].ToString());
            sog.NoteSaldoSoggiorno = reader[8].ToString();
            sog.NoteDurata = reader[9].ToString();
            sog.TotalePernotto = (reader[10].ToString() == "") ? 0 : decimal.Parse(reader[10].ToString());
            sog.Confermato = bool.Parse(reader[11].ToString());
            sog.NoteCamera = reader[12].ToString();
            sog.Cliente = new Cliente{ 
                Id = int.Parse(reader[13].ToString()),
                Cognome = reader[14].ToString()};
            sog.Camera = new Camera{
                Id = int.Parse(reader[15].ToString()),
                Numero = int.Parse(reader[16].ToString())};
            sog.Prenotante = reader[17].ToString();
            sog.IsCheckedIn = bool.Parse(reader[18].ToString());
            sog.IsCheckedOut = bool.Parse(reader[19].ToString());
            sog.IdPagamento = reader[20].ToString() == "" ? 0 : int.Parse(reader[20].ToString());
            sog.ColoreGruppoArgb = (reader[21].ToString() == "") ? 0 : int.Parse(reader[21].ToString()); 
        
            reader.Close();
            
            //query per ricezione di tutti i servizi associati al soggiorno
            queryString = "SELECT * FROM QueryServiziByIdSoggiorno";
            cmd = new OleDbCommand(queryString, conn);
            cmd.Parameters.Add("IdSoggiorno", OleDbType.Integer).Value = idSoggiorno;
            
            reader = cmd.ExecuteReader();

            while (reader.Read())
            {
                //Servizio.Nome, ServiziSoggiorno.NoteServizio, ServiziSoggiorno.TotaleServizio, Servizo.ID
                sog.AddServizio(new ServizioSoggiorno
                {
                    Nome = reader[0].ToString(),
                    Note = reader[1].ToString(),
                    Totale = (reader[2].ToString() == "") ? 0 : decimal.Parse(reader[2].ToString()),
                    IdServizio = int.Parse(reader[3].ToString())
                });
            }
            reader.Close();
            conn.Close();
            return sog;
        }
コード例 #21
0
        private void btnElimina_Click(object sender, RoutedEventArgs e)
        {
            var result = MessageBox.Show("Sei sicuro di voler elimare questo soggiorno?", "Conferma eliminazione", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No);
            if (result == MessageBoxResult.Yes)
            {
                if (soggiorno.IsCheckedIn)
                {
                    MessageBox.Show("Non puoi eliminare un soggiorno che ha effettuato il check-in.", "Impossibile eliminare soggiorno", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                    return;
                }
                if (soggiorno.IsCheckedOut)
                {
                    MessageBox.Show("Non puoi eliminare un soggiorno che ha effettuato il check-out.", "Impossibile eliminare soggiorno", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                    return;
                }

                //elimina soggiorno e servizi soggiorno da db
                dag.eliminaSoggiorno(soggiorno.Id);
                soggiorno = null;
                this.DialogResult = true;
            }
        }
コード例 #22
0
ファイル: DataAccessGateway.cs プロジェクト: eddiez/soggiorni
        internal void aggiornaSoggiorno(Soggiorno s)
        {
            //cancello tutti i servizi: tabella ServiziSoggiorno non ha una chiave quindi non posso fare una update
            //ho eliminato la chiave perchè posso avere più servizi dello stesso tipo (es. altro) associati ad un soggiorno
            var ssta = new ServiziSoggiornoTableAdapter();
            ssta.DeleteByIdSoggiorno(s.Id);
            //inserisco i nuovi servizi uno alla volta
            var srvlist = s.GetAllServizi();
            if(srvlist!=null)
                foreach (var srv in s.GetAllServizi())
                    ssta.Insert(s.Id, srv.IdServizio, srv.Totale, srv.Note);

            //update dei dati del soggiorno
            var sta = new SoggiornoTableAdapter();
            sta.UpdateById(s.Arrivo, s.Partenza, s.Cliente.Id, s.Camera.Id, s.UsoCamera, s.PrezzoANotte, s.Caparra,
                s.NoteCaparra, s.TotaleSoggiorno, s.NoteSaldoSoggiorno, s.NoteDurata, s.TotalePernotto, s.Prenotante,
                s.Confermato, s.NoteCamera, s.IsCheckedIn, s.IsCheckedOut, 
                s.IdPagamento==0 ? null : (int?)s.IdPagamento, s.ColoreGruppoArgb,
                s.Id);
        }
コード例 #23
0
ファイル: DataAccessGateway.cs プロジェクト: eddiez/soggiorni
 internal List<Soggiorno> cercaSoggiorniNonCheckedInForIstat(DateTime arriviDa, DateTime arriviA)
 {
     OleDbConnection conn = new OleDbConnection(Properties.Settings.Default.SoggiorniDbConnectionString);
     string queryString = "SELECT * FROM QuerySoggiorniNotCheckedInForIstat";
     OleDbCommand cmd = new OleDbCommand(queryString, conn);
     cmd.Parameters.Add("DataDa", OleDbType.Date).Value = arriviDa;
     cmd.Parameters.Add("DataA", OleDbType.Date).Value = arriviA;
     conn.Open();
     OleDbDataReader reader = cmd.ExecuteReader();
     var slist = new List<Soggiorno>();
     Soggiorno sog;
     while (reader.Read())
     {
         //Soggiorno.ID, Soggiorno.Arrivo, Soggiorno.Arrivo, Cliente.Cognome, Camera.Numero, Soggiorno.IsCheckedIn
         sog = new Soggiorno
         {
             Id = int.Parse(reader[0].ToString()),
             Arrivo = DateTime.Parse(reader[1].ToString()),
             Partenza = DateTime.Parse(reader[2].ToString()),
             Cliente = new Cliente { Cognome = reader[3].ToString() },
             Camera = new Camera { Numero = int.Parse(reader[4].ToString()) },
             IsCheckedIn = false
         };
         slist.Add(sog);
     }
     reader.Close();
     conn.Close();
     return slist;
 }