Пример #1
0
        public List<ConvocazioneAssembleaDTO> GetConvocabiliByGruppi(IList<GruppoStabileDTO> scale, TipoAssemblea tipo, DateTime data)
        {
            List<int> idScaleSelezionate = new List<int>();
            foreach (GruppoStabileDTO scala in scale)
                idScaleSelezionate.Add(scala.ID);

            List<ConvocazioneAssembleaDTO> result = base.GetServiceClient().GetConvocabiliByGruppi(idScaleSelezionate, tipo, data, GetUserInfo());
            base.CloseService();
            return result;
        }
Пример #2
0
        public DettaglioAssemblea(CondominioDTO condominio, EsercizioDTO esercizio, TipoAssemblea tipo) : base(false)
        {
            _condominio = condominio;
            _esercizio = esercizio;
            _tipo = tipo;

            InitializeComponent();

            if (!DesignMode)
                inizializza();
        }
Пример #3
0
        public IList<SoggettoCondominio> GetConvocabili(int idCondominio, TipoAssemblea tipo, DateTime data) //int idEsercizio)
        {
            try
            {
                var stabili = _daoFactory.GetPalazzinaDao().GetByCondominio(idCondominio);
                var idGruppi = new List<int>();
                foreach (var stabile in stabili)
                {
                    idGruppi.AddRange(stabile.GruppiStabile.Select(gruppo => gruppo.ID).ToList());
                }
                
                //var hql = "FROM SoggettoCondominio SOGG WHERE (SOGG.ModalitaConvocazione!=:nonConvocare or SOGG.ModalitaConvocazione is null) AND SOGG.UnitaImmobiliare.GruppoStabileRiferimento.ID IN (:idGruppi)";
                var hql = "FROM SoggettoCondominio SOGG WHERE (SOGG.PercentualeRiferimento>=0) AND SOGG.UnitaImmobiliare.GruppoStabileRiferimento.ID IN (:idGruppi) AND (SOGG.DataFine is null OR SOGG.DataFine >= :data) AND (SOGG.DataInizio is null OR SOGG.DataInizio < :data) ";
                var parameters = new List<QueryParam>(2)
                {
                    //new QueryParam("data", esercizio.DataChiusura.GetValueOrDefault()),
                    new QueryParam("data", data),
                    new QueryParam("idGruppi", idGruppi)
                    //new QueryParam("nonConvocare", Conversione.ToHQLParameter(TipoModalitaConvocazione.NonConvocare))
                };

                switch (tipo)
                {
                    case TipoAssemblea.Ordinaria:
                        hql += " AND (SOGG.class = Proprietario OR SOGG.DirittoReale = :usufruttuario) ";
                        parameters.Add(new QueryParam("usufruttuario", Conversione.ToHQLParameter(DirittoReale.Usufrutto)));
                        break;

                    case TipoAssemblea.Straordinaria:
                        hql += " AND SOGG.class = Proprietario ";
                        break;
                    case TipoAssemblea.Riscaldamento:
                        hql += " AND (SOGG.class = Conduttore) ";
                        break;
                }
                return _daoFactory.GetSoggettoCondominioDao().GetByQuery(hql, parameters.ToArray());
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nel recuperare i convocati per condominio - {0} - condominio {1} -  tipo: {2}", ex, Utility.GetMethodDescription(), idCondominio, tipo);
                throw;
            }
        }
Пример #4
0
 public List<ConvocazioneAssembleaDTO> GetConvocabili(CondominioDTO condominio, TipoAssemblea tipo, DateTime data)
 {
     List<ConvocazioneAssembleaDTO> result = base.GetServiceClient().GetConvocabili(condominio.ID, tipo, data, GetUserInfo());
     base.CloseService();
     return result;
 }
