コード例 #1
0
ファイル: IncomesUI.cs プロジェクト: tsybulsky/training
        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);
                }
            }
        }
コード例 #2
0
ファイル: AnalysisUI.cs プロジェクト: tsybulsky/training
        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;
                }
                }
            }
        }
コード例 #3
0
        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;
                }
                }
            }
        }
コード例 #4
0
ファイル: ExpensesUI.cs プロジェクト: tsybulsky/training
        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();
                }
            }
        }