Exemplo n.º 1
0
        static void Test2()
        {
            // Создадим несколько объектов структуры даты и заполним ее.
            DateStruct date1 = new DateStruct()
            {
                Day    = 12,
                Hour   = 10,
                Minute = 12,
                Month  = Months.December,
                Year   = 2020
            };

            DateStruct date2 = new DateStruct()
            {
                Day    = 14,
                Hour   = 11,
                Minute = 33,
                Month  = Months.May,
                Year   = 2020
            };

            DateStruct date3 = new DateStruct()
            {
                Day    = 23,
                Hour   = 6,
                Minute = 44,
                Month  = Months.April,
                Year   = 2021
            };

            DateStruct date4 = new DateStruct()
            {
                Day    = 11,
                Hour   = 15,
                Minute = 17,
                Month  = Months.March,
                Year   = 2021
            };

            // Создадим несколько объектов
            ConsignmentNote minskGorElCN = new ConsignmentNote(new Date(date1), new MinskEnergyEstablishment());

            minskGorElCN.GoodsPricePair.Add("Счетчик \"Заря\"", 1543.23);
            minskGorElCN.GoodsPricePair.Add("Счетчик \"M23\"", 2543.23);
            minskGorElCN.GoodsPricePair.Add("Счетчик \"Электрон\"", 543.23);

            ConsignmentNote minskGorElCN2 = new ConsignmentNote(new Date(date2), new MinskEnergyEstablishment());

            minskGorElCN2.GoodsPricePair.Add("Счетчик \"Вега-123\"", 15233.23);
            minskGorElCN2.GoodsPricePair.Add("Счетчик \"M99\"", 25423.23);
            minskGorElCN2.GoodsPricePair.Add("Счетчик \"NewWave\"", 5143.23);

            ConsignmentNote minskGorElCN3 = new ConsignmentNote(new Date(date3), new MinskEnergyEstablishment());

            minskGorElCN3.GoodsPricePair.Add("Мультиметр \"Тестер-92\"", 133.23);
            minskGorElCN3.GoodsPricePair.Add("Галогенная лампа \"ГЛ-23\"", 423.23);
            minskGorElCN3.GoodsPricePair.Add("Провод 100м \"12-12\"", 5143.23);

            ConsignmentNote minskGorElCN4 = new ConsignmentNote(new Date(date4), new MinskEnergyEstablishment());

            minskGorElCN4.Check = null; // Чека нет.
            minskGorElCN4.GoodsPricePair.Add("Набор инструментов \"Электрик\"", 133.23);
            minskGorElCN4.GoodsPricePair.Add("Щипцы \"ЩС-13\"", 423.23);
            minskGorElCN4.GoodsPricePair.Add("Сварочный аппарат \"12-12\"", 5143.23);

            ConsignmentNote minskGorElCN5 = new ConsignmentNote(new Date(date3), new MinskEnergyEstablishment());

            minskGorElCN5.Check = null; // Чека нет.
            minskGorElCN5.GoodsPricePair.Add("Мультиметр \"Тестер-92\"", 133.23);
            minskGorElCN5.GoodsPricePair.Add("Галогенная лампа \"ГЛ-23\"", 423.23);
            minskGorElCN5.GoodsPricePair.Add("Провод 100м \"12-12\"", 5143.23);

            // Заполним контейнер объектами.
            Accounting accounting = new Accounting();

            accounting.Documents.Add(minskGorElCN);
            accounting.Documents.Add(minskGorElCN2);
            accounting.Documents.Add(minskGorElCN3);
            accounting.Documents.Add(minskGorElCN4);
            accounting.Documents.Add(minskGorElCN5);

            // Напечатаем на консоль.
            accounting.PrintDocuments();

            // Передадим классу контроллеру, класс контейнер.
            AccountingController accountingController = new AccountingController(accounting);
            // Протестируем методы по заданию.
            string findName = "Мультиметр \"Тестер-92\"";
            var    res      = accountingController.CalculateFinallyCost(findName);

            Console.WriteLine($"Суммарная стоимость {findName} = {res}");
            Console.WriteLine($"Количество чеков для накладных = {accountingController.CalculateCheckCount()}");
            // Возьмем интервал год, и напечатаем НЕ меньше ДВУХ дат.
            accountingController.PrintTwoDocs(DateTime.ParseExact("2020-12-12",
                                                                  "yyyy-MM-dd",
                                                                  System.Globalization.CultureInfo.InvariantCulture),
                                              DateTime.ParseExact("2020-01-12",
                                                                  "yyyy-MM-dd",
                                                                  System.Globalization.CultureInfo.InvariantCulture));
        }
Exemplo n.º 2
0
 public AccountingController(Accounting accounting)
 {
     _accounting = accounting;
 }