Пример #5
0
        public IList<SoggettoCondominio> GetConvocabiliByGruppi(IList<int> idGruppi, TipoAssemblea tipo, DateTime data)
        {
            try
            {
                //var esercizio = _daoFactory.GetEsercizioDao().Find(idEsercizio, false);

                //var hql = "FROM SoggettoCondominio SOGG WHERE (SOGG.ModalitaConvocazione!=:nonConvocare or SOGG.ModalitaConvocazione is null) AND SOGG.UnitaImmobiliare.GruppoStabileRiferimento.ID IN (:idGruppi) AND (SOGG.DataFine is null OR SOGG.DataFine >= :data) AND (SOGG.DataInizio is null OR SOGG.DataInizio < :data) ";
                var hql = "FROM SoggettoCondominio SOGG WHERE (SOGG.PercentualeRiferimento>=0) AND SOGG.UnitaImmobiliare.GruppoStabileRiferimento.ID IN (:idGruppi) AND (SOGG.DataFine is null OR SOGG.DataFine >= :data) AND (SOGG.DataInizio is null OR SOGG.DataInizio < :data) ";
                var parameters = new List<QueryParam>(2)
                {
                    //new QueryParam("data", esercizio.DataChiusura.GetValueOrDefault()),
                    new QueryParam("data", data),
                    new QueryParam("idGruppi", idGruppi)
                    //new QueryParam("nonConvocare", Conversione.ToHQLParameter(TipoModalitaConvocazione.NonConvocare))
                };

                switch(tipo)
                {
                    case TipoAssemblea.Ordinaria:
                        hql += " AND (SOGG.class = Proprietario OR SOGG.DirittoReale = :usufruttuario) ";
                        parameters.Add(new QueryParam("usufruttuario", Conversione.ToHQLParameter(DirittoReale.Usufrutto)));
                        break;

                    case TipoAssemblea.Straordinaria:
                        hql += " AND SOGG.class = Proprietario ";
                        break;
                    case TipoAssemblea.Riscaldamento:
                        hql += " AND (SOGG.class = Conduttore) ";
                        break;
                }
                
                return _daoFactory.GetSoggettoCondominioDao().GetByQuery(hql, parameters.ToArray());

                //Esercizio oEsercizio = _daoFactory.GetEsercizioDao().Find(idEsercizio, false);
                //Conto oConto = ((List<Conto>)_daoFactory.GetContoDao().GetByCondominio(oEsercizio.CondominioRiferimento.ID)).Find(conto => conto.IsMillesimiProprieta);
                //return _daoFactory.GetSoggettoCondominioDao().GetByQuery(hql, parameters.ToArray()).Select(convocato => convertToDto(convocato, oConto, 0)).ToList();

                //raggruppo per persona...
                //var rep = new AssembleaConvocazioneRepository(userinfo, windsorRep);
                //foreach (var convocato in convocati)
                //{

                //    var convocatoDto = rep.GetBySoggettoCondominio(convocato);
                //    if (convocatiDtoTmp.ContainsKey(convocatoDto.IdPersonaConvocato))
                //    {
                //        var convocatoDtoOld = convocatiDtoTmp[convocatoDto.IdPersonaConvocato];
                //        //convocatoDtoOld.Stabile = "Multiplo";
                //        //convocatoDtoOld.GruppoStabile = "Multiplo";
                //        //convocatoDtoOld.UnitaImmobiliare = "Multipla";
                //        convocatoDtoOld.Stabile += " " + convocatoDto.Stabile;
                //        convocatoDtoOld.GruppoStabile += " " + convocatoDto.GruppoStabile;
                //        convocatoDtoOld.UnitaImmobiliare += " " + convocatoDto.UnitaImmobiliare;
                //        convocatoDtoOld.MillesimiProprietaConvocato += convocatoDto.MillesimiProprietaConvocato;
                //    }
                //    else
                //        convocatiDtoTmp.Add(convocatoDto.IdPersonaConvocato, convocatoDto);
                //}
                //convocatiDto.AddRange(convocatiDtoTmp.Values);


                //var soggetti=_daoFactory.GetSoggettoCondominioDao().GetByQuery(hql, parameters.ToArray());
                //var oPersone = new Dictionary<Persona,SoggettoCondominio>();
                //foreach (var soggetto in soggetti)
                //{
                //    if (!oPersone.ContainsKey(soggetto.Persona)) oPersone.Add(soggetto.Persona, soggetto);
                //}
                //return oPersone.Values.ToList();
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nel recuperare i convocati per assemblea - {0} - tipo:{1} - data:{2}", ex, Utility.GetMethodDescription(), tipo, data);
                throw;
            }
        }
