public FileContentResult Registro(M_FiltroReporte filtroReporte, int idTipoReporte = 1)
        {
            #region [Región: Obtener Reporte]
            var registroBusiness = new RegistroBusiness();

            int idUsuario = Convert.ToInt32(ClaimsPrincipal.Current.FindFirst(ClaimTypes.Sid).Value);
            var reporte   = registroBusiness.Listar(idUsuario, filtroReporte.FechaDesde ?? DateTime.Now.AddYears(-10), filtroReporte.FechaHasta ?? DateTime.Now.AddYears(10));
            #endregion

            #region [Región: Parsear Registro - Excel]
            List <M_RegistroExcel> listaRegistroExcel = new List <M_RegistroExcel>();
            foreach (var item in reporte)
            {
                M_RegistroExcel registroExcel = new M_RegistroExcel
                {
                    TipoRegistro = item.TipoRegistro?.Descripcion ?? "-",
                    Categoria    = item.Categoria?.Descripcion ?? "-",
                    SubCategoria = item.SubCategoria?.Descripcion ?? "-",
                    Moneda       = item.Moneda?.Descripcion ?? "-",
                    Importe      = string.Format(new System.Globalization.CultureInfo("es-AR"), "{0:N2}", item.Importe),
                    Fecha        = item.Fecha.ToShortDateString(),
                    Descripcion  = !string.IsNullOrEmpty(item.Descripcion) ? item.Descripcion : "-"
                };

                listaRegistroExcel.Add(registroExcel);
            }
            #endregion

            #region [Región: Exportar Excel]
            byte[] filecontent = ReporteRegistro(listaRegistroExcel);

            return(File(filecontent, ExcelExportHelper.ExcelContentType, string.Format("{0}.xlsx", "MisCuentasReporte_Registros")));

            #endregion
        }
Exemplo n.º 2
0
        public JsonResult RefrescarGraficoFlujoDinero()
        {
            try
            {
                var registroBusiness = new RegistroBusiness();
                int idUsuario        = Convert.ToInt32(ClaimsPrincipal.Current.FindFirst(ClaimTypes.Sid).Value);

                #region [Región: Declaraciones]
                decimal ingresos = 0;
                decimal gastos   = 0;
                decimal ahorros  = 0;

                bool          estadoGrafico = false;
                List <string> data          = new List <string>();
                List <string> labels        = new List <string>();
                #endregion

                #region [Región: Labels]
                labels.Add("Ingresos");
                labels.Add("Gastos");
                //labels.Add("Ahorros");
                #endregion

                #region [Región: Data]
                M_FiltroMisCuentas filtroMisCuentas = Session["FiltroMisCuentas"] as M_FiltroMisCuentas;

                var listaRegistros = registroBusiness.Listar(idUsuario, filtroMisCuentas.FechaDesde, filtroMisCuentas.FechaHasta);
                ingresos = listaRegistros.Where(x => x.idTipoRegistro == eTipoRegistro.Ingreso && x.idCategoria != eCategoria.Ahorros).Sum(x => x.Importe);
                gastos   = listaRegistros.Where(x => x.idTipoRegistro == eTipoRegistro.Gasto).Sum(x => x.Importe);
                ahorros  = listaRegistros.Where(x => x.idCategoria == eCategoria.Ahorros).Sum(x => x.Importe);

                data.Add(ingresos.ToString().Replace(',', '.'));
                data.Add(gastos.ToString().Replace(',', '.'));
                //data.Add(ahorros.ToString().Replace(',', '.'));

                estadoGrafico = (ingresos + gastos + ahorros) != 0 ? true : false;
                #endregion

                return(new JsonCamelCaseResult(new AppResponse <object>
                {
                    Data = new
                    {
                        Success = estadoGrafico,
                        labels = labels,
                        data = data
                    }
                }));
            }
            catch (Exception ex)
            {
                return(new JsonCamelCaseResult(new AppResponse <object>
                {
                    Data = new
                    {
                        Success = false,
                        Message = ex.Message.ToString()
                    }
                }));
            }
        }
