Пример #1
0
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            BudgetItem budgetItem = _db.BudgetItems.Find(id);

            if (budgetItem == null)
            {
                return(HttpNotFound());
            }

            budgetItem.Budget = _db.Budgets.Find(budgetItem.BudgetId);
            if (budgetItem.Budget == null)
            {
                return(RedirectToAction("Index", "Households"));
            }

            var currentUserHouseholdId = Helpers.HelperMethods.GetCurrentUserHouseholdId();

            if (currentUserHouseholdId == null || budgetItem.Budget.HouseholdId != currentUserHouseholdId)
            {
                return(RedirectToAction("Index", "Households"));
            }
            var householdViewModel = new MainDashboardViewModel();

            if (householdViewModel.Budgets.Count == 0)
            {
                return(RedirectToAction("Create", "Budgets"));
            }
            ViewBag.BudgetId = new SelectList(householdViewModel.Budgets, "Id", "Name");
            return(View(budgetItem));
        }
Пример #2
0
        public ActionResult Create(BudgetItem budgetItem, int?id, string budgetItemName,
                                   string budgetItemDescription, string budgetItemTargetAmount, string budgetItemCurrentAmount)
        {
            var budgetId = id == null ? budgetItem.BudgetId : id;
            var budget   = _db.Budgets.Find(budgetId);

            if (budget == null)
            {
                ModelState.AddModelError("Budget", @"Failed to find associated Budget");
                return(RedirectToAction("Dashboard", "Home"));
            }

            if (ModelState.IsValid)
            {
                var currentUserHouseholdId = Helpers.HelperMethods.GetCurrentUserHouseholdId();
                if (currentUserHouseholdId == null || budget.HouseholdId != currentUserHouseholdId)
                {
                    return(RedirectToAction("Dashboard", "Home"));
                }

                var userId = User.Identity.GetUserId();
                if (String.IsNullOrWhiteSpace(userId))
                {
                    return(RedirectToAction("Dashboard", "Home"));
                }

                budgetItem.BudgetId = budget.Id;
                budgetItem.Created  = DateTime.Now;
                if (String.IsNullOrWhiteSpace(budgetItem.Name))
                {
                    budgetItem.Name = budgetItemName;
                }
                if (String.IsNullOrWhiteSpace(budgetItem.Description))
                {
                    budgetItem.Description = budgetItemDescription;
                }
                if (budgetItem.TargetAmount == default(Decimal))
                {
                    var targetAmount = budgetItemTargetAmount.TrimStart(new Char[] { '$' });
                    budgetItem.TargetAmount = Decimal.Parse(targetAmount);
                }

                var childBudgetItemsTargetTotal = 0m;
                foreach (var item in budget.BudgetItems)
                {
                    childBudgetItemsTargetTotal += item.TargetAmount;
                }

                childBudgetItemsTargetTotal += budgetItem.TargetAmount;
                if (childBudgetItemsTargetTotal > budget.TargetAmount)
                {
                    ModelState.AddModelError("Budget", @"BudgetItem Amounts cannot exceed (Parent) Budget Amount");
                    return(RedirectToAction("Details", "Budgets", new { id = budgetId }));
                }

                _db.BudgetItems.Add(budgetItem);
                var ret = _db.SaveChanges();
            }
            return(RedirectToAction("Details", "Budgets", new { id = budgetId }));
        }
 public ActionResult DeleteConfirmed(int id)
 {
     BudgetItem budgetItem = db.BudgetItems.Find(id);
     db.BudgetItems.Remove(budgetItem);
     db.SaveChanges();
     return RedirectToAction("Index");
 }
        public ActionResult ConfigureHouse(ConfigureHouseVM model)
        {
            var bankAccount = new BankAccount(model.StartingBalance, model.BankAccount.WarningBalance, model.BankAccount.AccountName);

            bankAccount.AccountType = model.BankAccount.AccountType;
            db.BankAccounts.Add(bankAccount);

            var budget = new Budget();

            budget.HouseholdId = (int)model.HouseholdId;
            budget.BudgetName  = model.Budget.BudgetName;
            db.Budgets.Add(budget);

            db.SaveChanges();

            var budgetItem = new BudgetItem();

            budgetItem.BudgetId     = budget.Id;
            budgetItem.TargetAmount = model.BudgetItem.TargetAmount;
            budgetItem.ItemName     = model.BudgetItem.ItemName;
            db.BudgetItems.Add(budgetItem);

            db.SaveChanges();

            return(RedirectToAction("Dashboard", "Home"));
        }
        public ActionResult New()
        {
            ViewBag.Title = "New Budget Item";
            BudgetItem budgetItem = new BudgetItem();

            return(View("BudgetItemForm", budgetItem));
        }
        public ActionResult Create(BudgetItem budgetItem)
        {
            _context.BudgetItems.Add(budgetItem);
            _context.SaveChanges();

            return(RedirectToAction("Index", "BudgetItems"));
        }
        public ActionResult Save(BudgetItem budgetItem)
        {
            if (string.IsNullOrEmpty(budgetItem.CategoryName) || !ModelState.IsValid)
            {
                return(View("BudgetItemForm", budgetItem));
            }

            if (budgetItem.Id == 0) // if new budgetItem
            {
                _context.BudgetItems.Add(budgetItem);
            }
            else
            {
                var budgetItemInDb = _context.BudgetItems.Single(b => b.Id == budgetItem.Id);
                budgetItemInDb.Amount       = budgetItem.Amount;
                budgetItemInDb.CategoryName = budgetItem.CategoryName;
                budgetItemInDb.DateUpdated  = budgetItem.DateUpdated;
                budgetItemInDb.Description  = budgetItem.Description;
            }


            try
            {
                _context.SaveChanges();
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            return(RedirectToAction("Index", "BudgetItems"));
        }
Пример #8
0
        public void getByBudgetIdTest()
        {
            int id = 37;
            List <BudgetItem> expected = new List <BudgetItem>();
            BudgetItem        c        = new BudgetItem();

            c.BudgetId = 37;
            c.Cost     = 50;
            c.Id       = 22;
            c.Name     = "watermelon";
            expected.Add(c);
            BudgetItem b = new BudgetItem();

            b.BudgetId = 37;
            b.Cost     = 60;
            b.Id       = 23;
            b.Name     = "papaya";
            expected.Add(b);

            List <BudgetItem> actual = BudgetItemModel.getByBudgetId(id);

            Assert.AreEqual(expected.Count, actual.Count);
            Console.Out.Write("Length is " + actual.Count);
            for (int i = 0; i < actual.Count; i++)
            {
                Console.Out.WriteLine("Actual is " + actual[i].Name);
                Console.Out.WriteLine("Expected is " + expected[i].Name);
                Assert.IsTrue(this.PropertiesEqual(actual[i], expected[i]));
            }
        }
Пример #9
0
 public string EnterNewBudgetItem(BudgetListItem ListItemToAdd, Guid CustomerId, string InputType)
 {
     try
     {
         int        Type         = (InputType == "SuggestedInput") ? 0 : 1;
         var        Context      = new Central();
         BudgetItem MyBudgetItem = new BudgetItem();
         MyBudgetItem.BudgetItemId        = Guid.NewGuid();
         MyBudgetItem.BudgetId            = GetBudgetId(CustomerId);
         MyBudgetItem.BudgetItemAmount    = ListItemToAdd.BudgetListItemAmount;
         MyBudgetItem.BudgetItemCategory  = ListItemToAdd.BudgetListItemCategory;
         MyBudgetItem.BudgetItemName      = ListItemToAdd.BudgetListItemName;
         MyBudgetItem.BudgetItemFrequency = ListItemToAdd.BudgetListItemFrequency;
         MyBudgetItem.BudgetItemType      = Type;
         MyBudgetItem.CreationDate        = DateTime.Now;
         MyBudgetItem.UpdateDate          = DateTime.Now;
         Context.BudgetItems.Add(MyBudgetItem);
         Context.SaveChanges();
         string Status = "Success";
         return(Status);
     }
     catch (Exception e)
     {
         return(e.ToString());
     }
 }
Пример #10
0
        public ActionResult Index(HomeModel model)
        {
            if (ModelState.IsValid)
            {
                var budget = _BudgetService.CreateBudget("Temp");

                IList <BudgetItem> itemsToAdd = new List <BudgetItem>();

                foreach (var item in model.ExpenseItems)
                {
                    var theStandardItem = _StandardItemService.GetStandardItem(item.StandardItemId);
                    var newItem         = new BudgetItem(budget, theStandardItem, item.DefaultValue, item.Name, ItemType.Expense);
                    budget.AddItem(newItem);
                }

                foreach (var incomeItems in model.IncomeItems)
                {
                    var theIncomeStandardItem = _StandardItemService.GetStandardItem(incomeItems.StandardItemId);
                    var newIncomeItem         = new BudgetItem(budget, theIncomeStandardItem, incomeItems.DefaultValue, incomeItems.Name, ItemType.Income);
                    budget.AddItem(newIncomeItem);
                }


                _BudgetService.SaveBudget(budget);

                //Look at passing the budget tp the next view via temp data

                return(RedirectToAction("NextSteps"));
            }

            return(View(model));
        }
        public async Task<IHttpActionResult> Create(BudgetItem model)
        {
            var user = db.Users.Find(User.Identity.GetUserId());

            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            var budgetItemExits = user.HouseHold.BudgetItems.Any(bi => bi.Name == model.Name);

            if (budgetItemExits) 
            {
                return Ok("You already have a budget item called: " + model.Name + " . Please chose another name.");
            }

            else
            {
                var budgetItem = new BudgetItem()
                {
                    Name = model.Name,
                    Amount = model.Amount,
                    HouseHoldId = (int)user.HouseHoldId,
                    CategoryId = model.CategoryId,
                    Frequency = model.Frequency
                };

                db.BudgetItems.Add(budgetItem);
                await db.SaveChangesAsync();

                return Ok(budgetItem);
            }

        }
Пример #12
0
        public void ConfigureCategoryLimits(BudgetItem budgetItem, Budget budget)
        {
            switch (budgetItem.Category)
            {
            case ("Coffee"):
                budget.CoffeeCategoryLimit += budgetItem.Amount;
                break;

            case ("Dining Out"):
                budget.DiningOutCategoryLimit += budgetItem.Amount;
                break;

            case ("Entertainment"):
                budget.EntertainmentCategoryLimit += budgetItem.Amount;
                break;

            case ("Gas"):
                budget.GasCategoryLimit += budgetItem.Amount;
                break;

            case ("Groceries"):
                budget.GroceriesCategoryLimit += budgetItem.Amount;
                break;
            }
            budget.MonthlyLimit += budgetItem.Amount;
            _repo.Budgets.Update(budget);
            _repo.Save();
        }
Пример #13
0
        public ActionResult BudgetRollbackToVersion(Guid budgetid, Guid versionid, bool ignorecheck = false)
        {
            string message = string.Empty;

            if (!SecurityCache.FormCan("Budget", "RollbackVersion"))
            {
                message = OptimaJet.Localization.LocalizationProvider.Provider.Get("Access is denied");
                return(new ContentResult
                {
                    ContentType = "text/html",
                    Content = DynamicEntityJSONDataSource.GetNotSuccess(message)
                });
            }
            bool needConfirm;
            var  success = BudgetItem.RollbackToVersion(budgetid, versionid, ignorecheck, out needConfirm, out message);

            if (!success)
            {
                return new ContentResult
                       {
                           ContentType = "text/html",
                           Content     = DynamicEntityJSONDataSource.GetNotSuccess(message)
                       }
            }
            ;


            return(new ContentResult
            {
                ContentType = "text/html",
                Content = DynamicEntityJSONDataSource.GetSuccess(message, needConfirm)
            });
        }
Пример #14
0
        public async Task <ActionResult <BudgetItem> > PostBudgetItem(BudgetItem budgetItem)
        {
            _context.BudgetItems.Add(budgetItem);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetBudgetItem", new { id = budgetItem.Id }, budgetItem));
        }
Пример #15
0
        public ActionResult CreateBudgetItem(BudgetItem budgetItem)
        {
            try
            {
                var userId    = this.User.FindFirstValue(ClaimTypes.NameIdentifier);
                var budgeteer = _repo.Budgeteers.GetBudgeteerByUserId(userId);
                var budget    = _repo.Budgets.GetBudgetByBudgeteerIdMonthAndYear(budgeteer.BudgeteerId, DateTime.Now.Month, DateTime.Now.Year);

                var newBudgetItem = new BudgetItem
                {
                    BudgetItemName = budgetItem.BudgetItemName,
                    Category       = budgetItem.Category,
                    Amount         = budgetItem.Amount,
                    BudgeteerId    = budgeteer.BudgeteerId
                };
                _repo.BudgetItems.Create(newBudgetItem);
                _repo.Save();

                ConfigureCategoryLimits(newBudgetItem, budget);

                return(RedirectToAction(nameof(Index)));
            }
            catch
            {
                return(View(budgetItem));
            }
        }
Пример #16
0
        private List <BudgetItem> GetBudgetItems()
        {
            List <BudgetItem> result = new List <BudgetItem>();

            try
            {
                for (int i = 0; i < dataGridView.Rows.Count - 1; i++)
                {
                    DataGridViewRow gridRow    = dataGridView.Rows[i];
                    BudgetItem      budgetItem = new BudgetItem()
                    {
                        Name      = gridRow.Cells["Name"].Value.ToString(),
                        Count     = int.Parse(gridRow.Cells["Count"].Value.ToString().Split(new[] { ' ' })[0]),
                        UnitPrice = decimal.Parse(gridRow.Cells["Price"].Value.ToString().Split(new[] { ' ' })[0]),
                    };
                    result.Add(budgetItem);
                }
            }
            catch (Exception ex)
            {
                BasicMessagesHandler.ShowErrorMessage("Po4as vytvárania rozpočtu sa vyskytla chyba", ex);
                result = null;
            }

            return(result);
        }
        public async Task <IHttpActionResult> Edit(int id, BudgetItem model)
        {
            var oldBudgetItem = db.BudgetItems.FirstOrDefault(bi => bi.id == model.id);

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            //check if name changed
            if (oldBudgetItem.Name != model.Name)
            {
                oldBudgetItem.Name = model.Name;
                await db.SaveChangesAsync();
            }

            //check if amount changed
            if (oldBudgetItem.Amount != oldBudgetItem.Amount)
            {
                oldBudgetItem.Amount = model.Amount;
                await db.SaveChangesAsync();
            }

            //check if frquency changed
            if (oldBudgetItem.Frequency != model.Frequency)
            {
                oldBudgetItem.Frequency = model.Frequency;
                await db.SaveChangesAsync();
            }

            return(Ok(oldBudgetItem));
        }
Пример #18
0
        public ActionResult Create([Bind(Include = "Id,Name,TargetAmount,HouseholdId")] Budget budget, string budgetItems, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                if (budgetItems != null)
                {
                    var budgetItemList = budgetItems.Split(",".ToCharArray());

                    foreach (var item in budgetItemList)
                    {
                        var BudgetItem = new BudgetItem()
                        {
                            Name        = item,
                            HouseholdId = budget.HouseholdId
                        };
                        budget.BudgetItems.Add(BudgetItem);
                    }
                }

                db.Budgets.Add(budget);
                db.SaveChanges();
                return(Redirect(returnUrl));
            }

            return(Redirect(returnUrl));
        }