Пример #6
0
        public IList<OrdineGiornoAssembleaDTO> GetDefaultOrdineGiornoAssemblea(TipoAssemblea tipo, CondominioDTO condominio)
        {
            var ordineGiorno = new List<OrdineGiornoAssembleaDTO>();
            var iProg = 1;
            foreach (var ordinegiornodefault in _daoFactory.GetOrdineGiornoAssembleaDefaultDao().GetByTipoAssemblea(condominio.ID, tipo))
            {
                var oOrdineGiorno = new OrdineGiornoAssembleaDTO
                {
                    Stato = "I",
                    Progressivo = iProg,
                    IdTipoOrdineDelGiorno = ordinegiornodefault.TipoOrdineDelGiorno.ID,
                    Descrizione = ordinegiornodefault.Descrizione
                };
                if (ordinegiornodefault.ContoMillesimiRiferimento == null)
                {
                    try
                    {
                        oOrdineGiorno.IdContoMillesimiRiferimento = ((List<Conto>)_daoFactory.GetContoDao().GetByCondominio(condominio.ID)).Find(conto => conto.IsMillesimiProprieta).ID;
                    }
                    catch (Exception ex)
                    {
                        _log.ErrorFormat("Errore nella lettura del conto millesimi di riferimento - {0} - tipo:{1} - condominio:{2}", ex, Utility.GetMethodDescription(), tipo, condominio.ID);
                        throw;
                    }
                }
                else
                {
                    oOrdineGiorno.IdContoMillesimiRiferimento = ordinegiornodefault.ContoMillesimiRiferimento.ID;
                }
                
                ordineGiorno.Add(oOrdineGiorno);
                iProg += 1;
            }

            return ordineGiorno;

            //List<OrdineGiornoAssembleaDTO> ordineGiorno = new List<OrdineGiornoAssembleaDTO>();
            //if (tipo == TipoAssemblea.Ordinaria)
            //{
            //    int iProg = 1;
            //    foreach (var tipoOrdineGiorno in _daoFactory.GetTipoOrdineDelGiornoDao().GetTipiOrdineDelGiornoPerAssembleaOrdinaria())
            //    {
            //        OrdineGiornoAssembleaDTO oOrdineGiorno = new OrdineGiornoAssembleaDTO();
            //        oOrdineGiorno.Stato = "I";
            //        oOrdineGiorno.Progressivo = iProg;
            //        oOrdineGiorno.IdTipoOrdineDelGiorno = tipoOrdineGiorno.ID;
            //        oOrdineGiorno.Descrizione = tipoOrdineGiorno.DescrizioneAssemblea;
            //        try
            //        {
            //            //oOrdineGiorno.IdContoMillesimiRiferimento = ((List<ContoDTO>)_daoFactory.GetContoDao().GetContiEconomiciByCondominio(condominio.ID)).Find(conto => conto.IsMillesimiProprieta).ID;
            //            //nel client viene usata la GetProprietaByEsercizio...qua non trovo cosa usare ma dovendo trovare un conto certo tra tutti...
            //            oOrdineGiorno.IdContoMillesimiRiferimento = ((List<Conto>)_daoFactory.GetContoDao().GetByCondominio(condominio.ID)).Find(conto => conto.IsMillesimiProprieta).ID;
            //        }
            //        catch (Exception)
            //        {
            //            //nulla...
            //        }
            //        ordineGiorno.Add(oOrdineGiorno);
            //        iProg += 1;
            //    }
            //}
            //return ordineGiorno;
        }
