private void AddToList(Ingresso ingresso, int qta, DateTime dateTime, EnumTipologiaEconomica enumTipologiaEconomica, RigaVenditaVariante riga)
        {
            DatiReport06 target = null;

            foreach (DatiReport06 dato in _List)
            {
                if (dato.Museo == ingresso.Descrizione)
                {
                    target = dato;
                }
            }

            if (target == null)
            {
                target           = new DatiReport06();
                target.Museo     = ingresso.Descrizione;
                target.Tipo      = ingresso.DescrizioneTipo;
                target.Ordine    = ingresso.OrdineReport01;
                target.Tipologia = ingresso.Tipologia;

                _List.Add(target);
            }

            if (riga == null)
            {
                target.CalcolaTotale(); return;
            }

            // filtro in base alle giornate di apertura
            //if (ingresso.IsAttrib(EventoParticolare.STR_INGRESSI_VERIFICA_VALIDITA) && !_Aperture.Valido(ingresso.Oid, riga.Vendita.DataContabile))
            //    return;
            if (ingresso.IsAttrib(EventoParticolare.STR_INGRESSI_NO_VENDITA_DA_ALTRI) && riga.Vendita.Struttura != ingresso.Struttura)
            {
                return;
            }
            if (riga.Vendita.Struttura != ingresso.Struttura && riga.Vendita.DataContabile.Year <= 2011 && riga.Vendita.DataContabile.Month < 6)
            {
                return;
            }
            if (ingresso.IsAttrib(EventoParticolare.STR_INGRESSI_MOD_TERREMOTO_1) && (riga.Vendita.DataContabile > EventoParticolare.EQDataEvento && riga.Vendita.DataContabile.Year < 2015 && !_Aperture.Valido(ingresso.Oid, riga.Vendita.DataContabile)))
            {
                return;
            }
            if (riga.Variante.TipologiaTre == EnumTipologiaTre.CardMyFE && riga.Variante.TipologiaDue == EnumTipologiaDue.Ridotto && riga.Variante.PrezzoAttuale.PrezzoRidotto == null)
            {
                return;
            }
            if (riga.Variante.TipologiaTre == EnumTipologiaTre.CardMyFE && riga.Variante.TipologiaDue == EnumTipologiaDue.Ridotto)
            {
                return;
            }

            int mese = dateTime.Month;
            int anno = dateTime.Year;

            if (anno == _AnnoInCorso)
            {
                switch (mese)
                {
                case 1:
                    target.Gennaio += qta;
                    break;

                case 2:
                    target.Febbraio += qta;
                    break;

                case 3:
                    target.Marzo += qta;
                    break;

                case 4:
                    target.Aprile += qta;
                    break;

                case 5:
                    target.Maggio += qta;
                    break;

                case 6:
                    target.Giugno += qta;
                    break;

                case 7:
                    target.Luglio += qta;
                    break;

                case 8:
                    target.Agosto += qta;
                    break;

                case 9:
                    target.Settembre += qta;
                    break;

                case 10:
                    target.Ottobre += qta;
                    break;

                case 11:
                    target.Novembre += qta;
                    break;

                case 12:
                    target.Dicembre += qta;
                    break;

                default:
                    throw new Exception("Mese non previsto");
                }
            }
            else if (anno == _AnnoInCorso - 1)
            {
                target.AnnoMeno1 += qta;
            }
            else if (anno == _AnnoInCorso - 2)
            {
                target.AnnoMeno2 += qta;
            }
            else
            {
                throw new Exception("Anno non valido");
            }

            target.CalcolaTotale();
        }
        private void AddToList(Ingresso ingresso, int qta, DateTime dateTime, EnumTipologiaEconomica enumTipologiaEconomica, RigaVenditaVariante riga)
        {
            DatiReport03b target = null;

            foreach (DatiReport03b datiReport03b in _List)
            {
                if (datiReport03b.Museo == ingresso.Descrizione)
                {
                    target = datiReport03b;
                }
            }

            if (target == null)
            {
                target           = new DatiReport03b();
                target.Museo     = ingresso.Descrizione;
                target.Tipo      = ingresso.DescrizioneTipo;
                target.Ordine    = ingresso.OrdineReport01;
                target.Tipologia = ingresso.Tipologia;

                _List.Add(target);
            }

            if (riga == null)
            {
                target.CalcolaTotale(); return;
            }

            // filtro in base alle giornate di apertura
            //if (ingresso.IsAttrib(EventoParticolare.STR_INGRESSI_VERIFICA_VALIDITA) && !_Aperture.Valido(ingresso.Oid, riga.Vendita.DataContabile))
            //    return;
            if (ingresso.IsAttrib(EventoParticolare.STR_INGRESSI_NO_VENDITA_DA_ALTRI) && riga.Vendita.Struttura != ingresso.Struttura)
            {
                return;
            }
            if (riga.Vendita.Struttura != ingresso.Struttura && riga.Vendita.DataContabile.Year <= 2011 && riga.Vendita.DataContabile.Month < 6)
            {
                return;
            }
            if (ingresso.IsAttrib(EventoParticolare.STR_INGRESSI_MOD_TERREMOTO_1) && (riga.Vendita.DataContabile > EventoParticolare.EQDataEvento && riga.Vendita.DataContabile.Year < 2015 && !_Aperture.Valido(ingresso.Oid, riga.Vendita.DataContabile)))
            {
                return;
            }
            if (riga.Variante.TipologiaTre == EnumTipologiaTre.CardMyFE && riga.Variante.TipologiaDue == EnumTipologiaDue.Ridotto && riga.Variante.PrezzoAttuale.PrezzoRidotto == null)
            {
                return;
            }
            if (riga.Variante.TipologiaTre == EnumTipologiaTre.CardMyFE && riga.Variante.TipologiaDue == EnumTipologiaDue.Ridotto)
            {
                return;
            }

            if (enumTipologiaEconomica == EnumTipologiaEconomica.Pagante)
            {
                switch (dateTime.Month)
                {
                case 1:
                    target.M01Pag += qta;
                    break;

                case 2:
                    target.M02Pag += qta;
                    break;

                case 3:
                    target.M03Pag += qta;
                    break;

                case 4:
                    target.M04Pag += qta;
                    break;

                case 5:
                    target.M05Pag += qta;
                    break;

                case 6:
                    target.M06Pag += qta;
                    break;

                case 7:
                    target.M07Pag += qta;
                    break;

                case 8:
                    target.M08Pag += qta;
                    break;

                case 9:
                    target.M09Pag += qta;
                    break;

                case 10:
                    target.M10Pag += qta;
                    break;

                case 11:
                    target.M11Pag += qta;
                    break;

                case 12:
                    target.M12Pag += qta;
                    break;

                default:
                    throw new Exception("Mese non previsto");
                }
            }
            else if (enumTipologiaEconomica == EnumTipologiaEconomica.Gratuito)
            {
                switch (dateTime.Month)
                {
                case 1:
                    target.M01NPag += qta;
                    break;

                case 2:
                    target.M02NPag += qta;
                    break;

                case 3:
                    target.M03NPag += qta;
                    break;

                case 4:
                    target.M04NPag += qta;
                    break;

                case 5:
                    target.M05NPag += qta;
                    break;

                case 6:
                    target.M06NPag += qta;
                    break;

                case 7:
                    target.M07NPag += qta;
                    break;

                case 8:
                    target.M08NPag += qta;
                    break;

                case 9:
                    target.M09NPag += qta;
                    break;

                case 10:
                    target.M10NPag += qta;
                    break;

                case 11:
                    target.M11NPag += qta;
                    break;

                case 12:
                    target.M12NPag += qta;
                    break;

                default:
                    throw new Exception("Mese non previsto");
                }
            }
            else
            {
                throw new Exception("EnumTipologiaEconomica non previsto: " + enumTipologiaEconomica);
            }

            target.CalcolaTotale();
        }
        private void AddToList(Ingresso ingresso, int qta, DateTime dateTime, EnumTipologiaEconomica enumTipologiaEconomica, RigaVenditaVariante riga)
        {
            DatiReport04 target = null;

            foreach (DatiReport04 dato in _List)
            {
                if (dato.Museo == ingresso.Descrizione)
                {
                    target = dato;
                }
            }

            if (target == null)
            {
                target        = new DatiReport04();
                target.Museo  = ingresso.Descrizione;
                target.Tipo   = ingresso.DescrizioneTipo;
                target.Ordine = ingresso.OrdineReport01;

                _List.Add(target);
            }

            if (riga == null)
            {
                target.CalcolaTotale(); return;
            }

            // filtro in base alle giornate di apertura
            //if (ingresso.IsAttrib(EventoParticolare.STR_INGRESSI_VERIFICA_VALIDITA) && !_Aperture.Valido(ingresso.Oid, riga.Vendita.DataContabile))
            //    return;
            if (ingresso.IsAttrib(EventoParticolare.STR_INGRESSI_NO_VENDITA_DA_ALTRI) && riga.Vendita.Struttura != ingresso.Struttura)
            {
                return;
            }
            if (riga.Vendita.Struttura != ingresso.Struttura && riga.Vendita.DataContabile.Year <= 2011 && riga.Vendita.DataContabile.Month < 6)
            {
                return;
            }
            if (ingresso.IsAttrib(EventoParticolare.STR_INGRESSI_MOD_TERREMOTO_1) && (riga.Vendita.DataContabile > EventoParticolare.EQDataEvento && riga.Vendita.DataContabile.Year < 2015 && !_Aperture.Valido(ingresso.Oid, riga.Vendita.DataContabile)))
            {
                return;
            }
            if (riga.Variante.TipologiaTre == EnumTipologiaTre.CardMyFE && riga.Variante.TipologiaDue == EnumTipologiaDue.Ridotto && riga.Variante.PrezzoAttuale.PrezzoRidotto == null)
            {
                return;
            }
            if (riga.Variante.TipologiaTre == EnumTipologiaTre.CardMyFE && riga.Variante.TipologiaDue == EnumTipologiaDue.Ridotto)
            {
                return;
            }

            if (dateTime.Year == _AnnoInCorso)
            {
                target.VisAnno1 += qta;
            }
            else if (dateTime.Year == _AnnoInCorso - 1)
            {
                target.VisAnno2 += qta;
            }
            else if (dateTime.Year == _AnnoInCorso - 2)
            {
                target.VisAnno3 += qta;
            }
            else if (dateTime.Year == _AnnoInCorso - 3)
            {
                target.VisAnno4 += qta;
            }
            else if (dateTime.Year == _AnnoInCorso - 4)
            {
                target.VisAnno5 += qta;
            }

            target.CalcolaTotale();
        }