public async Task <IActionResult> Expenditures(Expenditures expenditures)
        {
            if (expenditures == null)
            {
                return(Json(new { ReturnStatus = "error", ReturnData = new Object() }));
            }

            Expenditures expend = new Expenditures();

            expend.ProjectId = expenditures.ProjectId;
            expend.Name      = expenditures.Name;
            expend.Date      = expenditures.Date;
            expend.Submitter = expenditures.Submitter;
            expend.Amount    = expenditures.Amount;
            //expend.Invoice = formCollection["Invoice"];
            var expenditure = _unitOfWork.ExpendituresRepository.GetDbSet().FirstOrDefault(x => x.Name == expend.Name);

            if (expenditure == null)
            {
                try
                {
                    _unitOfWork.ExpendituresRepository.Insert(expend);
                    await _unitOfWork.SaveAsync();
                }
                catch (Exception ex)
                {
                    throw ex;
                }

                return(Json(new { ReturnStatus = "success", ReturnData = expend }));
            }
            return(Json(new { ReturnStatus = "error", ReturnData = new Object() }));
        }
        public async Task <AddExpenseResponseModel> AddExpense(AddExpenseModel addExpense)
        {
            var expense = new Expenditures()
            {
                UserId      = addExpense.UserId,
                Amount      = addExpense.Amount,
                Description = addExpense.Description,
                ExpDate     = addExpense.ExpDate,
                Remarks     = addExpense.Remarks
            };

            var createdexpense = await _expenseRepository.AddAsync(expense);


            // map user object to UserRegisterResponseModel object
            var createdExpResponse = new AddExpenseResponseModel
            {
                UserId      = createdexpense.UserId,
                Amount      = createdexpense.Amount,
                Description = createdexpense.Description,
                ExpDate     = createdexpense.ExpDate,
                Remarks     = createdexpense.Remarks
            };

            return(createdExpResponse);
        }
        public ActionResult Edit(Expenditures cvm)
        {
            var cat = db.expenditure.Where(x => x.ExpenditureID == x.ExpenditureID).FirstOrDefault();

            cat.Status = false;
            if (cvm.statusex == "Yes")
            {
                cat.Status = true;
            }
            cat.EntryDate      = cvm.EntryDate;
            cat.Purpose        = cvm.Purpose;
            cat.Amount         = cvm.Amount;
            cat.ModifiedDate   = cvm.ModifiedDate;
            cat.CreateDate     = cvm.CreateDate;
            cat.ModifiedDateBy = cvm.ModifiedDateBy;
            cat.CreatedBy      = cvm.CreatedBy;
            cat.Remarks        = cvm.Remarks;
            cat.ExpenseItemID  = cvm.ExpenseItemID;
            cat.VendorID       = cvm.VendorID;
            cat.VoucherName    = cvm.VoucherName;

            db.SaveChanges();

            ViewBag.SportType1 = new SelectList(db.expenseItems, "ExpenseItemID", "Description");
            ViewBag.SportType2 = new SelectList(db.masterVendors, "VendorID", "Name");
            return(RedirectToAction("Index"));
        }
