Beispiel #1
0
        public IList<RiepilogoRataSoggettoDTO> GetRiepilogoInteressiMora(int idEsercizio, int numeroGiorniLimite, decimal importoLimite, decimal tassoInteresse, DateTime dataSituazioneContabile)
        {
            try
            {
                var riepilogo = new List<RiepilogoRataSoggettoDTO>();
                var listaInteressi = new Dictionary<SoggettoCondominio, decimal>();

                // ================================================================
                //  Riparto i versamenti ancora senza rata associata
                // ================================================================
                var message = _versamentiService.AssociaVersamentiSenzaRata(idEsercizio);
                if (!string.IsNullOrEmpty(message))
                {
                    _log.InfoFormat("{0} - {1} - esercizio:{2}", message, Utility.GetMethodDescription(), idEsercizio);
                }

                // ================================================================
                //  Calcolo interessi di mora
                // ================================================================
                var esercizio = _daoFactory.GetEsercizioDao().GetById(idEsercizio, false);
                var personeDaNonSollecitare = esercizio.CondominioRiferimento.PersoneDaNonSollecitare;
                foreach (var rata in esercizio.Rate.Where(item => item.DataScadenza <= dataSituazioneContabile))
                {
                    // ------------------------------------------------------------
                    //  Calcolo interessi per versamenti ritardatari
                    // ------------------------------------------------------------
                    foreach (var versamento in rata.Versamenti)
                    {
                        int giorniRitardo = (versamento.Versamento.Data - rata.DataScadenza).Days;
                        if (giorniRitardo > numeroGiorniLimite)
                        {
                            decimal interesse = (versamento.Importo * tassoInteresse * giorniRitardo) / 365;
                            if (listaInteressi.ContainsKey(rata.Soggetto))
                                listaInteressi[rata.Soggetto] += interesse;
                            else
                                listaInteressi.Add(rata.Soggetto, interesse);
                        }
                    }

                    // ------------------------------------------------------------
                    //  Calcolo interessi per versamenti NON effettuati
                    // ------------------------------------------------------------
                    var importoResiduo = rata.Importo - rata.GetImportoVersato(null);
                    if (importoResiduo > 0)
                    {
                        var dataLimiteCalcolo = esercizio.DataChiusura.GetValueOrDefault();
                        if (DateTime.Today < dataLimiteCalcolo)
                            dataLimiteCalcolo = DateTime.Today;

                        var giorniRitardo = (dataLimiteCalcolo - rata.DataScadenza).Days;
                        if (giorniRitardo > numeroGiorniLimite)
                        {
                            var interesse = (importoResiduo * tassoInteresse * giorniRitardo) / 365;
                            if (listaInteressi.ContainsKey(rata.Soggetto))
                                listaInteressi[rata.Soggetto] += interesse;
                            else
                                listaInteressi.Add(rata.Soggetto, interesse);
                        }
                    }
                }

                // ================================================================
                //  Creo il riepilogo
                // ================================================================
                var importiVersati = _daoFactory.GetVersamentoSoggettoDao().GetTotaleVersamentiByEsercizioSoggettoData(idEsercizio, null, null, null);
                foreach (var kvp in listaInteressi)
                {
                    if (kvp.Value > importoLimite)
                    {
                        var personaDaNonSollecitare = personeDaNonSollecitare.FirstOrDefault(item => item.Persona.ID == kvp.Key.Persona.ID);
                        var dettaglioRiepilogo = new RiepilogoRataSoggettoDTO
                        {
                            ID = kvp.Key.Persona.ID,
                            IdPersona = kvp.Key.Persona.ID,
                            NonSollecitare = personaDaNonSollecitare != null ? 1 : 0,
                            MotivoNonSollecitare = personaDaNonSollecitare?.Motivo,
                            DescrizioneUnitaImmobiliare = kvp.Key.UnitaImmobiliare.Descrizione,
                            IdSoggettoCondominio = kvp.Key.ID,
                            IdUnitaImmobiliare = kvp.Key.UnitaImmobiliare.ID,
                            IdStabile = kvp.Key.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.ID,
                            IdGruppoStabile = kvp.Key.UnitaImmobiliare.GruppoStabileRiferimento.ID,
                            Stabile = kvp.Key.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.Descrizione,
                            GruppoStabile = kvp.Key.UnitaImmobiliare.GruppoStabileRiferimento.Descrizione,
                            Interno = kvp.Key.UnitaImmobiliare.InternoCompleto,
                            Piano = kvp.Key.UnitaImmobiliare.Piano,
                            ImportoMora = kvp.Value,
                            Nominativo = kvp.Key.DisplayName,
                            Ordine = kvp.Key.UnitaImmobiliare.Ordine.GetValueOrDefault(),
                            IdEsercizio = esercizio.ID,
                            DescrizioneEsercizio = esercizio.DisplayName,
                            IdCondominio = esercizio.CondominioRiferimento.ID,
                            DescrizioneCondominio = esercizio.CondominioRiferimento.DisplayName,
                            NumeroSolleciti = kvp.Key.Solleciti.Count(item => item.Esercizio.ID == idEsercizio),
                            SelectColumn = true,
                            TipoSoggettoCondominio = kvp.Key.Tipo,
                            Importo = (esercizio.Rate.Where(rata => rata.DataScadenza <= dataSituazioneContabile && rata.Soggetto.ID == kvp.Key.ID)).Sum(item => item.Importo)
                        };

                        var contatti = new ContattoCollection(kvp.Key.Persona.Contatti);
                        var contattoEmail = contatti.GetFirstContatto<Email>();
                        if (contattoEmail != null)
                            dettaglioRiepilogo.Email = contattoEmail.Valore;
                        var contattoEmailCertificato = contatti.GetFirstContatto<EmailCertificata>();
                        if (contattoEmailCertificato != null)
                            dettaglioRiepilogo.EmailCertificata = contattoEmailCertificato.Valore;

                        var contattoCellulare = contatti.GetFirstContatto<Cellulare>();
                        if (contattoCellulare != null)
                            dettaglioRiepilogo.Cellulare = contattoCellulare.Valore;

                        var contattoFax = contatti.GetFirstContatto<Fax>();
                        if (contattoFax != null)
                            dettaglioRiepilogo.Fax = contattoFax.Valore;

                        var importoVersato = (from versato in importiVersati
                                            where versato.Id == kvp.Key.ID
                                            select versato).SingleOrDefault();
                        if (importoVersato != null)
                            dettaglioRiepilogo.ImportoVersato = importoVersato.Importo;

                        if (kvp.Key.UnitaImmobiliare.Ordine != null)
                            dettaglioRiepilogo.Ordine = kvp.Key.UnitaImmobiliare.Ordine.Value;

                        riepilogo.Add(dettaglioRiepilogo);
                    }
                }


                return riepilogo;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore inaspettato nel calcolo degli interessi di mora - {0} - esercizio:{1}", ex, Utility.GetMethodDescription(), idEsercizio);
                throw;
            }
        }
        public IList<RiepilogoRataSoggettoDTO> GetRiepilogoVersamentiByPersonaUnitaImmobiliari(int idEsercizio, int idPersona, IList<int> unitaImmobiliari, DateTime? dataLimite)
        {
            var esercizio = _daoFactory.GetEsercizioDao().GetById(idEsercizio, false);
            var personeDaNonSollecitare = esercizio.CondominioRiferimento.PersoneDaNonSollecitare;

            // =======================================================================
            //  Identifico i soggetti di cui viene richiesto il riepilogo versamenti
            // =======================================================================
            var soggetti = _daoFactory.GetSoggettoCondominioDao().GetByCondominioPersona(esercizio.CondominioRiferimento.ID, idPersona);
            var idSoggetti = new List<int>(soggetti.Count);
            var soggettiPartecipanti = new List<SoggettoCondominio>(soggetti.Count);
            foreach (var soggetto in soggetti)
            {
                if (unitaImmobiliari.Contains(soggetto.UnitaImmobiliare.ID))
                {
                    idSoggetti.Add(soggetto.ID);
                    soggettiPartecipanti.Add(soggetto);
                }
            }

            // =======================================================================
            //  Leggo rate e versamenti
            // =======================================================================
            if (idSoggetti.Count > 0)
            {
                var importiRate = _daoFactory.GetRataSoggettoDao().GetTotaleRateByEsercizioDataSoggetti(idEsercizio, idSoggetti, dataLimite);
                var importiRateSoggettoEffettivo = _daoFactory.GetRataSoggettoDao().GetTotaleRateByEsercizioDataSoggettiEffettivo(idEsercizio, idSoggetti, dataLimite);
                foreach (var importiDTO in importiRateSoggettoEffettivo)
                {
                    var dto = importiDTO;
                    var importoVersato = importiRate.FirstOrDefault(item => item.Id == dto.Id);
                    if (importoVersato != null)
                        importoVersato.Importo += importiDTO.Importo;
                    else
                        importiRate.Add(importiDTO);
                }

                IList<ImportiDTO> importiVersati = (from importo in _daoFactory.GetVersamentoSoggettoDao().GetTotaleVersamentiByEsercizioSoggettoData(idEsercizio, null, null, dataLimite)
                                                    where idSoggetti.Contains(importo.Id)
                                                    select importo).ToList();
                IList<ImportiDTO> importiVersatiSoggettoEffettivo = (from importo in _daoFactory.GetVersamentoSoggettoDao().GetTotaleVersamentiByEsercizioSoggettoEffettivoData(idEsercizio, dataLimite)
                                                                     where idSoggetti.Contains(importo.Id)
                                                                     select importo).ToList();
                foreach (var importiDTO in importiVersatiSoggettoEffettivo)
                {
                    var dto = importiDTO;
                    var importoVersato = importiVersati.FirstOrDefault(item => item.Id == dto.Id);
                    if (importoVersato != null)
                        importoVersato.Importo += importiDTO.Importo;
                    else
                        importiVersati.Add(importiDTO);
                }

                // =====================================================================================
                //  Per ogni soggetto calcolo totale delle rate emesse e totale dei versamenti eseguiti
                //  Tenere presente che un versamento può NON avere una rata associata
                // =====================================================================================
                var riepilogoRate = new List<RiepilogoRataSoggettoDTO>(soggettiPartecipanti.Count);
                foreach (var soggetto in soggettiPartecipanti)
                {
                    var personaDaNonSollecitare = personeDaNonSollecitare.FirstOrDefault(item => item.Persona.ID == soggetto.Persona.ID);

                    var soggetto1 = soggetto;
                    var riepilogo = new RiepilogoRataSoggettoDTO
                    {
                        ID = soggetto.ID,
                        DescrizioneUnitaImmobiliare = soggetto.UnitaImmobiliare.Descrizione,
                        IdPersona = soggetto.Persona.ID,
                        NonSollecitare = personaDaNonSollecitare != null ? 1 : 0,
                        MotivoNonSollecitare = personaDaNonSollecitare?.Motivo,
                        IdSoggettoCondominio = soggetto.ID,
                        TipoSoggettoCondominio = soggetto.Tipo,
                        IdUnitaImmobiliare = soggetto.UnitaImmobiliare.ID,
                        IdStabile = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.ID,
                        IdGruppoStabile = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.ID,
                        Stabile = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.Descrizione,
                        GruppoStabile = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.Descrizione,
                        Nominativo = soggetto.DisplayName,
                        Ordine = soggetto.UnitaImmobiliare.Ordine.GetValueOrDefault(),
                        Interno = soggetto.UnitaImmobiliare.InternoCompleto,
                        Piano = soggetto.UnitaImmobiliare.Piano,
                        IdEsercizio = esercizio.ID,
                        DescrizioneEsercizio = esercizio.DisplayName,
                        IdCondominio = esercizio.CondominioRiferimento.ID,
                        DescrizioneCondominio = esercizio.CondominioRiferimento.DisplayName,
                        NumeroSolleciti = soggetto.Solleciti.Count(item => item.Esercizio.ID == idEsercizio),
                        SelectColumn = true,
                        Importo = importiRate.Where(imp => imp.Id == soggetto1.ID).Sum(imp => imp.Importo),
                        ImportoVersato = importiVersati.Where(imp => imp.Id == soggetto1.ID).Sum(imp => imp.Importo)
                    };

                    var contatti = new ContattoCollection(soggetto.Persona.Contatti);
                    var contattoEmail = contatti.GetFirstContatto<Email>();
                    if (contattoEmail != null)
                        riepilogo.Email = contattoEmail.Valore;
                    var contattoEmailCertificato = contatti.GetFirstContatto<EmailCertificata>();
                    if (contattoEmailCertificato != null)
                        riepilogo.EmailCertificata = contattoEmailCertificato.Valore;

                    var contattoCellulare = contatti.GetFirstContatto<Cellulare>();
                    if (contattoCellulare != null)
                        riepilogo.Cellulare = contattoCellulare.Valore;

                    var contattoFax = contatti.GetFirstContatto<Fax>();
                    if (contattoFax != null)
                        riepilogo.Fax = contattoFax.Valore;

                    if (riepilogo.ImportoVersato > 0 || riepilogo.Importo > 0)
                        riepilogoRate.Add(riepilogo);
                }

                return riepilogoRate;
            }
            
            return new List<RiepilogoRataSoggettoDTO>();
        }
