Beispiel #1
0
        // GET: Cash
        public async Task <ActionResult> ApproveCashRequest(string id, CashRequisition model)
        {
            ViewBag.CashRequisitionTypeCode = new SelectList(db.CashRequisitionTypes, "Code", "Description");
            ViewBag.Employees = db.Employees.Select(p => new { Id = p.ID, Name = p.FirstName + " " + p.LastName, Number = p.EmployeeNumber, Department = p.OfficePosition.Department.DepartmentName });
            ViewBag.Branches  = db.Branches.ToList();

            if (id == null)
            {
                return(HttpNotFound());
            }
            var cash = db.CashRequisitions.Where(x => x.No == id);

            if (cash == null)
            {
                return(HttpNotFound());
            }
            bool y = await _workFlowHelper.IsApprovalEntryExisting("cash", cash.First().No);

            if (!y)
            {
                ViewBag.Error = "Document has completed Approval Steps";
                return(View(cash.First()));
            }
            var Userid      = User.Identity.GetUserId();
            var currentUser = db.Employees.Where(x => x.UserId == Userid).First();
            var userid      = currentUser.ID;
            List <ApprovalEntry> entries = new List <ApprovalEntry>();

            if (y)
            {
                var processno = cash.First().No;
                entries = db.ApprovalEntries.Where(r => r.ProcessNo == processno).ToList();
            }
            //else
            //{
            //    entries = await _workFlowHelper.GenerateApprovalEntries<CashRequisition>(cash.First(),"cash",cash.First().No,userid);
            //}
            var currententry = await _workFlowHelper.GetNextApproval(entries, cash.First().No);

            if (currententry == null)
            {
                ViewBag.Error = "Document has completed Approval Steps";
                return(View(cash.First()));
            }
            if (currententry.Approver == currentUser.EmployeeNumber)
            {
                currententry = await _workFlowHelper.UpdateApprovalEntry(currententry);

                cash.First().Status = "Approved by " + db.Employees.Where(x => x.EmployeeNumber == currententry.Approver).First().OfficePosition.Title;
                db.SaveChanges();
            }
            else
            {
                ViewBag.Error = "Not Authorized to Approve Document";
                return(View(cash.First()));
            }
            return(RedirectToAction("Transactions/Approve/" + id, "Expenses"));
        }
Beispiel #2
0
 private bool UpdateLineItems(List <CashLineItem> items, CashRequisition model)
 {
     foreach (var item in items)
     {
         item.CashRequisitionNo = model.No;
         item.Amount            = (decimal)item.Amount;
         db.CashLineItems.Add(item);
     }
     //db.CashLineItems.AddRange(items);
     db.SaveChanges();
     return(true);
 }
Beispiel #3
0
        // GET: Cash
        public ActionResult CashRequest()
        {
            ViewBag.Branches  = db.Branches.ToList();
            ViewBag.Items     = new List <CashLineItem> ();
            ViewBag.Employees = db.Employees.Select(p => new { Id = p.ID, Name = p.FirstName + " " + p.LastName, Number = p.EmployeeNumber, Department = p.OfficePosition.Department.DepartmentName });
            ViewBag.CashRequisitionTypeCode = new SelectList(db.CashRequisitionTypes, "Code", "Description");
            var model = new CashRequisition();

            model.DateCreated  = DateTime.UtcNow;
            model.DateModified = null;
            model.No           = "CR" + (db.CashRequisitions.Count() + 1);
            return(View(model));
        }
Beispiel #4
0
        // GET: Cash
        public async Task <ActionResult> CashRequest(CashRequisition model, List <CashLineItem> Line)
        {
            ViewBag.Branches  = db.Branches.ToList();
            ViewBag.Employees = db.Employees.Select(p => new { Id = p.ID, Name = p.FirstName + " " + p.LastName, Number = p.EmployeeNumber, Department = p.OfficePosition.Department.DepartmentName });
            ViewBag.CashRequisitionTypeCode = new SelectList(db.CashRequisitionTypes, "Code", "Description");
            try
            {
                if (ModelState.IsValid)
                {
                    var  Userid      = User.Identity.GetUserId();
                    var  currentUser = db.Employees.Where(x => x.UserId == Userid).First();
                    var  userid      = currentUser.ID;
                    bool flow        = await _workFlowHelper.IsEmployeeAuthorizedForAction("cash", userid);

                    if (!flow)
                    {
                        ViewBag.Error = "Not Authorized To Make Cash Requisition";
                        return(View(model));
                    }
                    if (Line == null)
                    {
                        ViewBag.Error = "Line Items Empty! Add Appropriate Line Items in Requisition";
                        return(View(model));
                        //db.CashRequisitions.Add(model);
                        //db.SaveChanges();
                        //return RedirectToAction("Transaction/Create", "Expenses");
                    }
                    else
                    {
                        bool itemscheck = CheckLineItems(Line, model);
                        if (itemscheck)
                        {
                            db.CashRequisitions.Add(model);
                            bool itemsstatus = UpdateLineItems(Line, model);
                            var  entries     = await _workFlowHelper.GenerateApprovalEntries(model, "cash", model.No, userid);

                            db.SaveChanges();
                        }
                        return(RedirectToAction("Transaction/Create", "Expenses"));
                    }
                }
                return(View(model));
            }
            catch (Exception ex)
            {
                return(View());
            }
        }
Beispiel #5
0
 private bool CheckLineItems(List <CashLineItem> items, CashRequisition model)
 {
     return(true);
 }