Esempio n. 4
0
        public async Task <ExpenditureResponseModel> UpdateExpenditure(UpdateExpenditureRequestModel model)
        {
            var updatedExpenditure = new Expenditures
            {
                Id          = model.Id,
                UserId      = model.UserId,
                Amount      = model.Amount,
                Description = model.Description,
                ExpDate     = model.ExpDate,
                Remarks     = model.Remarks
            };
            await _expenditureRepository.UpdateAsync(updatedExpenditure);

            var expenditureResponseModel = new ExpenditureResponseModel
            {
                Id          = updatedExpenditure.Id,
                UserId      = updatedExpenditure.UserId,
                Amount      = updatedExpenditure.Amount,
                Description = updatedExpenditure.Description,
                ExpDate     = updatedExpenditure.ExpDate,
                Remarks     = updatedExpenditure.Remarks
            };

            return(expenditureResponseModel);
        }
        public ActionResult DeleteConfirmed(int id)
        {
            Expenditures expenditures = db.expenditure.Find(id);

            db.expenditure.Remove(expenditures);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
 public ActionResult Edit([Bind(Include = "ExpenditureId,UserName,ExpenditureDescription,ExpenditureCost")] Expenditures expenditures)
 {
     if (ModelState.IsValid)
     {
         db.Entry(expenditures).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(expenditures));
 }
Esempio n. 7
0
        public async Task <Expenditures> AddExpenditure(ExpenditureRequestModel expenditureRequestModel)
        {
            var expenditure = new Expenditures
            {
                UsersId     = expenditureRequestModel.UserId,
                Amount      = expenditureRequestModel.Amount.Value,
                Description = expenditureRequestModel.Description
            };

            return(await _expenditureRepository.AddAsync(expenditure));
        }
        public async Task <Expenditures> UpdateExpenditures(ExpenseUpdateRequestModel updateExp)
        {
            var updateExpense = new Expenditures {
                Id = updateExp.Id, UserId = updateExp.UserId, Amount = updateExp.Amount, Description = updateExp.Description, ExpDate = updateExp.ExpDate, Remarks = updateExp.Remarks
            };
            var exp = await _expenseRepository.UpdateAsync(updateExpense);

            var updatedExp = new Expenditures {
                Id = exp.Id, UserId = exp.UserId, Amount = exp.Amount, Description = exp.Description, ExpDate = exp.ExpDate, Remarks = exp.Remarks
            };

            return(updatedExp);
        }
        // GET: Expenditures/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Expenditures expenditures = db.expenditure.Find(id);

            if (expenditures == null)
            {
                return(HttpNotFound());
            }
            return(View(expenditures));
        }
        public ActionResult Create(Expenditures cvm)
        {
            Expenditures cat = new Expenditures();

            cat.Status = false;
            if (cvm.statusex == "Yes")
            {
                cat.Status = true;
            }
            try
            {
                cat.EntryDate      = cvm.EntryDate;
                cat.Purpose        = cvm.Purpose;
                cat.Amount         = cvm.Amount;
                cat.ModifiedDate   = cvm.ModifiedDate;
                cat.CreateDate     = cvm.CreateDate;
                cat.ModifiedDateBy = cvm.ModifiedDateBy;
                cat.CreatedBy      = cvm.CreatedBy;
                cat.Remarks        = cvm.Remarks;
                cat.ExpenseItemID  = cvm.ExpenseItemID;
                cat.VendorID       = cvm.VendorID;
                cat.VoucherName    = cvm.VoucherName;
                db.expenditure.Add(cvm);
                ViewBag.SportType1 = new SelectList(db.expenseItems, "ExpenseItemID", "Description");
                ViewBag.SportType2 = new SelectList(db.masterVendors, "VendorID", "Name");
                db.SaveChanges();
            }



            catch (DbEntityValidationException ex)
            {
                foreach (var eve in ex.EntityValidationErrors)
                {
                    Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                      eve.Entry.Entity.GetType().Name, eve.Entry.State);
                    foreach (var ve in eve.ValidationErrors)
                    {
                        Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                                          ve.PropertyName, ve.ErrorMessage);
                    }
                }
            }

            catch (Exception ex)
            {
            }

            return(RedirectToAction("Index"));
        }
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Expenditures expenditures = db.expenditure.Find(id);

            if (expenditures == null)
            {
                return(HttpNotFound());
            }
            ViewBag.SportType1 = new SelectList(db.expenseItems, "ExpenseItemID", "Description");
            ViewBag.SportType2 = new SelectList(db.masterVendors, "VendorID", "Name");
            return(View(expenditures));
        }
