示例#1
0
        private void ConsegnaElementi(object sender, EventArgs e)
        {
            if (_noleggiTabPresenter.DataGridView.CurrentRow != null)
            {
                Noleggio daTerminare = ((NoleggioAdapted)_noleggiTabPresenter.DataGridView.CurrentRow.DataBoundItem).GetWrapped();
                if (daTerminare.IsChiuso)
                {
                    MessageBox.Show("Noleggio già concluso!", "Operazione non permessa", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }

                NoleggioFormEditOrView    form      = new NoleggioFormEditOrView();
                ChiusuraNoleggioPresenter presenter = new ChiusuraNoleggioPresenter(form, daTerminare);
                if (form.ShowDialog() == DialogResult.OK)
                {
                    Negozio.ConcludiNoleggio(daTerminare, Logged.User);
                }
            }
        }
示例#2
0
        public ChiusuraNoleggioPresenter(NoleggioFormEditOrView target, Noleggio noleggio)
        {
            _noleggio    = noleggio;
            _cliente     = _noleggio.Cliente;
            _target      = target;
            _target.Text = "Chiusura noleggio";
            //Eventi
            _target.AggiungiAgevolazioneEccezionale.Click         += AggiungiAgevolazioneEccezionale;
            _target.ElementiNoleggioDataGridView.SelectionChanged += ShowPrezzoSingoloElemento;

            //Popolamento tabella elementi noleggiati
            _target.ElementiNoleggioDataGridView.DataSource = Adapter <ElementoNoleggio, ElementoNoleggioAdapted> .Convert(_noleggio.ElementiNoleggio);

            //Comunicazione della durata e del noleggio
            _fineEffettiva           = DateTime.Now;
            _durataEffettiva         = _fineEffettiva - _noleggio.DataOraInizio;
            _target.DurataLabel.Text = string.Format("Durata noleggio: {0} giorni, {1} ore, {2} minuti",
                                                     _durataEffettiva.Days, _durataEffettiva.Hours, _durataEffettiva.Minutes);

            //Comunicazione del prezzo del noleggio
            _target.PrezzoTotaleLabel.Text = string.Format("Prezzo totale: {0}", _noleggio.CalcolaPrezzo(_durataEffettiva, Negozio.MINUTI_TOLLERANZA).ToEuroString());

            //Popolamento dati cliente
            TableLayoutPanel clientePanel = _target.DatiClientePanel;

            foreach (PropertyInfo info in _cliente.GetType().GetProperties())
            {
                Label nomeProprietà = new Label();
                nomeProprietà.Text = (info.GetCustomAttributes(typeof(EditableAttribute), false)[0] as EditableAttribute).Label;
                Label valoreProprietà = new Label();
                valoreProprietà.Text = info.GetValue(_cliente).ToString();
                clientePanel.Controls.Add(nomeProprietà);
                clientePanel.Controls.Add(valoreProprietà);
            }

            _target.FormClosing += CheckFascia;
        }