async void MenuItem_Clicked(object sender, System.EventArgs e)
        {
            int s = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);

            var mi = ((MenuItem)sender);
            var viewCellSelected    = sender as MenuItem;
            var calculationToDelete = viewCellSelected?.BindingContext as SQL_SpaarDoelen;

            await _connection.ExecuteAsync("Update SQL_Budget SET Value = Value + ? Where Name = ?", calculationToDelete.Saved, "Budget");



            var Transaction = new SQL_Transacties();

            Transaction.Date      = DateTime.Now;
            Transaction.Value     = calculationToDelete.Saved;
            Transaction.Category  = "Spaardoel";
            Transaction.Name      = "Opnamen Spaardoel: " + calculationToDelete.Name;
            Transaction.Recurring = false;
            await _connection.InsertAsync(Transaction);


            await _connection.DeleteAsync(calculationToDelete);

            var spaardoelen = await _connection.Table <SQL_SpaarDoelen>().ToListAsync();

            _sqlSpaarDoelen      = new ObservableCollection <SQL_SpaarDoelen>(spaardoelen);
            ListView.ItemsSource = _sqlSpaarDoelen;
        }
Beispiel #2
0
        public async Task <double> BudgetPlaybackSpaardoel(int days, double budget)
        {
            while (days > 0) //This is the main loop responsible for calculating all spaardoel progression.
            {
                //Defining some local variables
                var playbackDate = DateTime.Now.AddDays(-days + 1);                                                                     //Want to make sure to calculate for the right day.
                var spaardoelen  = await _connection.QueryAsync <SQL_SpaarDoelen>("SELECT * FROM SQL_SpaarDoelen WHERE NOT Completed"); //Load all not completed Spaardoelen from the database.

                foreach (var item in spaardoelen)                                                                                       //Loop to make sure we don't forget a Spaardoel, selected from query above.
                {
                    //This loop contains 2 tasks:
                    //Task 1, is to add all the deposits to the transaction table
                    //Task 2, is to check if we have completed the spaardoel

                    //Task 1: Prepairing new transaction
                    var transaction = new SQL_Transacties
                    {
                        Date      = playbackDate,
                        Value     = item.Value,
                        Category  = "Spaardoel",
                        Name      = "Inleg Spaardoel: " + item.Name,
                        Recurring = false,
                        Recurtype = ""
                    };
                    Debug.WriteLine("Updating budget, ? lowered the budget with ?", item.Name, item.Value);
                    await _connection.InsertAsync(transaction); //Push transaction to database

                    budget += transaction.Value;                //Updating the budget, with the daily deposit amount

                    //Update Progressbar
                    item.ProgressBar = (item.TotalDays - item.Days) / item.TotalDays;

                    item.Saved += -item.Value;

                    //Task 2: Check if spaardoel is completed
                    if (item.Days <= 0)
                    {
                        //Change Completed to True
                        await _connection.ExecuteAsync("Update SQL_SpaarDoelen SET Completed = 1 , ProgressBar = ? Where Id = ?", item.ProgressBar, item.Id);

                        Debug.WriteLine("Spaardoel ? is completed, Updating to completed!", item.Name);
                    }
                    else
                    {
                        //lower day by 1
                        //item.Days--;
                        await _connection.ExecuteAsync("Update SQL_SpaarDoelen SET Days = ? , ProgressBar = ? , Saved = ? Where Id = ?", (item.Days - 1), item.ProgressBar, item.Saved, item.Id);

                        Debug.WriteLine("Spaardoel ? Days have been lowered by 1, ? Remaining", item.Name, item.Days);
                    }
                }
                days--; //Lower the day count by 1 because otherwise we'll be stuck here for a looooooong while
            }

            return(budget); //Return new budget
        }
