public AnteprimaReportRipartoPersona(IList<ReportRipartizioneBilancioDTO> dataSource, CondominioDTO condominio, EsercizioDTO esercizio, IList<PersonaContattoDTO> personeRiparto, Dictionary<int, IList<IList<UnitaImmobiliareListaDTO>>> listaUnitaImmobiliare, BilancioConsuntivoReportParameters parameters, ImpostazioneReportDTO impostazioneReportDTO, string reportKey, string note)
        {
            InitializeComponent();
            _dataSource = dataSource;
            _condominio = condominio;
            _esercizio = esercizio;
            _parameters = parameters;
            _personeRiparto = personeRiparto;
            _impostazioneReportDTO = impostazioneReportDTO;
            _note = note;

            Text = $"Riparto {_impostazioneReportDTO.Descrizione}";

            try
            {
                _importoTotale = getBilancioService().GetTotale(dataSource.ToList());
                _importoPreventivo = getBilancioService().GetTotalePreventivo(dataSource.ToList());

                IReportProvider document = new RipartoAnnualePersona(dataSource, _condominio, _esercizio, personeRiparto, listaUnitaImmobiliare, _parameters, _impostazioneReportDTO, reportKey, _note);
                SetDataSource(document.GetReport(), _impostazioneReportDTO);
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nell'apertura della maschera di anteprima per riparto - {0} - condominio:{1} - azienda:{2}", ex, Utility.GetMethodDescription(), _condominio?.ID.ToString(CultureInfo.InvariantCulture) ?? "<NULL>", Login.Instance.CurrentLogin().Azienda);
                throw;
            }
        }
        public AnteprimaReportRiparto(IList<ReportRipartizioneBilancioDTO> dataSource, CondominioDTO condominio, EsercizioDTO esercizio, BilancioConsuntivoReportParameters parameters, ImpostazioneReportDTO impostazioneReportDTO)
        {
            InitializeComponent();
            _dataSource = dataSource;
            _condominio = condominio;
            _esercizio = esercizio;
            _parameters = parameters;
            _impostazioneReportDTO = impostazioneReportDTO;

            Text = $"Riparto {_impostazioneReportDTO.Descrizione}";

            try
            {
                _importoTotale = getBilancioService().GetTotale(dataSource.ToList());
                _importoPreventivo = getBilancioService().GetTotalePreventivo(dataSource.ToList());

                IReportProvider document;
                if(_impostazioneReportDTO.MultiPageOrdered)
                    document = new RipartoMerge(dataSource, _condominio, _esercizio, _parameters, _impostazioneReportDTO, _importoTotale, _importoPreventivo);
                else
                    document = new RipartoSubreport(dataSource, _condominio, _esercizio, _parameters, _impostazioneReportDTO, _importoTotale, _importoPreventivo);
                
                SetDataSource(document.GetReport(), _impostazioneReportDTO);
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nell'apertura della maschera di anteprima per riparto - {0} - condominio:{1} - azienda:{2}", ex, Utility.GetMethodDescription(), _condominio?.ID.ToString(CultureInfo.InvariantCulture) ?? "<NULL>", Login.Instance.CurrentLogin().Azienda);
                Close();
            }
        }
Exemple #3
0
        public AnteprimaStampa(BilancioConsuntivoReportParameters reportParameters)
        {
            InitializeComponent();
            inizializza();

            _reportParameters = reportParameters;
        }
Exemple #4
0
        public RipartoSubreport(IList<ReportRipartizioneBilancioDTO> dataSource, CondominioDTO condominio, EsercizioDTO esercizio, BilancioConsuntivoReportParameters parameters, ImpostazioneReportDTO impostazioneReportDTO, decimal importoTotale, decimal importoPreventivo) : base(condominio, esercizio, null ,null, false, true)
        {
            _impostazioneReportDTO = impostazioneReportDTO;
            base.Inizializza(impostazioneReportDTO, parameters.Note);

            if (impostazioneReportDTO.MultiPage)
            {
                var helper = new RipartoHelper(dataSource, impostazioneReportDTO);
                var columns = helper.GetColumnList(null, null, null, null);
                var pagine = columns.Select(item => item.PrintPage).Distinct().ToList();
                _mergeReports = new List<RipartoSinglePage>(pagine.Count);

                foreach (var i in pagine)
                {
                    var columnsPage = columns.Where(item => item.PrintPage == i).Select(item => item.Order);
                    var dataSourcePage = dataSource.Where(item => (item.OrdineConto == 0 && item.IdConto == 0) || columnsPage.Contains(item.OrdineConto)).ToList();
                    var pageReport = new RipartoSinglePage(dataSourcePage, condominio, esercizio, parameters, impostazioneReportDTO, importoTotale, importoPreventivo, i, true);
                    _mergeReports.Add(pageReport);
                    pageReport.CreateDocument(impostazioneReportDTO);
                }

                _reportMerge = _report;
                _reportMerge.BeforePrint += XtraReportMerged_BeforePrint;
            }
            else
            {
                var riparto = new RipartoSinglePage(dataSource, condominio, esercizio, parameters, impostazioneReportDTO, importoTotale, importoPreventivo, null, false);
                var report = riparto.GetReport();
                _reportMerge = report;
            }}
Exemple #5
0
        public RipartoSinglePage(IList<ReportRipartizioneBilancioDTO> dataSource, CondominioDTO condominio, EsercizioDTO esercizio, BilancioConsuntivoReportParameters parameters, ImpostazioneReportDTO impostazioneReportDTO, decimal? importoTotale, decimal? importoPreventivo, int? numeroPagina, bool isSubReport) : base(condominio, esercizio, null, null, isSubReport, true)
        {
            _parameters = parameters;
            _dataSource = dataSource;
            _importoTotale = importoTotale;
            _importoPreventivo = importoPreventivo;
            _numeroPagina = numeroPagina;

            _impostazioniReport = impostazioneReportDTO;
            _ripartoHelper = new RipartoHelper(dataSource, impostazioneReportDTO);
            inizializza();
        }
        public AnteprimaStampaDetrazione(CondominioDTO condominio, int anno, int detrazione, IList<SpesaDTO> spese, BilancioConsuntivoReportParameters reportParameters)
        {
            InitializeComponent();
            inizializza();

            _condominio = condominio;
            _anno = anno;
            _detrazione = detrazione;
            _spese = spese;
            _reportParameters = reportParameters;

            loadReport();
        }