Esempio n. 12
0
        public ActionResult Create([Bind(Include = "ExpenditureDescription,ExpenditureCost")] Expenditures expenditures)
        {
            ApplicationUser user         = new ApplicationUser();
            var             useridentity = User.Identity.Name;

            user = db.Users.Where(u => u.UserName == useridentity).Single();
            if (ModelState.IsValid)
            {
                expenditures.UserName    = User.Identity.Name;
                expenditures.ExpendMonth = DateTime.Now.Month;
                expenditures.ExpendYear  = DateTime.Now.Year;
                db.Expenditures.Add(expenditures);
                db.SaveChanges();
                if (db.Budgets.Where(e => e.UserName == useridentity).Select(p => p.ExtraExpenditures).Sum() > db.Budgets.Where(b => b.UserName == useridentity).Select(q => q.MonthlyLimit).Sum())
                {
                    var fromAddress = new MailAddress("*****@*****.**", "Budget Guru");
                    var toAddress   = new MailAddress(user.Email, user.UserName);
                    //const string fromPassword = "******";
                    const string subject = "Reached Limit";
                    string       body    = "You have exceeded your monthly spending limit. It is advised you discontinue this frivilous spending";

                    var smtp = new SmtpClient()
                    {
                        Host           = "smtp.gmail.com",
                        Port           = 587,
                        EnableSsl      = true,
                        DeliveryMethod = SmtpDeliveryMethod.Network,
                        Credentials    = new NetworkCredential("*****@*****.**", "donthackme1"),
                        Timeout        = 20000
                    };

                    using (var message = new MailMessage(fromAddress, toAddress))
                    {
                        message.Subject    = subject;
                        message.Body       = body;
                        message.IsBodyHtml = true;

                        smtp.Send(message);
                    }
                }
                return(RedirectToAction("Index", "Budget"));
            }
            return(View(expenditures));
        }
Esempio n. 13
0
        public async Task <ExpenditureResponseModel> AddExpenditure(ExpenditureRequestModel model)
        {
            var expenditure = new Expenditures
            {
                UserId      = model.UserId,
                Amount      = model.Amount,
                Description = model.Description,
                ExpDate     = model.ExpDate,
                Remarks     = model.Remarks
            };
            var addExpenditure = await _expenditureRepository.AddAsync(expenditure);

            var expenditureResponseModel = new ExpenditureResponseModel
            {
                Id          = addExpenditure.Id,
                UserId      = addExpenditure.UserId,
                Amount      = addExpenditure.Amount,
                Description = addExpenditure.Description,
                ExpDate     = addExpenditure.ExpDate,
                Remarks     = addExpenditure.Remarks
            };

            return(expenditureResponseModel);
        }
Esempio n. 14
0
        public async Task <ActionResult> DeleteExpenditure([FromBody] Expenditures expenditure)
        {
            await _expendituresService.DeleteExpenditure(expenditure);

            return(Ok());
        }
Esempio n. 15
0
 private Amount TotalExpenditure() => Amount.FromDecimal(Expenditures.Sum(i => i.Amount));