Пример #7
0
 public string ConfermaDefaultOrdineGiornoAssemblea(TipoAssemblea tipo, CondominioDTO condominio,IList<OrdineGiornoAssembleaDTO> ordineGiorno)
 {
     try
     {
         string message = string.Empty;
         _daoFactory.GetOrdineGiornoAssembleaDefaultDao().DeleteByTipoAssemblea(condominio.ID, tipo);
         foreach (var voceordinegiorno in ordineGiorno)
         {
             var voceOrdineGiornoDefault = new OrdineGiornoAssembleaDefault {Descrizione = voceordinegiorno.Descrizione, Progressivo = voceordinegiorno.Progressivo, Tipo = tipo, CondominioRiferimento = _daoFactory.GetCondominioDao().Find(condominio.ID, false)};
             if (voceordinegiorno.IdContoMillesimiRiferimento!=null) 
                     voceOrdineGiornoDefault.ContoMillesimiRiferimento  =_daoFactory.GetContoDao().Find(voceordinegiorno.IdContoMillesimiRiferimento.Value,false);
             if (voceordinegiorno.IdTipoOrdineDelGiorno!=null)
                 voceOrdineGiornoDefault.TipoOrdineDelGiorno  = _daoFactory.GetTipoOrdineDelGiornoDao().Find(voceordinegiorno.IdTipoOrdineDelGiorno.Value,false);
             _daoFactory.GetOrdineGiornoAssembleaDefaultDao().SaveOrUpdate(voceOrdineGiornoDefault);
         }
         return message;
     }
     catch (Exception ex)
     {
         _log.ErrorFormat("Errore nella conferma dell'ordine del giorno di default per assemblea - {0} - condominio :{1}", ex, Utility.GetMethodDescription(), tipo, condominio);
         throw;
     }
 }
Пример #8
0
 public string AccodaADefaultOrdineGiornoAssemblea(TipoAssemblea tipo, CondominioDTO condominio, OrdineGiornoAssembleaDTO voceOrdineGiorno)
 {
     try
     {
         string message = string.Empty;
         var ultimoProgressivo = GetDefaultOrdineGiornoAssemblea(tipo, condominio).Max(voce=>voce.Progressivo);
         ultimoProgressivo += 1;
         var voceOrdineGiornoDefault = new OrdineGiornoAssembleaDefault {Descrizione = voceOrdineGiorno.Descrizione, Progressivo = ultimoProgressivo, Tipo = tipo, CondominioRiferimento = _daoFactory.GetCondominioDao().Find(condominio.ID, false) };
         if (voceOrdineGiorno.IdContoMillesimiRiferimento != null)
             voceOrdineGiornoDefault.ContoMillesimiRiferimento = _daoFactory.GetContoDao().Find(voceOrdineGiorno.IdContoMillesimiRiferimento.Value, false);
         if (voceOrdineGiorno.IdTipoOrdineDelGiorno != null)
             voceOrdineGiornoDefault.TipoOrdineDelGiorno = _daoFactory.GetTipoOrdineDelGiornoDao().Find(voceOrdineGiorno.IdTipoOrdineDelGiorno.Value, false);
         _daoFactory.GetOrdineGiornoAssembleaDefaultDao().SaveOrUpdate(voceOrdineGiornoDefault);
         return message;
     }
     catch (Exception ex)
     {
         _log.ErrorFormat("Errore nell'accodamento della voce all'ordine del giorno di default per assemblea - {0} - condominio :{1} ordine del giorno: {2}", ex, Utility.GetMethodDescription(), tipo, condominio, voceOrdineGiorno);
         throw;
     }
 }
Пример #9
0
 /// <summary>
 /// Crea un Conto valido
 /// </summary>
 public Assemblea(Esercizio esercizio, TipoAssemblea tipo)
 {
     Esercizio = esercizio;
     Tipo = tipo;
 }