Exemple #7
0
        public RipartoMerge(IList<ReportRipartizioneBilancioDTO> dataSource, CondominioDTO condominio, EsercizioDTO esercizio, BilancioConsuntivoReportParameters parameters, ImpostazioneReportDTO impostazioneReportDTO, decimal importoTotale, decimal importoPreventivo)
        {
            if (impostazioneReportDTO.MultiPage)
            {
                var helper = new RipartoHelper(dataSource, impostazioneReportDTO);
                var columns = helper.GetColumnList(null, null, null, 1);
                var pagine = columns.Select(item => item.PrintPage).Distinct().ToList();

                IList<XtraReport> reports = new List<XtraReport>();

                foreach (var i in pagine)
                {
                    var columnsPage = columns.Where(item => item.PrintPage == i).Select(item => item.Order);
                    var dataSourcePage = dataSource.Where(item => item.OrdineConto == 0 || columnsPage.Contains(item.OrdineConto)).ToList();
                    var riparto = new RipartoSinglePage(dataSourcePage, condominio, esercizio, parameters, impostazioneReportDTO, importoTotale, importoPreventivo, i, false);
                    var report = riparto.GetReport();
                    report.CreateDocument();
                    if (impostazioneReportDTO.FitToPage)
                        report.PrintingSystem.Document.AutoFitToPagesWidth = 1;
                    reports.Add(report);
                }

                _reportMerge = BaseReportContainer.GetXtraReport(impostazioneReportDTO, false);
                _reportMerge.CreateDocument();
                var pageNumber = reports[0].Pages.Count;
                for (int i = 0; i < pageNumber; i++)
                {
                    foreach (var xtraReport in reports)
                    {
                        if (xtraReport.Pages.Count > i)
                            _reportMerge.Pages.Add(xtraReport.Pages[i]);
                    }
                }

                // Reset all page numbers in the resulting document. 
                _reportMerge.PrintingSystem.ContinuousPageNumbering = true;
            }
            else
            {
                var riparto = new RipartoSinglePage(dataSource, condominio, esercizio, parameters, impostazioneReportDTO, importoTotale, importoPreventivo, null, false);
                var report = riparto.GetReport();
                _reportMerge = report;
            }
        }
        public AnteprimaReportBilancio(IList<ReportBilancioDTO> dataSource, CondominioDTO condominio, EsercizioDTO esercizio, BilancioConsuntivoReportParameters parameters, ImpostazioneReportDTO impostazioneReportDTO, string reportKey)
        {
            InitializeComponent();
            _dataSource = dataSource;
            _condominio = condominio;
            _esercizio = esercizio;
            _parameters = parameters;
            _impostazioneReportDTO = impostazioneReportDTO;
            _reportKey = reportKey;

            Text = $"Bilancio {_impostazioneReportDTO.Descrizione}";

            try
            {
                var document = new BilancioAnnuale(dataSource, _condominio, _esercizio, _parameters, _impostazioneReportDTO, _reportKey);
                SetDataSource(document.GetReport(), _impostazioneReportDTO);
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nell'apertura della maschera di anteprima per bilacio annuale - {0} - condominio:{1} - azienda:{2}", ex, Utility.GetMethodDescription(), _condominio != null ? _condominio.ID.ToString() : "<NULL>", Login.Instance.CurrentLogin().Azienda);
                throw;
            }
        }
        public RipartoAnnualePersona(IList<ReportRipartizioneBilancioDTO> dataSource, CondominioDTO condominio, EsercizioDTO esercizio, IEnumerable<PersonaContattoDTO> persone, Dictionary<int, IList<IList<UnitaImmobiliareListaDTO>>> dictionaryUnitaImmobiliari, BilancioConsuntivoReportParameters parameters, ImpostazioneReportDTO impostazioneReportDTO, string reportKey, string note)
        {
            var reports = new List<XtraReport>();
            var condomini = getSoggettoService().GetByCondominio(condominio.ID);

            // Per ogni persona
            foreach (var listalistaUnitaImmobiliari in dictionaryUnitaImmobiliari)
            {
                var personaContattoDto = persone.First(item => item.ID == listalistaUnitaImmobiliari.Key);

                // Per ogni gruppo di unità immobiliari
                foreach (var listaUnitaImmobiliari in listalistaUnitaImmobiliari.Value)
                {
                    var dataSourcePersona = dataSource.Where(item => item.IdPersona == personaContattoDto.ID).ToList();
                    var condominiPersona = condomini.Where(item => item.IdPersona == personaContattoDto.ID).ToList();
                    var reportRipartoSingolaPersona = new RipartoAnnualeSingolaPersona(dataSourcePersona, condominio, esercizio, personaContattoDto, listaUnitaImmobiliari, condominiPersona, parameters, impostazioneReportDTO, reportKey, note);
                    reports.Add(reportRipartoSingolaPersona.GetReport());
                }
            }

            var merge = new BaseMergeReport(condominio, esercizio, null, null, impostazioneReportDTO);
            merge.MergeReports(reports);
            _reportMerge = merge.GetReport();
        }
        private BilancioConsuntivoReportParameters getParameters(CondominioDTO condominio, EsercizioDTO esercizio, TipoRendiconto tipoRendiconto, string tipoNote)
        {
            // ====================================================================
            // Descrizione del condominio
            // ====================================================================
            var righeCondominio = condominio.IndirizzoCompleto.Split('&');
            var righeDaPubblicare = new string[4];

            if (righeCondominio.Length > 0)
                righeDaPubblicare[0] = righeCondominio[0];
            for (var i = 1; i < 4; i++)
            {
                if (righeCondominio.Length > i)
                {
                    if (!string.IsNullOrEmpty(righeDaPubblicare[1]))
                        righeDaPubblicare[1] += " - ";
                    righeDaPubblicare[1] += righeCondominio[i];
                }
                if (i > 1)
                    righeDaPubblicare[i] = string.Empty;
            }

            // ====================================================================
            // Recupero l'intestazione dello studio
            // ====================================================================
            var azienda = getAziendaService().GetAzienda();
            var intestazioneStudio = azienda.Descrizione;
            var viaStudio = string.Empty;
            var capStudio = string.Empty;
            var localitaStudio = string.Empty;
            if (azienda.IndirizzoSede != null)
            {
                viaStudio = azienda.IndirizzoSede.Indirizzo + " n. " + azienda.IndirizzoSede.Civico;
                capStudio = azienda.IndirizzoSede.Cap;
                localitaStudio = azienda.IndirizzoSede.DescrizioneComune + " " + azienda.IndirizzoSede.CodiceProvincia;

                // Collasso diverse informazioni nel campo viaStudio
                viaStudio += " - " + capStudio + " " + localitaStudio;
            }

            var reportParameters =
                new BilancioConsuntivoReportParameters(
                    righeDaPubblicare,
                    condominio.Codice,
                    esercizio.DisplayName,
                    string.Empty, griglia.Checked,
                    TipoDettaglioReportBilancio.Undefined, 
                    suddivisioneProprietari.Checked,
                    TipoReportBilancio.Ripartizione,
                    tipoRendiconto,
                    salvaRiparto.Checked,
                    stampaMillesimi.Checked,
                    stampaSaldi.Checked,
                    Conversione.ToString(note.GetDocumento(tipoNote)),
                    intestazioneStudio,
                    viaStudio,
                    capStudio,
                    localitaStudio,
                    0,
                    0,
                    esercizio.DataChiusura.GetValueOrDefault(),
                    parzialeGruppo.Checked,
                    parzialeStabile.Checked,
                    accorpamentoUnita.Checked,
                    totalePerPersona.Checked,
                    getTipoAccorpamento(),
                    null,
                    numeroInterno.Checked,
                    salvaRiparto.Checked,
                    Security.Login.Instance.CurrentLogin().InversioneSaldiCondomini,
                    esercizio.DataApertura.GetValueOrDefault(),
                    esercizio.DataChiusura.GetValueOrDefault()
                    );

            return reportParameters;
        }
        public override IList<TableColumn> GetColumnList(XtraReport report, string reportKey, IReportParameters reportParameters, int? page, bool stampaMillesimi = false)
        {
            if (reportParameters is BilancioConsuntivoReportParameters)
                _reportParameters = (BilancioConsuntivoReportParameters)reportParameters;

            var columns = new List<TableColumn>();

            // ------------------
            // Codice
            // ------------------
            var width = 60f;
            var hidden = false;
            var nome = "Codice";

            var fontName = string.Empty;
            var fontStyle = string.Empty;
            float fontSize = 0;
            if (report != null)
            {
                fontName = report.Font.FontFamily.Name;
                fontStyle = GetFontStyleEnum(report.Font.Style);
                fontSize = report.Font.Size;
            }

            var impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.CodiceConto);
            if (impostazioneDettaglio != null)
            {
                nome = impostazioneDettaglio.Conto;
                hidden = impostazioneDettaglio.Hidden;
                fontName = impostazioneDettaglio.FontName;
                if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                    fontStyle = impostazioneDettaglio.FontStyle;
                if (impostazioneDettaglio.FontSize != null)
                    fontSize = impostazioneDettaglio.FontSize.Value;
                if (impostazioneDettaglio.Width != null)
                    width = impostazioneDettaglio.Width.Value;
            }
            columns.Add(new TableColumn(null, 0, nome, null, null, width, null, 1, ColumnTypeEnum.CodiceConto, fontName, fontStyle, fontSize, hidden, false, true));

            // ------------------
            // Descrizione
            // ------------------
            hidden = false;
            width = 250f;
            nome = "Descrizione";
            if (report != null)
            {
                fontName = report.Font.FontFamily.Name;
                fontStyle = GetFontStyleEnum(report.Font.Style);
                fontSize = report.Font.Size;
            }
            impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.DescrizioneConto);
            if (impostazioneDettaglio != null)
            {
                nome = impostazioneDettaglio.Conto;
                hidden = impostazioneDettaglio.Hidden;
                fontName = impostazioneDettaglio.FontName;
                if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                    fontStyle = impostazioneDettaglio.FontStyle;
                if (impostazioneDettaglio.FontSize != null)
                    fontSize = impostazioneDettaglio.FontSize.Value;
                if (impostazioneDettaglio.Width != null)
                    width = impostazioneDettaglio.Width.Value;
            }

            if (_reportParameters.TipoDettaglio == TipoDettaglioReportBilancio.Sottoconto)
            {
                var widthNumeroFattura = 80f;
                var impostazioneNumeroFattura = GetImpostazioneDettaglio(ColumnTypeEnum.NumeroFattura);
                if (impostazioneNumeroFattura != null)
                {
                    if(!impostazioneNumeroFattura.Hidden)
                        widthNumeroFattura += impostazioneNumeroFattura.Width.GetValueOrDefault();
                    else
                        widthNumeroFattura = 0;
                }

                var widthDataFattura = 80f;
                var impostazioneDataFattura = GetImpostazioneDettaglio(ColumnTypeEnum.DataFattura);
                if (impostazioneDataFattura != null)
                    widthDataFattura = !impostazioneDataFattura.Hidden ? impostazioneDataFattura.Width.GetValueOrDefault() : 0;

                var widthDataPagamento = 80f;
                var impostazioneDataPagamento = GetImpostazioneDettaglio(ColumnTypeEnum.DataPagamento);
                if (impostazioneDataPagamento != null)
                    widthDataPagamento = !impostazioneDataPagamento.Hidden ? impostazioneDataPagamento.Width.GetValueOrDefault() : 0;

                var widthDataRitenuta = 80f;
                var impostazioneDataRitenuta = GetImpostazioneDettaglio(ColumnTypeEnum.DataFattura);
                if (impostazioneDataRitenuta != null)
                    widthDataRitenuta = !impostazioneDataRitenuta.Hidden ? impostazioneDataRitenuta.Width.GetValueOrDefault() : 0;

                var widthFornitore = 150f;
                var impostazioneFornitore = GetImpostazioneDettaglio(ColumnTypeEnum.Fornitore);
                if (impostazioneFornitore != null)
                    widthFornitore = !impostazioneFornitore.Hidden ? impostazioneFornitore.Width.GetValueOrDefault() : 0;

                width += widthNumeroFattura + widthDataFattura + widthDataPagamento + widthDataRitenuta + widthFornitore;
            }

            columns.Add(new TableColumn(null, 0, nome, null, null, width, null, 1, ColumnTypeEnum.DescrizioneConto, fontName, fontStyle, fontSize, hidden, false));

            if (reportKey == "BILCONS")
            {
                // ------------------
                // Data Fattura
                // ------------------
                hidden = _reportParameters.TipoDettaglio == TipoDettaglioReportBilancio.Sottoconto;
                width = 80f;
                nome = "Data Fattura";
                if (report != null)
                {
                    fontName = report.Font.FontFamily.Name;
                    fontStyle = GetFontStyleEnum(report.Font.Style);
                    fontSize = report.Font.Size;
                }

                impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.DataFattura);
                if (impostazioneDettaglio != null)
                {
                    nome = impostazioneDettaglio.Conto;
                    hidden = impostazioneDettaglio.Hidden || _reportParameters.TipoDettaglio == TipoDettaglioReportBilancio.Sottoconto;
                    fontName = impostazioneDettaglio.FontName;
                    if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                        fontStyle = impostazioneDettaglio.FontStyle;
                    if (impostazioneDettaglio.FontSize != null)
                        fontSize = impostazioneDettaglio.FontSize.Value;
                    if (impostazioneDettaglio.Width != null)
                        width = impostazioneDettaglio.Width.Value;
                }
                columns.Add(new TableColumn(null, 0, nome, null, null, width, null, 1, ColumnTypeEnum.DataFattura, fontName, fontStyle, fontSize, hidden, false, true));

                // ------------------
                // Numero Fattura
                // ------------------
                hidden = _reportParameters.TipoDettaglio == TipoDettaglioReportBilancio.Sottoconto;
                width = 80f;
                nome = "Numero Fattura";
                if (report != null)
                {
                    fontName = report.Font.FontFamily.Name;
                    fontStyle = GetFontStyleEnum(report.Font.Style);
                    fontSize = report.Font.Size;
                }

                impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.NumeroFattura);
                if (impostazioneDettaglio != null)
                {
                    nome = impostazioneDettaglio.Conto;
                    hidden = impostazioneDettaglio.Hidden || _reportParameters.TipoDettaglio == TipoDettaglioReportBilancio.Sottoconto;
                    fontName = impostazioneDettaglio.FontName;
                    if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                        fontStyle = impostazioneDettaglio.FontStyle;
                    if (impostazioneDettaglio.FontSize != null)
                        fontSize = impostazioneDettaglio.FontSize.Value;
                    if (impostazioneDettaglio.Width != null)
                        width = impostazioneDettaglio.Width.Value;
                }
                columns.Add(new TableColumn(null, 0, nome, null, null, width, null, 1, ColumnTypeEnum.NumeroFattura, fontName, fontStyle, fontSize, hidden, false, true));

                // ------------------
                // Numero Registrazione / Protocollo
                // ------------------
                hidden = _reportParameters.TipoDettaglio == TipoDettaglioReportBilancio.Sottoconto;
                width = 90f;
                nome = "Prot.";
                if (report != null)
                {
                    fontName = report.Font.FontFamily.Name;
                    fontStyle = GetFontStyleEnum(report.Font.Style);
                    fontSize = report.Font.Size;
                }

                impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.Protocollo);
                if (impostazioneDettaglio != null)
                {
                    nome = impostazioneDettaglio.Conto;
                    hidden = impostazioneDettaglio.Hidden || _reportParameters.TipoDettaglio == TipoDettaglioReportBilancio.Sottoconto;
                    fontName = impostazioneDettaglio.FontName;
                    if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                        fontStyle = impostazioneDettaglio.FontStyle;
                    if (impostazioneDettaglio.FontSize != null)
                        fontSize = impostazioneDettaglio.FontSize.Value;
                    if (impostazioneDettaglio.Width != null)
                        width = impostazioneDettaglio.Width.Value;
                }
                columns.Add(new TableColumn(null, 0, nome, null, null, width, null, 1, ColumnTypeEnum.Protocollo, fontName, fontStyle, fontSize, hidden, false, true));

                // ------------------
                // Data Pagamento
                // ------------------
                hidden = _reportParameters.TipoDettaglio == TipoDettaglioReportBilancio.Sottoconto;
                width = 80f;
                nome = "Dt.Pagamento";
                if (report != null)
                {
                    fontName = report.Font.FontFamily.Name;
                    fontStyle = GetFontStyleEnum(report.Font.Style);
                    fontSize = report.Font.Size;
                }

                impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.DataPagamento);
                if (impostazioneDettaglio != null)
                {
                    nome = impostazioneDettaglio.Conto;
                    hidden = impostazioneDettaglio.Hidden || _reportParameters.TipoDettaglio == TipoDettaglioReportBilancio.Sottoconto;
                    fontName = impostazioneDettaglio.FontName;
                    if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                        fontStyle = impostazioneDettaglio.FontStyle;
                    if (impostazioneDettaglio.FontSize != null)
                        fontSize = impostazioneDettaglio.FontSize.Value;
                    if (impostazioneDettaglio.Width != null)
                        width = impostazioneDettaglio.Width.Value;
                }
                columns.Add(new TableColumn(null, 0, nome, null, null, width, null, 1, ColumnTypeEnum.DataPagamento, fontName, fontStyle, fontSize, hidden, false, true));

                // ------------------
                // Data Versamento Ritenuta
                // ------------------
                hidden = _reportParameters.TipoDettaglio == TipoDettaglioReportBilancio.Sottoconto;
                width = 80f;
                nome = "Dt.Ritenuta";
                if (report != null)
                {
                    fontName = report.Font.FontFamily.Name;
                    fontStyle = GetFontStyleEnum(report.Font.Style);
                    fontSize = report.Font.Size;
                }

                impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.DataVersamentoRitenuta);
                if (impostazioneDettaglio != null)
                {
                    nome = impostazioneDettaglio.Conto;
                    hidden = impostazioneDettaglio.Hidden || _reportParameters.TipoDettaglio == TipoDettaglioReportBilancio.Sottoconto;
                    fontName = impostazioneDettaglio.FontName;
                    if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                        fontStyle = impostazioneDettaglio.FontStyle;
                    if (impostazioneDettaglio.FontSize != null)
                        fontSize = impostazioneDettaglio.FontSize.Value;
                    if (impostazioneDettaglio.Width != null)
                        width = impostazioneDettaglio.Width.Value;
                }
                columns.Add(new TableColumn(null, 0, nome, null, null, width, null, 1, ColumnTypeEnum.DataVersamentoRitenuta, fontName, fontStyle, fontSize, hidden, false, true));

                // ------------------
                // Fornitore
                // ------------------
                hidden = _reportParameters.TipoDettaglio == TipoDettaglioReportBilancio.Sottoconto;
                width = 150f;
                nome = "Fornitore";
                if (report != null)
                {
                    fontName = report.Font.FontFamily.Name;
                    fontStyle = GetFontStyleEnum(report.Font.Style);
                    fontSize = report.Font.Size;
                }

                impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.Fornitore);
                if (impostazioneDettaglio != null)
                {
                    nome = impostazioneDettaglio.Conto;
                    hidden = impostazioneDettaglio.Hidden || _reportParameters.TipoDettaglio == TipoDettaglioReportBilancio.Sottoconto;
                    fontName = impostazioneDettaglio.FontName;
                    if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                        fontStyle = impostazioneDettaglio.FontStyle;
                    if (impostazioneDettaglio.FontSize != null)
                        fontSize = impostazioneDettaglio.FontSize.Value;
                    if (impostazioneDettaglio.Width != null)
                        width = impostazioneDettaglio.Width.Value;
                }
                columns.Add(new TableColumn(null, 0, nome, null, null, width, null, 1, ColumnTypeEnum.Fornitore, fontName, fontStyle, fontSize, hidden, false, true));                
            }

            // ------------------
            // Importo
            // ------------------
            nome = "Importo movimento";
            hidden = false;
            width = 110f;
            if (report != null)
            {
                fontName = report.Font.FontFamily.Name;
                fontStyle = GetFontStyleEnum(report.Font.Style);
                fontSize = report.Font.Size;
            }

            impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.Importo);
            if (impostazioneDettaglio != null)
            {
                nome = impostazioneDettaglio.Conto;
                hidden = impostazioneDettaglio.Hidden;
                fontName = impostazioneDettaglio.FontName;
                if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                    fontStyle = impostazioneDettaglio.FontStyle;
                if (impostazioneDettaglio.FontSize != null)
                    fontSize = impostazioneDettaglio.FontSize.Value;
                if (impostazioneDettaglio.Width != null)
                    width = impostazioneDettaglio.Width.Value;
            }

            if (_reportParameters.VisualizzaProprietariInquilini.GetValueOrDefault())
                hidden = true;

            columns.Add(new TableColumn(null, 0, nome, null, null, width, null, 1, ColumnTypeEnum.Importo, fontName, fontStyle, fontSize, hidden, true));

            // ------------------
            // Importo Proprietà
            // ------------------
            nome = "Importo proprietà";
            hidden = true;
            width = 110f;
            if (report != null)
            {
                fontName = report.Font.FontFamily.Name;
                fontStyle = GetFontStyleEnum(report.Font.Style);
                fontSize = report.Font.Size;
            }

            impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.ImportoProprieta);
            if (impostazioneDettaglio != null)
            {
                nome = impostazioneDettaglio.Conto;
                hidden = impostazioneDettaglio.Hidden;
                fontName = impostazioneDettaglio.FontName;
                if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                    fontStyle = impostazioneDettaglio.FontStyle;
                if (impostazioneDettaglio.FontSize != null)
                    fontSize = impostazioneDettaglio.FontSize.Value;
                if (impostazioneDettaglio.Width != null)
                    width = impostazioneDettaglio.Width.Value;
            }

            if (_reportParameters.VisualizzaProprietariInquilini.GetValueOrDefault())
                hidden = false;

            columns.Add(new TableColumn(null, 0, nome, null, null, width, null, 1, ColumnTypeEnum.ImportoProprieta, fontName, fontStyle, fontSize, hidden, true));

            // ------------------
            // Importo Conduzione
            // ------------------
            nome = "Importo conduzione";
            hidden = true;
            width = 110f;
            if (report != null)
            {
                fontName = report.Font.FontFamily.Name;
                fontStyle = GetFontStyleEnum(report.Font.Style);
                fontSize = report.Font.Size;
            }

            impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.ImportoConduzione);
            if (impostazioneDettaglio != null)
            {
                nome = impostazioneDettaglio.Conto;
                hidden = impostazioneDettaglio.Hidden;
                fontName = impostazioneDettaglio.FontName;
                if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                    fontStyle = impostazioneDettaglio.FontStyle;
                if (impostazioneDettaglio.FontSize != null)
                    fontSize = impostazioneDettaglio.FontSize.Value;
                if (impostazioneDettaglio.Width != null)
                    width = impostazioneDettaglio.Width.Value;
            }

            if (_reportParameters.VisualizzaProprietariInquilini.GetValueOrDefault())
                hidden = false;

            columns.Add(new TableColumn(null, 0, nome, null, null, width, null, 1, ColumnTypeEnum.ImportoConduzione, fontName, fontStyle, fontSize, hidden, true));

            // ------------------
            // Totale
            // ------------------
            nome = "Totale conto";
            hidden = false;
            width = 110f;
            if (report != null)
            {
                fontName = report.Font.FontFamily.Name;
                fontStyle = GetFontStyleEnum(report.Font.Style);
                fontSize = report.Font.Size;
            }

            impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.Totale);
            if (impostazioneDettaglio != null)
            {
                nome = impostazioneDettaglio.Conto;
                hidden = impostazioneDettaglio.Hidden;
                fontName = impostazioneDettaglio.FontName;
                if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                    fontStyle = impostazioneDettaglio.FontStyle;
                if (impostazioneDettaglio.FontSize != null)
                    fontSize = impostazioneDettaglio.FontSize.Value;
                if (impostazioneDettaglio.Width != null)
                    width = impostazioneDettaglio.Width.Value;
            }
            columns.Add(new TableColumn(null, 0, nome, null, null, width, null, 1, ColumnTypeEnum.Totale, fontName, fontStyle, fontSize, hidden, false));

            // ------------------
            // Importo Consuntivo Anno Precedente
            // ------------------
            hidden = true;
            width = 110f;
            nome = "Consuntivo Precedente";
            if (report != null)
            {
                fontName = report.Font.FontFamily.Name;
                fontStyle = GetFontStyleEnum(report.Font.Style);
                fontSize = report.Font.Size;
            }

            impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.ImportoConsuntivoAnnoPrecedente);
            if (impostazioneDettaglio != null)
            {
                nome = impostazioneDettaglio.Conto;
                hidden = impostazioneDettaglio.Hidden || (reportKey == "BILPREV" && _reportParameters.TipoDettaglio == TipoDettaglioReportBilancio.Sottoconto);
                fontName = impostazioneDettaglio.FontName;
                if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                    fontStyle = impostazioneDettaglio.FontStyle;
                if (impostazioneDettaglio.FontSize != null)
                    fontSize = impostazioneDettaglio.FontSize.Value;
                if (impostazioneDettaglio.Width != null)
                    width = impostazioneDettaglio.Width.Value;
            }
            columns.Add(new TableColumn(null, 0, nome, null, null, width, null, 1, ColumnTypeEnum.ImportoConsuntivoAnnoPrecedente, fontName, fontStyle, fontSize, hidden, false));

            // ------------------
            // Importo Preventivo Anno Precedente
            // ------------------
            hidden = true;
            width = 110f;
            nome = "Preventivo Precedente";
            if (report != null)
            {
                fontName = report.Font.FontFamily.Name;
                fontStyle = GetFontStyleEnum(report.Font.Style);
                fontSize = report.Font.Size;
            }

            impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.ImportoPreventivoAnnoPrecedente);
            if (impostazioneDettaglio != null)
            {
                nome = impostazioneDettaglio.Conto;
                hidden = impostazioneDettaglio.Hidden || (reportKey == "BILPREV" && _reportParameters.TipoDettaglio == TipoDettaglioReportBilancio.Sottoconto);
                fontName = impostazioneDettaglio.FontName;
                if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                    fontStyle = impostazioneDettaglio.FontStyle;
                if (impostazioneDettaglio.FontSize != null)
                    fontSize = impostazioneDettaglio.FontSize.Value;
                if (impostazioneDettaglio.Width != null)
                    width = impostazioneDettaglio.Width.Value;
            }
            columns.Add(new TableColumn(null, 0, nome, null, null, width, null, 1, ColumnTypeEnum.ImportoPreventivoAnnoPrecedente, fontName, fontStyle, fontSize, hidden, false));

            // ------------------
            // Scostamento Anno Precedente
            // ------------------
            hidden = true;
            width = 110f;
            nome = "Scostamento";
            if (report != null)
            {
                fontName = report.Font.FontFamily.Name;
                fontStyle = GetFontStyleEnum(report.Font.Style);
                fontSize = report.Font.Size;
            }

            impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.ImportoScostamentoAnnoPrecedente);
            if (impostazioneDettaglio != null)
            {
                nome = impostazioneDettaglio.Conto;
                hidden = impostazioneDettaglio.Hidden || (reportKey == "BILPREV" && _reportParameters.TipoDettaglio == TipoDettaglioReportBilancio.Sottoconto);
                fontName = impostazioneDettaglio.FontName;
                if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                    fontStyle = impostazioneDettaglio.FontStyle;
                if (impostazioneDettaglio.FontSize != null)
                    fontSize = impostazioneDettaglio.FontSize.Value;
                if (impostazioneDettaglio.Width != null)
                    width = impostazioneDettaglio.Width.Value;
            }
            columns.Add(new TableColumn(null, 0, nome, null, null, width, null, 1, ColumnTypeEnum.ImportoScostamentoAnnoPrecedente, fontName, fontStyle, fontSize, hidden, false));

            return columns;
        }
        private void btnConfermaClick(object sender, EventArgs e)
        {
            validationSummary1.Validate();

            if (validationSummary1.IsValid)
            {
                var personeSelezionate = Windows.Forms.Library.InfragisticsHelperMethods.DataGridHelper.GetRigheSelezionate<PersonaContattoDTO>(listaPersone, true);
                var soggettiCondominio = new List<SoggettoCondominioDTO>(personeSelezionate.Count);

                //TODO: Da migliorare per evitare eccessivamente chiamate al server (una per ogni persona) una sola chiamataper tutte le persone (GetByCondominioPersone(int idCondominio, IList<int> idPersone))
                foreach (var personaContattoDTO in personeSelezionate)
                    soggettiCondominio.AddRange(getSoggettoService().GetByCondominioPersona(_condominio, personaContattoDTO.ID));
                var idCondomini = soggettiCondominio.Select(item => item.ID).ToList();

                var form = new ExecuteLoadDataObjectAsync<ResultRiparto>("E' in corso il caricamento dei dati ....." + Environment.NewLine + "Si prega di attendere.");
                Func<ResultRiparto> loadDati;
                if(getTipoRiparto() == TipoRendiconto.Consuntivo)
                    loadDati = () => getBilancioService().GetRipartizioneConsuntivo(_esercizio.ID, null, null, null, false, false, false, getTipoAccorpamento(), idCondomini);
                else
                    loadDati = () => getBilancioService().GetRipartizionePreventivo(_esercizio.ID, null, null, null, false, getTipoAccorpamento(), true, false, false, idCondomini);
                
                form.LoadData(loadDati);
                form.ShowDialog();

                if (string.IsNullOrEmpty(form.DataSourceObject.Message))
                {
                    if (form.DataSourceObject.Riparto != null)
                    {
                        IList<ReportRipartizioneBilancioDTO> ripartoPersona = form.DataSourceObject.Riparto;
                        form.Dispose();

                        EsercizioDTO esercizio = null;
                        if (esercizi.SelectedItem != null)
                            esercizio = esercizi.SelectedItem.ListObject as EsercizioDTO;

                        var parameters = new BilancioConsuntivoReportParameters
                        {
                            TipoAccorpamento = getTipoAccorpamento()
                        };
                        if (esercizio != null)
                        {
                            parameters.DataPrimaRegistrazione = esercizio.DataApertura.GetValueOrDefault();
                            parameters.DataUltimaRegistrazione = esercizio.DataChiusura.GetValueOrDefault();
                            parameters.DataFineEsercizio = esercizio.DataChiusura.GetValueOrDefault();
                        }

                        if (string.IsNullOrEmpty(_note) && notePredefinite.Value != null)
                        {
                            var fakeForm = new GestioneTestoHTML(null, getNotaPredefinita(), MergeFieldType.Default, true, true, true);
                            _note = fakeForm.GetTesto("RTF");
                            fakeForm.Dispose();
                        }

                        var impostazioneReportDto = getImpostazioneReportDto();
                        if (impostazioneReportDto != null)
                        {
                            var unita = new Dictionary<int, IList<IList<UnitaImmobiliareListaDTO>>>();
                            foreach (var personaContattoDTO in personeSelezionate)
                            {
                                var unitaImmobiliari = getUnitaImmobiliareService().GetByPersonaEsercizio(personaContattoDTO.ID, _esercizio.ID);
                                var unitaPerPersona = new List<IList<UnitaImmobiliareListaDTO>>();

                                if (parameters.TipoAccorpamento == TipoAccorpamentoRateEnum.Nessuno)
                                {
                                    foreach (var unitaImmobiliareListaDTO in unitaImmobiliari)
                                    {
                                        unitaPerPersona.Add(new List<UnitaImmobiliareListaDTO> { unitaImmobiliareListaDTO });
                                    }
                                }
                                else if (parameters.TipoAccorpamento == TipoAccorpamentoRateEnum.Persona)
                                {
                                    unitaPerPersona.Add(unitaImmobiliari);
                                }
                                else if (parameters.TipoAccorpamento == TipoAccorpamentoRateEnum.Personalizzato)
                                {
                                    var unitaGroup = unitaImmobiliari.GroupBy(item => item.UnitaImmobiliarePrincipale);
                                    foreach (var unitaCustomGroup in unitaGroup)
                                    {
                                        unitaPerPersona.Add(unitaCustomGroup.ToList());
                                    }
                                }

                                unita.Add(personaContattoDTO.ID, unitaPerPersona);
                            }

                            var anteprima = new AnteprimaReportRipartoPersona(ripartoPersona, _condominio, _esercizio, personeSelezionate, unita, parameters, impostazioneReportDto, getReportKey(), _note);
                            anteprima.ShowDialog();
                            anteprima.Dispose();
                        }
                        else
                        {
                            CommonMessages.DisplayWarning("Non sono state trovate le impostazioni del report");
                        }
                    }
                }
                else
                {
                    CommonMessages.DisplayWarning($"Si sono verificati i seguenti errori nell'elaborazione del riparto:{Environment.NewLine}{form.DataSourceObject.Message}");
                    form.Dispose();
                }
            }
            else
                validationSummary1.ShowErrorSummary();
        }