Пример #19
0
        //SELECIONA APENAS UM ITEM
        public BudgetItem Select(int id)
        {
            BudgetItem obj = null;

            System.Data.IDbConnection objConexao;
            System.Data.IDbCommand    objCommand;
            System.Data.IDataReader   objDataReader;

            objConexao = Mapped.Connection();
            objCommand = Mapped.Command("SELECT * FROM orcamento_item WHERE ori_id = ?id", objConexao);
            objCommand.Parameters.Add(Mapped.Parameter("?id", id));

            objDataReader = objCommand.ExecuteReader();
            while (objDataReader.Read())
            {
                obj             = new BudgetItem();
                obj.Id          = Convert.ToInt32(objDataReader["ori_id"]);
                obj.Description = Convert.ToString(objDataReader["ori_descricao"]);
                obj.Type        = Convert.ToString(objDataReader["ori_tipo"]);
                obj.Amount      = Convert.ToInt32(objDataReader["ori_quantidade"]);
                obj.Price       = Convert.ToDouble(objDataReader["ori_preco_uni"]);
                obj.Active      = Convert.ToInt32(objDataReader["ori_ativo"]);
            }

            objDataReader.Close();
            objConexao.Close();

            objCommand.Dispose();
            objConexao.Dispose();
            objDataReader.Dispose();

            return(obj);
        }
