public ActionResult CancelOrCompleteFormView(int?id)
        {
            MaintainanceRequisition maintainanceRequisition = db.MaintainanceRequisitions.Find(id);

            ViewBag.DriverID  = new SelectList(db.Employees, "EmployeeID", "Name", maintainanceRequisition.DriverID);
            ViewBag.VehicleID = new SelectList(db.Vehicles, "VehicleID", "RegistationNo", maintainanceRequisition.VehicleID);
            ViewBag.Supplier  = new SelectList(db.Suppliers, "SupplierID", "CompanyName", maintainanceRequisition.Supplierid);

            var fatchVerifier = db.Employees.FirstOrDefault(emp => emp.EmployeeID == maintainanceRequisition.VerifiedBy);

            if (fatchVerifier != null)
            {
                ViewBag.verifierName         = fatchVerifier.Name;
                ViewBag.veirifierDesignation = fatchVerifier.designation.Name;
                ViewBag.veirifierDepartment  = fatchVerifier.department.Name;
            }
            var fatchApprover = db.Employees.FirstOrDefault(emp => emp.EmployeeID == maintainanceRequisition.ApprovedBy);

            if (fatchApprover != null)
            {
                ViewBag.approverName        = fatchApprover.Name;
                ViewBag.approverDesignation = fatchApprover.designation.Name;
                ViewBag.approverDepartment  = fatchApprover.department.Name;
            }

            return(PartialView("_CancelOrComplete", maintainanceRequisition));
        }
        public ActionResult MaintainanceRFQRejected(MaintainanceRequisition maintainanceRequisition)
        {
            if (ModelState.IsValid)
            {
                maintainanceRequisition.ApprovalStatus   = "Rejected";
                maintainanceRequisition.ApprovalDateTime = DateTime.Now.ToString();
                maintainanceRequisition.WorkDoneStatus   = "Rejected";

                var vehicleAvailability = db.Vehicles.SingleOrDefault(vehicle => vehicle.VehicleID == maintainanceRequisition.VehicleID);
                if (vehicleAvailability == null)
                {
                    return(HttpNotFound("Vehicle is not Valid"));
                }
                vehicleAvailability.Available = "Yes";

                db.Entry(maintainanceRequisition).State = EntityState.Modified;



                var employeeUserId = User.Identity.GetUserId();
                var getEmployee    = db.Employees.FirstOrDefault(emp => emp.ApplicationEmpID == employeeUserId).EmployeeID;
                maintainanceRequisition.ApprovedBy = getEmployee;
                db.SaveChanges();
                return(Json(true, JsonRequestBehavior.AllowGet));
            }

            return(Json(false, JsonRequestBehavior.AllowGet));
        }
        public ActionResult Create(MaintainanceRequisition maintainanceRequisition)
        {
            if (ModelState.IsValid)
            {
                maintainanceRequisition.ReportingDateTime  = DateTime.Now;
                maintainanceRequisition.VerificationStatus = "Verified";

                var getUser       = User.Identity.GetUserId();
                var getEmployeeId = db.Employees.FirstOrDefault(emp => emp.ApplicationEmpID == getUser);
                maintainanceRequisition.VerifiedBy = getEmployeeId.EmployeeID;

                maintainanceRequisition.WorkDoneStatus = "RFQPending";
                maintainanceRequisition.ApprovalStatus = "Pending";


                db.MaintainanceRequisitions.Add(maintainanceRequisition);

                var vahicleAvailability = db.Vehicles.SingleOrDefault(vehicle => vehicle.VehicleID == maintainanceRequisition.VehicleID);
                if (vahicleAvailability == null)
                {
                    return(HttpNotFound("Vahicle is not valid"));
                }
                vahicleAvailability.Available = "No";

                db.SaveChanges();
                return(Json(true, JsonRequestBehavior.AllowGet));
            }
            return(Json(false, JsonRequestBehavior.AllowGet));
        }
        public ActionResult CreatePartial()
        {
            var vehicleDriver = db.Employees.Where(emp => emp.designation.Name == "Driver")
                                .Select(driver => new
            {
                Text  = driver.Name,
                Value = driver.EmployeeID
            }).ToList();

            ViewBag.VehicleDriver = new SelectList(vehicleDriver, "Value", "Text");

            var vehicleSelection = db.Vehicles.Where(v => v.Available == "Yes")
                                   .Select(vehicle => new
            {
                Text  = vehicle.RegistrationNo + " - " + vehicle.Name + " " + vehicle.Type + "",
                Value = vehicle.VehicleID
            }).ToList();

            ViewBag.VehicleList = new SelectList(vehicleSelection, "Value", "Text");

            ViewBag.Supplier = new SelectList(db.Suppliers, "SupplierID", "CompanyName");


            var maintainanceReq = new MaintainanceRequisition();

            return(PartialView("_Create", maintainanceReq));
        }
        public ActionResult Edit(MaintainanceRequisition maintainanceRequisition)
        {
            if (ModelState.IsValid)
            {
                maintainanceRequisition.VerificationStatus = "Verified";

                db.Entry(maintainanceRequisition).State = EntityState.Modified;
                db.Entry(maintainanceRequisition).Property("ReportingDateTime").IsModified = false;
                db.Entry(maintainanceRequisition).Property("VerifiedBy").IsModified        = false;
                db.Entry(maintainanceRequisition).Property("WorkDoneStatus").IsModified    = false;
                db.SaveChanges();
                return(Json(true, JsonRequestBehavior.AllowGet));
            }

            return(Json(false, JsonRequestBehavior.AllowGet));
        }
        public ActionResult MaintainanceRFQApproved(MaintainanceRequisition maintainanceRequisition)
        {
            if (ModelState.IsValid)
            {
                maintainanceRequisition.ApprovalStatus   = "Approved";
                maintainanceRequisition.ApprovalDateTime = DateTime.Now.ToString();
                maintainanceRequisition.WorkDoneStatus   = "OnGoing";

                db.Entry(maintainanceRequisition).State = EntityState.Modified;

                var employeeUserId = User.Identity.GetUserId();
                var getEmployee    = db.Employees.FirstOrDefault(emp => emp.ApplicationEmpID == employeeUserId).EmployeeID;
                maintainanceRequisition.ApprovedBy = getEmployee;
                db.SaveChanges();

                return(Json(true, JsonRequestBehavior.AllowGet));
            }

            return(Json(false, JsonRequestBehavior.AllowGet));
        }
        public ActionResult CancelledOnGoingMaintainance(MaintainanceRequisition maintainanceRequisition)
        {
            if (ModelState.IsValid)
            {
                var vahicleAvailability = db.Vehicles.SingleOrDefault(vehicle => vehicle.VehicleID == maintainanceRequisition.VehicleID);
                if (vahicleAvailability == null)
                {
                    return(HttpNotFound("Vahicle is not valid"));
                }
                vahicleAvailability.Available = "Yes";

                maintainanceRequisition.WorkDoneStatus = "Cancelled";

                db.Entry(maintainanceRequisition).State = EntityState.Modified;

                db.SaveChanges();
                return(Json(true, JsonRequestBehavior.AllowGet));
            }
            return(Json(false, JsonRequestBehavior.AllowGet));
        }
        public ActionResult DetailsPartial(int?id)
        {
            MaintainanceRequisition maintainanceRequisition = db.MaintainanceRequisitions.Find(id);

            var fatchVerifier = db.Employees.FirstOrDefault(emp => emp.EmployeeID == maintainanceRequisition.VerifiedBy);

            if (fatchVerifier != null)
            {
                ViewBag.verifierName         = fatchVerifier.Name;
                ViewBag.veirifierDesignation = fatchVerifier.designation.Name;
                ViewBag.veirifierDepartment  = fatchVerifier.department.Name;
            }
            var fatchApprover = db.Employees.FirstOrDefault(emp => emp.EmployeeID == maintainanceRequisition.ApprovedBy);

            if (fatchApprover != null)
            {
                ViewBag.approverName        = fatchApprover.Name;
                ViewBag.approverDesignation = fatchApprover.designation.Name;
                ViewBag.approverDepartment  = fatchApprover.department.Name;
                ViewBag.comma = " , ";
            }

            return(PartialView("_Details", maintainanceRequisition));
        }
        // GET: MaintainanceRequisitions/Delete/5
        public ActionResult DeletePartial(int?id)
        {
            MaintainanceRequisition maintainanceRequisition = db.MaintainanceRequisitions.Find(id);

            return(PartialView("_Delete", maintainanceRequisition));
        }