Example #1
0
        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));
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        private void ReadTotalExpense()
        {
            totalexpense = new TotalExpense();

            totalexpense.AllExpenseAdded = App.total;

            stacklayout2.BindingContext = totalexpense;

            ExpenseLable.SetBinding(Label.TextProperty, "AllExpenseAdded");
        }
Example #5
0
        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));
        }
Example #6
0
        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);
        }
Example #7
0
        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));
            }
        }
Example #9
0
        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);
        }
Example #10
0
        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);
        }
Example #11
0
        public void GivenBudget_WhenTotalExpenseIsCalled_ThenAmountIsCalculated()
        {
            var totalExpense = new TotalExpense(_budget);

            totalExpense.Amount.Should().Be(Amount.Create(-101.10M, _budget.BaseCurrency));
        }
Example #12
0
 public override string ToString()
 {
     return(TotalExpense.ToString());
 }