Beispiel #3
0
        public List<RiepilogoRataSoggettoDTO> GetRiepilogoRataSoggettoByEsercizio(int idEsercizio, bool? rateDaRichiamare)
        {
            var lista = new List<RiepilogoRataSoggettoDTO>();

            var esercizio = _daoFactory.GetEsercizioDao().GetById(idEsercizio, false);
            var personeDaNonSollecitare = esercizio.CondominioRiferimento.PersoneDaNonSollecitare;
            var rate = _daoFactory.GetRataSoggettoDao().GetByEsercizioSoggetti(esercizio.ID, null, null, null, rateDaRichiamare);
            foreach (var rata in rate)
            {
                if (rata.Importo > 0)
                {
                    var personaDaNonSollecitare = personeDaNonSollecitare.FirstOrDefault(item => item.Persona.ID == rata.Soggetto.Persona.ID);
                    var rata1 = rata;
                    var riepilogoRata = (from riepiloghiRate in lista
                                        where riepiloghiRate.IdSoggettoCondominio == rata1.Soggetto.ID
                                        select riepiloghiRate).SingleOrDefault();
                    if (riepilogoRata == null)
                    {
                        riepilogoRata = new RiepilogoRataSoggettoDTO
                        {
                            DescrizioneUnitaImmobiliare = rata.Soggetto.UnitaImmobiliare.Descrizione,
                            DisplayName = rata.Soggetto.DisplayName,
                            ID = rata.Soggetto.ID,
                            IdSoggettoCondominio = rata.Soggetto.ID,
                            IdPersona = rata.Soggetto.Persona.ID,
                            IdUnitaImmobiliare = rata.Soggetto.UnitaImmobiliare.ID,
                            IdStabile = rata.Soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.ID,
                            IdGruppoStabile = rata.Soggetto.UnitaImmobiliare.GruppoStabileRiferimento.ID,
                            Stabile = rata.Soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.Descrizione,
                            GruppoStabile = rata.Soggetto.UnitaImmobiliare.GruppoStabileRiferimento.Descrizione,
                            Interno = rata.Soggetto.UnitaImmobiliare.InternoCompleto,
                            Piano = rata.Soggetto.UnitaImmobiliare.Piano,
                            Importo = rata.Importo,
                            Nominativo = rata.Soggetto.DisplayName,
                            IdEsercizio = rata.Esercizio.ID,
                            DescrizioneEsercizio = rata.Esercizio.DisplayName,
                            IdCondominio = rata.Esercizio.CondominioRiferimento.ID,
                            DescrizioneCondominio = rata.Esercizio.CondominioRiferimento.DisplayName,
                            NonSollecitare = personaDaNonSollecitare != null ? 1 : 0,
                            MotivoNonSollecitare = personaDaNonSollecitare?.Motivo,
                            NumeroSolleciti = rata.Solleciti.Count,
                            TipoSoggettoCondominio = rata.Soggetto.Tipo
                        };
                    
                        var contatti = new ContattoCollection(rata.Soggetto.Persona.Contatti);
                        var contattoEmail = contatti.GetFirstContatto<Email>();
                        if(contattoEmail != null)
                            riepilogoRata.Email = contattoEmail.Valore;
                        var contattoEmailCertificato = contatti.GetFirstContatto<EmailCertificata>();
                        if(contattoEmailCertificato != null)
                            riepilogoRata.EmailCertificata = contattoEmailCertificato.Valore;

                        var contattoCellulare = contatti.GetFirstContatto<Cellulare>();
                        if (contattoCellulare != null)
                            riepilogoRata.Cellulare = contattoCellulare.Valore;

                        var contattoFax = contatti.GetFirstContatto<Fax>();
                        if (contattoFax != null)
                            riepilogoRata.Fax = contattoFax.Valore;

                        if (rata.Soggetto.UnitaImmobiliare.Ordine != null)
                            riepilogoRata.Ordine = rata.Soggetto.UnitaImmobiliare.Ordine.Value;

                        riepilogoRata.SelectColumn = rata.Soggetto.VersamentoMav;

                        lista.Add(riepilogoRata);
                    }
                    else
                    {
                        riepilogoRata.Importo += rata.Importo;
                        riepilogoRata.NumeroSolleciti += rata.Solleciti.Count;
                    }
                }
            }

            return lista;
        }
        private RiepilogoRataSoggettoDTO getItemTemplate(SoggettoCondominio soggetto, ImpostazioniAzienda impostazioni, DateTime data)
        {
            var riepilogo = new RiepilogoRataSoggettoDTO
            {
                ID = soggetto.ID,
                TipoSoggettoCondominio = soggetto.Tipo,
                DescrizioneUnitaImmobiliare = soggetto.UnitaImmobiliare.Descrizione,
                IdPersona = soggetto.Persona.ID,
                IdSoggettoCondominio = soggetto.ID,
                IdUnitaImmobiliare = soggetto.UnitaImmobiliare.ID,
                IdStabile = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.ID,
                IdGruppoStabile = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.ID,
                Stabile = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.Descrizione,
                GruppoStabile = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.Descrizione,
                Nominativo = soggetto.DisplayName,
                Ordine = soggetto.UnitaImmobiliare.Ordine.GetValueOrDefault(),
                Interno = soggetto.UnitaImmobiliare.InternoCompleto,
                Piano = soggetto.UnitaImmobiliare.Piano,
                IdCondominio = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.CondominioRiferimento.ID,
                DescrizioneCondominio = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.CondominioRiferimento.DisplayName,
                SelectColumn = true
            };

            var contatti = new ContattoCollection(soggetto.Persona.Contatti);
            var contattoEmail = contatti.GetFirstContatto<Email>();
            if (contattoEmail != null)
                riepilogo.Email = contattoEmail.Valore;
            var contattoEmailCertificato = contatti.GetFirstContatto<EmailCertificata>();
            if (contattoEmailCertificato != null)
                riepilogo.EmailCertificata = contattoEmailCertificato.Valore;

            var contattoCellulare = contatti.GetFirstContatto<Cellulare>();
            if (contattoCellulare != null)
                riepilogo.Cellulare = contattoCellulare.Valore;

            var contattoFax = contatti.GetFirstContatto<Fax>();
            if (contattoFax != null)
                riepilogo.Fax = contattoFax.Valore;

            setIndirizzo(riepilogo, soggetto.Persona, impostazioni);

            return riepilogo;
        }
        private RiepilogoRataSoggettoDTO getItemTemplate(Persona persona, ImpostazioniAzienda impostazioni)
        {

            var riepilogo = new RiepilogoRataSoggettoDTO
            {
                ID = persona.ID,
                IdPersona = persona.ID,
                Nominativo = persona.DisplayName,
                TipoSoggettoCondominio = TipoSoggetto.Proprietario,
                SelectColumn = true
            };

            var contatti = new ContattoCollection(persona.Contatti);
            var contattoEmail = contatti.GetFirstContatto<Email>();
            if (contattoEmail != null)
                riepilogo.Email = contattoEmail.Valore;
            var contattoEmailCertificato = contatti.GetFirstContatto<EmailCertificata>();
            if (contattoEmailCertificato != null)
                riepilogo.EmailCertificata = contattoEmailCertificato.Valore;

            var contattoCellulare = contatti.GetFirstContatto<Cellulare>();
            if (contattoCellulare != null)
                riepilogo.Cellulare = contattoCellulare.Valore;

            var contattoFax = contatti.GetFirstContatto<Fax>();
            if (contattoFax != null)
                riepilogo.Fax = contattoFax.Valore;

            setIndirizzo(riepilogo, persona, impostazioni);

            return riepilogo;
        }
        private void setIndirizzo(RiepilogoRataSoggettoDTO dto, Persona persona, ImpostazioniAzienda impostazioni)
        {
            // ==================================================================
            // Indirizzo
            // ==================================================================
            dto.Indirizzo = new AddressComunicazioneDTO { RecapitoResidenza = impostazioni.TipoIndirizzoComunicazioni };

            if (persona.IndirizzoResidenza != null)
            {
                dto.Indirizzo.CapResidenza = persona.IndirizzoResidenza.Cap;
                dto.Indirizzo.LocalitaResidenza = persona.IndirizzoResidenza.Localita;
                // Località per ora viene stampata com campo singolo
                //                                personaDto.Indirizzo.ComuneResidenza = soggetto.Persona.IndirizzoResidenza.Localita;
                if (persona.IndirizzoResidenza.Comune != null)
                {
                    if (!string.IsNullOrEmpty(dto.Indirizzo.ComuneResidenza))
                        dto.Indirizzo.ComuneResidenza += " - ";
                    dto.Indirizzo.ComuneResidenza += persona.IndirizzoResidenza.Comune.Descrizione + " " + persona.IndirizzoResidenza.Comune.ProvinciaAppartenenza.Codice;
                }
                dto.Indirizzo.ViaCivicoResidenza = persona.IndirizzoResidenza.Indirizzo + " " + persona.IndirizzoResidenza.Civico;
                if (!string.IsNullOrEmpty(persona.IndirizzoResidenza.Presso))
                    dto.Indirizzo.ViaCivicoResidenza += " - c/o:" + persona.IndirizzoResidenza.Presso;
            }

            if (persona.Recapito != null)
            {
                dto.Indirizzo.CapRecapito = persona.Recapito.Cap;
                dto.Indirizzo.LocalitaRecapito = persona.Recapito.Localita;
                // Località per ora viene stampata com campo singolo
                //                                personaDto.Indirizzo.ComuneRecapito = soggetto.Persona.Recapito.Localita;
                if (persona.Recapito.Comune != null)
                {
                    if (!string.IsNullOrEmpty(dto.Indirizzo.ComuneRecapito))
                        dto.Indirizzo.ComuneRecapito += " - ";
                    dto.Indirizzo.ComuneRecapito += persona.Recapito.Comune.Descrizione + " " + persona.Recapito.Comune.ProvinciaAppartenenza.Codice;
                }
                dto.Indirizzo.ViaCivicoRecapito = persona.Recapito.Indirizzo + " " + persona.Recapito.Civico;
                if (!string.IsNullOrEmpty(persona.Recapito.Presso))
                    dto.Indirizzo.ViaCivicoRecapito += " - c/o:" + persona.Recapito.Presso;
            }
            else
            {
                dto.Indirizzo.ViaCivicoRecapito = dto.Indirizzo.ViaCivicoResidenza;
                dto.Indirizzo.CapRecapito = dto.Indirizzo.CapResidenza;
                dto.Indirizzo.ComuneRecapito = dto.Indirizzo.ComuneResidenza;
            }

            dto.ViaCivico = dto.Indirizzo.ViaCivicoRecapito;
            dto.Cap = dto.Indirizzo.CapRecapito;
            dto.Comune = dto.Indirizzo.ComuneRecapito;
            dto.Localita = dto.Indirizzo.LocalitaRecapito;
            // ==================================================================
        }
 private void apriDettaglioPersona(RiepilogoRataSoggettoDTO riepilogo)
 {
     if (riepilogo != null)
     {
         if (riepilogo.IdPersona > 0)
         {
             var form = getDettaglioPersonaService().GetFormDettaglio(riepilogo.IdPersona);
             if (_condominio != null)
             {
                 getDettaglioPersonaService().AfterUpdatePersona -= listaPersoneUCAfterUpdatePersona;
                 getDettaglioPersonaService().AfterUpdatePersona += listaPersoneUCAfterUpdatePersona;
             }
             form.ShowDialog();
             form.Dispose();
         }
     }
 }
 private void listaMouseUp(object sender, MouseEventArgs e)
 {
     _personaClick = null;
     if (e.Button == MouseButtons.Right)
     {
         DataGridHelper.GetCellEvent(listaRiepilogo, e);
         _personaClick = DataGridHelper.GetCellEvent<RiepilogoRataSoggettoDTO>(listaRiepilogo, e);
         if (_personaClick != null)
             contextMenuStrip1.Show(listaRiepilogo, e.X, e.Y);
     }
 }