Beispiel #3
0
        public async Task <double> BudgetPlaybackBudget(int days, double budget)
        {
            while (days > 0) //This is the main loop responsible for the daily budget calculations.
            {
                double transvalue = 0;
                int    s          = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.AddDays((-days + 1)).Month);

                var recurringTransacties = await _connection.QueryAsync <SQL_Transacties>("SELECT * FROM SQL_Transacties WHERE Recurring");

                foreach (var item in recurringTransacties)
                {
                    if (item.Recurtype == "Maandelijks")
                    {
                        transvalue += item.Value / s;
                        budget     += item.Value / s;
                    }
                    else if (item.Recurtype == "Per kwartaal")
                    {
                        transvalue += item.Value / (k / 4);
                        budget     += item.Value / (k / 4);
                    }
                    else if (item.Recurtype == "Jaarlijks")
                    {
                        transvalue += item.Value / k;
                        budget     += item.Value / k;
                    }
                }


                //add new transaction for overviews
                var transaction = new SQL_Transacties();
                transaction.Date      = DateTime.Now.AddDays((-days + 1));
                transaction.Value     = transvalue;
                transaction.Category  = "Budget";
                transaction.Recurring = false;
                transaction.Name      = ("Budget voor " + transaction.Date.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture));
                transaction.Recurtype = "";
                await _connection.InsertAsync(transaction);


                days--; //Lower the day count by 1 because otherwise we'll be stuck here
            }

            return(budget); //Return new budget
        }
        private async void InsertTransaction()
        {
            var Transaction = new SQL_Transacties();

            Transaction.Date      = DateTime.Now;
            Transaction.Value     = -InputDay;
            Transaction.Category  = "Inleg Spaardoel";
            Transaction.Name      = "Inleg Spaardoel: " + SpaardoelNaam.Text;
            Transaction.Recurring = false;
            await _connection.InsertAsync(Transaction);


            //Fake it till you make it!
            var list_budget = await _connection.QueryAsync <SQL_Transacties>("SELECT * FROM SQL_Budget");

            _budget -= InputDay;
            foreach (var item in list_budget)
            {
                _budget += item.Value;
            }
            await _connection.ExecuteAsync("Update SQL_Budget SET Value = ? Where Name = ?", _budget, "Budget");
        }
        private async void Button_OnClicked(object sender, EventArgs e)
        {
            int s = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);
            int k = GetDaysInYear(DateTime.Now.Year);

            if (Pick_cat.SelectedItem == null)
            {
                await DisplayAlert("Alert", "Kies een geldige categorie", "OK");
            }
            else if (Bedrag.Text == null)
            {
                await DisplayAlert("Alert", "Voer een bedrag in", "OK");
            }
            else if (double.Parse(Bedrag.Text.Replace(",", "."), System.Globalization.CultureInfo.InvariantCulture) ==
                     0.00)
            {
                await DisplayAlert("Alert", "Voer een geldig bedrag in", "OK");
            }
            else
            {
                var player = Plugin.SimpleAudioPlayer.CrossSimpleAudioPlayer.Current;
                player.Load("cash.wav");

                player.Play();


                var inkomsten = new SQL_Transacties(); //link with table
                inkomsten.Date      = DateTime.Now;
                inkomsten.Value     = double.Parse(Bedrag.Text.Replace(",", "."), System.Globalization.CultureInfo.InvariantCulture);
                inkomsten.Category  = Pick_cat.SelectedItem.ToString();
                inkomsten.Recurring = Maand_Inkomst.IsToggled;
                inkomsten.Recurtype = "";
                if (Naam.Text == null)
                {
                    inkomsten.Name = Pick_cat.SelectedItem.ToString();
                }
                else
                {
                    inkomsten.Name = Naam.Text;
                }



                var list_budget = await _connection.QueryAsync <SQL_Transacties>("SELECT * FROM SQL_Budget");

                if (Maand_Inkomst.IsToggled)
                {
                    inkomsten.Recurtype = recurtype.SelectedItem.ToString();
                    inkomsten.Name     += " - " + recurtype.SelectedItem.ToString();
                    await _connection.InsertAsync(inkomsten);

                    inkomsten.Recurring = false;
                    inkomsten.Name      = $"Update budget - {inkomsten.Category}";
                    // if it is monthly income
                    if (recurtype.SelectedItem.ToString() == "Maandelijks")
                    {
                        _budget         += inkomsten.Value / s;
                        inkomsten.Value /= s;

                        foreach (var item in list_budget)
                        {
                            _budget += item.Value;
                        }

                        await _connection.InsertAsync(inkomsten);

                        await _connection.ExecuteAsync("Update SQL_Budget SET Value = ? Where Name = ?", _budget, "Budget");
                    }
                    // if it is quartarly income
                    else if (recurtype.SelectedItem.ToString() == "Per kwartaal")
                    {
                        _budget         += inkomsten.Value / (k / 4);
                        inkomsten.Value /= (k / 4);
                        foreach (var item in list_budget)
                        {
                            _budget += item.Value;
                        }

                        await _connection.InsertAsync(inkomsten);

                        await _connection.ExecuteAsync("Update SQL_Budget SET Value = ? Where Name = ?", _budget, "Budget");
                    }
                    // if it is a yearly incme
                    else if (recurtype.SelectedItem.ToString() == "Jaarlijks")
                    {
                        _budget         += inkomsten.Value / k;
                        inkomsten.Value /= k;
                        foreach (var item in list_budget)
                        {
                            _budget += item.Value;
                        }

                        await _connection.InsertAsync(inkomsten);

                        await _connection.ExecuteAsync("Update SQL_Budget SET Value = ? Where Name = ?", _budget, "Budget");
                    }
                }
                else if (!Maand_Inkomst.IsToggled)
                {
                    _budget += inkomsten.Value;
                    foreach (var item in list_budget)
                    {
                        _budget += item.Value;
                    }
                    await _connection.InsertAsync(inkomsten);

                    await _connection.ExecuteAsync("Update SQL_Budget SET Value = ? Where Name = ?", _budget, "Budget");
                }
                await DisplayAlert("Gelukt", "Inkomsten succesvol toegevoegd", "OK");

                if (App.Current.Properties.ContainsKey("savedPropA"))
                {
                    Analytics.TrackEvent("Inkomsten Aangemaakt");
                    await Navigation.PushAsync(new BudgetBuddyPage());

                    Navigation.RemovePage(this);
                }
                else
                {
                    App.Current.MainPage = new Uitgaven();
                }
            }
        }
        private async void Button_OnClicked(object sender, EventArgs e)
        {
            _Bedrag = Convert.ToDouble(Bedrag.Text, System.Globalization.CultureInfo.InvariantCulture);
            if (Pick_cat.SelectedItem == null)
            {
                await DisplayAlert("Alert", "Kies een geldige categorie", "OK");
            }
            else if (Bedrag.Text == null)
            {
                await DisplayAlert("Alert", "Voer een bedrag in", "OK");
            }
            else if (double.Parse(Bedrag.Text.Replace(",", "."), System.Globalization.CultureInfo.InvariantCulture) ==
                     0.00)
            {
                await DisplayAlert("Alert", "Voer een geldig bedrag in", "OK");
            }
            else
            {
                var player = Plugin.SimpleAudioPlayer.CrossSimpleAudioPlayer.Current;
                player.Load("cash.wav");

                player.Play();


                var uitgaven = new SQL_Transacties();
                uitgaven.Date      = DateTime.Now;
                uitgaven.Value     = -double.Parse(Bedrag.Text.Replace(",", "."), System.Globalization.CultureInfo.InvariantCulture);
                uitgaven.Category  = Pick_cat.SelectedItem.ToString();
                uitgaven.Recurring = Vaste_Lasten.IsToggled;
                uitgaven.Recurtype = "";
                if (Naam.Text == null)
                {
                    uitgaven.Name = Pick_cat.SelectedItem.ToString();
                }
                else
                {
                    uitgaven.Name = Naam.Text;
                }



                var list_budget = await _connection.QueryAsync <SQL_Transacties>("SELECT * FROM SQL_Budget");

                if (Vaste_Lasten.IsToggled)
                {
                    // add database entry for budget samenstelling
                    uitgaven.Recurtype = recurtype.SelectedItem.ToString();
                    uitgaven.Name     += " - " + recurtype.SelectedItem.ToString();
                    await _connection.InsertAsync(uitgaven);

                    //change variables for update budget record
                    uitgaven.Recurring = false;
                    uitgaven.Name      = $"Update budget - {uitgaven.Category}";

                    int k = GetDaysInYear(DateTime.Now.Year);

                    if (recurtype.SelectedItem.ToString() == "Maandelijks")
                    {
                        _budget        += uitgaven.Value / s;
                        uitgaven.Value /= s;
                        foreach (var item in list_budget)
                        {
                            _budget += item.Value;
                        }
                        await _connection.InsertAsync(uitgaven);

                        await _connection.ExecuteAsync("Update SQL_Budget SET Value = ? Where Name = ?", _budget, "Budget");
                    }

                    else if (recurtype.SelectedItem.ToString() == "Per kwartaal")
                    {
                        _budget        += uitgaven.Value / (k / 4);
                        uitgaven.Value /= (k / 4);
                        foreach (var item in list_budget)
                        {
                            _budget += item.Value;
                        }

                        await _connection.InsertAsync(uitgaven);

                        await _connection.ExecuteAsync("Update SQL_Budget SET Value = ? Where Name = ?", _budget, "Budget");
                    }
                    else if (recurtype.SelectedItem.ToString() == "Jaarlijks")
                    {
                        _budget        += uitgaven.Value / k;
                        uitgaven.Value /= k;
                        foreach (var item in list_budget)
                        {
                            _budget += item.Value;
                        }

                        await _connection.InsertAsync(uitgaven);

                        await _connection.ExecuteAsync("Update SQL_Budget SET Value = ? Where Name = ?", _budget, "Budget");
                    }
                }
                else if (!Vaste_Lasten.IsToggled)
                {
                    _budget += uitgaven.Value;
                    foreach (var item in list_budget)
                    {
                        _budget += item.Value;
                    }
                    await _connection.InsertAsync(uitgaven);

                    await _connection.ExecuteAsync("Update SQL_Budget SET Value = ? Where Name = ?", _budget, "Budget");
                }

                await DisplayAlert("Gelukt", "Uitgaven succesvol toegevoegd", "OK");

                if (App.Current.Properties.ContainsKey("savedPropA"))
                {
                    Analytics.TrackEvent("Uitgaven Toegevoed");
                    await Navigation.PushAsync(new BudgetBuddyPage());

                    Navigation.RemovePage(this);
                }
                else
                {
                    App.Current.Properties.Add("savedPropA", "start");
                    App.Current.SavePropertiesAsync();
                    App.Current.MainPage = new MainPage();
                }
            }
        }