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")); }
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(); }
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); }