public ActionResult Index(int?companyCode, int?repId, DateTime?fromDate, DateTime?toDate, string filter, int?search)
        {
            bool?isActive = null;

            if (filter == "active")
            {
                isActive = true;
            }
            else if (filter == "inactive")
            {
                isActive = false;
            }

            ViewBag.CompanyCode = new SelectList(db.tblCompanies.Where(c => c.isActive)
                                                 .Select(ccc => new { ccc.CompanyCode, ccc.Name }).ToList()
                                                 .Select(cc => new { cc.CompanyCode, Name = cc.Name + " (" + cc.CompanyCode + ")" }),
                                                 "CompanyCode", "Name");

            if (companyCode == null)
            {
                ViewBag.RepId = Enumerable.Empty <SelectListItem>();
            }
            else
            {
                var ccode = companyCode.ToString();
                var cid   = db.tblCompanies.Single(c => c.CompanyCode == ccode).CompanyId;

                ViewBag.RepId = new SelectList(
                    db.TblUsers.Where(u => u.CompanyId == cid && u.IsActive && u.IsDeleted != true)
                    .Select(r => new { r.Rep_Id, r.UserName }).ToList()
                    .Select(s => new { RepId = int.Parse(s.Rep_Id), UserName = $"{s.UserName} ({s.Rep_Id})" }),
                    "RepId", "UserName", repId
                    );
            }

            var items = new List <SelectListItem>()
            {
                new SelectListItem()
                {
                    Value = "active", Text = "Active"
                },
                new SelectListItem()
                {
                    Value = "inactive", Text = "Deleted/Held"
                },
            };

            ViewBag.Filter = new SelectList(items, "Value", "Text");

            var d = bm.GetBatchOrders();

            toDate   = toDate == null ? null : (DateTime?)toDate.Value.AddDays(1);
            fromDate = fromDate == null ? DateTime.Now.Date : fromDate.Value;
            if (search == null)
            {
                d = d.Where(f =>
                            (f.IsActive == isActive || isActive == null) &&
                            (search == null || f.OrderNo == search || f.BatchNo == search) &&
                            (f.CompanyCode == companyCode || companyCode == null) &&
                            (f.RepId == repId || repId == null) &&
                            (fromDate == null || f.OrderCreatedOn > fromDate) &&
                            (toDate == null || f.OrderCreatedOn < toDate));
            }
            else
            {
                d = d.Where(f => f.OrderNo == search || f.BatchNo == search);
            }

            return(View(d.ToList()));
        }