public VotantiUC(AssembleaDTO assemblea, CondominioDTO condominio, OrdineGiornoAssembleaDTO ordineGiorno) { InitializeComponent(); inizializza(); _assemblea = assemblea; _condominio = condominio; _ordineGiorno = ordineGiorno; }
//IAssembleaService _assembleaService; //IStrutturaCondominioService _strutturaCondominioService; #endregion Private Members #region Contructors public VotazioneUC(ModalitaDiLavoro ModalitaDiLavoro, IAssembleaSvolgimento svolgimento, OrdineGiornoAssembleaDTO ordineGiorno) { InitializeComponent(); inizializza(); iModalitaDiLavoro = ModalitaDiLavoro; _svolgimento = svolgimento; _ordineGiorno = ordineGiorno; }
public Votanti(AssembleaDTO assemblea, CondominioDTO condominio, OrdineGiornoAssembleaDTO ordineGiorno) { InitializeComponent(); _votantiUC = new VotantiUC(assemblea, condominio, ordineGiorno); Votanti_Fill_Panel.Controls.Add(_votantiUC); _votantiUC.Dock = DockStyle.Fill; persistWindowComponent1.UserName = Security.Login.Instance.CurrentLogin().LoginName; }
public int? ManageDomainEntity(OrdineGiornoAssembleaDTO dto) { try { var item = manage(dto); if (item != null) return item.ID; return null; } catch (Exception ex) { _log.Error("Errore nella gestione dei punti dell'ordine del giorno: Gipasoft.Business.Sfera.Repository.AssembleaOrdineGiornoRepository.ManageDomainEntity() - id:" + dto.ID, ex); throw; } }
public List<ConvocazioneAssembleaDTO> Votazione(OrdineGiornoAssembleaDTO ordineGiorno) { return _votanti[ordineGiorno.ID]; }
public List<ConvocazioneAssembleaDTO> GetVotantiPerVotazione(OrdineGiornoAssembleaDTO ordineGiorno, StabileDTO stabile, GruppoStabileDTO scala) { //capire come cavolo implemetare il filtro per stabile e scala... var oVotanti= _votanti[ordineGiorno.ID]; return oVotanti.Where(item => ((stabile == null || item.Stabile == stabile.Descrizione) && (scala == null || item.GruppoStabile == scala.Descrizione))).ToList(); }
private void editPuntoOrdineGiorno(OrdineGiornoAssembleaDTO ordineGiorno) { tipoOdG.Value = ordineGiorno.IdTipoOrdineDelGiorno; millesimiOdG.Value = ordineGiorno.IdContoMillesimiRiferimento; //descrizioneOdG.Text = OrdineGiorno.Descrizione; descrizioneOdG.LoadDocumento(_condominio.ID, Conversione.ToStream(ordineGiorno.Descrizione), "RTF"); if (IsEditingMode && _assembleaService.IsConvocazioneEnable(_assemblea) == string.Empty) { groupNuovoPuntoOdG.Enabled = true; validationSummaryOrdineGiorno.Validators.Clear(); validationSummaryOrdineGiorno.Validators.Add(reqTipoODG); validationSummaryOrdineGiorno.Validators.Add(reqMillesimiODG); validationSummaryOrdineGiorno.Validators.Add(reqDescrizioneODG); //forzo una variazione nella riga per generare l'evente beforeupdate var iTmp=(int)listaOrdineGiorno.ActiveRow.Cells["Progressivo"].Value; listaOrdineGiorno.ActiveRow.Cells["Progressivo"].Value = 0; listaOrdineGiorno.ActiveRow.Cells["Progressivo"].Value = iTmp; } }
public string GetDescrizioneOrdinegiorno(OrdineGiornoAssembleaDTO ordineGiornoDto, AssembleaDTO assembleaDto) { var descrizione = ordineGiornoDto.Descrizione; if (ordineGiornoDto.IdTipoOrdineDelGiorno != null) { try { var tipoOrdineGiorno=base.GetServiceClient().GetTipoOrdineDelGiornoByID(ordineGiornoDto.IdTipoOrdineDelGiorno.GetValueOrDefault( ), GetUserInfo()); // ========================================== // Applico il template // ========================================== if (string.IsNullOrEmpty(descrizione)) descrizione = tipoOrdineGiorno.DescrizioneAssemblea; // ------------------------------------------ // Creo le stringhe // ------------------------------------------ EsercizioDTO esercizioDto=base.GetServiceClient().GetEsercizioById(assembleaDto.IdEsercizio, GetUserInfo()); string eserciziodesc = esercizioDto.DisplayName;var datainizioesercizio = esercizioDto.DataApertura.GetValueOrDefault().ToShortDateString(); var datafineesercizio = esercizioDto.DataChiusura.GetValueOrDefault().ToShortDateString(); EsercizioDTO esercizioPrecedenteDTO = base.GetServiceClient().GetEsercizioPrecedente(esercizioDto.ID, GetUserInfo()); string esercizioprecedentedesc = string.IsNullOrEmpty(esercizioPrecedenteDTO.DisplayName) ? "[non definito/inesistente]" : esercizioPrecedenteDTO.DisplayName; var datainizioesercizioprecedente = string.IsNullOrEmpty(esercizioPrecedenteDTO.DisplayName) ? "[non definita/inesistente]" : esercizioPrecedenteDTO.DataApertura.GetValueOrDefault().ToShortDateString(); var datafineesercizioprecedente = string.IsNullOrEmpty(esercizioPrecedenteDTO.DisplayName) ? "[non definita/inesistente]" : esercizioPrecedenteDTO.DataChiusura.GetValueOrDefault().ToShortDateString(); IDictionary context = new Hashtable(); context.Add("dataprimaconvocazione", assembleaDto.DataPrimaConvocazione.ToShortDateString()); context.Add("oraprimaconvocazione", assembleaDto.DataPrimaConvocazione.ToShortTimeString()); context.Add("datasecondaconvocazione", assembleaDto.DataSecondaConvocazione .ToShortDateString()); context.Add("orasecondaconvocazione", assembleaDto.DataSecondaConvocazione.ToShortTimeString() ); context.Add("datainizioesercizio", datainizioesercizio); context.Add("datafineesercizio", datafineesercizio); context.Add("datainizioesercizioprecedente", datainizioesercizioprecedente); context.Add("datafineesercizioprecedente", datafineesercizioprecedente); context.Add("esercizio", eserciziodesc); context.Add("esercizioprecedente", esercizioprecedentedesc); descrizione = ReplaceTags(descrizione, context); } catch (Exception ex) { _log.ErrorFormat("Errore nella applicazione del template per il punto all'ordine del giorno - {0} - ordineGiorno:{1} - assemblea:{2} - azienda:{3}", ex, Gipasoft.Library.Utility.GetMethodDescription(), ordineGiornoDto.ID, assembleaDto.ID, Gipasoft.Security.Login.Instance.CurrentLogin().Azienda); } } return string.IsNullOrEmpty(descrizione) ? "": descrizione.Trim(); }
private OrdineGiornoAssemblea manage(OrdineGiornoAssembleaDTO dto) { OrdineGiornoAssemblea item = null; bool result; // Controllo sullo stato U, D, I switch (dto.Stato.ToUpper()) { case "U": result = update(dto, out item); if (!result) { //Il dato sul database è più recente di quello utilizzato item = null; } break; case "I": result = insert(dto, out item); if (!result) throw new Exception("Impossibile scrivere sul database"); break; } return item; }
private bool insert(OrdineGiornoAssembleaDTO dto, out OrdineGiornoAssemblea item) { var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); bool result; try { var assemblea = daoFactory.GetAssembleaDao().GetById(dto.IdAssemblea, false); item = dto.IdContoMillesimiRiferimento > 0 ? new OrdineGiornoAssemblea(assemblea, dto.Descrizione, daoFactory.GetContoDao().GetById(dto.IdContoMillesimiRiferimento.Value, false), dto.Progressivo) : new OrdineGiornoAssemblea(assemblea, dto.Descrizione, dto.Progressivo); item.TipoOrdineDelGiorno = daoFactory.GetTipoOrdineDelGiornoDao().GetById(dto.IdTipoOrdineDelGiorno.Value, false); daoFactory.GetOrdineGiornoAssembleaDao().SaveOrUpdate(item); result = true; } catch (Exception ex) { _log.Error("Errore nell'inserimento del ordine del giorno della assemblea: Gipasoft.Business.Sfera.Repository.AssembleaOrdineGiornoRepository.insert() - id:" + dto.ID.ToString(), ex); throw; } return result; }
public List<ConvocazioneAssembleaDTO> GetVotantiPerVotazione(OrdineGiornoAssembleaDTO ordineGiorno, StabileDTO stabile, GruppoStabileDTO scala) { return _assembleaService.GetVotantiPerVotazione(_assemblea, ordineGiorno, stabile, scala, _convocazione); }
public string ConfermaVotazione(OrdineGiornoAssembleaDTO ordineGiorno, DateTime dataVotazione, IList<ConvocazioneAssembleaDTO> convocati) { return _assembleaService.ConfermaVotazione(ordineGiorno, dataVotazione, convocati, _convocazione); }
public bool IsPresenteVotazione(OrdineGiornoAssembleaDTO ordineGiorno) { return _votanti[ordineGiorno.ID].Any(item => item.Risultato != null && item.Risultato != Gipasoft.Sfera.Enums.RisultatoVotazione.Undefined ); }
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; }
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; } }
private bool savePuntoOrdineGiorno(OrdineGiornoAssembleaDTO ordineGiorno, bool quiet=false) { validationSummaryOrdineGiorno.Validate(); if (validationSummaryOrdineGiorno.IsValid) { ordineGiorno.IdTipoOrdineDelGiorno = ((TipoOrdineDelGiornoDTO)tipoOdG.SelectedItem.ListObject).ID; ordineGiorno.DescrizioneTipoOrdineDelGiorno = ((TipoOrdineDelGiornoDTO)tipoOdG.SelectedItem.ListObject).Descrizione; ordineGiorno.PrimaConvocazioneTipoOrdineDelGiorno = ((TipoOrdineDelGiornoDTO)tipoOdG.SelectedItem.ListObject).PrimaConvocazione; ordineGiorno.SecondaConvocazioneTipoOrdineDelGiorno = ((TipoOrdineDelGiornoDTO)tipoOdG.SelectedItem.ListObject).SecondaConvocazione; ordineGiorno.IdContoMillesimiRiferimento = ((ContoDTO)millesimiOdG.SelectedItem.ListObject).ID; ordineGiorno.DescrizioneContoMillesimiRiferimento = ((ContoDTO)millesimiOdG.SelectedItem.ListObject).Descrizione; ordineGiorno.Descrizione = Conversione.ToString(descrizioneOdG.GetDocumento("RTF")); rinumeraOrdineGiorno(); listaOrdineGiorno.Refresh(); return true; } if (!quiet) validationSummaryOrdineGiorno.ShowErrorSummary(); return false; }
private bool isQuorumVotazione(OrdineGiornoAssembleaDTO ordineGiorno) { if (_svolgimento.IsPresenteVotazione(ordineGiorno)) { var votanti = _svolgimento.ConvocatiToPresenti(_svolgimento.GetVotantiPerVotazione(ordineGiorno, null, null)); var dPresenti = votanti.Count(votante => votante.AbilitatoAlVoto); var dVotanti = votanti.Count(isAbilitatoAlVoto); var dVotiValidi = votanti.Count(votante => votante.Risultato != RisultatoVotazione.Undefined && votante.Risultato != RisultatoVotazione.Astenuto); var dMillesimiRealiTotali = votanti.Sum(votante => votante.MillesimiProprietaConvocato); var dMillesimiRealiVotazione = votanti.Where(votante => votante.Risultato != RisultatoVotazione.Undefined).Sum(votante => votante.MillesimiProprietaConvocato); var oTipoOrdineGiorno = _svolgimento.GetTipiOrdineGiorno().FirstOrDefault(item => item.ID == ordineGiorno.IdTipoOrdineDelGiorno.GetValueOrDefault()); if (oTipoOrdineGiorno != null) { bool bQuorumIntervenuti = false; bool bQuorumMillesimi; decimal dQuorumIntervenuti; decimal dQuorumMillesimi; switch (_svolgimento.Convocazione) { case 1: dQuorumIntervenuti = oTipoOrdineGiorno.PrimaConvocazioneIntervenuti/1000; dQuorumMillesimi = oTipoOrdineGiorno.PrimaConvocazioneMillesimi/1000; break; default: dQuorumIntervenuti = oTipoOrdineGiorno.PrimaConvocazioneIntervenuti/1000; dQuorumMillesimi = oTipoOrdineGiorno.PrimaConvocazioneMillesimi/1000; break; } //non esistono casi con i quorum (intervenuti o millesimi) a 0...non li contemplo... if (dQuorumIntervenuti > 0) { //maggioranza intervenuti bQuorumIntervenuti = ((decimal)dVotiValidi / (decimal)dVotanti) > dQuorumIntervenuti; } else { //maggioranza convocati (presumo che vengono convocati tutti i 'partecipanti' al condominio)... dQuorumIntervenuti = Math.Abs(dQuorumIntervenuti); bQuorumIntervenuti = ((decimal)dVotiValidi / (decimal)dPresenti) > dQuorumIntervenuti; } //maggioranza millesimale bQuorumMillesimi = (dMillesimiRealiVotazione/dMillesimiRealiTotali) > dQuorumMillesimi; return (bQuorumMillesimi && bQuorumIntervenuti); } else { return false; } } else { return false; } }
public string ConfermaVotazione(OrdineGiornoAssembleaDTO ordineGiorno, DateTime dataVotazione, IList<ConvocazioneAssembleaDTO> convocati) { foreach (var convocato in convocati){ convocato.DataVotazione = dataVotazione; } return ""; }
public List<ConvocazioneAssembleaDTO> GetVotanti(AssembleaDTO assemblea, OrdineGiornoAssembleaDTO ordineGiorno, StabileDTO stabile, GruppoStabileDTO scala) { List<int> votanti = new List<int>(); if (scala != null) votanti.Add(scala.ID); else if (stabile != null) { foreach (GruppoStabileDTO gruppo in stabile.GruppiStabile) votanti.Add(gruppo.ID); } else votanti = null; List<ConvocazioneAssembleaDTO> result = base.GetServiceClient().GetVotantiAssemblea(assemblea.ID, ordineGiorno.ID, votanti, GetUserInfo()); base.CloseService(); return result; }
public bool IsPresenteVotazione(OrdineGiornoAssembleaDTO ordineGiorno) { return _assembleaService.IsPresenteVotazione(ordineGiorno, _convocazione); }
public string ConfermaVotanti(OrdineGiornoAssembleaDTO ordineGiorno, IList<ConvocazioneAssembleaDTO> convocati) { Dictionary<int, Votante> votanti = new Dictionary<int, Votante>(); foreach (ConvocazioneAssembleaDTO convocato in convocati) { Votante votante = new Votante(); votante.IdVotante = convocato.IdVotante; votante.AbilitatoAlVoto = convocato.AbilitatoAlVoto; votanti.Add(convocato.ID, votante); } string result = base.GetServiceClient().ConfermaVotantiAssemblea(ordineGiorno.ID, votanti, GetUserInfo()); base.CloseService(); return result; }
private OrdineGiornoAssembleaDTO setDto(OrdineGiornoAssemblea item) { var dto = new OrdineGiornoAssembleaDTO { ID = item.ID, IdAssemblea = item.Assemblea.ID, //MillesimiRiferimento = item.MillesimiRiferimento, Progressivo = item.Progressivo, Version = item.Version, Descrizione = item.Descrizione }; dto.Stato = item.ID != 0 ? "U" : "I"; if (item.TipoOrdineDelGiorno != null) { dto.IdTipoOrdineDelGiorno = item.TipoOrdineDelGiorno.ID; dto.DescrizioneTipoOrdineDelGiorno = item.TipoOrdineDelGiorno.Descrizione; dto.PrimaConvocazioneTipoOrdineDelGiorno = item.TipoOrdineDelGiorno.PrimaConvocazione; dto.SecondaConvocazioneTipoOrdineDelGiorno = item.TipoOrdineDelGiorno.SecondaConvocazione; } if (item.ContoMillesimiRiferimento != null) { dto.IdContoMillesimiRiferimento = item.ContoMillesimiRiferimento.ID; dto.DescrizioneContoMillesimiRiferimento = item.ContoMillesimiRiferimento.Descrizione; } return dto; }
public string ConfermaVotazione(OrdineGiornoAssembleaDTO ordineGiorno, DateTime dataVotazione, IList<ConvocazioneAssembleaDTO> convocati, int convocazione) { Dictionary<int, Voto> voti = new Dictionary<int, Voto>(); foreach (ConvocazioneAssembleaDTO convocato in convocati) { if (convocato.Risultato != null) { Voto voto = new Voto(); voto.IdVotante = convocato.IdVotante; voto.Risultato = convocato.Risultato.GetValueOrDefault(); voti.Add(convocato.ID, voto); } } string result = base.GetServiceClient().ConfermaVotazioneAssemblea(ordineGiorno.ID, dataVotazione, voti, convocazione, GetUserInfo()); base.CloseService(); return result; }
private bool update(OrdineGiornoAssembleaDTO dto, out OrdineGiornoAssemblea item) { bool result; item = null; var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); try { item = daoFactory.GetOrdineGiornoAssembleaDao().GetById(dto.ID, false); // Condizione necessarie per il controllo del fatto che sul DB ho una versione uguale o più vecchia //if (dto.Version == item.Version) //{ item.TipoOrdineDelGiorno = daoFactory.GetTipoOrdineDelGiornoDao().GetById(dto.IdTipoOrdineDelGiorno.Value, false); item.Descrizione = dto.Descrizione; //item.MillesimiRiferimento = dto.MillesimiRiferimento; item.Progressivo = dto.Progressivo; item.Descrizione = dto.Descrizione; item.ContoMillesimiRiferimento = null; if (dto.IdContoMillesimiRiferimento > 0) item.ContoMillesimiRiferimento = daoFactory.GetContoDao().GetById(dto.IdContoMillesimiRiferimento.Value, false); result = true; //} //else //{ // Eccezione: Sul db c'è qualche cosa di più nuovo. // _log.Error("Errore nel salvataggio del ordine del giorno della assemblea: id:" + dto.ID.ToString() + " - il dato sul db è più recente di quello che si vuole salvare"); // result = false; //} } catch (Exception ex) { _log.ErrorFormat("Errore nel salvataggio del ordine del giorno della assemblea - {0} - id:{1}", ex, Utility.GetMethodDescription(), dto.ID); throw; } return result; }
public string AccodaAOrdineGiornoDefault(AssembleaDTO assemblea, CondominioDTO condominio, OrdineGiornoAssembleaDTO ordinegiorno) { return base.GetServiceClient().AccodaADefaultOrdineGiornoAssemblea(assemblea.Tipo, condominio, ordinegiorno, GetUserInfo()); }
public bool IsPresenteVotazione(OrdineGiornoAssembleaDTO ordineGiorno, int convocazione) { bool result = base.GetServiceClient().IsPresenteVotazioneAssemblea(ordineGiorno.ID, convocazione, GetUserInfo()); base.CloseService(); return result; }
public string AccodaADefaultOrdineGiornoAssemblea(TipoAssemblea tipo, CondominioDTO condominio, OrdineGiornoAssembleaDTO voceOrdineGiorno, UserInfo userinfo) { var windsorRep = new WindsorConfigRepository(); try { windsorRep.BeginTransaction(userinfo); var assembleaService = windsorRep.GetContainer(userinfo.Azienda).Resolve<IAssembleaService>(); var item = assembleaService.AccodaADefaultOrdineGiornoAssemblea(tipo, condominio, voceOrdineGiorno); windsorRep.Commit(); return item; } catch (Exception ex) { _log.ErrorFormat("Errore nel salvataggio dell'ordine del giorno predefinito - {0} - tipo:{1} - condominio:{2} - azienda:{3}", ex, Utility.GetMethodDescription(), tipo, condominio, userinfo.Azienda); windsorRep.Rollback(); throw; } }