Beispiel #1
0
        private void btnCercaClick(object sender, EventArgs e)
        {
            var filter = new PersonaFilter();
            if(sceltaCondominioCombo1.CondominioSelected != null)
                filter.CodiceCondominio = sceltaCondominioCombo1.CondominioSelected.ID;
            filter.Nominativo = nominativo.Text;
            filter.Indirizzo = indirizzo.Text;

            if (residenteSearch.CheckState != CheckState.Indeterminate)
                filter.IsResidente = (bool?)residenteSearch.CheckedValue;

            if(tipoSoggetto.Value != null)
                filter.Tipo = (TipoNominativo)Enum.Parse(typeof(TipoNominativo), tipoSoggetto.Text);

            if (tipoFornitore.Value != null)
                filter.TipoFornitore = (int)tipoFornitore.Value;

            var gruppi = string.Empty;
            if(gruppo.CheckedItems.Count > 0)
            {
                foreach (var item in gruppo.CheckedItems)
                {
                    if(!string.IsNullOrEmpty(gruppi))
                        gruppi += ",";
                    gruppi += item.DataValue.ToString();
                }
            }
            filter.Gruppi = gruppi;
            filter.DataRiferimento = (DateTime?)dataRiferimento.Value;

            var form = new ExecuteLoadDataListAsync<PersonaContattoDTO>("E' in corso la ricerca delle anagrafiche ....." + Environment.NewLine + "Si prega di attendere.");
            Func<List<PersonaContattoDTO>> loadDati = () => getPersonaService().GetByFilter(filter, getTipoIndirizzo());
            form.LoadData(loadDati);
            form.ShowDialog();

            personaContattoDTOBindingSource.DataSource = form.DataSourceObject;

            lista.Visible = true;
            form.Dispose();
        }
        public ICollection <PersonaResponse> GetPersonas(PersonaFilter filters)
        {
            Expression <Func <Modelo.v_persona, bool> > _where = x => x.FLAG == "A" &&
                                                                 (string.IsNullOrEmpty(filters.nro_documento) || x.NRO_DOCUMENTO.Contains(filters.nro_documento)) &&
                                                                 (string.IsNullOrEmpty(filters.razon_social) || (x.RAZON_SOCIAL + " " + x.NOMBRES + " " + x.APELLIDOS).Trim().Contains(filters.razon_social)) &&
                                                                 (filters.id_tipo_persona == null || x.ID_TIPO_PERSONA == filters.id_tipo_persona);

            var query = _context.Query <Modelo.v_persona>().Where(_where).OrderBy(x => x.RAZON_SOCIAL).AsQueryable();

            if (filters.limit != null)
            {
                query = query.Take(filters.limit.Value);
            }
            else
            {
                query = query.Take(100);
            }

            var items = query.ToList();

            return(_mapper.Map <ICollection <Modelo.v_persona>, ICollection <PersonaResponse> >(items));
        }