Exemple #13
0
        public void GetBilancioAnnualeAsync(int idEsercizio, DateTime? dataInizialeRegistrazione, DateTime? dataFinaleRegistrazione, int? idStabile, int? idScala, bool onlyCondominio, bool preventivoPrecedente, bool consuntivoPrecedente, LimitePagamenti limitePagamenti, bool dettaglioPersonali, bool addebitiCondominio, bool addebitiDirettiStabileScala, BilancioConsuntivoReportParameters parameters, INotifier notifier, Image image)
        {
            var id = Guid.NewGuid().ToString();
            _cacheService.AddStampaBatchToCache(new StampaBatchDTO { Id = id, Key = "BilancioAnnuale", IdEsercizio = idEsercizio, DataInizioEsecuzione = DateTime.Now });

            if (parameters.TipoDettaglio != TipoDettaglioReportBilancio.Undefined && parameters.TipoDettaglio != TipoDettaglioReportBilancio.Sottoconto)
            {
                GetServiceClient().GetBilancioConsuntivoMovimentiCompleted += bilancioWCFServiceGetBilancioConsuntivoMovimentiCompleted;
                GetServiceClient().GetBilancioConsuntivoMovimentiAsync(idEsercizio, idStabile, idScala, dataInizialeRegistrazione, dataFinaleRegistrazione, parameters.DatiFatturaNumeroRegistrazione, parameters.TipoDettaglio == TipoDettaglioReportBilancio.Personalizzato, preventivoPrecedente, consuntivoPrecedente, limitePagamenti, dettaglioPersonali, addebitiCondominio, addebitiDirettiStabileScala, GetUserInfo(), new StampaBatchParameters(id, parameters, notifier, image));
            }
            else
            {
                switch (parameters.TipoRendiconto)
                {
                    case TipoRendiconto.Consuntivo:
                        GetServiceClient().GetBilancioConsuntivoSottoContoCompleted += bilancioWCFServiceGetBilancioConsuntivoSottoContoCompleted;
                        GetServiceClient().GetBilancioConsuntivoSottoContoAsync(idEsercizio, parameters.ParzialeGruppo, parameters.ParzialeStabile, GetUserInfo(), new StampaBatchParameters(id, parameters, notifier, image));
                        break;
                    case TipoRendiconto.Preventivo:
                        GetServiceClient().GetBilancioPreventivoSottoContoCompleted += bilancioWCFServiceGetBilancioPreventivoSottoContoCompleted;
                        GetServiceClient().GetBilancioPreventivoSottoContoAsync(idEsercizio, idStabile, idScala, onlyCondominio, preventivoPrecedente, consuntivoPrecedente, addebitiDirettiStabileScala, GetUserInfo(), new StampaBatchParameters(id, parameters, notifier, image));
                        break;
                }
            }
        }