Esempio n. 16
0
        protected override void When(object @event)
        {
            Income      income;
            Outgo       outgo;
            Snapshot    snapshot;
            Expenditure expenditure;

            switch (@event)
            {
            case Events.DailyBudgetCreated e:
                Id       = new DailyBudgetId(e.Id);
                Name     = new BudgetName(e.Name);
                snapshot = new Snapshot(Apply);
                ApplyToEntity(snapshot, e);
                Snapshot = snapshot;
                break;

            case Events.IncomeAddedToDailyBudget e:
                income = new Income(Apply);
                ApplyToEntity(income, e);
                Incomes.Add(income);
                e.TotalIncome = TotalIncome();
                ApplyToEntity(Snapshot, e);
                break;

            case Events.IncomeAmountChanged e:
                income = Incomes.FirstOrDefault(i => i.Id == e.IncomeId);
                if (income == null)
                {
                    throw new InvalidOperationException($"Income with id {e.IncomeId} not found");
                }
                ApplyToEntity(income, e);
                e.TotalIncome = TotalIncome();
                ApplyToEntity(Snapshot, e);
                break;

            case Events.IncomeDescriptionChanged e:
                income = Incomes.FirstOrDefault(i => i.Id == e.IncomeId);
                if (income == null)
                {
                    throw new InvalidOperationException($"Income with id {e.IncomeId} not found");
                }
                ApplyToEntity(income, e);
                break;

            case Events.IncomeRemoved e:
                income = Incomes.FirstOrDefault(i => i.Id == e.IncomeId);
                if (income == null)
                {
                    throw new InvalidOperationException($"Income with id {e.IncomeId} not found");
                }
                Incomes.Remove(income);
                e.TotalIncome = TotalIncome();
                ApplyToEntity(Snapshot, e);
                break;

            case Events.OutgoAddedToDailyBudget e:
                outgo = new Outgo(Apply);
                ApplyToEntity(outgo, e);
                Outgos.Add(outgo);
                e.TotalOutgo = TotalOutgo();
                ApplyToEntity(Snapshot, e);
                break;

            case Events.OutgoAmountChanged e:
                outgo = Outgos.FirstOrDefault(i => i.Id == e.OutgoId);
                if (outgo == null)
                {
                    throw new InvalidOperationException($"Outgo with id {e.OutgoId} not found");
                }
                ApplyToEntity(outgo, e);
                e.TotalOutgo = TotalOutgo();
                ApplyToEntity(Snapshot, e);
                break;

            case Events.OutgoDescriptionChanged e:
                outgo = Outgos.FirstOrDefault(i => i.Id == e.OutgoId);
                if (outgo == null)
                {
                    throw new InvalidOperationException($"Outgo with id {e.OutgoId} not found");
                }
                ApplyToEntity(outgo, e);
                break;

            case Events.OutgoRemoved e:
                outgo = Outgos.FirstOrDefault(o => o.Id == e.OutgoId);
                if (outgo == null)
                {
                    throw new InvalidOperationException($"Outgo with id {e.OutgoId} not found");
                }
                Outgos.Remove(outgo);
                e.TotalOutgo = TotalOutgo();
                ApplyToEntity(Snapshot, e);
                break;

            case Events.ExpenditureAdded e:
                expenditure = new Expenditure(Apply);
                ApplyToEntity(expenditure, e);
                Expenditures.Add(expenditure);
                e.TotalExpenditure = TotalExpenditure();
                ApplyToEntity(Snapshot, e);
                break;

            case Events.ExpenditureAmountChanged e:
                expenditure = Expenditures.FirstOrDefault(exp => exp.Id == e.ExpenditureId);
                if (expenditure == null)
                {
                    throw new InvalidOperationException($"Expenditure with id {e.ExpenditureId} not found");
                }
                ApplyToEntity(expenditure, e);
                e.TotalExpenditure = TotalExpenditure();
                ApplyToEntity(Snapshot, e);
                break;

            case Events.PeriodAddedToDailyBudget e:
                if (Period != null)
                {
                    throw new InvalidOperationException($"Period has already been set. Update start or end");
                }
                Period = Period.Create(e.Start, e.End);
                ApplyToEntity(Snapshot, e);
                break;

            case Events.PeriodStartChanged e:
                Period = Period.Create(e.Start, Period.ToB);
                ApplyToEntity(Snapshot, e);
                break;

            case Events.PeriodEndChanged e:
                Period = Period.Create(Period.FromA, e.End);
                ApplyToEntity(Snapshot, e);
                break;
            }
        }
Esempio n. 17
0
 public Expenditure GetExpenditure(string expenditureId)
 {
     return(Expenditures.FirstOrDefault(q => q.Id == expenditureId));
 }
Esempio n. 18
0
 public IEnumerable <Expenditure> GetProjectExpenditures(string projectId, BudgetCategory category)
 {
     return(Expenditures.Where(q => q.ProjectId == projectId && q.BudgetCategory == (int)category).OrderBy(q => q.CreateTime).ToArray());
 }
 public async Task DeleteExpenditure(Expenditures expenditure)
 {
     await _expendituresRepository.DeleteAsync(expenditure);
 }
Esempio n. 20
0
        private double GetExpendituresTotalCount(string projectId, int budgetCategory)
        {
            double?result = Expenditures.Where(q => q.ProjectId == projectId && q.BudgetCategory == budgetCategory).Select(q => (double?)q.Count).Sum();

            return(result ?? 0.0);
        }
Esempio n. 21
0
        public ActionResult MultiExpenditure()
        {
            Expenditures expenditures = new Expenditures();

            return(View(expenditures));
        }
 public async Task <Expenditures> AddExpenditure(Expenditures expenditure)
 {
     return(await _expendituresRepository.AddAsync(expenditure));
 }
Esempio n. 23
0
 public IEnumerable <Expenditure> GetProjectExpenditures(string projectId)
 {
     return(Expenditures.Where(q => q.ProjectId == projectId).OrderBy(q => q.CreateTime).ToArray());
 }
 public async Task <Expenditures> UpdateExpenditure(Expenditures expenditure)
 {
     return(await _expendituresRepository.UpdateAsync(expenditure));
 }