//Berechnet for ganze Jahr
        public async Task BalanceForYearAsync()
        {
            var uNFI = new UserNumberFormat();

            decimal?summeCostsTemp, summeIncomesTemp;

            using (var dataBase = new Store.DataBase.DataBaseEF.DataBaseFile())
            {
                summeIncomesTemp = await dataBase.Incomes.AsNoTracking()
                                   .Select(c => new
                {
                    price = (decimal?)Decimal.Parse(c.PreisOfIncome,
                                                    NumberStyles.Number | NumberStyles.AllowCurrencySymbol, uNFI.GetNFI()),
                    datum = c.DateOfIncome
                })
                                   .Where(a => a.datum.Year == _year)
                                   .Select(a => a.price).SumAsync();
            }

            using (var dataBase = new Store.DataBase.DataBaseEF.DataBaseFile())
            {
                summeCostsTemp = await dataBase.Costs.AsNoTracking()
                                 .Select(c => new
                {
                    price = (decimal?)Decimal.Parse(c.PreisOfCost, NumberStyles.Number | NumberStyles.AllowCurrencySymbol, uNFI.GetNFI()),
                    datum = c.DateOfCost
                })
                                 .Where(a => a.datum.Year == _year)
                                 .Select(a => a.price).SumAsync();
            }

            _ausgabeForYear        = (decimal)summeCostsTemp;
            _einnahmeForYear       = (decimal)summeIncomesTemp;
            BalanceForYearProperty = _einnahmeForYear + _ausgabeForYear;
        }
        public object Convert(object value, Type targetType, object parameter, string language)
        {
            decimal summeCosts, summeIncomes;
            var     homeWithDaten = new MonatYearDaten();

            summeCosts   = homeWithDaten.GetWertAusgabe();
            summeIncomes = homeWithDaten.GetWertEinnahme();
            var uNFI = new UserNumberFormat();

            Balance balance = value as Balance;
            ObservableCollection <Balance> data = new ObservableCollection <Balance>();

            {
                Balance einnahmen = new Balance()
                {
                    Name       = EinnahmenAusgaben.Einnahmen.ToString(),
                    Price      = summeIncomes,
                    Percentage = homeWithDaten.GetPercentageEinnahme().ToString("P", uNFI.GetNFI())
                };
                data.Add(einnahmen);

                Balance ausgaben = new Balance()
                {
                    Name       = EinnahmenAusgaben.Ausgaben.ToString(),
                    Price      = summeCosts,
                    Percentage = homeWithDaten.GetPercentageAusgabe().ToString("P", uNFI.GetNFI())
                };
                data.Add(ausgaben);
            }
            return(data);
        }
示例#3
0
        /// <summary>
        /// Get summe one item undercategory
        /// </summary>
        /// <param name="category"></param>
        /// <param name="nameUnderCategory"></param>
        /// <param name="monat"></param>
        /// <param name="year"></param>
        /// <returns></returns>
        internal async Task <decimal> GetSummeAsync(string category, string nameUnderCategory, int monat, int year)
        {
            var uNFI = new UserNumberFormat();

            decimal?summeTemp;

            //decimal summe;

            using (var dataBase = new Store.DataBase.DataBaseEF.DataBaseFile())
            {
                summeTemp = await dataBase.Costs.AsNoTracking()
                            .Select(c => new
                {
                    nameCategory      = c.CategoryOfCost,
                    nameUnderCategory = c.CategoryUnderOfCost,
                    price             = (decimal?)Decimal.Parse(c.PreisOfCost,
                                                                NumberStyles.Number | NumberStyles.AllowCurrencySymbol, uNFI.GetNFI()),
                    datum = c.DateOfCost
                })
                            .Where(a => a.datum.Month == monat & a.datum.Year == year && a.nameCategory == category && a.nameUnderCategory == nameUnderCategory)
                            .Select(a => a.price).SumAsync();
            }
            _summeItem = (decimal)summeTemp;
            //summe = (decimal)summeTemp;
            return(_summeItem);
        }
示例#4
0
        public HomePage_Mobile()
        {
            InitializeComponent();

            datenViewModel = new MonatYearDaten();
            this.Loaded   += HomePage_Loaded;
            uNFI           = new UserNumberFormat();
        }
        public object Convert(object value, Type targetType, object parameter, string language)
        {
            if (value == null)
                return null;

            string wert = value.ToString();
            var uNFI = new UserNumberFormat();
            decimal item;
            Decimal.TryParse(wert, NumberStyles.Number | NumberStyles.AllowCurrencySymbol, uNFI.GetNFI(), out item);

            return item.ToString("C", uNFI.GetNFI());
        }
示例#6
0
        internal string GetPercentage()
        {
            UserNumberFormat uNFI = new UserNumberFormat();

            if (_summeItem == 0)
            {
                return((_summeItem * -1).ToString("P", uNFI.GetNFI()));
            }
            else
            {
                return((_summeItem / _summeItems).ToString("P", uNFI.GetNFI()));
            }
        }