Exemple #14
0
        public void GetRipartizioneAsync(int idEsercizio, int? idStabile, int? idScala, bool? ripartizioneProprietarioConduttore, bool addebitiCondominio, bool addebitoDirettoStabileScala, bool accorpamentoUnita, TipoAccorpamentoRateEnum tipoAccorpamento, BilancioConsuntivoReportParameters parameters, INotifier notifier, Image image)
        {
            var ripartizione = false;
            if (ripartizioneProprietarioConduttore != null)
                ripartizione = ripartizioneProprietarioConduttore.Value;

            var id = Guid.NewGuid().ToString();
            _cacheService.AddStampaBatchToCache(new StampaBatchDTO { Id = id, Key = "RipartoAnnuale", IdEsercizio = idEsercizio, DataInizioEsecuzione = DateTime.Now });

            if (parameters.TipoRendiconto == TipoRendiconto.Consuntivo)
            {
                GetServiceClient().GetRipartizioneBilancioConsuntivoCompleted += bilancioWCFServiceGetRipartizioneBilancioConsuntivoCompleted;
                GetServiceClient().GetRipartizioneBilancioConsuntivoAsync(idEsercizio, idStabile, idScala, ripartizione, accorpamentoUnita, tipoAccorpamento, addebitiCondominio, addebitoDirettoStabileScala, null, GetUserInfo(), new StampaBatchParameters(id, parameters, notifier, image));
            }
            else if(parameters.TipoRendiconto == TipoRendiconto.Preventivo)
            {
                GetServiceClient().GetRipartizioneBilancioPreventivoCompleted += bilancioWCFServiceGetRipartizioneBilancioPreventivoCompleted;
                GetServiceClient().GetRipartizioneBilancioPreventivoAsync(idEsercizio, idStabile, idScala, ripartizione, accorpamentoUnita, tipoAccorpamento, parameters.StampaSaldi, addebitiCondominio, addebitoDirettoStabileScala, null, GetUserInfo(), new StampaBatchParameters(id, parameters, notifier, image));
            }
        }
        public byte[] ShowReport(int idEsercizio, ResultRiparto dataSource, BilancioConsuntivoReportParameters parameters)
        {
            if (string.IsNullOrEmpty(dataSource.Message))
            {
                if (dataSource.Riparto != null)
                {
                    // Vecchio riparto escludiamo la colonna spese di conduzione
                    dataSource.Riparto = dataSource.Riparto.Where(item => item.OrdineConto != 9996).ToList();

                    _esercizio = getEsercizioService().GetById(idEsercizio);
                    var anteprima = new AnteprimaStampa(parameters);
                    anteprima.LoadDataRiparto(dataSource.Riparto, null, _esercizio);
                    anteprima.ShowDialog();

                    var report = anteprima.GetPDF();
                    if (parameters.SalvaRiparto && dataSource.Riparto.Count > 0 && CommonMessages.DisplayConfirm("Sei sicuro di voler salvare il rendiconto?") == DialogResult.Yes)
                    {
                        getBilancioService().SalvaRiparto(idEsercizio, report, dataSource.Riparto, parameters.TipoRendiconto);
                        CommonMessages.DisplayComplete("Il rendiconto è stato correttamente salvato.");
                    }

                    anteprima.Dispose();

                    return report;
                }

                return null;
            }
            else
            {
                CommonMessages.DisplayWarning($"Si sono verificati i seguenti errori nell'elaborazione del riparto:{Environment.NewLine}{dataSource.Message}");
                return null;
            }
        }
 public RipartoAnnualePersonaHelper(ImpostazioneReportDTO impostazioneReportDTO, BilancioConsuntivoReportParameters reportParameters) : base(impostazioneReportDTO)
 {
     _reportParameters = reportParameters;
 }
