public ActionResult SetPrice(List <BillReceiptList> billreceiptlists)
 {
     foreach (var d in billreceiptlists)
     {
         var c = db.BillReceiptLists.Where(a => a.ListID.Equals(d.ListID)).FirstOrDefault();
         var e = db.Devices.Where(x => x.DeviceID == d.DeviceID).FirstOrDefault();
         {
             if (c.Price != d.Price && d.BillReceiptType == "Repair" && e.StatusID == 6 || e.StatusID == 8)
             {
                 RecordInRepair recordinrepair = new RecordInRepair();
                 recordinrepair.RequestBy     = System.Web.HttpContext.Current.User.Identity.Name;
                 recordinrepair.DateRequest   = DateTime.Now;
                 recordinrepair.Cause         = db.RecordInRepairs.Where(r => r.SerialNumber == c.SerialNumber).Select(r => r.Cause).DefaultIfEmpty().First();
                 recordinrepair.DeviceType    = db.DeviceTypes.Where(t => t.Type == c.Type).Select(t => t.Type).DefaultIfEmpty().First();
                 recordinrepair.Model         = db.Models.Where(m => m.ModelName == c.Model).Select(t => t.ModelName).DefaultIfEmpty().First();
                 recordinrepair.Brand         = db.Brands.Where(t => t.BrandName == c.Brand).Select(t => t.BrandName).DefaultIfEmpty().First();
                 recordinrepair.SerialNumber  = db.Devices.Where(t => t.DeviceID == c.DeviceID).Select(t => t.SerialNumber).DefaultIfEmpty().First();
                 recordinrepair.Status        = "Sent Repair";
                 recordinrepair.Plant         = db.Devices.Where(t => t.DeviceID == c.DeviceID).Select(t => t.Plant.PlantName).DefaultIfEmpty().First();
                 recordinrepair.Department    = db.Devices.Where(t => t.DeviceID == c.DeviceID).Select(t => t.Department.DepartmentName).DefaultIfEmpty().First();
                 recordinrepair.Location      = db.Devices.Where(t => t.DeviceID == c.DeviceID).Select(t => t.Location.LocationName).DefaultIfEmpty().First();
                 recordinrepair.Phase         = db.Devices.Where(t => t.DeviceID == c.DeviceID).Select(t => t.PhaseName).DefaultIfEmpty().First();
                 recordinrepair.LocationStock = db.Devices.Where(t => t.DeviceID == c.DeviceID).Select(t => t.LocationStockName).DefaultIfEmpty().First();
                 recordinrepair.Machine       = db.Devices.Where(t => t.DeviceID == c.DeviceID).Select(t => t.Machine.MachineName).DefaultIfEmpty().First();
                 recordinrepair.UserName      = db.Devices.Where(t => t.DeviceID == c.DeviceID).Select(t => t.User.FullName).DefaultIfEmpty().First();
                 recordinrepair.DeviceName    = db.Devices.Where(t => t.DeviceID == c.DeviceID).Select(t => t.DeviceName).DefaultIfEmpty().First();
                 db.RecordInRepairs.Add(recordinrepair);
             }
             else if (c.Price != d.Price && d.BillReceiptType == "Sale" && e != null)
             {
                 RecordSale recordsale = new RecordSale();
                 recordsale.RequestBy     = System.Web.HttpContext.Current.User.Identity.Name;
                 recordsale.DateRequest   = DateTime.Now;
                 recordsale.Cause         = db.RecordInRepairs.Where(r => r.SerialNumber == c.SerialNumber).Select(r => r.Cause).DefaultIfEmpty().First();
                 recordsale.DeviceType    = db.DeviceTypes.Where(t => t.Type == c.Type).Select(t => t.Type).DefaultIfEmpty().First();
                 recordsale.Model         = db.Models.Where(m => m.ModelName == c.Model).Select(t => t.ModelName).DefaultIfEmpty().First();
                 recordsale.Brand         = db.Brands.Where(t => t.BrandName == c.Brand).Select(t => t.BrandName).DefaultIfEmpty().First();
                 recordsale.SerialNumber  = db.Devices.Where(t => t.DeviceID == c.DeviceID).Select(t => t.SerialNumber).DefaultIfEmpty().First();
                 recordsale.Status        = db.Devices.Where(t => t.DeviceID == c.DeviceID).Select(t => t.StatusName).DefaultIfEmpty().First();
                 recordsale.Plant         = db.Devices.Where(t => t.DeviceID == c.DeviceID).Select(t => t.Plant.PlantName).DefaultIfEmpty().First();
                 recordsale.Department    = db.Devices.Where(t => t.DeviceID == c.DeviceID).Select(t => t.Department.DepartmentName).DefaultIfEmpty().First();
                 recordsale.Location      = db.Devices.Where(t => t.DeviceID == c.DeviceID).Select(t => t.Location.LocationName).DefaultIfEmpty().First();
                 recordsale.Phase         = db.Devices.Where(t => t.DeviceID == c.DeviceID).Select(t => t.PhaseName).DefaultIfEmpty().First();
                 recordsale.LocationStock = db.Devices.Where(t => t.DeviceID == c.DeviceID).Select(t => t.LocationStockName).DefaultIfEmpty().First();
                 recordsale.Machine       = db.Devices.Where(t => t.DeviceID == c.DeviceID).Select(t => t.Machine.MachineName).DefaultIfEmpty().First();
                 recordsale.UserName      = db.Devices.Where(t => t.DeviceID == c.DeviceID).Select(t => t.User.FullName).DefaultIfEmpty().First();
                 recordsale.DeviceName    = db.Devices.Where(t => t.DeviceID == c.DeviceID).Select(t => t.DeviceName).DefaultIfEmpty().First();
                 db.RecordSales.Add(recordsale);
             }
             else if (c.Price != d.Price && d.BillReceiptType == "Sale" && e == null)
             {
                 RecordSale recordsale = new RecordSale();
                 recordsale.RequestBy   = System.Web.HttpContext.Current.User.Identity.Name;
                 recordsale.DateRequest = DateTime.Now;
                 recordsale.Cause       = "Remove scrap";
                 recordsale.DeviceType  = "Scrap";
                 recordsale.Status      = "Sent Sale";
                 recordsale.Plant       = "PCLT";
                 recordsale.Department  = "Safety & Environment";
                 recordsale.Location    = "Scrap PCLT";
                 recordsale.Phase       = "2";
                 db.RecordSales.Add(recordsale);
             }
             if (c.Price != d.Price && d.BillReceiptType == "Repair" && e.StatusID == 6 || e.StatusID == 8)
             {
                 c.Price           = d.Price;
                 e.StatusID        = 6;
                 e.StatusName      = "Sent Repair";
                 e.UpdateBy        = System.Web.HttpContext.Current.User.Identity.Name;
                 e.DateUpdate      = DateTime.Now;
                 db.Entry(c).State = EntityState.Modified;
                 db.Entry(e).State = EntityState.Modified;
             }
             else if (c.Price != d.Price && d.BillReceiptType == "Sale" && e != null)
             {
                 c.Price           = d.Price;
                 e.StatusID        = 7;
                 e.StatusName      = "Sent Sale";
                 e.UpdateBy        = System.Web.HttpContext.Current.User.Identity.Name;
                 e.DateUpdate      = DateTime.Now;
                 db.Entry(c).State = EntityState.Modified;
                 db.Entry(e).State = EntityState.Modified;
             }
             else if (d.BillReceiptType == "Sale" && e != null)
             {
                 c.Price           = d.Price;
                 e.StatusID        = 7;
                 e.StatusName      = "Sent Sale";
                 e.UpdateBy        = System.Web.HttpContext.Current.User.Identity.Name;
                 e.DateUpdate      = DateTime.Now;
                 db.Entry(c).State = EntityState.Modified;
                 db.Entry(e).State = EntityState.Modified;
             }
             else if (c.Price != d.Price && e == null)
             {
                 c.Price           = d.Price;
                 db.Entry(c).State = EntityState.Modified;
             }
         }
     }
     db.SaveChanges();
     return(RedirectToAction("Index"));
 }
        public ActionResult setSentRepairSelected(string[] ids)
        {
            if (ModelState.IsValid)
            {
                int[] id = null;
                if (ids != null)
                {
                    id = new int[ids.Length];
                    int j = 0;
                    foreach (string i in ids)
                    {
                        int.TryParse(i, out id[j++]);
                    }
                }

                if (id != null && id.Length > 0)
                {
                    {
                        var allSelected = db.Devices.Where(a => id.Contains(a.DeviceID)).ToList();

                        foreach (var i in allSelected)
                        {
                            if (i.StatusID != 6)
                            {
                                var c = db.Devices.Where(b => b.DeviceID.Equals(i.DeviceID)).FirstOrDefault();
                                {
                                    c.StatusID   = 6;
                                    c.StatusName = "Sent Repair";
                                    c.DateUpdate = DateTime.Now;
                                    c.UpdateBy   = System.Web.HttpContext.Current.User.Identity.Name;

                                    RecordInRepair recordinrepair = new RecordInRepair();
                                    recordinrepair.Brand         = db.Brands.Where(b => b.BrandID == c.BrandID).Select(b => b.BrandName).DefaultIfEmpty().First();
                                    recordinrepair.DeviceType    = db.DeviceTypes.Where(b => b.DeviceTypeID == c.DeviceTypeID).Select(b => b.Type).DefaultIfEmpty().First();
                                    recordinrepair.RequestBy     = System.Web.HttpContext.Current.User.Identity.Name;
                                    recordinrepair.DateRequest   = c.DateUpdate;
                                    recordinrepair.Cause         = "Sent Repair";
                                    recordinrepair.Model         = db.Models.Where(b => b.ModelID == c.ModelID).Select(b => b.ModelName).DefaultIfEmpty().First();
                                    recordinrepair.SerialNumber  = db.Devices.Where(b => b.DeviceID == c.DeviceID).Select(b => b.SerialNumber).DefaultIfEmpty().First();
                                    recordinrepair.Plant         = db.Plants.Where(b => b.PlantID == c.PlantID).Select(b => b.PlantName).DefaultIfEmpty().First();
                                    recordinrepair.Department    = db.Departments.Where(b => b.DepartmentID == c.DepartmentID).Select(b => b.DepartmentName).DefaultIfEmpty().First();
                                    recordinrepair.Location      = db.Locations.Where(b => b.LocationID == c.LocationID).Select(b => b.LocationName).DefaultIfEmpty().First();
                                    recordinrepair.Phase         = db.Phases.Where(b => b.PhaseID == c.PhaseID).Select(b => b.PhaseName).DefaultIfEmpty().First();
                                    recordinrepair.LocationStock = db.LocationStocks.Where(b => b.LocationName == c.LocationStockName).Select(b => b.LocationName).DefaultIfEmpty().First();
                                    recordinrepair.Machine       = db.Machines.Where(b => b.MachineID == c.MachineID).Select(b => b.MachineName).DefaultIfEmpty().First();
                                    recordinrepair.Status        = db.Status.Where(b => b.StatusID == c.StatusID).Select(b => b.Status1).DefaultIfEmpty().First();
                                    recordinrepair.UserName      = db.Users.Where(b => b.UserID == c.UserID).Select(b => b.FullName).DefaultIfEmpty().First();
                                    if (c.IsAsset == true)
                                    {
                                        recordinrepair.IsFixAsset = "Asset";
                                    }
                                    db.Entry(c).State = EntityState.Modified;
                                    db.RecordInRepairs.Add(recordinrepair);
                                }
                            }
                            else
                            {
                                return(RedirectToAction("Index", "BillReceipt"));
                            }
                        }
                        db.SaveChanges();
                    }
                }
                return(RedirectToAction("SendRepair", "Device"));
            }
            return(RedirectToAction("Index", "BillReceipt"));
        }