/// <summary>
        /// This action is for retrieving CEO approval's details
        /// </summary>
        /// <param name="id">document id</param>
        /// <returns>finance approval details view</returns>
        // GET: CostSheet/CEOeApprovalDetails
        //[Authorize(Roles = "Finance Employee, CEO, ProductionEmployee")]
        public ActionResult CEOApprovalDetails(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            CostSheet costSheet = db.CostSheets.Find(id);

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

            var model = new CostSheetViewModel
            {
                CostSheetId   = costSheet.CostSheetId,
                CostSheetName = costSheet.CostSheetName,
                Status        = costSheet.Status,
                EventProject  = costSheet.EventProject.Name,
                Employee      = costSheet.Employee.FullName,
                CEODecision   = costSheet.CEODecision,
                CEOFeedback   = costSheet.CEOFeedback,
            };

            ViewBag.CEOEmployeeId  = new SelectList(db.Employees, "Id", "FullName");
            ViewBag.EventProjectId = new SelectList(db.EventProjects, "EventProjectId", "FullName");

            return(View(model));
        }
        /// <summary>
        /// This action gets a page that includes a cost sheet's details
        /// </summary>
        /// <param name="id">cost sheet id</param>
        /// <returns>cost sheet items view</returns>
        public ActionResult CostSheetItems(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            CostSheet costSheet = db.CostSheets.Find(id);

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

            var model = new CostSheetViewModel
            {
                EventProjectId     = costSheet.EventProjectId,
                CostSheetId        = costSheet.CostSheetId,
                CostSheetName      = costSheet.CostSheetName,
                Status             = costSheet.Status,
                ProductionEmployee = costSheet.ProductionEmployee.FullName,
            };

            ViewBag.ItemId = new SelectList(db.Items, "ItemId", "ItemPrice");

            return(View(model));
        }
        public ActionResult AddCEOApproval(int id, CostSheetViewModel model)
        {
            if (ModelState.IsValid)
            {
                var costSheet = db.CostSheets.Find(id);

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

                if (model.CEODecision == CostSheetCEODecision.Approved)
                {
                    model.Status = CostSheetStatus.CEOApproved;
                }
                else if (model.CEODecision == CostSheetCEODecision.Rejected)
                {
                    model.Status = CostSheetStatus.CEORejected;
                }

                costSheet.CEOEmployeeId = User.Identity.GetUserId <int>();
                costSheet.Status        = model.Status;
                costSheet.CEODecision   = model.CEODecision;
                costSheet.CEOFeedback   = model.CEOFeedback;

                db.Entry(costSheet).State = EntityState.Modified;
                db.SaveChanges();

                return(RedirectToAction("CostSheetItems", "CostSheet", new { id = costSheet.CostSheetId }));
            }

            ViewBag.CEOEmployeeId = new SelectList(db.Employees, "Id", "FullName");

            return(View());
        }
        /// <summary>
        /// Thi action gets the CEO approval page
        /// </summary>
        /// <param name="id">cost sheet id</param>
        /// <returns>Add CEO Approval view</returns>
        // GET: CostSheet/AddCEOApproval
        //[Authorize(Roles = "CEO")]
        public ActionResult AddCEOApproval(int?id)
        {
            if (id == null)
            {
                return(View("Error"));
            }
            CostSheet costSheet = db.CostSheets.Find(id);

            if (costSheet == null)
            {
                return(View("Error"));
            }

            var model = new CostSheetViewModel
            {
                CostSheetId   = costSheet.CostSheetId,
                CostSheetName = costSheet.CostSheetName,
                Status        = costSheet.Status,
                Employee      = costSheet.Employee.FullName,
                CEODecision   = costSheet.CEODecision,
                CEOFeedback   = costSheet.CEOFeedback,
            };

            ViewBag.CEOEmployeeId = new SelectList(db.Employees, "Id", "FullName");

            return(View(model));
        }
        public ActionResult CostSheetPartial(CostSheetViewModel model)
        {
            if (ModelState.IsValid)
            {
                var project = db.EventProjects.Find(model.EventProjectId);

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

                var costSheet = new CostSheet
                {
                    CostSheetName        = model.CostSheetName,
                    Status               = CostSheetStatus.Pending,
                    ProductionEmployeeId = User.Identity.GetUserId <int>(),
                    FinanceEmployeeId    = User.Identity.GetUserId <int>(),
                    CEOEmployeeId        = User.Identity.GetUserId <int>(),
                    EventProjectId       = model.EventProjectId,
                };

                ViewBag.ProductionEmployeeId = new SelectList(db.Employees, "ProductionEmployeeId", "FullName");
                //ViewBag.CEOEmployeeId = new SelectList(db.Employees, "Id", "FullName");
                //ViewBag.FinanceEmployeeId = new SelectList(db.Employees, "Id", "FullName");
                //ViewBag.EventProjectId = new SelectList(db.EventProjects, "EventProjectId", "Name");

                db.CostSheets.Add(costSheet);
                db.SaveChanges();
            }
            ViewBag.ProductionEmployeeId = new SelectList(db.Employees, "ProductionEmployeeId", "FullName");
            //ViewBag.CEOEmployeeId = new SelectList(db.Employees, "Id", "FullName");
            //ViewBag.FinanceEmployeeId = new SelectList(db.Employees, "Id", "FullName");
            //ViewBag.EventProjectId = new SelectList(db.EventProjects, "EventProjectId", "Name");
            return(PartialView(model));
        }
Пример #6
0
        public frmCostSheet(UserInformation userinfo, string partNo, int routeNo)
        {
            InitializeComponent();
            CostSheetViewModel vm = new CostSheetViewModel(userinfo, partNo, routeNo);

            this.DataContext = vm;

            if (vm.CloseAction == null)
            {
                vm.CloseAction = new Action(() => this.Close());
            }
        }