private void InputFromConsole() { Console.Clear(); bool working = true; DateTime?date; decimal? value; string incomeFrom = ""; string notes; while (working) { date = CustomActionUI.InputDate("Введите дату получения дохода (пустая строка - завершить): ", true); if (date == null) { return; } if (date < ledger.MinWorkingDate) { Console.WriteLine($"Минимальная допустимая дата {ledger.MinWorkingDate.ToString("dd.MM.yyyy")}"); continue; } value = CustomActionUI.InputDecimal($"Укажите сумму дохода: ", false); string[] articles = { "Заработная плата", "по договору подряда", "кредит в банке", "проценты по депозиту", "выигрыш в казино", "прочие" }; int choice = CustomActionUI.ShowMenu("Выберите источник дохода", articles, false); if (choice < articles.Length - 1) { incomeFrom = articles[choice - 1]; } else if (choice == articles.Length) { Console.Write("Укажите иной источник дохода: "); incomeFrom = Console.ReadLine(); } double taxRate = (CustomActionUI.ShowYesNo("Облагается налогом?")) ? 13 : 0; Console.Write("\r\nПримечание: "); notes = Console.ReadLine(); try { ledger.AddIncome((DateTime)date, (decimal)value, incomeFrom, taxRate, notes); } catch (Exception e) { Console.WriteLine(e.Message); } } }
public void ShowAnalysis() { string[] menuItems = { "анализ доходов за период по источнику", "анализ расходов за период по статье", "обороты за период", "Уплачено налогов за период", "Необрлагаемый доход" }; while (true) { int result = CustomActionUI.ShowMenu("Анализ доходов и расходов", menuItems, true); switch (result) { case 1: { OutputIncomesByArticle(); break; } case 2: { OutputExpensesByArticle(); break; } case 3: { ShowBalance(); break; } case 4: { ShowTaxByPeriod(); break; } case 5: { ShowTaxFreeIncomes(); break; } default: { return; } } } }
public void Run() { string[] menuItems = { "Обработка доходов", "Обработка расходов", "Анализ" }; bool running = true; while (running) { int choice = CustomActionUI.ShowMenu("Выберите действие: ", menuItems, true); switch (choice) { case 0: { running = !CustomActionUI.ShowYesNo("Вы действительно хотите выйти?"); break; } case 1: { incomesUI.Show(); break; } case 2: { expensesUI.Show(); break; } case 3: { analysisUI.ShowAnalysis(); break; } } } }
private void InputFromConsole() { Console.Clear(); bool working = true; DateTime?date; decimal? value; string incomeFrom; string notes; while (working) { date = CustomActionUI.InputDate("Введите дату расхода (пустая строка - завершить): ", true); if (date == null) { return; } if (date < ledger.MinWorkingDate) { Console.WriteLine($"Минимальная допустимая дата {ledger.MinWorkingDate.ToString("dd.MM.yyyy")}"); continue; } value = CustomActionUI.InputDecimal($"Укажите сумму расхода: ", false); string[] articleItems = { "Питание", "Коммунальные платежи", "Проезд", "Одежда/обувь", "Хобби", "Обустройство дома, ремонт", "Развлечение", "Подардки", "Прочие" }; int choice = CustomActionUI.ShowMenu("Выберите статью расхода: ", articleItems, false); if (choice == articleItems.Length - 1) { Console.WriteLine("Укажите иную статью расхода: "); incomeFrom = Console.ReadLine(); } else { incomeFrom = articleItems[choice - 1]; } Console.Write("Примечание: "); notes = Console.ReadLine(); try { if (!ledger.AddExpense((DateTime)date, (decimal)value, incomeFrom, notes)) { Console.WriteLine(ledger.ErrorMessage); Console.ReadKey(); } } catch (Exception e) { Console.WriteLine(e.Message); Console.ReadKey(); } } }