public DatiCondomini Get([FromUri] SearchCriteria json) { var service = new SferaService(); var info = new UserInfo(0, json.Azienda); var rate = service.GetRateByPersonaCondominio(json.Condominio, json.Persona, info).Where(item => item.ImportoRata > 0).ToList(); var ratePerEsercizi = rate.OrderBy(item => item.DataScadenza).GroupBy(item => item.IdEsercizio); var esercizi = ratePerEsercizi.Select(kvp => new EsercizioDTO {ID = kvp.Key, Descrizione = kvp.ToList()[0].DescrizioneEsercizio}).ToList(); var soggetti = service.GetSoggettiByPersona(json.Persona, info); var saldiSoggetto = new List<SaldoSoggettoVersamentoDTO>(); foreach (var esercizioDTO in esercizi) { var importoRata = 0m; var importoVersamento = 0m; foreach (var soggettoCondominioDTO in soggetti) { var rateVersamenti = service.GetVersatoBySoggetto(esercizioDTO.ID, soggettoCondominioDTO.ID, DateTime.Today, info); importoRata += rateVersamenti.Sum(item => item.Importo.GetValueOrDefault()); importoVersamento += rateVersamenti.Sum(item => item.ImportoPagato.GetValueOrDefault()); } saldiSoggetto.Add(new SaldoSoggettoVersamentoDTO { IdEsercizio = esercizioDTO.ID, ImportoRate = importoRata, ImportoVersamenti = importoVersamento }); } return new DatiCondomini { Esercizi = esercizi, Rate = rate, SaldiSoggetto = saldiSoggetto}; }
public DatiCondomini GetByCriteria(SearchCriteria json) { if (json == null) return null; var service = new SferaService(); var info = new UserInfo(0, json.Azienda); var eserciziAttivi = service.GetEserciziByCondominio(json.Condominio, info).Where(item => item.StatoEsercizio == StatoEsercizioEnum.Aperto).ToList(); _datiCondomini.Versamenti = service.GetVersamentiByEserciziAttiviPersone(json.Condominio, new List<int> {json.Persona}, info); _datiCondomini.Rate = service.GetRateByPersonaCondominio(json.Condominio, json.Persona, info); _datiCondomini.Esercizi = eserciziAttivi.Where(item => _datiCondomini.Versamenti.Any(vers => vers.IdEsercizio == item.ID) || _datiCondomini.Rate.Any(rate => rate.IdEsercizio == item.ID)).ToList(); return _datiCondomini; }
public DatiCondominiDto GetDati(int azienda) { var rateTemp = new List<RataPersonaDTO>() { new RataPersonaDTO() {DataScadenza = new DateTime(2014, 2, 15), ImportoRata = 456.67m} }; return new DatiCondominiDto { Rate = rateTemp }; var service = new SferaService(); HttpContext.Current.Session["utente"] = service.GetPersonaByID(5375, new UserInfo(0, azienda)); HttpContext.Current.Session["condomino"] = service.GetSoggettoCondominioById(206, new UserInfo(0, azienda)); if (HttpContext.Current.Session["utente"] != null) { var info = new UserInfo(0, azienda); var condomino = (SoggettoCondominioDTO)HttpContext.Current.Session["condomino"]; var rate = service.GetRateByPersonaCondominio(condomino.IdCondominio, ((PersonaDTO)HttpContext.Current.Session["utente"]).ID, info); return new DatiCondominiDto { Rate = rate.ToList()}; } return new DatiCondominiDto(); }
public static IEnumerable<IGrouping<int, RataPersonaDTO>> GetRate(int azienda) { var log = LogManager.GetLogger("Sfera"); try { if (HttpContext.Current.Session["utente"] != null) { var service = new SferaService(); var info = new UserInfo(0, azienda); var condomino = (SoggettoCondominioDTO)HttpContext.Current.Session["condomino"]; var rate = service.GetRateByPersonaCondominio(condomino.IdCondominio, ((PersonaDTO)HttpContext.Current.Session["utente"]).ID, info); return rate.Where(item => item.ImportoRata > 0).GroupBy(item => item.IdEsercizio); } return new List<IGrouping<int, RataPersonaDTO>>(); } catch (Exception ex) { log.ErrorException(string.Format("Load Rate fallito - azienda:{0}", azienda), ex); throw ex; } }