public ActionResult InventoryAdminONM()
        {
            List <string> status = new List <string>()
            {
                "COMPLETED", "PARTIALLY COMPLETED"
            };

            ViewBag.Status = status;
            List <OperationAndMaintenanceModel> oNmList = new List <OperationAndMaintenanceModel>();
            var invOnM = db.tbl_OandM.Where(o => o.Status == "PARTIALLY APPROVED").Select(o => o).Distinct().ToList();

            foreach (var item in invOnM)
            {
                OperationAndMaintenanceModel oNm = new OperationAndMaintenanceModel();
                var empId = Convert.ToInt32(item.AssignedTo);
                oNm.AssignedEmployee   = db.tbl_employee.Where(e => e.EmployeeID == empId).Select(e => e.EmployeeName).FirstOrDefault();
                oNm.BeneficiaryName    = item.tbl_beneficiary.BeneficiaryName;
                oNm.Block              = item.tbl_beneficiary.Block;
                oNm.CompletionDate     = item.DateOfCompletion;
                oNm.Contact            = item.tbl_beneficiary.ContactNo;
                oNm.District           = item.tbl_beneficiary.District;
                oNm.ProblemDescription = item.ProblemType;
                oNm.ReportedDate       = item.ProblemreportedOn;
                oNm.Status             = item.Status;
                oNm.SystemCapacity     = item.tbl_beneficiary.systemCapacity;
                oNm.Village            = item.tbl_beneficiary.Village;
                oNm.WorkOrderNo        = item.WorkOrderID;
                oNmList.Add(oNm);
            }
            return(View(oNmList));
        }
        public void ExportToExcelOandM()
        {
            DataTable dt = new DataTable();

            dt.TableName = "tbl_OandM";
            //List<OperationAndMaintenanceModel> oNmList = OperationAndMaintenanceModel.Deserialize(modelString);
            List <OperationAndMaintenanceModel> ONMModel = TempData["ONMList"].CastTo <List <OperationAndMaintenanceModel> >();
            var beneficiaryDetails = db.tbl_beneficiary.Select(b => b).ToList();
            List <OperationAndMaintenanceModel> downloadONMList = new List <OperationAndMaintenanceModel>();

            foreach (var item in ONMModel)
            {
                OperationAndMaintenanceModel mntnceDetails = new OperationAndMaintenanceModel();
                mntnceDetails.AssignedEmployee   = item.AssignedEmployee;
                mntnceDetails.BeneficiaryName    = item.BeneficiaryName;
                mntnceDetails.Block              = item.Block;
                mntnceDetails.CompletionDate     = item.CompletionDate;
                mntnceDetails.Contact            = item.Contact;
                mntnceDetails.District           = item.District;
                mntnceDetails.ProblemDescription = item.ProblemDescription;
                mntnceDetails.ReportedDate       = item.ReportedDate;
                mntnceDetails.Status             = item.Status;
                mntnceDetails.SystemCapacity     = item.SystemCapacity;
                mntnceDetails.Village            = item.Village;
                mntnceDetails.WorkOrderNo        = item.WorkOrderNo;
                downloadONMList.Add(mntnceDetails);
            }

            DataTable dataTable = ToDataTable(downloadONMList);

            using (XLWorkbook wb = new XLWorkbook())
            {
                wb.Worksheets.Add(dataTable);
                wb.Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center;
                wb.Style.Font.Bold            = true;

                Response.Clear();
                Response.Buffer      = true;
                Response.Charset     = "";
                Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                Response.AddHeader("content-disposition", "attachment;filename= BeneficiaryList.xlsx");

                using (MemoryStream MyMemoryStream = new MemoryStream())
                {
                    wb.SaveAs(MyMemoryStream);
                    MyMemoryStream.WriteTo(Response.OutputStream);
                    Response.Flush();
                    Response.End();
                }
            }
            //return Json("Success");
        }
        public ActionResult OandMSheet()
        {
            ViewBag.EmployeeList = db.tbl_employee.Where(e => e.Role == "Field Assitant").Select(e => e).ToList();
            ViewBag.ItemList     = db.tbl_Items.Select(i => i).ToList();
            ViewBag.PumpTypeList = db.tbl_beneficiary.Select(b => b.PumpType).Distinct().ToList();
            ViewBag.Status       = new List <string>()
            {
                "Submitted", "PARTIALLY COMPLETED", "PENDING"
            };
            var list = db.tbl_OandM.Select(o => o).Distinct().ToList();

            if (Session["role"].ToString() == "Field Assitant")
            {
                list = list.Where(o => o.AssignedTo == Session["ID"].ToString()).Select(o => o).ToList();
            }
            else if (Session["role"].ToString() == "Manager")
            {
                list = list.Where(o => o.Created_By == Session["ID"].ToString()).Select(o => o).ToList();
            }
            else if (Session["role"].ToString() == "Admin")
            {
                list = list;
            }
            List <OperationAndMaintenanceModel> oNmList = new List <OperationAndMaintenanceModel>();

            foreach (var maintenanceDetails in list)
            {
                int assignedTo = Convert.ToInt32(maintenanceDetails.AssignedTo);
                OperationAndMaintenanceModel oNmObj = new OperationAndMaintenanceModel();
                oNmObj.BeneficiaryName    = maintenanceDetails.tbl_beneficiary.BeneficiaryName;
                oNmObj.BeneficiaryID      = maintenanceDetails.tbl_beneficiary.BeneficiaryID;
                oNmObj.Block              = maintenanceDetails.tbl_beneficiary.Block;
                oNmObj.CompletionDate     = maintenanceDetails.DateOfCompletion;
                oNmObj.Contact            = maintenanceDetails.tbl_beneficiary.ContactNo;
                oNmObj.District           = maintenanceDetails.tbl_beneficiary.District;
                oNmObj.ProblemDescription = maintenanceDetails.ProblemType;
                oNmObj.ReportedDate       = maintenanceDetails.ProblemreportedOn;
                oNmObj.SystemCapacity     = maintenanceDetails.tbl_beneficiary.systemCapacity;
                oNmObj.Status             = maintenanceDetails.Status;
                oNmObj.Village            = maintenanceDetails.tbl_beneficiary.Village;
                oNmObj.WorkOrderNo        = maintenanceDetails.WorkOrderID;
                oNmObj.AssignedTo         = assignedTo;/*db.tbl_employee.Where(e=>e.EmployeeName.Trim() == assignedTo.Trim()).Select(e=>e.EmployeeID).FirstOrDefault() ;*/
                oNmObj.AssignedEmployee   = db.tbl_employee.Where(e => e.EmployeeID == assignedTo).Select(e => e.EmployeeName).FirstOrDefault();
                oNmList.Add(oNmObj);
            }
            TempData["ONMList"] = oNmList;
            return(View(oNmList));
        }