public string GetIndirizzoDymo(PersonaComunicazioneDTO persona)
        {
            var result = new StringBuilder();
            if (!string.IsNullOrEmpty(persona.Titolo))
                result.AppendFormat("{0} ", persona.Titolo);

            result.AppendFormat("{0}{1}", persona.Nominativo, Environment.NewLine);

            if (!string.IsNullOrEmpty(persona.Presso))
                result.AppendFormat("c/o {0}{1}", persona.Presso, Environment.NewLine);

            result.AppendFormat("{0}{1}", persona.ViaCivico, Environment.NewLine);

            if(string.IsNullOrEmpty(persona.Localita))
                result.AppendFormat("{0} {1}", persona.Cap, persona.Comune);
            else
                result.AppendFormat("{0} {1} {2}", persona.Cap, persona.Localita, persona.Comune);

            return result.ToString();
        }
Beispiel #2
0
        public IList<PersonaComunicazioneDTO> GetPersoneByFilter(DateTime? dataRiferimento, PersonaComunicazioneFilter filter)
        {
            try
            {
                var listaPersone = new List<PersonaComunicazioneDTO>();
                var impostazioniAzienda = _daoFactory.GetImpostazioniAziendaDao().GetByAzienda(filter.IdAzienda) ?? new ImpostazioniAzienda(_daoFactory.GetAziendaDao().GetById(filter.IdAzienda, false)) {TipoIndirizzoComunicazioni = TipoIndirizzo.Recapito};
                var comuni = _daoFactory.GetComuneDao().GetAll();

                if(dataRiferimento == null)
                {
                    if (filter.IdCondominio != null)
                    {
                        var esercizioCorrente = _daoFactory.GetEsercizioDao().GetEsercizioCompetenza(_daoFactory.GetCondominioDao().GetById(filter.IdCondominio.Value, false), DateTime.Today);
                        if(esercizioCorrente != null)
                            dataRiferimento = esercizioCorrente.DataApertura;
                    }
                    if (dataRiferimento == null)
                        dataRiferimento = DateTime.Today;
                }

                var hql = new StringBuilder("FROM SoggettoCondominio SOG LEFT JOIN FETCH SOG.Persona PRS LEFT JOIN FETCH SOG.UnitaImmobiliare UNI LEFT JOIN FETCH UNI.GruppoStabileRiferimento GRU LEFT JOIN FETCH GRU.PalazzinaRiferimento PAL LEFT JOIN FETCH PAL.CondominioRiferimento COND LEFT JOIN FETCH PRS.IndirizzoResidenza.Comune COMRES LEFT JOIN FETCH COMRES.ProvinciaAppartenenza PROVRES LEFT JOIN FETCH PRS.Recapito.Comune COMREC LEFT JOIN FETCH COMREC.ProvinciaAppartenenza PROVREC LEFT JOIN FETCH PRS.Contatti CONT LEFT JOIN FETCH PRS.Gruppi AS GRU_PER LEFT JOIN FETCH UNI.Soggetti AS UNI_SOGG LEFT JOIN FETCH UNI_SOGG.Persona PERS_SOGG WHERE COND.Azienda = :azienda AND (SOG.DataFine is null OR SOG.DataFine >= :dataRiferimento) ");
                var parameters = new List<QueryParam>
                {
                    new QueryParam("azienda", filter.IdAzienda),
                    new QueryParam("dataRiferimento", dataRiferimento)
                };

                // ------------------------------------------
                //  Filtri
                // ------------------------------------------
                if(filter.IsResidente != null)
                {
                    hql.Append(" AND SOG.IsResidente = :residente");
                    parameters.Add(new QueryParam("residente", filter.IsResidente.GetValueOrDefault()));
                }

                if (filter.IdCondominio != null)
                {
                    hql.Append(" AND PAL.CondominioRiferimento.ID = :condominio");
                    parameters.Add(new QueryParam("condominio", filter.IdCondominio.Value));
                }
                if (filter.IdStabile != null)
                {
                    hql.Append(" AND PAL.ID = :stabile");
                    parameters.Add(new QueryParam("stabile", filter.IdStabile.Value));
                }
                if (filter.IdGruppo != null)
                {
                    hql.Append(" AND GRU.ID = :gruppo");
                    parameters.Add(new QueryParam("gruppo", filter.IdGruppo.Value));
                }
                if (filter.Consigliere != null)
                {
                    hql.Append(" AND SOG.Consigliere = :consigliere");
                    parameters.Add(new QueryParam("consigliere", filter.Consigliere.Value));
                }

                var soggetti = _daoFactory.GetSoggettoCondominioDao().GetByQuery(hql.ToString(), parameters.ToArray());
                var persone = new List<Persona>();

                var importoRaccomandata = GetImportoRaccomandata(filter.IdAzienda);

                foreach (var soggetto in soggetti.OrderBy(item => item.UnitaImmobiliare.TipoUnitaImmobiliare.ID))
                {
                    try
                    {
                        if (!persone.Contains(soggetto.Persona))
                        {
                            var contatti = new ContattoCollection(soggetto.Persona.Contatti);

                            var personaDto = new PersonaComunicazioneDTO
                            {
                                CodiceCondominio = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.CondominioRiferimento.ID,
                                CodiceFiscale = soggetto.Persona.CodiceFiscale,
                                DataNascita = soggetto.Persona.DataNascita,
                                DescrizioneStabile = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.Descrizione,
                                DescrizioneScala = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.Descrizione,
                                DescrizioneUnitaImmobiliare = soggetto.UnitaImmobiliare.Descrizione,
                                Possesso = soggetto.FrazionePossesso != null ? soggetto.FrazionePossesso.ToString() : string.Empty,
                                Nominativo = soggetto.DisplayName,
                                DescrizioneSoggetto = soggetto.DescrizioneAggiuntiva,
                                Note = soggetto.Persona.Note,
                                Sesso = soggetto.Persona.Sesso,
                                Titolo = Library.Decodifica.Instance.GetElement("TitoloPersona", soggetto.Persona.Titolo).Descrizione,
                                TipoPersona = soggetto.Persona.TipoPersona,
                                OrdineUnitaImmobiliare = soggetto.UnitaImmobiliare.Ordine,
                                ImportoRaccomandata = importoRaccomandata,
                                Tipo = soggetto.Tipo,
                                InternoCompletoUnitaImmobiliare = soggetto.UnitaImmobiliare.InternoCompleto,
                                Principale = soggetto.Principale.GetValueOrDefault(),
                                SoggettoAccorpamento = soggetto.GetDescrizioneAccorpamento(),
                                ModalitaConvocazione = soggetto.ModalitaConvocazione,
                                ID = soggetto.Persona.ID,
                                Consigliere = soggetto.Consigliere,
                                IsResidente = soggetto.IsResidente,
                                IdCondominio = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.CondominioRiferimento.ID,
                                DescrizioneCondominio = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.CondominioRiferimento.DisplayName,
                                Username = (soggetto.Persona.DatiAutenticazione != null) ? soggetto.Persona.DatiAutenticazione.Username : null,
                                Password = (soggetto.Persona.DatiAutenticazione != null) ? soggetto.Persona.DatiAutenticazione.Password : null,
                                Indirizzo = new AddressComunicazioneDTO { RecapitoResidenza = impostazioniAzienda.TipoIndirizzoComunicazioni }
                            };

                            if (soggetto.DirittoReale != null)
                                personaDto.DirittoReale = soggetto.DirittoReale.GetValueOrDefault().ToString();

                            var emailCertificata = contatti.GetFirstContatto<EmailCertificata>();
                            if (emailCertificata != null)
                            {
                                personaDto.ImportoRaccomandata = null;
                                personaDto.EmailCertificata = emailCertificata.Valore;
                            }

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

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

                            personaDto.Presso = personaDto.Indirizzo.PressoRecapito;
                            personaDto.ViaCivico = personaDto.Indirizzo.ViaCivicoRecapito;
                            personaDto.Cap = personaDto.Indirizzo.CapRecapito;
                            personaDto.Comune = personaDto.Indirizzo.ComuneRecapito;
                            personaDto.Localita = personaDto.Indirizzo.LocalitaRecapito;
                            // ==================================================================

                            if (soggetto.Persona.ComuneNascita != null)
                                personaDto.ComuneNascita = soggetto.Persona.ComuneNascita.Descrizione;

                            var gruppi = string.Empty;
                            foreach (var personaGruppo in soggetto.Persona.Gruppi)
                            {
                                if (!string.IsNullOrEmpty(gruppi))
                                    gruppi += ", ";
                                gruppi += personaGruppo.Gruppo.DescrizioneBreve;
                            }
                            personaDto.Gruppi = gruppi;

                            listaPersone.Add(personaDto);
                            persone.Add(soggetto.Persona);
                        }
                        else if (soggetto.Consigliere)
                        {
                            var persComunicazione = (listaPersone.Where(item => item.ID == soggetto.Persona.ID)).FirstOrDefault();
                            if (persComunicazione != null) 
                                persComunicazione.Consigliere = soggetto.Consigliere;
                        }
                    }
                    catch (Exception ex)
                    {
                        _log.FatalFormat("Errore inaspettato durante la creazione della lista di persone per comunicazione - {0} - soggetto:{1}", ex, Library.Utility.GetMethodDescription(), soggetto.ID);
                        throw;
                    }
                }

                return listaPersone.OrderBy(rata => rata.OrdineUnitaImmobiliare).ToList();
            }
            catch (Exception ex)
            {
                
                _log.Fatal("Errore inaspettato durante la creazione della lista di persone per comunicazione - " + Library.Utility.GetMethodDescription(), ex);
                throw;
            }
        }
Beispiel #3
0
        public PersonaComunicazioneDTO ConvertPersonaPerEtichette(PersonaContattoDTO persona)
        {
            var personaLista = new PersonaComunicazioneDTO
            { 
                Nominativo = persona.Cognome, 
                ID = persona.ID, 
                Note = persona.Note,
                ViaCivico = persona.ViaCivico,
                Cap = persona.Cap,
                Comune = persona.Comune,
                Localita = persona.Localita,
                Presso = persona.Presso,
                Gruppi = persona.Gruppi,
                Possesso = persona.Possesso,
                Indirizzo = persona.Indirizzo,
                SoggettoAccorpamento = persona.SoggettoAccorpamento,
                Titolo = Decodifica.Instance.GetElement("TitoloPersona", persona.Titolo).Descrizione
            };

            if (!string.IsNullOrEmpty(persona.TipoCondomino))
                personaLista.Tipo = (TipoSoggetto)Enum.Parse(typeof(TipoSoggetto), persona.TipoCondomino);

            if (!string.IsNullOrEmpty(persona.Nome))
                personaLista.Nominativo += " " + persona.Nome;

            return personaLista;
        }