Пример #20
0
        //[Authorize(Roles = "New User")]
        public async Task <ActionResult> BuildHouse(BuildHouseWizardVM model, bool isPersonalAccount = false)
        {
            if (ModelState.IsValid)
            {
                // success path
                db.Households.Add(model.Household);
                db.SaveChanges();

                var user = db.Users.Find(User.Identity.GetUserId());
                user.HouseholdId = model.Household.Id;
                rolesHelper.UpdateUserRole(user.Id, "Head");
                db.SaveChanges();

                await AuthorizeExtensions.RefreshAuthentication(HttpContext, user);

                // add bank account info
                var bankAccount = new BankAccount
                                  (
                    model.StartingBalance,
                    model.BankAccount.WarningBalance,
                    model.BankAccount.AccountName
                                  );

                bankAccount.HouseholdId = (int)user.HouseholdId;
                bankAccount.AccountType = model.BankAccount.AccountType;

                if (isPersonalAccount)
                {
                    bankAccount.OwnerId = user.Id;
                }
                else
                {
                    bankAccount.OwnerId = null;
                }

                db.BankAccounts.Add(bankAccount);

                // add budget info
                var budget = new Budget();
                budget.HouseholdId = (int)model.Household.Id;
                budget.BudgetName  = model.Budget.BudgetName;
                db.Budgets.Add(budget);
                db.SaveChanges();

                // add budget item info
                var budgetItem = new BudgetItem();
                budgetItem.BudgetId     = budget.Id;
                budgetItem.TargetAmount = model.BudgetItem.TargetAmount;
                budgetItem.ItemName     = model.BudgetItem.ItemName;
                db.BudgetItems.Add(budgetItem);
                db.SaveChanges();

                // now that the household has been established, refresh their login and send them to the dashboard.

                return(RedirectToAction("Dashboard", "Home"));
            }

            // error
            return(View(model));
        }
