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};
        }
Beispiel #2
0
        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;
        }