Exemplo n.º 3
0
        public JsonResult RefrescarGraficoGastosCategoria()
        {
            try
            {
                var registroBusiness = new RegistroBusiness();
                int idUsuario        = Convert.ToInt32(ClaimsPrincipal.Current.FindFirst(ClaimTypes.Sid).Value);

                #region [Región: Declaraciones]
                decimal gastosCategoria = 0;

                bool          estadoGrafico = false;
                List <string> data          = new List <string>();
                List <string> labels        = new List <string>();
                #endregion


                #region [Región: Data]
                M_FiltroMisCuentas filtroMisCuentas = Session["FiltroMisCuentas"] as M_FiltroMisCuentas;

                var listaRegistros = registroBusiness.Listar(idUsuario, filtroMisCuentas.FechaDesde, filtroMisCuentas.FechaHasta).Where(x => x.idCategoria != eCategoria.Ahorros);

                #region [Región: Labels y Data]
                Dictionary <int, string> listaCategoriasPesos   = new Dictionary <int, string>();
                Dictionary <int, string> listaCategoriasDolares = new Dictionary <int, string>();

                //Gastos en Pesos
                foreach (var item in listaRegistros)
                {
                    if (item.idMoneda == eMoneda.Pesos)
                    {
                        if (!listaCategoriasPesos.Any(x => x.Key == item.idCategoria))
                        {
                            listaCategoriasPesos.Add(item.idCategoria, item.Categoria.Descripcion);
                        }
                    }
                    else
                    {
                        if (!listaCategoriasDolares.Any(x => x.Key == item.idCategoria))
                        {
                            listaCategoriasDolares.Add(item.idCategoria, item.Categoria.Descripcion);
                        }
                    }
                }

                foreach (var categoria in listaCategoriasPesos)
                {
                    labels.Add(string.Format("{0} ARS", categoria.Value));

                    gastosCategoria = listaRegistros.Where(x => x.idCategoria == categoria.Key).Sum(x => x.Importe);
                    data.Add(gastosCategoria.ToString().Replace(',', '.'));
                }

                foreach (var categoria in listaCategoriasDolares)
                {
                    labels.Add(string.Format("{0} USD", categoria.Value));

                    gastosCategoria = listaRegistros.Where(x => x.idCategoria == categoria.Key).Sum(x => x.Importe);
                    data.Add(gastosCategoria.ToString().Replace(',', '.'));
                }

                estadoGrafico = listaRegistros.Count() > 0 ? true : false;
                #endregion

                #endregion

                return(new JsonCamelCaseResult(new AppResponse <object>
                {
                    Data = new
                    {
                        Success = estadoGrafico,
                        labels = labels,
                        data = data
                    }
                }));
            }
            catch (Exception ex)
            {
                return(new JsonCamelCaseResult(new AppResponse <object>
                {
                    Data = new
                    {
                        Success = false,
                        Message = ex.Message.ToString()
                    }
                }));
            }
        }
Exemplo n.º 4
0
        public JsonResult RefrescarGraficoBalance()
        {
            try
            {
                var registroBusiness = new RegistroBusiness();
                int idUsuario        = Convert.ToInt32(ClaimsPrincipal.Current.FindFirst(ClaimTypes.Sid).Value);

                #region [Región: Declaraciones]
                decimal ingresos = 0;
                decimal gastos   = 0;
                decimal neto     = 0;

                bool          estadoGrafico = false;
                List <string> data          = new List <string>();
                List <string> labels        = new List <string>();
                #endregion

                #region [Región: Data]
                M_FiltroMisCuentas filtroMisCuentas = Session["FiltroMisCuentas"] as M_FiltroMisCuentas;
                var fechaDesde = filtroMisCuentas.FechaDesde;

                var listaRegistros = registroBusiness.Listar(idUsuario, Convert.ToDateTime("01/01/2010"), filtroMisCuentas.FechaHasta).OrderBy(x => x.Fecha).ToList();
                #region [Región: Labels y Date]
                List <DateTime> listaDias = new List <DateTime>();

                while (fechaDesde <= filtroMisCuentas.FechaHasta)
                {
                    listaDias.Add(fechaDesde);
                    fechaDesde = fechaDesde.AddDays(1);
                }

                foreach (var diaMes in listaDias)
                {
                    labels.Add(diaMes.ToString("dd/MM"));

                    ingresos = listaRegistros.Where(x => x.idTipoRegistro == eTipoRegistro.Ingreso && x.idMoneda == eMoneda.Pesos && x.idCategoria != eCategoria.Ahorros && x.Fecha <= diaMes).Sum(x => x.Importe);
                    gastos   = listaRegistros.Where(x => x.idTipoRegistro == eTipoRegistro.Gasto && x.idMoneda == eMoneda.Pesos && x.idCategoria != eCategoria.Ahorros && x.Fecha <= diaMes).Sum(x => x.Importe);
                    neto     = ingresos - gastos;

                    data.Add(neto.ToString().Replace(',', '.'));
                }

                estadoGrafico = listaRegistros.Count > 0 ? true : false;
                #endregion

                #endregion

                return(new JsonCamelCaseResult(new AppResponse <object>
                {
                    Data = new
                    {
                        Success = estadoGrafico,
                        labels = labels,
                        data = data
                    }
                }));
            }
            catch (Exception ex)
            {
                return(new JsonCamelCaseResult(new AppResponse <object>
                {
                    Data = new
                    {
                        Success = false,
                        Message = ex.Message.ToString()
                    }
                }));
            }
        }