Exemplo n.º 3
0
        static void Test2()
        {
            // Создадим несколько объектов структуры даты и заполним ее.
            DateStruct date1 = new DateStruct()
            {
                Day    = 11,
                Hour   = 23,
                Minute = 59,
                Month  = Months.December,
                Year   = 2020
            };

            DateStruct date2 = new DateStruct()
            {
                Day    = 14,
                Hour   = 11,
                Minute = 33,
                Month  = Months.May,
                Year   = 2020
            };

            DateStruct date3 = new DateStruct()
            {
                Day    = 23,
                Hour   = 6,
                Minute = 44,
                Month  = Months.April,
                Year   = 2021
            };

            DateStruct date4 = new DateStruct()
            {
                Day    = 11,
                Hour   = 15,
                Minute = 17,
                Month  = Months.March,
                Year   = 2021
            };

            // Создадим несколько объектов
            ConsignmentNote minskGorElCN = new ConsignmentNote(new Date(date1),
                                                               new MinskEnergyEstablishment());

            minskGorElCN.GoodsPricePair.Add("Счетчик \"Заря\"", 1543.23);
            minskGorElCN.GoodsPricePair.Add("Счетчик \"M23\"", 2543.23);
            minskGorElCN.GoodsPricePair.Add("Счетчик \"Электрон\"", 543.23);

            ConsignmentNote minskGorElCN2 = new ConsignmentNote(new Date(date2),
                                                                new MinskEnergyEstablishment());

            minskGorElCN2.GoodsPricePair.Add("Счетчик \"Вега-123\"", 15233.23);
            minskGorElCN2.GoodsPricePair.Add("Счетчик \"M99\"", 25423.23);
            minskGorElCN2.GoodsPricePair.Add("Счетчик \"NewWave\"", 5143.23);

            ConsignmentNote minskGorElCN3 = new ConsignmentNote(new Date(date3),
                                                                new MinskEnergyEstablishment());

            minskGorElCN3.GoodsPricePair.Add("Мультиметр \"Тестер-92\"", 133.23);
            minskGorElCN3.GoodsPricePair.Add("Галогенная лампа \"ГЛ-23\"", 423.23);
            minskGorElCN3.GoodsPricePair.Add("Провод 100м \"12-12\"", 5143.23);

            ConsignmentNote minskGorElCN4 = new ConsignmentNote(new Date(date4),
                                                                new MinskEnergyEstablishment());

            minskGorElCN4.Check = null; // Чека нет.
            minskGorElCN4.GoodsPricePair.Add("Набор инструментов \"Электрик\"", 133.23);
            minskGorElCN4.GoodsPricePair.Add("Щипцы \"ЩС-13\"", 423.23);
            minskGorElCN4.GoodsPricePair.Add("Сварочный аппарат \"12-12\"", 5143.23);

            ConsignmentNote minskGorElCN5 = new ConsignmentNote(new Date(date3),
                                                                new MinskEnergyEstablishment());

            minskGorElCN5.Check = null; // Чека нет.
            minskGorElCN5.GoodsPricePair.Add("Мультиметр \"Тестер-92\"", 133.23);
            minskGorElCN5.GoodsPricePair.Add("Галогенная лампа \"ГЛ-23\"", 423.23);
            minskGorElCN5.GoodsPricePair.Add("Провод 100м \"12-12\"", 5143.23);

            // Заполним контейнер объектами.
            Accounting accounting = new Accounting();

            accounting.Documents.Add(minskGorElCN);
            accounting.Documents.Add(minskGorElCN2);
            accounting.Documents.Add(minskGorElCN3);
            accounting.Documents.Add(minskGorElCN4);
            accounting.Documents.Add(minskGorElCN5);

            /**
             * Вызовем assert.
             *
             * Проверяем утверждение, что количество объектов, должно быть больше 0
             * если объектов больше 0 условие верное и срабатывать не будет, сработает только в
             * том случае если утверждение ЛОЖНО, а именно, когда объектов 0,
             * ЧТобы вызвать этот assert, нужно заккоментировать три строки 186, 187, 188
             */
            System.Diagnostics.Debug.Assert(minskGorElCN5.GoodsPricePair.Count > 0,
                                            "Список товаров в накладной не может быть пуст!");

            // Если условие верное
            if (accounting.Documents.Count == 0)
            {
                // выбрасываем исключение
                throw new EmptyObjectsException();
            }
            // Напечатаем на консоль информацию об объектах
            accounting.PrintDocuments();

            // Передадим классу контроллеру, класс контейнер.
            AccountingController accountingController = new AccountingController(accounting);
            // Протестируем методы по заданию.
            string findName = "Мультиметр \"Тестер-92\"";
            var    res      = accountingController.CalculateFinallyCost(findName);

            Console.WriteLine($"Суммарная стоимость {findName} = {res}");
            Console.WriteLine($"Количество чеков для накладных = {accountingController.CalculateCheckCount()}");
            // Возьмем интервал год, и напечатаем НЕ меньше ДВУХ дат.
            accountingController.PrintTwoDocs(DateTime.ParseExact("2020-12-12",
                                                                  "yyyy-MM-dd",
                                                                  System.Globalization.CultureInfo.InvariantCulture),
                                              DateTime.ParseExact("2020-01-12",
                                                                  "yyyy-MM-dd",
                                                                  System.Globalization.CultureInfo.InvariantCulture));
        }