Пример #21
0
        public ActionResult Setup(BankAccount bankAccount, Budget budget, BudgetItem budgetItem)
        {
            try
            {
                var houseId = db.Users.Find(User.Identity.GetUserId()).Household.Id;
                if (ModelState.IsValid)
                {
                    bankAccount.HouseholdId = houseId;
                    db.BankAccounts.Add(bankAccount);

                    budget.HouseholdId = houseId;
                    db.Budgets.Add(budget);
                    db.SaveChanges();

                    budgetItem.BudgetId = budget.Id;
                    db.BudgetItems.Add(budgetItem);

                    var household = db.Households.Find(houseId);
                    household.IsConfigured = true;
                    db.SaveChanges();
                }
                return(RedirectToAction("Dashboard", "Household", new { houseId }));
            }
            catch
            {
                return(RedirectToAction("Lobby", "Home"));
            }
        }
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            try
            {
                var        user       = db.Users.Find(User.Identity.GetUserId());
                BudgetItem budgetItem = db.BudgetItems.Single(b => b.Id == id && b.Budgets.HouseholdId == user.HouseholdId);

                if (user.Households == null)
                {
                    return(RedirectToAction("Create", "Households"));
                }

                return(View(budgetItem));
            }

            catch (Exception)
            {
                return(RedirectToAction("page404", "Home"));
            }
        }
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            try
            {
                var        user       = db.Users.Find(User.Identity.GetUserId());
                BudgetItem budgetItem = db.BudgetItems.Single(b => b.Id == id && b.Budgets.HouseholdId == user.HouseholdId);

                if (user.Households == null)
                {
                    return(RedirectToAction("Create", "Households"));
                }

                var getBudget = db.Budgets.Where(u => u.HouseholdId == user.HouseholdId).ToList();

                ViewBag.BudgetId   = new SelectList(getBudget, "Id", "Name", budgetItem.BudgetId);
                ViewBag.CategoryId = new SelectList(db.Categories, "Id", "Name", budgetItem.CategoryId);
                return(View(budgetItem));
            }
            catch
            {
                return(RedirectToAction("page404", "Home"));
            }
        }
