/// <summary> /// Method to use for clicking enter or add button /// </summary> private void AddIncomeOrExpense() { RadioButton selectedExp = flowLayoutExpenses.Controls.OfType <RadioButton>() .FirstOrDefault(r => r.Checked); RadioButton selectedInc = flowLayoutIncomes.Controls.OfType <RadioButton>() .FirstOrDefault(r => r.Checked); if (selectedExp == null && selectedInc == null) { MessageBox.Show("Please select a type"); return; } int recur = (int)numRecur.Value; if (recur > 1 && comboBoxRecur.Text == "") { MessageBox.Show("Please select recurring interval"); return; } if (selectedExp != null) { string eType = selectedExp.Text; DBMethods.AddExpense(numAmount.Value, eType, UserID, dateTimeExpInc.Value); if (recur > 1) { DBMethods.AddRecurringExpense(recur, comboBoxRecur.Text, numAmount.Value, eType, UserID, dateTimeExpInc.Value); } MessageBox.Show("Expense added!"); } else if (selectedInc != null) { string iType = selectedInc.Text; DBMethods.AddIncome(numAmount.Value, iType, UserID, dateTimeExpInc.Value); if (recur > 1) { DBMethods.AddRecurringIncome(recur, comboBoxRecur.Text, numAmount.Value, iType, UserID, dateTimeExpInc.Value); } MessageBox.Show("Income added!"); } UpdateFormHistory(); UpdateBalance(); UpdateCharts(); }
/// <summary> /// Add recurring Expense /// </summary> /// <param name="recur"></param> /// <param name="interval"></param> /// <param name="amount"></param> /// <param name="eType"></param> /// <param name="userID"></param> /// <param name="dt"></param> internal static void AddRecurringExpense(int recur, string interval, decimal amount, string eType, int userID, DateTime dt) { if (interval == "Months") { int toAdd = 1; for (int r = recur; r > 1; r--) { DBMethods.AddExpense(amount, eType, userID, dt.AddMonths(toAdd)); toAdd++; } } else if (interval == "Weeks") { int toAdd = 1; for (int r = recur; r > 1; r--) { DBMethods.AddExpense(amount, eType, userID, dt.AddDays(toAdd * 7)); toAdd++; } } }