Beispiel #3
0
        public IList<GestioneCondomini.Domain.Persona> GetByFilter(PersonaFilter filter)
        {
            var hql = "FROM Persona PERS LEFT JOIN FETCH PERS.Fornitori FORN LEFT JOIN FETCH PERS.SoggettiCondominio AS SOGG LEFT JOIN FETCH SOGG.UnitaImmobiliare UNI LEFT JOIN FETCH UNI.GruppoStabileRiferimento GRU LEFT JOIN FETCH GRU.PalazzinaRiferimento STAB LEFT JOIN FETCH STAB.CondominioRiferimento COND LEFT JOIN FETCH COND.Supercondominio SUPERCOND LEFT JOIN FETCH PERS.Referenti REF LEFT JOIN FETCH PERS.IndirizzoResidenza.Comune COMUNE_RES LEFT JOIN FETCH PERS.Recapito.Comune COMUNE_REC LEFT JOIN FETCH PERS.Gruppi GRU {0} WHERE PERS.AziendaID =:azienda ";
            var parameters = new List<QueryParam> {new QueryParam("azienda", filter.CodiceAzienda)};
            var hqlJoin = string.Empty;

            if (filter.Tipo != null)
            {
                switch (filter.Tipo.Value)
                { 
                    case TipoNominativo.Condomino:
                    case TipoNominativo.CondominoAttivo:
                        hql += " AND SOGG is not null AND COND is not null ";
                        break;
                    case TipoNominativo.Fornitore:
                        hql += " AND FORN is not null";
                        break;
                    case TipoNominativo.Referente:
                        hql += " AND REF is not null";
                        break;
                    case TipoNominativo.Contatto:
                        hql += " AND SOGG is null AND FORN is null AND REF is null ";
                        break;
                }
            }

            if(filter.IsResidente != null)
            {
                hql += " AND SOGG.IsResidente = :residente";
                parameters.Add(new QueryParam("residente", filter.IsResidente.GetValueOrDefault()));
            }

            if (filter.ExcludeWithoutAddebitoSpese)
            {
                hql += " AND SOGG.PercentualeRiferimento is not null";
            }

            if (filter.CodiceCondominio != null && filter.Tipo.GetValueOrDefault() != TipoNominativo.Fornitore && filter.Tipo.GetValueOrDefault() != TipoNominativo.Referente)
            {
                hql += " AND (COND = :condominio OR SUPERCOND = :condominio) ";
                parameters.Add(new QueryParam("condominio", filter.CodiceCondominio.Value));
            }

            if (filter.CodiceEsercizio != null)
            {
                var esercizio = _daoFactory.GetEsercizioDao().Find(filter.CodiceEsercizio.GetValueOrDefault(), false);
                if (esercizio != null)
                {
                    hql += " AND (ESE = :esercizio OR ESE_SUPERCOND = :esercizio) AND (SOGG.DataFine is null OR SOGG.DataFine > :dataAperturaEsercizio) ";
                    parameters.Add(new QueryParam("esercizio", filter.CodiceEsercizio.Value));
                    parameters.Add(new QueryParam("dataAperturaEsercizio", esercizio.DataApertura.GetValueOrDefault()));
                    hqlJoin = "LEFT JOIN FETCH COND.Esercizi ESE LEFT JOIN FETCH SUPERCOND.Esercizi ESE_SUPERCOND";
                }
            }

            if (filter.TipoFornitore != null)
            {
                hql += " AND FORN.Tipo = :tipoFornitore ";
                parameters.Add(new QueryParam("tipoFornitore", filter.TipoFornitore.Value));
            }
            
            if (!string.IsNullOrEmpty(filter.Gruppi))
            {
                var gruppiArray = filter.Gruppi.Split(',');
                hql += " AND GRU.Gruppo IN (:gruppi) ";
                parameters.Add(new QueryParam("gruppi", gruppiArray.Select(s => int.Parse(s.Trim())).ToList()));
            }

            if (!string.IsNullOrEmpty(filter.Nominativo))
            {
                hql += " AND (PERS.Nome LIKE :nominativo OR PERS.Cognome LIKE :nominativo OR PERS.RagioneSociale LIKE :nominativo) ";
                parameters.Add(new QueryParam("nominativo", "%" + filter.Nominativo + "%"));
            }

            if (!string.IsNullOrEmpty(filter.Indirizzo))
            {
                hql += " AND (PERS.IndirizzoResidenza.Indirizzo LIKE :indirizzo OR PERS.IndirizzoResidenza.Localita LIKE :indirizzo OR COMUNE_RES.Descrizione LIKE :indirizzo " +
                " OR PERS.Recapito.Indirizzo LIKE :indirizzo OR PERS.Recapito.Localita LIKE :indirizzo OR COMUNE_REC.Descrizione LIKE :indirizzo) ";
                parameters.Add(new QueryParam("indirizzo", "%" + filter.Indirizzo + "%"));
            }

            if (!string.IsNullOrEmpty(filter.Testo))
            {
                hql += " AND (PERS.Note LIKE :testo OR FORN.Note LIKE :testo OR UNI.Note LIKE :testo) ";
                parameters.Add(new QueryParam("testo", "%" + filter.Testo + "%"));
            }

            hql += " ORDER BY PERS.Cognome, PERS.Nome";

            var persone = _daoFactory.GetPersonaDao().GetByQuery(string.Format(hql, hqlJoin), parameters.ToArray());

            var personeSenzaUserName = persone.Where(item => item.DatiAutenticazione == null);
            foreach (var persona in personeSenzaUserName)
                SetDatiAutenticazione(persona);

            return persone;
        }