Пример #10
0
        public IList<ConvocazioneAssembleaDTO> GetConvocabiliByGruppi(IList<int> idGruppi, TipoAssemblea tipo, DateTime data, UserInfo userinfo)
		{
			var windsorRep = new WindsorConfigRepository();
			try
			{
				windsorRep.BeginTransaction(userinfo);
				var assembleaService = windsorRep.GetContainer(userinfo.Azienda).Resolve<IAssembleaService>();
                var convocati = assembleaService.GetConvocabiliByGruppi(idGruppi, tipo, data);
                var convocatiDto = new List<ConvocazioneAssembleaDTO>(convocati.Count);
                //var convocatiDtoTmp = new Dictionary<int,ConvocazioneAssembleaDTO>(convocati.Count);

                ////raggruppo per persona...
                //var rep = new AssembleaConvocazioneRepository(userinfo, windsorRep);
                //foreach (var convocato in convocati)
                //{
                    
                //    var convocatoDto = rep.GetBySoggettoCondominio(convocato);
                //    if (convocatiDtoTmp.ContainsKey(convocatoDto.IdPersonaConvocato))
                //    {
                //        var convocatoDtoOld = convocatiDtoTmp[convocatoDto.IdPersonaConvocato];
                //        //convocatoDtoOld.Stabile = "Multiplo";
                //        //convocatoDtoOld.GruppoStabile = "Multiplo";
                //        //convocatoDtoOld.UnitaImmobiliare = "Multipla";
                //        convocatoDtoOld.Stabile += " " + convocatoDto.Stabile;
                //        convocatoDtoOld.GruppoStabile += " " + convocatoDto.GruppoStabile;
                //        convocatoDtoOld.UnitaImmobiliare += " " + convocatoDto.UnitaImmobiliare;
                //        convocatoDtoOld.MillesimiProprietaConvocato += convocatoDto.MillesimiProprietaConvocato;
                //    }
                //    else
                //        convocatiDtoTmp.Add(convocatoDto.IdPersonaConvocato,convocatoDto);
                //}
                //convocatiDto.AddRange(convocatiDtoTmp.Values);

                
                var rep = new AssembleaConvocazioneRepository(userinfo, windsorRep);
                convocatiDto.AddRange(convocati.Select(rep.GetBySoggettoCondominio));

			    windsorRep.Commit();
				return convocatiDto;
			}
			catch (Exception ex)
			{
                _log.ErrorFormat("Errore nel reperimento dei convocati per gruppi - {0} - tipo:{1} - azienda:{2}", ex, Utility.GetMethodDescription(), tipo, userinfo.Azienda);
				windsorRep.Rollback();
				throw;
			}
		}
Пример #11
0
        public IList<ConvocazioneAssembleaDTO> GetConvocabili(int idCondominio, TipoAssemblea tipo, DateTime data, UserInfo userinfo)
		{
			var windsorRep = new WindsorConfigRepository();
			try
			{
				windsorRep.BeginTransaction(userinfo);
				var assembleaService = windsorRep.GetContainer(userinfo.Azienda).Resolve<IAssembleaService>();
                var convocati = assembleaService.GetConvocabili(idCondominio, tipo, data);
                var convocatiDto = new List<ConvocazioneAssembleaDTO>(convocati.Count);
                var rep = new AssembleaConvocazioneRepository(userinfo, windsorRep);
                convocatiDto.AddRange(convocati.Select(rep.GetBySoggettoCondominio));
                windsorRep.Commit();
				return convocatiDto;
			}
			catch (Exception ex)
			{
                _log.ErrorFormat("Errore nel reperimento dei convocati per gruppi - {0} - tipo:{1} - azienda:{2}", ex, Utility.GetMethodDescription(), tipo, userinfo.Azienda);
				windsorRep.Rollback();
				throw;
			}
		}
Пример #12
0
        public IList<OrdineGiornoAssembleaDTO> GetDefaultOrdineGiornoAssemblea(TipoAssemblea tipo, CondominioDTO condominio, UserInfo userinfo)
	    {
            var windsorRep = new WindsorConfigRepository();
            try
            {
                windsorRep.BeginTransaction(userinfo);
                var assembleaService = windsorRep.GetContainer(userinfo.Azienda).Resolve<IAssembleaService>();
                var item = assembleaService.GetDefaultOrdineGiornoAssemblea(tipo,condominio);
                windsorRep.Commit();
                return item;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nel caricamento dell'ordine del giorno predefinito - {0}  - tipo:{1} - condominio:{2} - azienda:{3}", ex, Utility.GetMethodDescription(), tipo, condominio, userinfo.Azienda);
                windsorRep.Rollback();
                throw;
            }
	    }