示例#7
0
        private async Task <decimal> SummeRechnenAsync(string category, int monat, int year)
        {
            var uNFI = new UserNumberFormat();

            decimal?summeTemp;

            if (category == CategoryNamenIncomen.Salary.ToString() || category == CategoryNamenIncomen.OtherIncomes.ToString())
            {
                using (var dataBase = new Store.DataBase.DataBaseEF.DataBaseFile())
                {
                    summeTemp = await dataBase.Incomes.AsNoTracking()
                                .Select(c => new
                    {
                        nameCategory = c.CategoryOfIncome,
                        price        = (decimal?)Decimal.Parse(c.PreisOfIncome,
                                                               NumberStyles.Number | NumberStyles.AllowCurrencySymbol, uNFI.GetNFI()),
                        datum = c.DateOfIncome
                    })
                                .Where(a => a.datum.Month == monat & a.datum.Year == year && a.nameCategory == category)
                                .Select(a => a.price).SumAsync();
                }
            }
            else
            {
                using (var dataBase = new Store.DataBase.DataBaseEF.DataBaseFile())
                {
                    summeTemp = await dataBase.Costs.AsNoTracking()
                                .Select(c => new
                    {
                        nameCategory = c.CategoryOfCost,
                        price        = (decimal?)Decimal.Parse(c.PreisOfCost,
                                                               NumberStyles.Number | NumberStyles.AllowCurrencySymbol, uNFI.GetNFI()),
                        datum = c.DateOfCost
                    })
                                .Where(a => a.datum.Month == monat & a.datum.Year == year && a.nameCategory == category)
                                .Select(a => a.price).SumAsync();
                }
            }
            _summeItem = (decimal)summeTemp;
            return(_summeItem);
        }
示例#8
0
        private async Task DeleteItemsBtns(ListView listView)
        {
            if (listView.SelectedIndex != -1)
            {
                List <ListBalance> selectedItems = new List <ListBalance>();
                //Um die Deleten vom ListView moglich machen

                var loader = new Windows.ApplicationModel.Resources.ResourceLoader();

                foreach (ListBalance balance in listView.SelectedItems)
                {
                    selectedItems.Add(balance);
                }
                var dialogContent = new ContentDialog()
                {
                    FontFamily          = new FontFamily("Segoe Print"),
                    Background          = new SolidColorBrush(Color.FromArgb(255, 69, 184, 234)),
                    Foreground          = new SolidColorBrush(Colors.White),
                    Title               = loader.GetString("TtlDelete"),
                    Content             = loader.GetString("DialogContent"),
                    PrimaryButtonText   = loader.GetString("Yes"),
                    SecondaryButtonText = loader.GetString("No")
                };
                ContentDialogResult result = await dialogContent.ShowAsync();;

                foreach (ListBalance balance in selectedItems)
                {
                    switch (balance.CostsOrIncomes)
                    {
                        #region Costs Case

                    case "Cost":
                        if (result == ContentDialogResult.Primary)
                        {
                            using (var db = new Store.DataBase.DataBaseEF.DataBaseFile())
                            {
                                var name =
                                    (from nameCosts in db.Costs
                                     where nameCosts.CostId == balance.ID
                                     select nameCosts).FirstOrDefault();
                                db.Costs.Remove(name);
                                db.SaveChanges();
                            }
                        }
                        break;

                        #endregion

                        #region Incomes  Case

                    case "Income":
                        if (result == ContentDialogResult.Primary)
                        {
                            using (var db = new Store.DataBase.DataBaseEF.DataBaseFile())
                            {
                                var name =
                                    (from nameIncomes in db.Incomes
                                     where nameIncomes.IncomeId == balance.ID
                                     select nameIncomes).FirstOrDefault();
                                db.Incomes.Remove(name);
                                db.SaveChanges();
                            }
                        }
                        break;

                        #endregion

                    default:
                        break;
                    }
                }

                if (result == ContentDialogResult.Primary)
                {
                    var uNFI = new UserNumberFormat();

                    await datenViewModel.BalanceForYearAsync();

                    await datenViewModel.CostIncomeSummeAsync();
                }
            }
        }
        public async Task CostIncomeSummeAsync()
        {
            var uNFI = new UserNumberFormat();

            decimal?summeCostsTemp, summeIncomesTemp;

            using (var dataBase = new Store.DataBase.DataBaseEF.DataBaseFile())
            {
                summeIncomesTemp = await dataBase.Incomes.AsNoTracking()
                                   .Select(c => new
                {
                    price = (decimal?)Decimal.Parse(c.PreisOfIncome,
                                                    NumberStyles.Number | NumberStyles.AllowCurrencySymbol, uNFI.GetNFI()),
                    datum = c.DateOfIncome
                })
                                   .Where(a => a.datum.Month == _monat & a.datum.Year == _year)
                                   .Select(a => a.price).SumAsync();
            }

            using (var dataBase = new Store.DataBase.DataBaseEF.DataBaseFile())
            {
                summeCostsTemp = await dataBase.Costs.AsNoTracking()
                                 .Select(c => new
                {
                    price = (decimal?)Decimal.Parse(c.PreisOfCost, NumberStyles.Number | NumberStyles.AllowCurrencySymbol, uNFI.GetNFI()),
                    datum = c.DateOfCost
                })
                                 .Where(a => a.datum.Month == _monat & a.datum.Year == _year)
                                 .Select(a => a.price).SumAsync();
            }

            _ausgabe  = (decimal)summeCostsTemp;
            _einnahme = (decimal)summeIncomesTemp;
            _balanceEinnahmeAusgabe = _einnahme + _ausgabe;


            if (_ausgabe == 0 | _einnahme == 0)
            {
                if (_ausgabe == 0)
                {
                    _percentAusgabe = 0;
                }
                else
                {
                    _percentAusgabe = (_ausgabe * -1) / (_einnahme - _ausgabe);
                }
                if (_einnahme == 0)
                {
                    _percentEinnahme = 0;
                }
                else
                {
                    _percentEinnahme = _einnahme / (_einnahme - _ausgabe);
                }
            }
            else
            {
                _percentEinnahme = _einnahme / (_einnahme - _ausgabe);
                _percentAusgabe  = (_ausgabe * -1) / (_einnahme - _ausgabe);
            }
        }