Beispiel #4
0
        public IActionResult Personas([FromQuery] PersonaFilter filters)
        {
            var result = _comunConsulta.GetPersonas(filters);

            return(_Response(result));
        }
        public ICollection <PersonaResponse> GetPersonas(PersonaFilter filters)
        {
            var body = this.GetJsonParameters(filters);

            return(this.CallWebApi <ICollection <PersonaResponse> >(HttpMethod.Get, $"{_url}/persona", body));
        }
        private void eserciziValueChanged(object sender, EventArgs e)
        {
            Clear();
            if (esercizi.SelectedItem != null)
            {
                _esercizio = (EsercizioDTO)esercizi.SelectedItem.ListObject;
                var contabilita = ParentForm as MainContabilita;
                contabilita?.SetCurrentEsercizio(_condominio, _esercizio);

                var filter = new PersonaFilter {CodiceEsercizio = _esercizio.ID, CodiceCondominio = _condominio.ID, ExcludeWithoutAddebitoSpese = true};
                var form = new ExecuteLoadDataListAsync<PersonaContattoDTO>("E' in corso il caricamento dei condomini ....." + Environment.NewLine + "Si prega di attendere.");
                Func<List<PersonaContattoDTO>> loadDati = () => new List<PersonaContattoDTO>(getPersonaService().GetByFilter(filter, TipoIndirizzo.Residenza).ToList());
                form.LoadData(loadDati);
                form.ShowDialog();
                personaContattoDTOBindingSource.DataSource = form.DataSourceObject;
                form.Dispose();

                listaPersone.Visible = true;
                btnConferma.Visible = true;
            }
            else
            {
                _esercizio = null;
                personaContattoDTOBindingSource.DataSource = new List<PersonaContattoDTO>();
            }

        }
        private void pFiltraContatti(TipoModalitaConvocazione modalita)
        {
            //var presenti = (from oRow in listaConvocati.Rows where (bool)oRow.Cells["SelectColumn"].Value select (PersonaPresente)oRow.ListObject).ToList();
            //var convocati = AssembleaSvolgimentoBase.doPresentiToConvocati(presenti);
            //var persone = (from oRow in listaConvocati.Rows where (bool)oRow.Cells["SelectColumn"].Value select (PersonaDTO)oRow.ListObject).Select(persona => (PersonaDTO)persona).ToList();

            var filter = new PersonaFilter {CodiceCondominio = _condominio.ID, Tipo = TipoNominativo.Condomino, Gruppi = string.Empty, DataRiferimento = DateTime.Today};
            var form =
                new ExecuteLoadDataListAsync<PersonaContattoDTO>(
                    "E' in corso la ricerca dei contatti dei convocati selezionati..." + Environment.NewLine +
                    "Si prega di attendere.");
            Func<List<PersonaContattoDTO>> loadDati = () => getPersonaService().GetByFilter(filter, TipoIndirizzo.Recapito);
            form.LoadData(loadDati);
            form.ShowDialog();

            var contattiPersoneTutti = new List<PersonaContattoDTO>(form.DataSourceObject.Where(personaContatto => personaContatto.ModalitaConvocazione == modalita));
            IList<int> idpersonecontatti = contattiPersoneTutti.Select(item => item.ID).ToList();

            if (idpersonecontatti.Count > 0)
            {           
                foreach (var oRow in listaConvocati.Rows)
                {
                    foreach (var oConvocato in ((PersonaPresente) oRow.ListObject).Convocati)
                    {
                        if (idpersonecontatti.Contains(oConvocato.IdPersonaConvocato))
                        { 
                            oRow.Cells["SelectColumn"].Value = true;
                            break;
                        }
                    }               
                }
            }
            else
            {
                foreach (var oRow in listaConvocati.Rows)
                {
                    oRow.Cells["SelectColumn"].Value = false;
                }
            }
            listaConvocati.UpdateData();

            form.Dispose();
        }
        private void getPersonaContattiPerTipo(List<PersonaContattoDTO> contattiPersone, Dictionary<int, List<ContattoDTO>> contatti)
        {
            contatti.Clear();
            var persone = (from oRow in listaConvocati.Rows where (bool) oRow.Cells["SelectColumn"].Value select (PersonaPresente) oRow.ListObject).ToList();

            var filter = new PersonaFilter
            {
                CodiceCondominio = _condominio.ID,
                Tipo = TipoNominativo.Condomino,
                Gruppi = string.Empty,
                DataRiferimento = DateTime.Today
            };

            var form =
                new ExecuteLoadDataListAsync<PersonaContattoDTO>(
                    "E' in corso la ricerca dei contatti dei convocati selezionati..." + Environment.NewLine +
                    "Si prega di attendere.");
            Func<List<PersonaContattoDTO>> loadDati = () => getPersonaService().GetByFilter(filter, TipoIndirizzo.Recapito);
            form.LoadData(loadDati);
            form.ShowDialog();

            IList<int> idconvocati = persone.Select(item => item.IdPersonaConvocato).ToList();
            var contattiPersoneTutti = form.DataSourceObject;
            contattiPersone.AddRange(contattiPersoneTutti.Where(contattopersona => idconvocati.Contains(contattopersona.ID)).ToList());

            foreach (var contattoPersona in contattiPersone)
            {
                // TODO Per ora li seleziono tutti è da migliorare in base a come è stato implementato nelle altre funzioni
                if (!contatti.ContainsKey(contattoPersona.ID))
                {
                    var contattiPersona = getPersonaService().GetById(contattoPersona.ID).Contatti;
                    contatti.Add(contattoPersona.ID, contattiPersona);
                }
            }
            
            form.Dispose();
        }
