public void Init(PrenotazioneIngresso prenotazione, XtraTabPage pagina, XPCollection collectionPrenotazioni, SchedulerControl scheduler, PrenotazioneComplessiva complessiva)
        {
            m_Scheduler              = scheduler;
            m_UnitOfWork             = (UnitOfWork)collectionPrenotazioni.Session;
            m_CollectionMySet        = new XPCollection <Prenotazione>(m_UnitOfWork, false);
            m_CollectionPrenotazioni = collectionPrenotazioni;
            m_Pagina                  = pagina;
            m_Prenotazione            = prenotazione;
            m_PrenotazioneComplessiva = complessiva;
            m_Ingresso                = m_UnitOfWork.GetObjectByKey <Ingresso>(m_Prenotazione.Ingresso.Oid);

            m_PrenotazioneAttiva = prenotazione.Attivo;
            m_PrenotazioneErrore = false;

            CreaPrenotazione(false);

            VerificaStato();
        }
Esempio n. 2
0
        public void InitRefreshPrenotazione(List <Ingresso> elenco)
        {
            // toglie tutte le prenotazioni relative ad ingressi che non esistono piu'
            // nell'elenco degli ingressi selezionati
            for (int i = this.Prenotazioni.Count - 1; i >= 0; i--)
            {
                bool found = false;
                foreach (Ingresso item in elenco)
                {
                    if (item.Oid == this.Prenotazioni[i].Ingresso.Oid)
                    {
                        found = true;
                    }
                }
                if (!found)
                {
                    this.Prenotazioni.RemoveAt(i);
                }
            }

            foreach (Ingresso item in elenco)
            {
                PrenotazioneIngresso newPrenotazioneIngresso = null;
                foreach (PrenotazioneIngresso prenotazioneIngresso in this.Prenotazioni)
                {
                    if (prenotazioneIngresso.Ingresso.Oid == item.Oid)
                    {
                        newPrenotazioneIngresso = prenotazioneIngresso;
                    }
                }
                if (newPrenotazioneIngresso == null)
                {
                    newPrenotazioneIngresso = new PrenotazioneIngresso(item, this.GestoreProfili.TotalePersone());
                    this.Prenotazioni.Add(newPrenotazioneIngresso);
                }
                else
                {
                    newPrenotazioneIngresso.NumeroPersone = this.GestoreProfili.TotalePersone();
                }
            }
        }
Esempio n. 3
0
 public EventoNotificaScheduler(PrenotazioneIngresso prenotazione, int numeroPersone)
 {
     Prenotazione  = prenotazione;
     NumeroPersone = numeroPersone;
 }