Exemple #17
0
        public byte[] ShowReport(int idEsercizio, List<ReportBilancioDTO> dataSource, BilancioConsuntivoReportParameters parameters)
        {
            IAnteprimaStampaUI anteprima;
            if (parameters.TipoReport == TipoReportBilancio.Rendiconto && parameters.TipoDettaglio == TipoDettaglioReportBilancio.Personalizzato)
            {
                anteprima = new AnteprimaStampaDettaglio(parameters);
                ((AnteprimaStampaDettaglio)anteprima).LoadDataBilancio(dataSource);
            }
            else
            {
                anteprima = new AnteprimaStampa(parameters);
                ((AnteprimaStampa)anteprima).LoadDataBilancio(dataSource, _condominio, _esercizio);
            }
            anteprima.ShowDialog();

            var report = anteprima.GetPDF();
            if (report != null && parameters.SalvaRiparto && dataSource.Count > 0 && CommonMessages.DisplayConfirm("Sei sicuro di voler salvare il rendiconto?") == DialogResult.Yes)
            {
                getBilancioService().SalvaBilancio(idEsercizio, report, parameters.TipoRendiconto);
                CommonMessages.DisplayComplete("Il rendiconto è stato correttamente salvato.");
            }

            anteprima.Dispose();
            return report;
        }