Beispiel #9
0
 public StatusResponse Eliminar(PersonaFilter request)
 {
     return(this.InvokeWebApi <StatusResponse>(HttpMethod.Post, _url + "Eliminar", this.GetJsonParameters(request)));
 }
 public PagedResponse <PersonaResponse> Personas(PersonaFilter filtro)
 {
     return(this.InvokeWebApi <PagedResponse <PersonaResponse> >(HttpMethod.Get, _url + "Personas", this.GetJsonParameters(filtro)));
 }
 public ICollection <PersonaResponse> Personas([FromBody] PersonaFilter filters)
 {
     return(_comunAplicacion.GetPersonas(filters));
 }
Beispiel #12
0
        public List<PersonaContattoDTO> GetByFilter(PersonaFilter filter, TipoIndirizzo tipoIndirizzo)
        {
            try
            {
                filter.CodiceAzienda = Login.Instance.CurrentLogin().Azienda;
                var result = GetServiceClient().GetPersoneByFilter(filter, tipoIndirizzo, GetUserInfo());
                CloseService();
                return result;
            }
            catch (CommunicationObjectAbortedException ex)
            {
                _log.DebugFormat("Errore nella chiamata al servizio - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), Login.Instance.CurrentLogin().Azienda);
            }
            catch (CommunicationObjectFaultedException ex)
            {
                _log.DebugFormat("Errore nella chiamata al servizio - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), Login.Instance.CurrentLogin().Azienda);
            }
            catch (CommunicationException ex)
            {
                _log.DebugFormat("Errore nella chiamata al servizio - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), Login.Instance.CurrentLogin().Azienda);
            }            catch (IOException ex)
            {
                _log.DebugFormat("Errore nella chiamata al servizio - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), Login.Instance.CurrentLogin().Azienda);
            }
            catch (ObjectDisposedException ex)
            {
                _log.DebugFormat("Errore nella chiamata al servizio - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), Login.Instance.CurrentLogin().Azienda);
            }
            catch (Exception ex)
            {
                _log.Error($"Errore nel caricamento degli Abi Cab - {Utility.GetMethodDescription()} - azienda:{Login.Instance.CurrentLogin().Azienda}", ex);
            }

            return new List<PersonaContattoDTO>();
        }
Beispiel #13
0
		public IList<PersonaContattoDTO> GetPersoneByFilter(PersonaFilter filter, TipoIndirizzo? tipoIndirizzo, UserInfo userinfo)
		{
			var windsorRep = new WindsorConfigRepository();
			try
			{
				windsorRep.BeginTransaction(userinfo);
				var service = windsorRep.GetContainer(userinfo.Azienda).Resolve<IPersonaService>();
				var repo = new PersonaRepository(userinfo, windsorRep);
                var item = repo.GetByDomainEntity(service.GetByFilter(filter), filter.Tipo, filter.DataRiferimento, tipoIndirizzo);
				windsorRep.Commit();
				return item;
			}
			catch (Exception ex)
			{
                _log.ErrorFormat("Errore nel caricamento delle persone - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), userinfo.Azienda);
				windsorRep.Rollback();
				throw;
			}
		}