Example #1
0
        private async void AgregarGasto()
        {
            //Crea el objeto Ingreso, lo agrego a la lista del mes, y después se hace la sumatoria de la lista

            if (MontoGasto == "0" || string.IsNullOrEmpty(MontoGasto) || string.IsNullOrWhiteSpace(MontoGasto))
            {
                await dialogService.ShowMessage("Error", "Debe asignar un valor mayor que cero");

                return;
            }

            if (SelectedItem == null)
            {
                await dialogService.ShowMessage("Error",
                                                "Se debe seleccionar una categoría");

                return;
            }
            Gastos             = new Gastos();
            Gastos.Anio        = Date.ToString("yyyy", culture);
            Gastos.Mes         = Date.ToString("MMM", culture);
            Gastos.Dia         = Date.ToString("dd", culture);
            Gastos.ImagenFecha = "date";
            if (string.IsNullOrEmpty(OrigenGasto))
            {
                OrigenGasto = "Sin Origen";
            }

            Gastos.Categoria   = SelectedItem;
            Gastos.GastoNombre = string.Format("{0}{1}", OrigenGasto.Substring(0, 1).ToUpper(), OrigenGasto.Substring(1));
            switch (Gastos.Categoria)
            {
            case "Servicios":
                Gastos.ImagenOrigen = "servicios";
                break;

            case "Ocio":
                Gastos.ImagenOrigen = "ocio";
                break;

            case "Provisiones":
                Gastos.ImagenOrigen = "provisiones";
                break;

            case "Impuestos":
                Gastos.ImagenOrigen = "impuestos";
                break;

            default:
                Gastos.ImagenOrigen = "Sin Imagen Disponible";
                break;
            }
            if (MontoGasto == null)
            {
                MontoGasto = 0.ToString();
            }
            if (!double.TryParse(MontoGasto, out double result))
            {
                await dialogService.ShowMessage("Error", "El contenido del monto debe ser un número");

                MontoGasto = null;
                return;
            }
            if (!MontoGasto.Contains("-"))
            {
                Gastos.GastosCantidad = string.Format("-{0}", MontoGasto);
            }
            else
            {
                Gastos.GastosCantidad = string.Format("{0}", MontoGasto);
            }
            Gastos.ImagenMonto = "money";
            ListaGastos.Add(Gastos);
            //Realizar la sumatoria con los ingresos pertenecientes al mes y año elegido
            SumaGasto          = ListaGastos.Where(x => x.Mes == Gastos.Mes && x.Anio == Gastos.Anio).ToList().Sum(x => double.Parse(x.GastosCantidad)).ToString();
            SumaGastoCategoria = ListaGastos.Where(x => x.Mes == Gastos.Mes && x.Anio == Gastos.Anio && x.Categoria == SelectedItem).ToList().Sum(x => double.Parse(x.GastosCantidad)).ToString();
            MontoGasto         = null;
            OrigenGasto        = null;
            dataService.Save(ListaGastos, true);
            CollectionGastos = new ObservableCollection <Gastos>(ListaGastos.Where(x => x.Mes == Gastos.Mes && x.Anio == Gastos.Anio && x.Categoria == SelectedItem).OrderByDescending(x => double.Parse(x.Dia)).ToList());
            instanciarPaginasService.Instanciar();
        }