private void AddCardToList(Entrata entrata)
        {
            DatiReport02 target = null;

            foreach (DatiReport02 dataReport02 in _List)
            {
                if (dataReport02.TipologiaTre == EnumTipologiaTre.CardMyFE)
                {
                    target = dataReport02;
                }
            }

            if (target == null)
            {
                throw new Exception(String.Format("Target not found. CardMyFE"));
            }

            // card myfe sempre come intero (erano ridotto, ma Zerbinati ha optato per intero il 24/09/2014),
            // anche se museo di storia naturale inserisce cardmye come omaggi
            target.PagantiIntero += entrata.RigaStampaIngresso.TotaleIngressi;

            target.CalcolaTotali();
        }
        private void AddToList(RigaVenditaVariante riga, Ingresso ingresso, int level = 0)
        {
            // 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;
            }

            DatiReport02 target = null;

            foreach (DatiReport02 dataReport02 in _List)
            {
                if (riga.Variante.Biglietto.Tipologia == EnumTipologiaBiglietto.Museo)
                {
                    if (riga.Variante.TipologiaTre == EnumTipologiaTre.Bigliettone)
                    {
                        if (dataReport02.Titolo == null && dataReport02.Descrizione == STR_Bigliettone)
                        {
                            target = dataReport02;
                        }
                    }

                    if (riga.Variante.TipologiaTre == EnumTipologiaTre.OmaggioGruppo)
                    {
                        if (riga.Variante.TipologiaUno == EnumTipologiaUno.Gruppo && riga.Variante.TipologiaDue == EnumTipologiaDue.Omaggio && riga.Variante.TipologiaTre == EnumTipologiaTre.OmaggioGruppo)
                        {
                            if (dataReport02.Titolo == null && dataReport02.Descrizione == STR_GruppiIngressoOmaggio)
                            {
                                target = dataReport02;
                            }
                        }
                    }

                    if (riga.Variante.TipologiaTre == EnumTipologiaTre.Standard)
                    {
                        if (riga.Variante.TipologiaUno == EnumTipologiaUno.Singolo)
                        {
                            if (riga.Titolo == null && dataReport02.Titolo == null && dataReport02.Descrizione == STR_BigliettoIntero)
                            {
                                target = dataReport02;
                            }

                            if (riga.Titolo != null && dataReport02.Titolo == riga.Titolo && dataReport02.Tipologia == EnumTipologiaBiglietto.Museo)
                            {
                                target = dataReport02;
                            }
                        }

                        if (riga.Variante.TipologiaUno == EnumTipologiaUno.Gruppo)
                        {
                            if (riga.Titolo == null)
                            {
                                if (dataReport02.Titolo == null && dataReport02.Descrizione == STR_Gruppi)
                                {
                                    target = dataReport02;
                                }
                            }
                            else
                            {
                                if (riga.Titolo != null && dataReport02.Titolo == riga.Titolo && dataReport02.Tipologia == EnumTipologiaBiglietto.Museo)
                                {
                                    target = dataReport02;
                                }
                            }
                        }

                        if (riga.Variante.TipologiaUno == EnumTipologiaUno.Scuola)
                        {
                            if (dataReport02.Titolo == null && dataReport02.Descrizione == STR_Scuola)
                            {
                                target = dataReport02;
                            }
                        }
                    }
                }

                if (riga.Variante.Biglietto.Tipologia == EnumTipologiaBiglietto.Cumulativo)
                {
                    if (riga.Variante.TipologiaDue == EnumTipologiaDue.Intero && dataReport02.Descrizione == STR_CumulativoIntero)
                    {
                        target = dataReport02;
                    }

                    if ((riga.Variante.TipologiaDue == EnumTipologiaDue.Ridotto || riga.Variante.TipologiaDue == EnumTipologiaDue.Omaggio) && dataReport02.Descrizione == STR_CumulativoRidotto)
                    {
                        target = dataReport02;
                    }

                    //if (riga.Variante.TipologiaUno == EnumTipologiaUno.Gruppo && riga.Variante.TipologiaDue == EnumTipologiaDue.Omaggio && riga.Variante.TipologiaTre == EnumTipologiaTre.NFR)
                    //{
                    //    if (dataReport02.Titolo == null && dataReport02.Descrizione == STR_GruppiIngressoOmaggio)
                    //        target = dataReport02;
                    //}
                }

                if (riga.Variante.Biglietto.Tipologia == EnumTipologiaBiglietto.Card && riga.Variante.TipologiaTre != EnumTipologiaTre.CardMyFE)
                {
                    if (riga.Variante.TipologiaDue == EnumTipologiaDue.Intero && dataReport02.Descrizione == STR_CardMuseiIntero)
                    {
                        target = dataReport02;
                    }

                    if ((riga.Variante.TipologiaDue == EnumTipologiaDue.Ridotto || riga.Variante.TipologiaDue == EnumTipologiaDue.Omaggio) && dataReport02.Descrizione == STR_CardMuseiRidotto)
                    {
                        target = dataReport02;
                    }
                }

                if (riga.Variante.TipologiaTre == EnumTipologiaTre.CardMyFE)
                {
                    if (dataReport02.TipologiaTre == EnumTipologiaTre.CardMyFE)
                    {
                        target = dataReport02;
                    }
                }

                if (target != null)
                {
                    break;
                }
            }

            if (target == null)
            {
                //throw new Exception(String.Format("Target not found. Tipologia Variante: {0} / Biglietto: {1} / Titolo: {2}", riga.Variante.Tipologia, riga.Variante.Biglietto.Tipologia, riga.Titolo != null ? riga.Titolo.Descrizione : string.Empty));
                if (riga.Titolo != null && level == 0)
                {
                    AddToList(riga.Titolo, _Descrizione);
                    AddToList(riga, ingresso, level + 1);
                    return;
                }
                else
                {
                    XtraMessageBox.Show(String.Format("Target not found. Variante: {0} / Biglietto: {1} / Titolo: {2}", riga.Variante.Tipologia, riga.Variante.Biglietto.Tipologia, riga.Titolo != null ? riga.Titolo.Descrizione : string.Empty));
                    return;
                }
            }

            if (target.TipologiaTre == EnumTipologiaTre.CardMyFE)
            {
                // card myfe sempre come intero (erano ridotto, ma Zerbinati ha optato per intero il 24/09/2014),
                // anche se museo di storia naturale inserisce cardmye come omaggi
                target.PagantiIntero += riga.Quantita;
            }
            else
            {
                switch (riga.Variante.TipologiaDue)
                {
                case EnumTipologiaDue.Intero:
                    target.PagantiIntero += riga.Quantita;
                    break;

                case EnumTipologiaDue.Ridotto:
                    target.PagantiRidotto += riga.Quantita;
                    break;

                case EnumTipologiaDue.Omaggio:
                    target.NonPaganti += riga.Quantita;
                    break;
                }
            }

            target.CalcolaTotali();
        }