Пример #24
0
        public async Task <IActionResult> PutBudgetItem(int id, BudgetItem budgetItem)
        {
            if (id != budgetItem.Id)
            {
                return(BadRequest());
            }

            _context.Entry(budgetItem).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!BudgetItemExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Пример #25
0
        // GET: BudgetItems/Edit/5
        public PartialViewResult Edit(int?id)
        {
            if (id == null)
            {
                return(PartialView(null));
                //return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }

            BudgetItem budgetItem = db.BudgetItems.Find(id);
            var        hh         = db.Households.Find(Convert.ToInt32(User.Identity.GetHouseholdId()));

            if (!hh.BudgetItems.Contains(budgetItem)) // if budgetItem id does not belong to household - refuse access
            {
                budgetItem = null;
            }
            if (budgetItem == null)
            {
                return(PartialView(null));
                // return HttpNotFound();
            }

            ViewBag.CategoryId = new SelectList(hh.Categories, "Id", "Name", budgetItem.CategoryId);
            //ViewBag.HouseholdId = new SelectList(db.Households, "Id", "Name", budgetItem.HouseholdId);
            return(PartialView(budgetItem));
        }
Пример #26
0
        public BudgetItem AddBudgetItem(BudgetItem newBudgetItem, User user)
        {
            AuthenticateUser(user);

            this.ChechIsAdmin(user, typeof(BudgetItem));

            using (CFAPContext ctx = new CFAPContext())
            {
                ctx.Configuration.ProxyCreationEnabled = false;
                try
                {
                    ctx.BudgetItems.Add(newBudgetItem);
                    ctx.SaveChanges(DbConcurencyUpdateOptions.ClientPriority);
                }
                catch (DbEntityValidationException ex)
                {
                    throw new FaultException <DataNotValidException>(new DataNotValidException(ex.EntityValidationErrors));
                }
                catch (Exception ex)
                {
                    throw new FaultException <DbException>(new DbException(ex));
                }
            }

            return(newBudgetItem);
        }
        public ActionResult Edit([Bind(Include = "Id,BudgetId,Name,Description,SpendingTarget")] BudgetItem budgetItem, string Name)
        {
            var oldBudgetItem = db.budgetItems.AsNoTracking().FirstOrDefault(i => i.Id == budgetItem.Id);

            if (ModelState.IsValid)
            {
                var userId   = User.Identity.GetUserId();
                var user     = db.Users.AsNoTracking().FirstOrDefault(i => i.Id == userId);
                var category = db.budgetItems.AsNoTracking().FirstOrDefault(i => i.Id == budgetItem.Id);
                category.Name            = budgetItem.Name;
                category.CurrentSpending = budgetItem.CurrentSpending;
                category.Description     = budgetItem.Description;
                category.SpendingTarget  = budgetItem.SpendingTarget;
                category.Budget          = db.Budgets.AsNoTracking().FirstOrDefault(i => i.HouseholdId == user.HouseholdId);
                category.Id = budgetItem.Id;
                var budget = category.Budget;
                budget.SpendingTarget    = budget.SpendingTarget - oldBudgetItem.SpendingTarget + category.SpendingTarget;
                db.Entry(budget).State   = EntityState.Modified;
                db.Entry(category).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index", "BudgetViewModel"));
            }
            ViewBag.BudgetId = new SelectList(db.Budgets, "Id", "Name", budgetItem.BudgetId);
            return(View(budgetItem));
        }
Пример #28
0
        public void WhenPut_ValidItem_ReturnsOk()
        {
            // Arrange
            int itemId  = 2;
            var newItem = new BudgetItem {
                Id = itemId, Notes = "Office Lunch", BudgetLocationId = 2, BudgetSubCategoryId = 2, Amount = 15, DateOccured = DateTime.Now, IsExpense = true, IsFixed = false
            };
            IEnumerable <BudgetItem> fakeItems = GetFakeItems();

            _itemRepository.Setup(x => x.GetItem(itemId)).Returns(fakeItems.FirstOrDefault(p => p.Id == itemId));
            _itemRepository.Setup(x => x.UpdateItem(newItem)).Returns(newItem);

            var controller = new ItemsController(_itemRepository.Object);

            // Act
            IHttpActionResult actionResult = controller.Put(2, newItem);

            // Assert
            Assert.IsNotNull(actionResult);

            var item = actionResult as OkNegotiatedContentResult <BudgetItem>;

            Assert.IsNotNull(item);
            Assert.AreEqual(item.Content.BudgetLocationId, 2);
        }
        public async Task <IHttpActionResult> Create(BudgetItem model)
        {
            var user = db.Users.Find(User.Identity.GetUserId());

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var budgetItemExits = user.HouseHold.BudgetItems.Any(bi => bi.Name == model.Name);

            if (budgetItemExits)
            {
                return(Ok("You already have a budget item called: " + model.Name + " . Please chose another name."));
            }

            else
            {
                var budgetItem = new BudgetItem()
                {
                    Name        = model.Name,
                    Amount      = model.Amount,
                    HouseHoldId = (int)user.HouseHoldId,
                    CategoryId  = model.CategoryId,
                    Frequency   = model.Frequency
                };

                db.BudgetItems.Add(budgetItem);
                await db.SaveChangesAsync();

                return(Ok(budgetItem));
            }
        }
Пример #30
0
        public void WhenPut_InValidItem_CreatesNewItem()
        {
            // Arrange

            var fakeId  = 100;
            var newItem = new BudgetItem {
                Id = fakeId, Notes = "Office Lunch", BudgetLocationId = 2, BudgetSubCategoryId = 2, Amount = 15, DateOccured = DateTime.Now, IsExpense = true, IsFixed = false
            };

            IEnumerable <BudgetItem> fakeItems = GetFakeItems();

            _itemRepository.Setup(x => x.GetItem(fakeId)).Returns(fakeItems.FirstOrDefault(p => p.Id == fakeId));

            var controller = new ItemsController(_itemRepository.Object);
            // Act
            IHttpActionResult actionResult = controller.Put(fakeId, newItem);

            // Assert
            Assert.IsNotNull(actionResult);

            var createdResult = actionResult as CreatedAtRouteNegotiatedContentResult <BudgetItem>;

            // Assert
            Assert.IsNotNull(createdResult);
            Assert.AreEqual("DefaultApi", createdResult.RouteName);
            Assert.AreEqual(fakeId, createdResult.RouteValues["id"]);
        }
Пример #31
0
        public async Task <BudgetItemViewModel> AddBudgetItemAsync()
        {
            BudgetItemViewModel vm = new BudgetItemViewModel(this.dbFilePath);

            vm.ItemUpdated += OnItemUpdate;
            BudgetItem item = null;

            if (this.CategoryType == BudgetCategoryType.Income)
            {
                item          = new IncomeItem();
                item.ItemType = BudgetItemType.Income;
            }
            else
            {
                item          = new ExpenseItem();
                item.ItemType = BudgetItemType.Expense;
            }
            item.budgetCategory   = model;
            item.budgetCategoryId = model.id;
            item.StartDate        = DateTime.Now;
            item.recurring        = true;
            item.frequency        = Frequency.Monthly;
            await vm.PopulateVMAsync(item);

            vm.IsNew = true;
            this.BudgetItems.Add(vm);
            this.SelectedBudgetItem = vm;
            return(vm);
        }
 public static BudgetItem createObj(BudgetItem e)
 {
     using (var context = new EventContainer())
     {
         context.BudgetItems.Add(e);
         context.SaveChanges();
         return e;
     }
 }
        public void AdjustBudgetItemBalance(BudgetItem budgetItem, bool isWithdrawal, decimal amount)
        {
            budgetItem.Balance = isWithdrawal
               ? budgetItem.Balance - amount
               : budgetItem.Balance + amount;

            if (budgetItem.Balance > budgetItem.Amount)
                budgetItem.Amount = budgetItem.Balance;

            FinancialPlannerRepository.EditBudgetItem(budgetItem);
            FinancialPlannerRepository.Save();
        }
 public static BudgetItem create(String name, int cost, int budgetId)
 {
     using (var context = new EventContainer())
     {
         BudgetItem item = new BudgetItem
         {
             Name = name,
             Cost = cost,
             BudgetId = budgetId
         };
         context.BudgetItems.Add(item);
         context.SaveChanges();
         return item;
     }
 }
Пример #35
0
        public BudgetItem AddBudgetItem(EditBudgetItemViewModel vm)
        {
            var budgetItem = new BudgetItem
            {
                Name = vm.Name,
                Amount = vm.Amount,
                BudgetId = vm.SelectedBudgetId,
                Balance = vm.Amount
            };

            FinancialPlannerRepository.AddBudgetItem(budgetItem);
            FinancialPlannerRepository.Save();

            return budgetItem;
        }
 public static BudgetItem update(String name, int cost, int budgetId)
 {
     using (var context = new EventContainer())
     {
         BudgetItem item = new BudgetItem
         {
             Name = name,
             Cost = cost,
             BudgetId = budgetId
         };
         context.BudgetItems.Attach(item);
         context.Entry(item).State = EntityState.Modified;
         context.SaveChanges();
         return item;
     }
 }
Пример #37
0
            public static BudgetItem Parse(string user, string message, DateTime timeStamp)
            {
                var split = message.Trim().Split(' ');
                var splitList = split.ToList<string>();

                var costText = split[splitList.Count - 1];
                var cost = float.Parse(costText);
                splitList.RemoveAt(splitList.Count - 1);

                var itemText = message.Replace(costText, string.Empty);                
                BudgetItem item = new BudgetItem();
                item.User = user;
                item.Category = itemText;
                item.Cost = cost;
                item.Timestamp = timeStamp;
                return item;
            }
        public async Task<IHttpActionResult> Edit(int id, BudgetItem model)
        {
            var oldBudgetItem = db.BudgetItems.FirstOrDefault(bi => bi.id == model.id);
            
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            //check if name changed
            if (oldBudgetItem.Name != model.Name)
            {
                oldBudgetItem.Name = model.Name;
                await db.SaveChangesAsync();
            }

            //check if amount changed
            if (oldBudgetItem.Amount != oldBudgetItem.Amount)
            {
                oldBudgetItem.Amount = model.Amount;
                await db.SaveChangesAsync();
            }

            //check if frquency changed
            if (oldBudgetItem.Frequency != model.Frequency)
            {
                oldBudgetItem.Frequency = model.Frequency;
                await db.SaveChangesAsync();
            }

            return Ok(oldBudgetItem);

        }
    protected void btnAdd_Click(object sender, ImageClickEventArgs e)
    {
        if (ucCurrFieldQuantityData.CurrencyValue == decimal.Zero)
        {
            ShowError("Quantidade não pode ser 0(zero)!");
            return;
        }

        BudgetItem budgetItem = new BudgetItem();
        Product product = SelProductAndService.Product.Duplicate();

        if (product.ProductId == 0)
            product.Name = SelProductAndService.Name;

        Service service = SelProductAndService.Service.Duplicate() ?? new Service();
        if (SelProductAndService.IsProduct)
        {
            if (pnlEdit.Visible && Convert.ToInt32(Page.ViewState["InsertItemID"]) == Convert.ToInt32(Page.ViewState["EditItemID"]))
            {
                product.Description = DescriptionTextBox.Value;
                pnlEdit.Visible = false;
            }

            Page.ViewState["InsertItemID"] = product.ProductId;
            budgetItem.ProductId = product.ProductId;
            budgetItem.SpecialProductName = product.Name;


            budgetItem.ProductDescription = pnlEdit.Visible ? DescriptionTextBox.Value : product.Description;
            pnlEdit.Visible = false;
        }

        if (SelProductAndService.IsService)
        {
            Page.ViewState["InsertItemID"] = service.ServiceId;
            budgetItem.ServiceId = service.ServiceId;
            budgetItem.SpecialProductName = service.Name;
            budgetItem.ProductDescription = pnlEdit.Visible ? DescriptionTextBox.Value : String.Empty;
            pnlEdit.Visible = false;
        }

        if (!SelProductAndService.IsProduct && !SelProductAndService.IsService)
            budgetItem.SpecialProductName = SelProductAndService.Name;

        var inventory = new Inventory();

        if (product != null && product.ProductId != 0)
        {
            if (Deposit != null)
                inventory = new InventoryManager(this).GetProductInventory(Company.CompanyId,
                                                                         product.ProductId,
                                                                         Deposit.DepositId);
        }

        budgetItem.UnitPrice = ucCurrFieldUnitPrice.CurrencyValue.Value;
        budgetItem.Quantity = ucCurrFieldQuantityData.IntValue;
        budgetItem.Reference = txtReference.Text;
        budgetItem.ProductCode = product.ProductCode;
        budgetItem.ModifiedDate = DateTime.Now;

        if (inventory != null)
            budgetItem.UnitCost = inventory.RealCost;

        BudgetItemList.Add(budgetItem);

        grdProducts.DataSource = BudgetItemList;
        grdProducts.DataBind();

        ClearFields();
        DescriptionTextBox.Value = String.Empty;
        SelProductAndService.ClearField();
    }
    /// <summary>
    /// This method loads budgetItems objects to grid  
    /// </summary>
    /// </summary>
    private void LoadBudgetItemsToGrid()
    {
        BudgetItemList = null;
        foreach (var item in saleManager.GetBudgetItemByBudget(BudgetId, Company.CompanyId))
        {
            var budgetItem = new BudgetItem();

            budgetItem.BudgetId = item.BudgetId;
            budgetItem.BudgetItemId = item.BudgetItemId;
            budgetItem.ModifiedDate = item.ModifiedDate;
            budgetItem.Observation = item.Observation;

            if (item.ProductId.HasValue)
                budgetItem.SpecialProductName = item.Product.Name;
            else if (item.ServiceId.HasValue)
                budgetItem.SpecialProductName = item.Service.Name;
            else
                budgetItem.SpecialProductName = item.SpecialProductName;

            budgetItem.ProductCode = item.ProductId.HasValue ? item.Product.ProductCode : item.ProductCode;

            budgetItem.ProductDescription = item.ProductDescription;
            budgetItem.ProductId = item.ProductId;
            budgetItem.ServiceId = item.ServiceId;
            budgetItem.UnitCost = item.UnitCost;
            budgetItem.UnitPrice = item.UnitPrice;
            budgetItem.Quantity = item.Quantity;
            budgetItem.Reference = item.Reference;

            BudgetItemList.Add(budgetItem);
        }

        grdProducts.DataSource = BudgetItemList;
        grdProducts.DataBind();

    }
 /// <summary>
 /// This method deletes a record in the table.
 /// Change this method to alter how records are deleted.
 /// </summary>
 /// <param name=entity>entity</param>
 public void DeleteBudgetItem(BudgetItem entity)
 {
     DbContext.BudgetItems.DeleteOnSubmit(entity);
     DbContext.SubmitChanges();
 }
 /// <summary>
 /// This method inserts a new record in the table.
 /// Change this method to alter how records are inserted.
 /// </summary>
 /// <param name=entity>entity</param>
 public void InsertBudgetItem(BudgetItem entity)
 {
     if (entity.ProductId == 0)
         entity.ProductId = null;
     entity.ModifiedDate = DateTime.Now;
     DbContext.BudgetItems.InsertOnSubmit(entity);
     DbContext.SubmitChanges();
 }
Пример #43
0
 public void EditBudgetItemBalance(BudgetItem budgetItem)
 {
     SharedOperationsService.EditBudgetItemBalance(budgetItem);
 }
 public void AddBudgetItem(BudgetItem budgetItem)
 {
 }
        public static BudgetItem updateObj(BudgetItem e)
        {
            using (var context = new EventContainer())
            {
                context.Entry(e).State = EntityState.Modified;
                context.SaveChanges();

                return e;
            }
        }
 private void EditBudgetItem(BudgetItem budgetItem)
 {
     SharedOperationsService.EditBudgetItemBalance(budgetItem);
 }
 public void AdjustBudgetItemBalance(BudgetItem budgetItem, EditTransactionViewModel vm)
 {
     SharedOperationsService.AdjustBudgetItemBalance(budgetItem, vm.IsWithdrawal, vm.Amount);
 }
Пример #48
0
 public void EditBudgetItemBalance(BudgetItem budgetItem, Transaction transaction)
 {
     SharedOperationsService.AdjustBudgetItemBalance(budgetItem, transaction.IsWithdrawal, transaction.Amount);
 }
        public void EditBudgetItemBalance(BudgetItem budgetItem)
        {
            var budgetItemTransactions =
                FinancialPlannerRepository.GetTransactions().Where(m => m.BudgetItemId == budgetItem.Id).ToList();

            var budgetItemWithdrawalSum = budgetItemTransactions.Where(m => m.IsWithdrawal).Sum(m => m.Amount);
            var budgetItemDepositSum = budgetItemTransactions.Where(m => !m.IsWithdrawal).Sum(m => m.Amount);

            budgetItem.Balance = budgetItem.Amount + budgetItemDepositSum - budgetItemWithdrawalSum;

            FinancialPlannerRepository.EditBudgetItem(budgetItem);
            FinancialPlannerRepository.Save();
        }
Пример #50
0
        private void FillActuals(User user)
        {
            var month = this.Budget.Month;
            var transactions = user.Transactions.Where(t => t.Date.Year == month.Year && t.Date.Month == month.Month && !string.IsNullOrEmpty(t.BudgetCategoryName));

            foreach (var transaction in transactions)
            {
                var actualItem = this.Budget.ActualItems.FirstOrDefault(i => i.CategoryName == transaction.BudgetCategoryName);

                if (actualItem == null)
                {
                    actualItem = new BudgetItem();
                    actualItem.CategoryName = transaction.BudgetCategoryName;
                    this.Budget.ActualItems.Add(actualItem);
                }

                if (transaction.Amount > 0)
                    actualItem.CreditAmount += transaction.Amount;
                else
                    actualItem.DebitAmount += -transaction.Amount;
            }
        }
 /// <summary> 
 /// This method updates a record in the table.
 /// Change this method to alter how records are updated.
 /// </summary>
 /// <param name=original_entity>original_entity</param>
 /// <param name=entity>entity</param>
 public void UpdateBudgetItem(BudgetItem original_entity, BudgetItem entity)
 {
     original_entity.CopyPropertiesFrom(entity);
     DbContext.SubmitChanges();
 }