Exemple #18
0
        private List<ReportBilancioDTO> getBilancioDataSource(BilancioConsuntivoReportParameters reportParameters, bool stampaAvanzata = false)
        {
            var dataSource = new List<ReportBilancioDTO>();
            if (reportParameters.TipoRendiconto == TipoRendiconto.Consuntivo && reportParameters.TipoDettaglio != TipoDettaglioReportBilancio.Sottoconto)
            {
                var preventivoAnnoPrecedente = false;
                var consuntivoAnnoPrecedente = false;
                if (stampaAvanzata)
                {
                    preventivoAnnoPrecedente = !getColumn(ColumnTypeEnum.ImportoPreventivoAnnoPrecedente).Hidden;
                    consuntivoAnnoPrecedente = !getColumn(ColumnTypeEnum.ImportoConsuntivoAnnoPrecedente).Hidden;
                }

                var formDataSource = new ExecuteLoadDataListAsync<ReportBilancioDTO>("E' in corso il caricamento del rendiconto ....." + Environment.NewLine + "Si prega di attendere.");
                Func<List<ReportBilancioDTO>> loadDataSource = () => getBilancioService().GetConsuntivoMovimenti((int)esercizi.Value, (int?)stabili.Value, (int?)gruppi.Value, (DateTime?)dataRegistrazioneIniziale.Value, (DateTime?)dataRegistrazioneFinale.Value, reportParameters.DatiFatturaNumeroRegistrazione, getTipoDettaglio(), preventivoAnnoPrecedente, consuntivoAnnoPrecedente, _impostazioneReportDTO.LimitePagamenti, _impostazioneReportDTO.DettaglioPersonali, addebitiCondominio.Checked, addebitiDirettiStabileScala.Checked);
                formDataSource.LoadData(loadDataSource);
                formDataSource.ShowDialog();
                dataSource = formDataSource.DataSourceObject;
                formDataSource.Dispose();
            }
            else
            {
                if (reportParameters.TipoRendiconto == TipoRendiconto.Consuntivo)
                {
                    var formDataSource = new ExecuteLoadDataListAsync<ReportBilancioDTO>("E' in corso il caricamento del rendiconto ....." + Environment.NewLine + "Si prega di attendere.");

                    if (!stampaAvanzata)
                    {
                        Func<List<ReportBilancioDTO>> loadDataSource = () => getBilancioService().GetConsuntivoSottoConto((int) esercizi.Value, reportParameters.ParzialeGruppo, reportParameters.ParzialeStabile);
                        formDataSource.LoadData(loadDataSource);
                        formDataSource.ShowDialog();
                        dataSource = formDataSource.DataSourceObject;
                        formDataSource.Dispose();
                    }
                    else
                    {
                        Func<List<ReportBilancioDTO>> loadDataSource = () => getBilancioService().GetConsuntivoMovimenti((int)esercizi.Value, (int?)stabili.Value, (int?)gruppi.Value, (DateTime?)dataRegistrazioneIniziale.Value, (DateTime?)dataRegistrazioneFinale.Value, reportParameters.DatiFatturaNumeroRegistrazione, getTipoDettaglio(), !getColumn(ColumnTypeEnum.ImportoPreventivoAnnoPrecedente).Hidden, !getColumn(ColumnTypeEnum.ImportoConsuntivoAnnoPrecedente).Hidden, _impostazioneReportDTO.LimitePagamenti, _impostazioneReportDTO.DettaglioPersonali, addebitiCondominio.Checked, addebitiDirettiStabileScala.Checked);
                        formDataSource.LoadData(loadDataSource);
                        formDataSource.ShowDialog();
                        dataSource = formDataSource.DataSourceObject;
                        formDataSource.Dispose();
                        
                    }
                }
                else if (reportParameters.TipoRendiconto == TipoRendiconto.Preventivo)
                {
                    var formDataSource = new ExecuteLoadDataObjectAsync<ResultBilancio>("E' in corso il caricamento del rendiconto ....." + Environment.NewLine + "Si prega di attendere.");
                    Func<ResultBilancio> loadDataSource = () => getBilancioService().GetPreventivoSottoConto((int)esercizi.Value, (int?)stabili.Value, (int?)gruppi.Value, addebitiCondominio.Checked, !getColumn(ColumnTypeEnum.ImportoPreventivoAnnoPrecedente).Hidden, !getColumn(ColumnTypeEnum.ImportoConsuntivoAnnoPrecedente).Hidden, addebitiDirettiStabileScala.Checked);
                    formDataSource.LoadData(loadDataSource);
                    formDataSource.ShowDialog();

                    if (string.IsNullOrEmpty(formDataSource.DataSourceObject.Message))
                    {
                        dataSource = formDataSource.DataSourceObject.Bilancio;
                        formDataSource.Dispose();
                    }
                    else
                    {
                        CommonMessages.DisplayWarning($"Si sono verificati i seguenti errori nell'elaborazione del rendiconto:{Environment.NewLine}{formDataSource.DataSourceObject.Message}");
                    }
                }
            }

            return dataSource;
        }
