public DatiCondomini Get([FromUri]SearchCriteria json) { var service = new SferaService(); var info = new UserInfo(0, json.Azienda); var filter = new MovimentoBancarioFilter { IdCondominio = json.Condominio, DataContabileIniziale = json.DataIniziale, DataContabileFinale = json.DataFinale }; var inizio = ((json.PageNumber - 1)*json.PageSize); var movimentiBancari = service.GetMovimentiByFilter(filter, inizio, json.PageSize, true, info); foreach (var movimentiBancariDTO in movimentiBancari) { if (movimentiBancariDTO.Segno == "D") movimentiBancariDTO.Importo = movimentiBancariDTO.Importo*-1; movimentiBancariDTO.Descrizione = movimentiBancariDTO.DescrizioneBreve + movimentiBancariDTO.Descrizione; } var totaleMovimenti = service.GetMovimentiCountByFilter(filter, info); // Saldi var saldiBancari = service.GetSaldiBancariByCondominio(json.Condominio, info); var condominio = service.GetCondominioById(json.Condominio, true, false, info); var saldi = new List<SaldoContoCorrente>(); foreach (var saldoBancarioDTO in saldiBancari) { var idContoCorrente = saldoBancarioDTO.IdContoCorrente; var datiBancari = condominio.DatiBancari.FirstOrDefault(item => item.ID == idContoCorrente); if (datiBancari != null) { var descrizione = datiBancari.DisplayName; var iban = datiBancari.Iban; var importo = saldoBancarioDTO.SaldoContabileBanca; saldi.Add(new SaldoContoCorrente(descrizione, iban, importo.GetValueOrDefault())); } } return new DatiCondomini { MovimentiBancari = movimentiBancari, TotalItems = totaleMovimenti, Saldi = saldi}; }
public static object GetMovimentiBancari(int? numRows, int? page, string sortField, string sortOrder, bool isSearch, string searchField, string searchString, string searchOper, string dataIniziale, string dataFinale, int idAzienda) { if (HttpContext.Current.Session["condomino"] != null) { var service = new SferaService(); var info = new UserInfo(0, idAzienda); var condomino = (SoggettoCondominioDTO) HttpContext.Current.Session["condomino"]; var filter = new MovimentoBancarioFilter { IdCondominio = condomino.IdCondominio, DataContabileIniziale = GetDataIniziale(), DataContabileFinale = GetDataFinale() }; if (isSearch) { switch (searchField) { case "Descrizione": filter.Descrizione = searchString; break; case "DescrizioneCausale": filter.DescrizioneCausale = searchString; break; } } if (!string.IsNullOrEmpty(dataIniziale)) filter.DataContabileIniziale = DateTime.Parse(dataIniziale); if (!string.IsNullOrEmpty(dataFinale)) filter.DataContabileFinale = DateTime.Parse(dataFinale); var inizio = (page*numRows) - numRows; var movimentiBancari = service.GetMovimentiByFilter(filter, inizio, numRows, true, info).OrderBy(item => item.DataContabile).ThenBy(item => item.ID).ToList(); switch (sortField) { case "DataContabile": movimentiBancari = sortOrder == "asc" ? movimentiBancari.OrderBy(item => item.DataContabile).ToList() : movimentiBancari.OrderByDescending(item => item.DataContabile).ToList(); break; case "Importo": movimentiBancari = sortOrder == "asc" ? movimentiBancari.OrderBy(item => item.Importo).ToList() : movimentiBancari.OrderByDescending(item => item.Importo).ToList(); break; case "DescrizioneCausale": movimentiBancari = sortOrder == "asc" ? movimentiBancari.OrderBy(item => item.Causale).ToList() : movimentiBancari.OrderByDescending(item => item.Causale).ToList(); break; case "Descrizione": movimentiBancari = sortOrder == "asc" ? movimentiBancari.OrderBy(item => item.DescrizioneBreve).ToList() : movimentiBancari.OrderByDescending(item => item.DescrizioneBreve). ToList(); break; } //--- format json var pageIndex = page ?? 1; //--- current page var pageSize = numRows ?? 10; //--- number of rows to show per page var totalRecords = service.GetMovimentiCountByFilter(filter, info); //--- number of total items from query var totalPages = (int) Math.Ceiling(totalRecords/(decimal) pageSize); //--- number of pages var jsonData = new { totalpages = totalPages, //--- number of pages page = pageIndex, //--- current page totalrecords = totalRecords, //--- total items rows = ( from row in movimentiBancari select new {i = row.ID, cell = new[] { row.IdentificativoDocumentoSpesa, row.DescrizioneCausale, row.DescrizioneBreve + " " + row.Descrizione, row.DataContabile.GetValueOrDefault().ToShortDateString(), row.Importo.GetValueOrDefault().ToString("c") } }).ToArray() }; return Newtonsoft.Json.JsonConvert.SerializeObject(jsonData); } return null; }