Esempio n. 4
0
        public void Init(List <Ingresso> elenco, PrenotazioneComplessiva prenotazione)
        {
            CorreggiTimeScale();

            saved = false;

            //this.xpCollectionPrenotazioni = new DevExpress.Xpo.XPCollection(this.unitOfWork1, typeof(Prenotazione));
            for (int i = this.xpCollectionPrenotazioni.Count - 1; i >= 0; i--)
            {
                this.xpCollectionPrenotazioni.Remove(this.xpCollectionPrenotazioni[i]);
            }

            m_Elenco       = elenco;
            m_Prenotazione = prenotazione;
            m_Prenotazione.CollectionPrenotazione = this.xpCollectionPrenotazioni;

            GestoreCalendario.Clear(m_Prenotazione.TipoGS(), m_Prenotazione.TipoScuola(), false);

            //if (string.IsNullOrEmpty(m_Prenotazione.RiferimentoVendita))
            //{
            //    XtraFormAskInfoPrenotazione info = new XtraFormAskInfoPrenotazione();
            //    info.Init(m_Prenotazione);
            //    info.ShowDialog();
            //}

            this.xtraTabControlIngressi.BeginUpdate();
            this.xtraTabControlIngressi.TabPages.Clear();
            //int timespan = 60;

            m_Prenotazione.InitRefreshPrenotazione(m_Elenco);

            foreach (Ingresso item in m_Elenco)
            {
                XtraTabPage pagina = new XtraTabPage();
                pagina.Text = item.DescrizioneBreve;

                PrenotazioneIngresso newPrenotazioneIngresso = null;
                foreach (PrenotazioneIngresso prenotazioneIngresso in m_Prenotazione.Prenotazioni)
                {
                    if (prenotazioneIngresso.Ingresso.Oid == item.Oid)
                    {
                        newPrenotazioneIngresso = prenotazioneIngresso;
                    }
                }

                switch (item.Prenotazione)
                {
                case EnumPrenotazioneIngresso.NonGestita:
                    pagina.Text += ": NG";
                    //pagina.ImageIndex = 0;
                    break;

                case EnumPrenotazioneIngresso.Facoltativa:
                    pagina.Text      += ": FAC";
                    pagina.ImageIndex = 1;
                    break;

                case EnumPrenotazioneIngresso.Consigliata:
                    pagina.Text      += ": CON";
                    pagina.ImageIndex = 2;
                    break;

                case EnumPrenotazioneIngresso.Obbligatoria:
                    pagina.Text      += ": OBL";
                    pagina.ImageIndex = 3;
                    break;
                }

                pagina.Tag = newPrenotazioneIngresso;
                this.xtraTabControlIngressi.TabPages.Add(pagina);

                XtraUserControlCalendario2 ucal = new XtraUserControlCalendario2();
                ucal.Init(newPrenotazioneIngresso, pagina, this.xpCollectionPrenotazioni, this.schedulerControlPrenotazioni, m_Prenotazione);
                ucal.Dock = DockStyle.Fill;
                pagina.Controls.Add(ucal);

                //if (item.DurataSlot(GestoreCalendario.TipoGS) > 0)
                //    timespan = gcd(timespan, item.DurataSlot(GestoreCalendario.TipoGS));
            }

            // attivo la tab relativa alle prenotazioni prevent
            //foreach (XtraTabPage xtraTabPage in this.xtraTabControlIngressi.TabPages)
            //{
            //    m_ActiveControl = xtraTabPage.Controls[0] as XtraUserControlCalendario2;
            //    m_ActiveControl.CreaPrenotazione(false);
            //}

            this.xtraTabControlIngressi.EndUpdate();

            this.xtraTabControlIngressi.SelectedTabPage = this.xtraTabControlIngressi.TabPages[0];
            xtraTabControlIngressi_SelectedPageChanged(null, new TabPageChangedEventArgs(null, this.xtraTabControlIngressi.TabPages[0]));

            this.barStaticItemInfo1.Caption = string.Format("{0} persone per un totale di {1:c}", m_Prenotazione.GestoreProfili.TotalePersone(), m_Prenotazione.GestoreProfili.TotaleImporto());
            this.barStaticItemInfo2.Caption = m_Prenotazione.RiferimentoVendita;
            this.barStaticItemInfoG.Caption = string.Format("TipoGS: {0}", GestoreCalendario.TipoGS);
            this.barStaticItemInfoS.Caption = string.Format("Scuola: {0}", GestoreCalendario.TipoScuola);

            // Imposta la griglia temporale
            //this.schedulerControlPrenotazioni.DayView.TimeSlots.Clear();
            //this.schedulerControlPrenotazioni.WorkWeekView.TimeSlots.Clear();

            //int durata = timespan;
            //while (durata <= 60)
            //{
            //    this.schedulerControlPrenotazioni.DayView.TimeSlots.Add(new DevExpress.XtraScheduler.TimeSlot(new TimeSpan(0, durata, 0), "slotx1"));
            //    this.schedulerControlPrenotazioni.WorkWeekView.TimeSlots.Add(new DevExpress.XtraScheduler.TimeSlot(new TimeSpan(0, durata, 0), "slotx1"));
            //    durata += timespan;
            //}

            //this.schedulerControlPrenotazioni.DayView.TimeScale = new TimeSpan(0, timespan, 0);
            //this.schedulerControlPrenotazioni.WorkWeekView.TimeScale = new TimeSpan(0, timespan, 0);

            this.schedulerControlPrenotazioni.Start = DateTime.Now.Date.AddDays(-1);
            this.schedulerControlPrenotazioni.GoToToday();

            this.schedulerControlPrenotazioni.LimitInterval.Start = DateTime.Now.Date.AddDays(-1);
            this.schedulerControlPrenotazioni.LimitInterval.End   = DateTime.Now.Date.AddDays(20);

            this.schedulerControlPrenotazioni.Refresh();
        }