Exemple #19
0
        private BilancioConsuntivoReportParameters getParameters(CondominioDTO condominio, EsercizioDTO esercizio, string noteRtf, TipoRendiconto tipoRendiconto)
        {
            // ====================================================================
            // Descrizione del condominio
            // ====================================================================
            var righeCondominio = condominio.IndirizzoCompleto.Split('&');
            var righeDaPubblicare = new string[4];

            if (righeCondominio.Length > 0)
                righeDaPubblicare[0] = righeCondominio[0];
            for (var i = 1; i < 4; i++)
            {
                if (righeCondominio.Length > i)
                {
                    if (!string.IsNullOrEmpty(righeDaPubblicare[1]))
                        righeDaPubblicare[1] += " - ";
                    righeDaPubblicare[1] += righeCondominio[i];
                }
                if (i > 1)
                    righeDaPubblicare[i] = string.Empty;
            }

            // ====================================================================
            // Recupero l'intestazione dello studio
            // ====================================================================
            var azienda = getAziendaService().GetAzienda();
            var intestazioneStudio = azienda.Descrizione;
            var viaStudio = string.Empty;
            var capStudio = string.Empty;
            var localitaStudio = string.Empty;
            if (azienda.IndirizzoSede != null)
            {
                viaStudio = azienda.IndirizzoSede.Indirizzo + " n. " + azienda.IndirizzoSede.Civico;
                capStudio = azienda.IndirizzoSede.Cap;
                localitaStudio = azienda.IndirizzoSede.DescrizioneComune + " " + azienda.IndirizzoSede.CodiceProvincia;

                // Collasso diverse informazioni nel campo viaStudio
                viaStudio += " - " + capStudio + " " + localitaStudio;
            }

            // ====================================================================
            // Date Registrazione
            // ====================================================================
            var dataIniziale = _esercizio.DataApertura.GetValueOrDefault();
            var dataFinale = _esercizio.DataChiusura.GetValueOrDefault();
            if (dataRegistrazioneIniziale.Value != null)
                dataIniziale = dataRegistrazioneIniziale.DateTime;
            if (dataRegistrazioneFinale.Value != null)
                dataFinale = dataRegistrazioneFinale.DateTime;

            // ====================================================================
            // Lista Versamenti
            // ====================================================================
            IList<ImportiDTO> versamenti;
            var formVersamenti = new ExecuteLoadDataObjectAsync<ResultImportiDTO>("Sono in corso di caricamento i versamenti ....." + Environment.NewLine + "Si prega di attendere.");
            Func<ResultImportiDTO> loadDatiVersamenti = () => getVersamentiCondominiService().GetImportoMovimentiVersatoByEsercizio((int)esercizi.Value, (int?)stabili.Value, (int?)gruppi.Value, null);
            formVersamenti.LoadData(loadDatiVersamenti);
            formVersamenti.ShowDialog();
            if (string.IsNullOrEmpty(formVersamenti.DataSourceObject.FatalMessage))
            {
                versamenti = formVersamenti.DataSourceObject.Importi;
                formVersamenti.Dispose();                
            }
            else
            {
                CommonMessages.DisplayWarning($"Si sono verificati dei problemi nella lettura dei versamenti dei condomini:{Environment.NewLine}{formVersamenti.DataSourceObject.FatalMessage}");
                formVersamenti.Dispose();
                return new BilancioConsuntivoReportParameters { TipoReport = TipoReportBilancio.Undefined };
            }

            var form = new ExecuteLoadDataObjectAsync<ResultImportoSaldo>("Sono in corso di caricamento i saldi ....." + Environment.NewLine + "Si prega di attendere.");
            Func<ResultImportoSaldo> loadDati = () => getBilancioService().GetSaldoEsercizioPrecedente((int)esercizi.Value, (int?)stabili.Value, (int?)gruppi.Value);
            form.LoadData(loadDati);
            form.ShowDialog();

            if (string.IsNullOrEmpty(form.DataSourceObject.Message))
            {
                var saldoEsercizioPrecedente = form.DataSourceObject.Importo;
                var reportParameters =
                    new BilancioConsuntivoReportParameters
                    (
                        righeDaPubblicare,
                        condominio.Codice,
                        esercizio.DisplayName,
                        string.Empty,
                        griglia.Checked,
                        getTipoDettaglio(),
                        suddivisioneProprietari.Checked,
                        TipoReportBilancio.Rendiconto,
                        tipoRendiconto,
                        false,
                        null,
                        false,
                        noteRtf,
                        intestazioneStudio,
                        viaStudio,
                        capStudio,
                        localitaStudio,
                        versamenti.Sum(item => item.Importo),
                        saldoEsercizioPrecedente,
                        esercizio.DataChiusura.GetValueOrDefault(),
                        parzialeGruppo.Checked,
                        parzialeStabile.Checked,
                        false,
                        false,
                        TipoAccorpamentoRateEnum.Undefined,
                        numeroRegistrazioneDatiFattura.Value.ToString(),
                        false,
                        salvaBilancio.Checked,
                        Security.Login.Instance.CurrentLogin().InversioneSaldiCondomini,
                        dataIniziale,
                        dataFinale
                    );
                form.Dispose();

                return reportParameters;
            }

            CommonMessages.DisplayWarning($"Si sono verificati dei problemi nella lettura dei saldi condomini:{Environment.NewLine}{form.DataSourceObject.Message}");
            return new BilancioConsuntivoReportParameters { TipoReport = TipoReportBilancio.Undefined };
        }
        public override IList<TableColumn> GetColumnList(XtraReport report, string reportKey, IReportParameters reportParameters, int? page, bool stampaMillesimi = false)
        {
            if (reportParameters is BilancioConsuntivoReportParameters)
                _reportParameters = (BilancioConsuntivoReportParameters)reportParameters;

            var columns = new List<TableColumn>();

            // ------------------
            // Codice
            // ------------------
            var width = 60f;
            var hidden = false;
            var nome = "Codice";

            var fontName = string.Empty;
            var fontStyle = string.Empty;
            float fontSize = 0;
            //if (report != null)
            //{
            //    fontName = report.Font.FontFamily.Name;
            //    fontStyle = GetFontStyleEnum(report.Font.Style);
            //    fontSize = report.Font.Size;
            //}

            var impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.CodiceConto);
            if (impostazioneDettaglio != null)
            {
                nome = impostazioneDettaglio.Conto;
                hidden = impostazioneDettaglio.Hidden;
                fontName = impostazioneDettaglio.FontName;
                if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                    fontStyle = impostazioneDettaglio.FontStyle;
                if (impostazioneDettaglio.FontSize != null)
                    fontSize = impostazioneDettaglio.FontSize.Value;
                if (impostazioneDettaglio.Width != null)
                    width = impostazioneDettaglio.Width.Value;
            }
            columns.Add(new TableColumn(null, 0, nome, null, null, width, null, 1, ColumnTypeEnum.CodiceConto, fontName, fontStyle, fontSize, hidden, false, true));

            // ------------------
            // Descrizione
            // ------------------
            hidden = false;
            width = 250f;
            nome = "Descrizione";
            //if (report != null)
            //{
            //    fontName = report.Font.FontFamily.Name;
            //    fontStyle = GetFontStyleEnum(report.Font.Style);
            //    fontSize = report.Font.Size;
            //}
            impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.DescrizioneConto);
            if (impostazioneDettaglio != null)
            {
                nome = impostazioneDettaglio.Conto;
                hidden = impostazioneDettaglio.Hidden;
                fontName = impostazioneDettaglio.FontName;
                if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                    fontStyle = impostazioneDettaglio.FontStyle;
                if (impostazioneDettaglio.FontSize != null)
                    fontSize = impostazioneDettaglio.FontSize.Value;
                if (impostazioneDettaglio.Width != null)
                    width = impostazioneDettaglio.Width.Value;
            }

            columns.Add(new TableColumn(null, 0, nome, null, null, width, null, 1, ColumnTypeEnum.DescrizioneConto, fontName, fontStyle, fontSize, hidden, false));

            // ------------------
            // Millesimi
            // ------------------
            hidden = false;
            width = 80f;
            float? widthMillesimi = null;
            nome = "Millesimi";
            //if (report != null)
            //{
            //    fontName = report.Font.FontFamily.Name;
            //    fontStyle = GetFontStyleEnum(report.Font.Style);
            //    fontSize = report.Font.Size;
            //}
            impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.MillesimiProprieta);
            if (impostazioneDettaglio != null)
            {
                nome = impostazioneDettaglio.Conto;
                hidden = impostazioneDettaglio.Hidden;
                fontName = impostazioneDettaglio.FontName;
                if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                    fontStyle = impostazioneDettaglio.FontStyle;
                if (impostazioneDettaglio.FontSize != null)
                    fontSize = impostazioneDettaglio.FontSize.Value;
                if (impostazioneDettaglio.Width != null)
                {
                    width = impostazioneDettaglio.Width.Value;
                    widthMillesimi = impostazioneDettaglio.WidthMillesimi;
                }
            }
            columns.Add(new TableColumn(null, 0, nome, null, null, width, widthMillesimi, 1, ColumnTypeEnum.MillesimiProprieta, fontName, fontStyle, fontSize, hidden, true, true) { MillesimiFontStyle = fontStyle, MillesimiFontName = fontName, MillesimiFontSize = fontSize });

            // ------------------
            // Importo
            // ------------------
            nome = "Importo movimento";
            hidden = false;
            width = 110f;
            //if (report != null)
            //{
            //    fontName = report.Font.FontFamily.Name;
            //    fontStyle = GetFontStyleEnum(report.Font.Style);
            //    fontSize = report.Font.Size;
            //}

            impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.Importo);
            if (impostazioneDettaglio != null)
            {
                nome = impostazioneDettaglio.Conto;
                hidden = impostazioneDettaglio.Hidden;
                fontName = impostazioneDettaglio.FontName;
                if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                    fontStyle = impostazioneDettaglio.FontStyle;
                if (impostazioneDettaglio.FontSize != null)
                    fontSize = impostazioneDettaglio.FontSize.Value;
                if (impostazioneDettaglio.Width != null)
                    width = impostazioneDettaglio.Width.Value;
            }

            if (_reportParameters.VisualizzaProprietariInquilini.GetValueOrDefault())
                hidden = true;

            columns.Add(new TableColumn(null, 0, nome, null, null, width, null, 1, ColumnTypeEnum.Importo, fontName, fontStyle, fontSize, hidden, true, true));

            // ------------------
            // Importo Proprietà
            // ------------------
            nome = "Importo proprietà";
            hidden = true;
            width = 110f;
            //if (report != null)
            //{
            //    fontName = report.Font.FontFamily.Name;
            //    fontStyle = GetFontStyleEnum(report.Font.Style);
            //    fontSize = report.Font.Size;
            //}

            impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.ImportoProprieta);
            if (impostazioneDettaglio != null)
            {
                nome = impostazioneDettaglio.Conto;
                hidden = impostazioneDettaglio.Hidden;
                fontName = impostazioneDettaglio.FontName;
                if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                    fontStyle = impostazioneDettaglio.FontStyle;
                if (impostazioneDettaglio.FontSize != null)
                    fontSize = impostazioneDettaglio.FontSize.Value;
                if (impostazioneDettaglio.Width != null)
                    width = impostazioneDettaglio.Width.Value;
            }

            if (_reportParameters.VisualizzaProprietariInquilini.GetValueOrDefault())
                hidden = false;

            columns.Add(new TableColumn(null, 0, nome, null, null, width, null, 1, ColumnTypeEnum.ImportoProprieta, fontName, fontStyle, fontSize, hidden, true, true));

            // ------------------
            // Importo Conduzione
            // ------------------
            nome = "Importo conduzione";
            hidden = true;
            width = 110f;
            //if (report != null)
            //{
            //    fontName = report.Font.FontFamily.Name;
            //    fontStyle = GetFontStyleEnum(report.Font.Style);
            //    fontSize = report.Font.Size;
            //}

            impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.ImportoConduzione);
            if (impostazioneDettaglio != null)
            {
                nome = impostazioneDettaglio.Conto;
                hidden = impostazioneDettaglio.Hidden;
                fontName = impostazioneDettaglio.FontName;
                if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                    fontStyle = impostazioneDettaglio.FontStyle;
                if (impostazioneDettaglio.FontSize != null)
                    fontSize = impostazioneDettaglio.FontSize.Value;
                if (impostazioneDettaglio.Width != null)
                    width = impostazioneDettaglio.Width.Value;
            }

            if (_reportParameters.VisualizzaProprietariInquilini.GetValueOrDefault())
                hidden = false;

            columns.Add(new TableColumn(null, 0, nome, null, null, width, null, 1, ColumnTypeEnum.ImportoConduzione, fontName, fontStyle, fontSize, hidden, true, true));
            
            // ------------------
            // Totale
            // ------------------
            nome = "Totale Conto";
            hidden = false;
            width = 110f;
            //if (report != null)
            //{
            //    fontName = report.Font.FontFamily.Name;
            //    fontStyle = GetFontStyleEnum(report.Font.Style);
            //    fontSize = report.Font.Size;
            //}

            impostazioneDettaglio = GetImpostazioneDettaglio(ColumnTypeEnum.Totale);
            if (impostazioneDettaglio != null)
            {
                nome = impostazioneDettaglio.Conto;
                hidden = impostazioneDettaglio.Hidden;
                fontName = impostazioneDettaglio.FontName;
                if (!string.IsNullOrEmpty(impostazioneDettaglio.FontStyle))
                    fontStyle = impostazioneDettaglio.FontStyle;
                if (impostazioneDettaglio.FontSize != null)
                    fontSize = impostazioneDettaglio.FontSize.Value;
                if (impostazioneDettaglio.Width != null)
                    width = impostazioneDettaglio.Width.Value;
            }

            if (_reportParameters.VisualizzaProprietariInquilini.GetValueOrDefault())
                hidden = true;

            columns.Add(new TableColumn(null, 0, nome, null, null, width, null, 1, ColumnTypeEnum.Totale, fontName, fontStyle, fontSize, hidden, true));

            return columns;
        }
        private void btnFineClick(object sender, EventArgs e)
        {
            validationSummaryCreazioneFile.Validate();
            if (validationSummaryCreazioneFile.IsValid)
            {
                // ====================================================================
                // Descrizione del condominio
                // ====================================================================
                var righeCondominio = sceltaCondominioCombo1.CondominioSelected.IndirizzoCompleto.Split('&');
                var righeDaPubblicare = new string[4];

                if (righeCondominio.Length > 0)
                    righeDaPubblicare[0] = righeCondominio[0];
                for (var i = 1; i < 4; i++)
                {
                    if (righeCondominio.Length > i)
                    {
                        if (!string.IsNullOrEmpty(righeDaPubblicare[1]))
                            righeDaPubblicare[1] += " - ";
                        righeDaPubblicare[1] += righeCondominio[i];
                    }
                    if (i > 1)
                        righeDaPubblicare[i] = string.Empty;
                }

                // ====================================================================
                // Recupero l'intestazione dello studio
                // ====================================================================
                var azienda = getAziendaService().GetAzienda();
                var intestazioneStudio = azienda.Descrizione;
                var viaStudio = string.Empty;
                var capStudio = string.Empty;
                var localitaStudio = string.Empty;
                var comuneLettera = string.Empty;
                if (azienda.IndirizzoSede != null)
                {
                    viaStudio = azienda.IndirizzoSede.Indirizzo + " n. " + azienda.IndirizzoSede.Civico;
                    capStudio = azienda.IndirizzoSede.Cap;
                    localitaStudio = azienda.IndirizzoSede.DescrizioneComune + " " + azienda.IndirizzoSede.CodiceProvincia;
                    if(!string.IsNullOrEmpty(azienda.IndirizzoSede.DescrizioneComune))
                        comuneLettera = azienda.IndirizzoSede.DescrizioneComune.Substring(0, 1).ToUpper() + azienda.IndirizzoSede.DescrizioneComune.Substring(1).ToLower();

                    // Collasso diverse informazioni nel campo viaStudio
                    viaStudio += " - " + capStudio + " " + localitaStudio;
                }

                if (bilancioRiparto.Value.ToString() != "L")
                {
                    var tipo = TipoReportBilancio.Rendiconto;
                    if (bilancioRiparto.Value.ToString() == "R")
                        tipo = TipoReportBilancio.Ripartizione;

                    var reportParameters =
                        new BilancioConsuntivoReportParameters
                            (
                            righeDaPubblicare,
                            _condominio.Codice,
                            string.Empty,
                            string.Empty,
                            griglia.Checked,
                            getTipoDettaglio(),
                            false,
                            tipo,
                            TipoRendiconto.Detrazione,
                            false,
                            stampaMillesimi.Checked,false,
                            Conversione.ToString(note.GetDocumento("HTML")),
                            intestazioneStudio,
                            viaStudio,
                            capStudio,
                            localitaStudio,
                            0,
                            0,
                            new DateTime((int)anno.Value, 12, 31),
                            true,
                            true,
                            accorpamentoUnita.Checked,
                            totalePerPersona.Checked,
                            getTipoAccorpamento(),
                            numeroRegistrazioneDatiFattura.Value.ToString(),
                            numeroInterno.Checked,
                            false,
                            Security.Login.Instance.CurrentLogin().InversioneSaldiCondomini,
                            new DateTime((int)anno.Value, 1, 1),
                            new DateTime((int)anno.Value, 12, 31)
                            );

                    var speseSelezionate = DataGridHelper.GetRigheSelezionate<SpesaDTO>(lista, true);
                    var anteprima = new AnteprimaStampaDetrazione(_condominio, (int)anno.Value, (int)detrazione.Value, speseSelezionate, reportParameters);
                    anteprima.ShowDialog();
                    anteprima.Dispose();
                }
                else
                {
                    var descrizioneCondominio = "CONDOMINIO: " + _condominio.DisplayName;
                    var amministratore = getReferenteService().GetById(azienda.CodiceAmministratore);

                    var firmaAmministratore = amministratore.NominativoPersona;

                    var titoloAmministratore = "Il sottoscritto";
                    if(amministratore.Sesso == "Femmina")
                        titoloAmministratore = "La sottoscritta";

                    var indirizzoCondominio = string.Empty;
                    if(_condominio.Indirizzo != null)
                        indirizzoCondominio += _condominio.Indirizzo.Indirizzo + ", " + _condominio.Indirizzo.Civico + " " + _condominio.Indirizzo.Cap + " " + _condominio.Indirizzo.DescrizioneComune + " " + _condominio.Indirizzo.CodiceProvincia;

                    var partitaIvaAmministratore = amministratore.PartitaIva;
                    if (string.IsNullOrEmpty(amministratore.PartitaIva))
                        partitaIvaAmministratore = azienda.PartitaIva;

                    var stampaFirmaAmministratore = "SI";
                    if(!stampaFirma.Checked)
                        stampaFirmaAmministratore = "NO";

                    var reportParameters =
                        new LetteraPersonaleDetrazioneReportParameters
                            (
                                righeDaPubblicare,
                                string.Empty,
                                firmaAmministratore,
                                viaStudio,
                                capStudio,
                                localitaStudio,
                                comuneLettera,
                                DateTime.Today,
                                descrizioneCondominio,
                                amministratore.NominativoPersona,
                                amministratore.CodiceFiscale,
                                partitaIvaAmministratore,
                                indirizzoCondominio,
                                _condominio.CodiceFiscale,
                                titoloAmministratore,
                                ((ModelloLetteraTestoDTO)modelliLetteraDetrazione.SelectedItem.ListObject).Oggetto,
                                stampaFirmaAmministratore
                            );

                    var speseSelezionate = DataGridHelper.GetRigheSelezionate<SpesaDTO>(lista, true);
                    var personeSelezionate = DataGridHelper.GetRigheSelezionate<PersonaContattoDTO>(listaPersone, true);
                    var anteprima = new AnteprimaStampaLetteraDetrazione(_condominio, (int)anno.Value, (int)detrazione.Value, speseSelezionate, personeSelezionate, reportParameters, (ModelloLetteraTestoDTO)modelliLetteraDetrazione.SelectedItem.ListObject);
                    try
                    {
                        anteprima.ShowDialog();
                        anteprima.Dispose();
                    }
                    catch (Exception ex)
                    {
                        _log.ErrorFormat("Errore nella visualizzazione della form - {0} - condominio:{1} - azienda:{2}", ex , Utility.GetMethodDescription(), _condominio?.ID.ToString(), Security.Login.Instance.CurrentLogin().Azienda);
                    }
                }
            }
            else
                validationSummaryCreazioneFile.ShowErrorSummary();
        }