public List<PersonaComunicazioneDTO> GetPersoneByFilter(EsercizioDTO esercizio, PersonaComunicazioneFilter filter, DateTime data) { filter.IdAzienda = Login.Instance.CurrentLogin().Azienda; if (esercizio != null && esercizio.IdCondominio > 0) filter.IdCondominio = esercizio.IdCondominio; var result = GetServiceClient().GetPersonePerComunicazioneByFilter(data, filter, GetUserInfo()); CloseService(); return result; }
private void load() { try { var filter = new PersonaComunicazioneFilter(); if (sceltaCondominioCombo1.CondominioSelected != null) filter.IdCondominio = sceltaCondominioCombo1.CondominioSelected.ID; filter.IdStabile = (int?)stabili.Value; filter.IdGruppo = (int?)gruppi.Value; if (consiglieri.CheckState != CheckState.Indeterminate) filter.Consigliere = (bool?)consiglieri.CheckedValue; if (residenteSearch.CheckState != CheckState.Indeterminate) filter.IsResidente = (bool?)residenteSearch.CheckedValue; var form = new ExecuteLoadDataListAsync<PersonaComunicazioneDTO>("E' in corso la ricerca dei condomini ....." + Environment.NewLine + "Si prega di attendere."); Func<List<PersonaComunicazioneDTO>> loadDati = () => getComunicazioniService().GetPersoneByFilter(_esercizio, filter, dataIntestazione.DateTime); form.LoadData(loadDati); form.ShowDialog(); personaComunicazioneDTOBindingSource.DataSource = form.DataSourceObject; form.Dispose(); DataSourceHelper.CheckUnchekColumns(listaPersone, "SelectColumn", CheckState.Checked); setRowLayout(); if (listaPersone.DisplayLayout.Bands[0].Summaries.Count == 0) DataGridHelper.AddSummary(listaPersone.DisplayLayout.Bands[0], "ImportoRaccomandata", "c"); // Imposto le note if (notaPredefinitaDTOBindingSource.Count > 0) notePredefinite.SelectedIndex = 0; } catch (Exception ex) { if (ParentForm != null) ParentForm.Close(); var idCondominio = 0; if (_condominio != null) idCondominio = _condominio.ID; _log.Error("Errore durante il caricamento dei condomini per lettere - " + Utility.GetMethodDescription() + " - idCondominio:" + idCondominio, ex); } }
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; } }
public IList<PersonaComunicazioneDTO> GetPersonePerComunicazioneByFilter(DateTime? dataRiferimento, PersonaComunicazioneFilter filter, UserInfo userinfo) { var windsorRep = new WindsorConfigRepository(); try { windsorRep.BeginTransaction(userinfo); var comunicazioniService = windsorRep.GetContainer(userinfo.Azienda).Resolve<IComunicazioniService>(); var item = comunicazioniService.GetPersoneByFilter(dataRiferimento, filter); windsorRep.Commit(); return item; } catch (Exception ex) { _log.ErrorFormat("Errore nel caricamento delle persone per comunicazione - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), userinfo.Azienda); windsorRep.Rollback(); throw; } }