public void GivenBudget_WhenTotalExpenseForSpecificTypeIsCalled_ThenAmountIsCalculated() { var totalExpense = new TotalExpense(_budget); totalExpense.For(e => e.Category == Category.HomeAndBills) .Amount.Should().Be(Amount.Create(-50.55M, _budget.BaseCurrency)); }
public Expense Get() { string fragxml = ""; TotalExpense tExpense = new TotalExpense(); try { fragxml = cleanData(getXMLtext(getFilePath())); tExpense = populateTotalExpense(fragxml); if (tExpense.Total > 0) { calcTotalexcl(tExpense); } } catch (FileNotFoundException) { } catch (XmlException) { } catch (Exception) { } return(tExpense); }
public TotalExpense calcTotalexcl(TotalExpense tExpense) { tExpense.Gst = getGST(); tExpense.GstAmount = (tExpense.Total * (tExpense.Gst / 100)); tExpense.TotalExcl = (tExpense.Total - (tExpense.Total * (tExpense.Gst / 100))); return(tExpense); }
private void ReadTotalExpense() { totalexpense = new TotalExpense(); totalexpense.AllExpenseAdded = App.total; stacklayout2.BindingContext = totalexpense; ExpenseLable.SetBinding(Label.TextProperty, "AllExpenseAdded"); }
public IActionResult FinalizeShopping([Bind("Id, Subject, Value, IsCovered, ExpenseCategory, GroupId, ParticipantIds, ParticipantsCharge, DidParticipantsPay")] ShoppingFinalizationViewModel sfvm) { //TODO:check validation after adding it if (ModelState.IsValid) { //TODO: change to currentuserId var currentUserId = 1; bool isCovered = sfvm.IsCovered ? true : sfvm.DidParticipantsPay.All(pc => pc == true); var totalExpense = new TotalExpense { Covered = isCovered, FinalizationDate = DateTime.Now, OwnerId = currentUserId, ExpenseCategory = sfvm.ExpenseCategory, Subject = sfvm.Subject, Value = sfvm.Value }; _context.TotalExpenses.Add(totalExpense); _context.SaveChanges(); var partialExpenses = new List <PartialExpense>(); for (int i = 0; i < sfvm.ParticipantIds.Length; i++) { partialExpenses.Add(new PartialExpense { Covered = sfvm.DidParticipantsPay[i], SettlementDate = sfvm.DidParticipantsPay[i] ? DateTime.Now : (DateTime?)null, TeamId = sfvm.GroupId, TotalExpenseId = totalExpense.Id, UserId = sfvm.ParticipantIds[i], Value = sfvm.ParticipantsCharge[i] }); } _context.PartialExpenses.AddRange(partialExpenses); _context.SaveChanges(); _context.ComplexOrders.Remove(new SingleComplexOrder { Id = sfvm.Id }); _context.SaveChanges(); return(RedirectToAction("Index", "BudgetManager", new { id = currentUserId })); } return(PartialView("_finalizeShoppingPartial", sfvm)); }
private static TotalExpense [] InitializeTotalExpenses(FlatmateContext context, User [] users) { var totalExpenses = new TotalExpense[] { new TotalExpense { Covered = false, ExpenseCategory = Helpers.ExpenseCategory.Shopping, FinalizationDate = DateTime.Parse("05/05/2018"), Subject = "Nowe żarówki", Value = 10.0, OwnerId = users.First(u => u.FirstName == "Robert").Id }, new TotalExpense { Covered = false, ExpenseCategory = Helpers.ExpenseCategory.Shopping, FinalizationDate = DateTime.Parse("08/06/2018"), Subject = "Nowa kanapa", Value = 100.0, OwnerId = users.First(u => u.FirstName == "Tom").Id }, new TotalExpense { Covered = false, ExpenseCategory = Helpers.ExpenseCategory.Shopping, FinalizationDate = DateTime.Parse("01/21/2018"), Subject = "Paliwo", Value = 107.0, OwnerId = users.First(u => u.FirstName == "Tom").Id }, new TotalExpense { Covered = false, ExpenseCategory = Helpers.ExpenseCategory.Shopping, FinalizationDate = DateTime.Parse("05/03/2019"), Subject = "Żarcie na przyjęcie", Value = 69.99, OwnerId = users.First(u => u.FirstName == "Tom").Id } }; foreach (TotalExpense te in totalExpenses) { context.TotalExpenses.Add(te); } context.SaveChanges(); return(totalExpenses); }
GivenPlannedAndActualBudgets_WhenTotalExpenseIsCalled_ThenTotalExpenseIsCalculated() { var plannedBudget = new Budget(Month.Create(2018, MonthName.May), Currency.PLN) .WithRevenue(new Money(Amount.Create(100, Currency.PLN), Category.Salary)) .WithRevenue(new Money(Amount.Create(100, Currency.PLN), Category.Salary)) .WithExpense(new Money(Amount.Create(-10, Currency.PLN), Category.BasicExpenditure)) .WithExpense(new Money(Amount.Create(-60, Currency.PLN), Category.CarAndTransport)); var actualBudget = new Budget(Month.Create(2018, MonthName.May), Currency.PLN) .WithRevenue(new Money(Amount.Create(100.90m, Currency.PLN), Category.Salary)) .WithRevenue(new Money(Amount.Create(90, Currency.PLN), Category.Salary)) .WithExpense(new Money(Amount.Create(-8, Currency.PLN), Category.BasicExpenditure)) .WithExpense(new Money(Amount.Create(-50, Currency.PLN), Category.CarAndTransport)); var totalExpense = new TotalExpense(plannedBudget, actualBudget); totalExpense.Amount.Should().Be(Amount.Create(12, Currency.PLN)); }
protected virtual void Convert(TotalGroupViewModel viewModel, StringBuilder sb, CultureInfo culture) { sb.Append(TotalCostEvent. Replace("{total}", viewModel.Total.ToMoney(culture))); if (viewModel.HasExpenses && viewModel.TotalGuests > 0) { sb.Append("<br />"); string expenses = viewModel.Expenses.Select( x => TotalExpense .Replace("{value}", x.Value1.ToMoney(culture)) .Replace("{name}", x.Name)) .Enumerate(And); sb.Append(TotalComponsed. Replace("{totalGuests}", viewModel.TotalGuests.ToMoney(culture)). Replace("{expenses}", expenses)); } }
private List <SettlementViewModel.SingleExpense> GenerateCurrentUserLiabilities(int currentUserId) { var userPartialExpenses = _context.PartialExpenses .Where(pe => pe.UserId == currentUserId && !pe.Covered) .AsNoTracking() .ToList(); var userTotalExpenses = _context.TotalExpenses .Where(te => userPartialExpenses.Any(pe => pe.TotalExpenseId == te.Id)) .AsNoTracking() .ToList(); //Users with the logged in user var userDetails = _context.Users .Where(u => userPartialExpenses.Any(pe => pe.UserId == u.Id)) .AsNoTracking() .ToList(); var teamDetails = _context.Teams .Where(t => userPartialExpenses.Any(pe => pe.TeamId == t.Id)) .AsNoTracking() .ToList(); var userLiabilities = new List <SettlementViewModel.SingleExpense>(); foreach (var pe in userPartialExpenses) { TotalExpense totalExpense = userTotalExpenses.Find(te => te.Id == pe.TotalExpenseId); var singleExpenseVM = new SettlementViewModel.SingleExpense { UserInfo = new Tuple <int, string>(pe.UserId, userDetails.Find(u => u.Id == pe.UserId).FullName), TeamInfo = new Tuple <int, string>(pe.TeamId, teamDetails.Find(t => t.Id == pe.TeamId).Name), Value = pe.Value, FinalizationDate = totalExpense.FinalizationDate, TotalExpenseId = totalExpense.Id }; userLiabilities.Add(singleExpenseVM); } return(userLiabilities); }
public TotalExpense populateTotalExpense(string fragxml) { TotalExpense tExpense = new TotalExpense(); XmlDocument doc = new XmlDocument(); doc.LoadXml(fragxml); XmlNodeList totalTags = doc.GetElementsByTagName("total"); if (totalTags.Count < 1) { tExpense.Total = 0; } else { tExpense.Total = float.Parse(totalTags[0].InnerText); } XmlNodeList cost_centerTags = doc.GetElementsByTagName("cost_centre"); if (cost_centerTags.Count < 1) { tExpense.CostCentre = "UNKNOWN"; } else { tExpense.CostCentre = cost_centerTags[0].InnerText; } XmlNodeList payment_methodTags = doc.GetElementsByTagName("payment_method"); if (payment_methodTags.Count < 1) { tExpense.Payment_method = ""; } else { tExpense.Payment_method = payment_methodTags[0].InnerText; } XmlNodeList vendorTags = doc.GetElementsByTagName("vendor"); if (vendorTags.Count < 1) { tExpense.Vendor = ""; } else { tExpense.Vendor = vendorTags[0].InnerText; } XmlNodeList descriptionTags = doc.GetElementsByTagName("description"); if (descriptionTags.Count < 1) { tExpense.Description = ""; } else { tExpense.Description = descriptionTags[0].InnerText; } XmlNodeList dateTags = doc.GetElementsByTagName("date"); if (dateTags.Count < 1) { tExpense.Date = ""; } else { tExpense.Date = dateTags[0].InnerText; } return(tExpense); }
public void GivenBudget_WhenTotalExpenseIsCalled_ThenAmountIsCalculated() { var totalExpense = new TotalExpense(_budget); totalExpense.Amount.Should().Be(Amount.Create(-101.10M, _budget.BaseCurrency)); }
public override string ToString() { return(TotalExpense.ToString()); }