示例#1
0
        public async Task <ActionResult> CreateIncome(CreateIncomeModel model)
        {
            var nfi = (NumberFormatInfo)CultureInfo.InvariantCulture.NumberFormat.Clone();

            nfi.NumberGroupSeparator = " ";

            //var officeRole = _db.Roles.SingleOrDefault(r => r.Name.Contains("Офис"));
            //var office = _db.Users.FirstOrDefault(u => u.Roles.Any(r => r.RoleId == officeRole.Id));
            //if (office == null) return RedirectToAction("IncomeSummary");

            //var otherSum = decimal.Parse(_db.SettingsValues.FirstOrDefault(sv => sv.Key == "OtherSum").Value
            //    .Replace(" ", string.Empty), CultureInfo.InvariantCulture);
            //var remainder = model.Amount;
            //if (otherSum > 0)
            //{
            //    _db.SettingsValues.FirstOrDefault(sv => sv.Key == "OtherSum").Value = otherSum >= model.Amount
            //        ? (otherSum - model.Amount).ToString("#,0", nfi)
            //        : (0).ToString("#,0", nfi);
            //}

            var income = new Income
            {
                Name        = model.Name,
                Amount      = model.Amount,
                DeskGroupId = model.SelectedDeskGroupId
            };

            var operation = new IncomeOperation
            {
                Income            = income,
                OperationDateTime = DateTime.Now,
                OperationTypeId   = IncomeOperation.IOType.New
            };

            //var user = await _userManager.FindByIdAsync(_userManager.GetUserId(User));

            using (var transaction = await _db.Database.BeginTransactionAsync())
            {
                _db.IncomeOperations.Add(operation);
                //_db.SetUserContext(user.Id);
                await _db.SaveChangesAsync();

                transaction.Commit();
            }

            return(RedirectToAction("IncomeSummary"));
        }
示例#2
0
        private void ShowTaxFreeIncomes()
        {
            int[]      columnWidths  = { 6, 12, 11, 10, 34 };
            DateTime   startDate     = CustomActionUI.InputDate("Введите начало периода: ", true) ?? ledger.MinWorkingDate.AddDays(1);
            DateTime   endDate       = CustomActionUI.InputDate("Введите конец периода: ", true) ?? DateTime.Today;
            Operations selectedItems = ledger.GetTaxFree(startDate, endDate);

            Console.Clear();
            Console.WriteLine($"Необлагаемые доходы за период с {startDate.ToString("dd.MM.yyyy")} по {endDate.ToString("dd.MM.yyyy")}");
            CustomActionUI.DrawBorders(columnWidths, CustomActionUI.HEADER_BORDER_SYMBOLS);
            Console.WriteLine($"\u2502 №п/п \u2502    Дата    \u2502   Сумма   \u2502   Налог  \u2502 {"Статья",-32} \u2502");
            CustomActionUI.DrawBorders(columnWidths, CustomActionUI.MIDDLE_BORDER_SYMBOLS);
            int index = 1;

            foreach (Operation item in selectedItems)
            {
                if (!(item is IncomeOperation))
                {
                    continue;
                }
                IncomeOperation income          = item as IncomeOperation;
                string          articleAndNotes = item.Article;
                if (!String.IsNullOrWhiteSpace(item.Notes))
                {
                    articleAndNotes += $" ({item.Notes})";
                    if (articleAndNotes.Length > 32)
                    {
                        articleAndNotes = articleAndNotes.Substring(0, 29) + "...";
                    }
                }
                Console.WriteLine($"\u2502 {index++,4} \u2502 {income.Date.ToString("dd.MM.yyy")} \u2502 {income.Value,9:F2} \u2502 {income.GetTaxValue(),8:F2} \u2502 {articleAndNotes,-32} \u2502");
            }
            CustomActionUI.DrawBorders(columnWidths, CustomActionUI.MIDDLE_BORDER_SYMBOLS);
            decimal sum = 0, taxSum = 0;

            selectedItems.ForEach(x => { sum += x.Value; taxSum += ((IncomeOperation)x).TaxValue; });
            Console.WriteLine($"\u2502 {" ",4} \u2502 Всего:     \u2502 {sum,9:F2} \u2502 {taxSum,8:F2} \u2502 {" ",32} \u2502");
            CustomActionUI.DrawBorders(columnWidths, CustomActionUI.FOOTER_BORDER_SYMBOLS);
            Console.WriteLine("Нажмите любую клавишу для продолжения");
            Console.ReadKey();
        }
示例#3
0
        private void ShowTable(DateTime startDate, DateTime endDate, bool ShowTotals)
        {
            int[]      columnWidths  = { 6, 12, 11, 10, 34 };
            Operations selectedItems = ledger.Incomes.GetOperationsByRange(startDate, endDate);

            Console.Clear();
            Console.WriteLine($"Доходы за период с {startDate.ToString("dd.MM.yyyy")} по {endDate.ToString("dd.MM.yyyy")}");
            CustomActionUI.DrawBorders(columnWidths, CustomActionUI.HEADER_BORDER_SYMBOLS);
            Console.WriteLine($"\u2502 №п/п \u2502    Дата    \u2502   Сумма   \u2502   Налог  \u2502 {"Статья",-32} \u2502");
            CustomActionUI.DrawBorders(columnWidths, CustomActionUI.MIDDLE_BORDER_SYMBOLS);
            int index = 1;

            foreach (Operation item in selectedItems)
            {
                if (!(item is IncomeOperation))
                {
                    continue;
                }
                IncomeOperation income          = item as IncomeOperation;
                string          articleAndNotes = item.Article;
                if (!String.IsNullOrWhiteSpace(item.Notes))
                {
                    articleAndNotes += $" ({item.Notes})";
                    if (articleAndNotes.Length > 32)
                    {
                        articleAndNotes = articleAndNotes.Substring(0, 29) + "...";
                    }
                }
                Console.WriteLine($"\u2502 {index++,4} \u2502 {income.Date.ToString("dd.MM.yyy")} \u2502 {income.Value,9:F2} \u2502 {income.GetTaxValue(),8:F2} \u2502 {articleAndNotes,-32} \u2502");
            }
            if (ShowTotals)
            {
                CustomActionUI.DrawBorders(columnWidths, CustomActionUI.MIDDLE_BORDER_SYMBOLS);
                decimal sum = 0, taxSum = 0;
                selectedItems.ForEach(x => { sum += x.Value; taxSum += ((IncomeOperation)x).TaxValue; });
                Console.WriteLine($"\u2502 {" ",4} \u2502 Всего:     \u2502 {sum,9:F2} \u2502 {taxSum,8:F2} \u2502 {" ",32} \u2502");
            }
            CustomActionUI.DrawBorders(columnWidths, CustomActionUI.FOOTER_BORDER_SYMBOLS);
        }