Example #1
0
        private void SyncSaleInvoice_Inventory(Guid branch_id, Guid product_id, int qty, Guid sale_inv_items_id)
        {
            iSpeakContext context   = new iSpeakContext();
            var           inventory = context.Inventory.AsNoTracking().Where(x => x.Branches_Id == branch_id && x.Products_Id == product_id && x.AvailableQty > 0).OrderBy(x => x.ReceiveDate).FirstOrDefault();

            InventoryModels inventoryModels = context.Inventory.Find(inventory.Id);

            if (qty >= inventory.AvailableQty)
            {
                inventoryModels.AvailableQty = 0;
            }
            else
            {
                inventoryModels.AvailableQty -= qty;
            }
            context.Entry(inventoryModels).State = EntityState.Modified;

            SaleInvoiceItems_InventoryModels sii_i = new SaleInvoiceItems_InventoryModels
            {
                Id = Guid.NewGuid(),
                SaleInvoiceItems_Id = sale_inv_items_id,
                Inventory_Id        = inventory.Id,
                Qty = inventory.AvailableQty - inventoryModels.AvailableQty
            };

            context.SaleInvoiceItems_Inventory.Add(sii_i);

            context.SaveChanges();

            if (qty > inventory.AvailableQty)
            {
                SyncSaleInvoice_Inventory(branch_id, product_id, qty - inventory.AvailableQty, sale_inv_items_id);
            }
        }
Example #2
0
        public async Task <JsonResult> ResetPassword(string user_id)
        {
            var user = await UserManager.FindByIdAsync(user_id);

            if (user.PasswordHash != null)
            {
                await UserManager.RemovePasswordAsync(user_id);
            }
            iSpeakContext db = new iSpeakContext();
            var           password_for_reset = await db.Settings.FindAsync(SettingsValue.GUID_ResetPassword);

            var result = await UserManager.AddPasswordAsync(user_id, password_for_reset.Value_String);

            if (result.Succeeded)
            {
                LogsModels logsModels = new LogsModels
                {
                    Id              = Guid.NewGuid(),
                    Timestamp       = DateTime.UtcNow,
                    TableName       = "AspNetUsers",
                    RefId           = new Guid(user_id),
                    Action          = "Modified",
                    ColumnName      = "Password",
                    Description     = "Reset Password",
                    UserAccounts_Id = User.Identity.GetUserId()
                };
                db.Logs.Add(logsModels);
                await db.SaveChangesAsync();

                return(Json(new { Error = "" }));
            }
            return(Json(new { Error = "Error" }));
        }
Example #3
0
        public JsonResult SessionsCheck(string temp)
        {
            string        invoices = "";
            List <string> model    = new List <string>();
            //var package = await (from si in db.SaleInvoices
            //                     join sii in db.SaleInvoiceItems on si.Id equals sii.SaleInvoices_Id
            //                     where si.Cancelled == false && sii.LessonPackages_Id != null
            //                     select new { si, sii }).ToListAsync();
            //foreach (var item in package)
            //{
            //    var total_hour_session = (await db.LessonSessions.Where(x => x.SaleInvoiceItems_Id == item.sii.Id && x.Deleted == false).ToListAsync()).Sum(x => x.SessionHours);
            //    if (total_hour_session != (item.sii.SessionHours - item.sii.SessionHours_Remaining))
            //    {
            //        if (string.IsNullOrEmpty(invoices))
            //        {
            //            invoices = item.si.No;
            //        }
            //        else
            //        {
            //            invoices += ", " + item.si.No;
            //        }
            //        model.Add(item.si.No);
            //    }
            //}

            List <SessionsCheck> sc = new List <SessionsCheck>();

            using (var ctx = new iSpeakContext())
            {
                sc = ctx.Database.SqlQuery <SessionsCheck>(@"
                    select
                    si.no,sii.description,sii.sessionhours,sii.sessionhours_remaining,
                    (sii.sessionhours-sii.sessionhours_remaining) usedhours,
                    (select isnull(sum(ls.SessionHours),0) from LessonSessions ls where ls.SaleInvoiceItems_Id=sii.id and ls.Deleted=0) totalhours
                    from saleinvoices si
                    inner join saleinvoiceitems sii on si.id=sii.saleinvoices_id
                    where si.cancelled=0 and sii.lessonpackages_id is not null
                ").ToList();
            }

            foreach (var item in sc)
            {
                if (item.UsedHours != item.TotalHours)
                {
                    if (string.IsNullOrEmpty(invoices))
                    {
                        invoices = item.No;
                    }
                    else
                    {
                        invoices += ", " + item.No;
                    }
                    model.Add(item.No);
                }
            }

            return(Json(new { model, count = model.Count, invoices }));
        }
Example #4
0
        //public async Task<ActionResult> Index()
        //{
        //    Permission p = new Permission();
        //    bool auth = p.IsGranted(User.Identity.Name, this.ControllerContext.RouteData.Values["controller"].ToString() + "_" + this.ControllerContext.RouteData.Values["action"].ToString());
        //    if (!auth) { return new ViewResult() { ViewName = "Unauthorized" }; }
        //    else
        //    {
        //        var data = (from si in db.SaleInvoices
        //                    join b in db.Branches on si.Branches_Id equals b.Id
        //                    join u in db.User on si.Customer_UserAccounts_Id equals u.Id
        //                    //where si.Due > 0
        //                    select new SaleInvoicesIndexModels
        //                    {
        //                        Id = si.Id,
        //                        Branches = b.Name,
        //                        No = si.No,
        //                        Timestamp = si.Timestamp,
        //                        Customer = u.Firstname + " " + u.Middlename + " " + u.Lastname,
        //                        Amount = si.Amount,
        //                        Due = si.Due,
        //                        Cancelled = si.Cancelled
        //                    }).ToListAsync();
        //        return View(await data);
        //    }
        //}

        #region Get Data
        public async Task <JsonResult> GetData()
        {
            var user_login = await db.User.Where(x => x.UserName == User.Identity.Name).FirstOrDefaultAsync();

            List <PaymentsIndexModels> list = new List <PaymentsIndexModels>();

            //NEW Code
            List <PaymentIndexSQL> items = new List <PaymentIndexSQL>();

            using (var ctx = new iSpeakContext())
            {
                items = ctx.Database.SqlQuery <PaymentIndexSQL>(@"
                    SELECT 
                    p.Id
                    ,(SELECT Name FROM Branches WHERE Id='" + user_login.Branches_Id + @"') Branch
                    ,p.Timestamp Date,p.No,p.CashAmount Cash,p.DebitAmount Debit,p.ConsignmentAmount Consignment,p.Cancelled,p.Confirmed,p.Notes_Cancel
                    ,CASE WHEN y.Payments_Id IS NOT NULL THEN CAST(1 AS BIT) ELSE CAST(0 AS BIT) END Has_Session
                    FROM Payments p
                    INNER JOIN (
	                    SELECT p.Id
	                    FROM Payments p
	                    INNER JOIN PaymentItems pi ON p.Id=pi.Payments_Id
	                    INNER JOIN SaleInvoices si ON pi.ReferenceId=si.Id
	                    INNER JOIN Branches b ON si.Branches_Id=b.Id
	                    WHERE b.Id='"     + user_login.Branches_Id + @"'
	                    GROUP BY p.Id
                    ) x ON p.Id=x.Id
                    LEFT JOIN (
	                    SELECT pi.Payments_Id
	                    FROM PaymentItems pi
	                    INNER JOIN SaleInvoices si ON pi.ReferenceId=si.Id
	                    INNER JOIN SaleInvoiceItems sii ON si.Id=sii.SaleInvoices_Id
	                    WHERE sii.SessionHours > sii.SessionHours_Remaining
	                    GROUP BY pi.Payments_Id
                    ) y ON p.Id=y.Payments_Id
                    ORDER BY p.Timestamp DESC
                ").ToList();
            }

            foreach (var item in items)
            {
                list.Add(new PaymentsIndexModels
                {
                    Id                = item.Id,
                    Branch            = item.Branch,
                    No                = item.No,
                    Timestamp         = string.Format("{0:yyyy/MM/dd HH:mm}", TimeZoneInfo.ConvertTimeFromUtc(item.Date, TimeZoneInfo.FindSystemTimeZoneById("SE Asia Standard Time"))),
                    CashAmount        = item.Cash,
                    DebitAmount       = item.Debit,
                    ConsignmentAmount = item.Consignment,
                    Cancelled         = item.Cancelled,
                    Confirmed         = item.Confirmed,
                    Notes_Cancel      = item.Notes_Cancel,
                    HasSession        = item.Has_Session
                });
            }

            //OLD Code
            //foreach (var item in await db.Payments.ToListAsync())
            //{
            //    var results = await (from pi in db.PaymentItems
            //                         join si in db.SaleInvoices on pi.ReferenceId equals si.Id
            //                         join b in db.Branches on si.Branches_Id equals b.Id
            //                         where pi.Payments_Id == item.Id
            //                         select new { si, b }).FirstOrDefaultAsync();
            //    if (user_login.Branches_Id == results.si.Branches_Id)
            //    {

            //        var check_session = await (from pi in db.PaymentItems
            //                                   join si in db.SaleInvoices on pi.ReferenceId equals si.Id
            //                                   join sii in db.SaleInvoiceItems on si.Id equals sii.SaleInvoices_Id
            //                                   where pi.Payments_Id == item.Id && sii.SessionHours > sii.SessionHours_Remaining
            //                                   select new { pi }).ToListAsync();

            //        PaymentsIndexModels pim = new PaymentsIndexModels
            //        {
            //            Id = item.Id,
            //            Branch = results.b.Name,
            //            No = item.No,
            //            Timestamp = string.Format("{0:yyyy/MM/dd HH:mm}", TimeZoneInfo.ConvertTimeFromUtc(item.Timestamp, TimeZoneInfo.FindSystemTimeZoneById("SE Asia Standard Time"))),
            //            CashAmount = item.CashAmount,
            //            DebitAmount = item.DebitAmount,
            //            ConsignmentAmount = item.ConsignmentAmount,
            //            Cancelled = item.Cancelled,
            //            Confirmed = item.Confirmed,
            //            Notes_Cancel = item.Notes_Cancel,
            //            HasSession = check_session.Count > 0 ? true : false
            //            //Action = item.Notes_Cancel
            //        };
            //        list.Add(pim);
            //    }
            //    //Guid sales_invoice_id = db.PaymentItems.Where(x => x.Payments_Id == item.Id).FirstOrDefault().ReferenceId;
            //    //Guid branch_id = db.SaleInvoices.Where(x => x.Id == sales_invoice_id).FirstOrDefault().Branches_Id;
            //    //pim.Branch = db.Branches.Where(x => x.Id == branch_id).FirstOrDefault().Name;
            //    //if (branch_id == user_branch)
            //    //    list.Add(pim);
            //}

            int totalRows = list.Count;

            //Server Side Parameters
            int    start          = Convert.ToInt32(Request["start"]);
            int    length         = Convert.ToInt32(Request["length"]);
            string searchValue    = Request["search[value]"];
            string sortColumnName = Request["columns[" + Request["order[0][column]"] + "][name]"];
            string sortDirection  = Request["order[0][dir]"];

            //Filtering
            if (!string.IsNullOrEmpty(searchValue))
            {
                list = list
                       .Where(x => x.Branch.ToLower().Contains(searchValue.ToLower()) ||
                              x.Timestamp.ToLower().Contains(searchValue.ToLower()) ||
                              x.No.ToLower().Contains(searchValue.ToLower()) ||
                              x.CashAmount.ToString().Contains(searchValue.ToLower()) ||
                              x.DebitAmount.ToString().Contains(searchValue.ToLower()) ||
                              x.ConsignmentAmount.ToString().Contains(searchValue.ToLower())
                              ).ToList();
            }
            int totalRowsFiltered = list.Count;

            //Sorting
            list = list.OrderBy(sortColumnName + " " + sortDirection).ToList();

            //Paging
            list = list.Skip(start).Take(length).ToList();

            return(Json(new { data = list, draw = Request["draw"], recordsTotal = totalRows, recordsFiltered = totalRowsFiltered }, JsonRequestBehavior.AllowGet));

            //return Json(new { data = list }, JsonRequestBehavior.AllowGet);
        }
Example #5
0
        public ActionResult Edit([Bind(Include = "User,RoleId,LanguageId")] EditUserViewModels editUserViewModels)
        {
            if (ModelState.IsValid)
            {
                List <InterestViewModels> ivm = new List <InterestViewModels>();
                if (editUserViewModels.LanguageId != null)
                {
                    foreach (var i in editUserViewModels.LanguageId)
                    {
                        ivm.Add(new InterestViewModels
                        {
                            Languages_Id = i
                        });
                    }
                }
                string list_interest = editUserViewModels.LanguageId == null ? string.Empty : JsonConvert.SerializeObject(ivm);

                var current_data = db.User.Find(editUserViewModels.User.Id);
                current_data.Firstname          = editUserViewModels.User.Firstname;
                current_data.Middlename         = editUserViewModels.User.Middlename;
                current_data.Lastname           = editUserViewModels.User.Lastname;
                current_data.Birthday           = editUserViewModels.User.Birthday;
                current_data.UserName           = editUserViewModels.User.UserName;
                current_data.Email              = editUserViewModels.User.Email;
                current_data.Phone1             = editUserViewModels.User.Phone1;
                current_data.Phone2             = editUserViewModels.User.Phone2;
                current_data.Address            = editUserViewModels.User.Address;
                current_data.Notes              = editUserViewModels.User.Notes;
                current_data.Active             = editUserViewModels.User.Active;
                current_data.Branches_Id        = editUserViewModels.User.Branches_Id;
                current_data.PromotionEvents_Id = editUserViewModels.User.PromotionEvents_Id;
                current_data.Interest           = list_interest;
                db.Entry(current_data).State    = EntityState.Modified;
                db.SaveChanges();

                //var user = new UserModels()
                //{
                //    Id = editUserViewModels.User.Id,
                //    Firstname = editUserViewModels.User.Firstname,
                //    Middlename = editUserViewModels.User.Middlename,
                //    Lastname = editUserViewModels.User.Lastname,
                //    Birthday = editUserViewModels.User.Birthday,
                //    UserName = editUserViewModels.User.UserName,
                //    Email = editUserViewModels.User.Email,
                //    Phone1 = editUserViewModels.User.Phone1,
                //    Phone2 = editUserViewModels.User.Phone2,
                //    Address = editUserViewModels.User.Address,
                //    Notes = editUserViewModels.User.Notes,
                //    Active = editUserViewModels.User.Active,
                //    Branches_Id = editUserViewModels.User.Branches_Id
                //};
                //var userRole = new UserRoleModels() { UserId = userViewModels.Id, RoleId = userViewModels.RoleId };

                using (var database = new iSpeakContext())
                {
                    //database.User.Attach(user);
                    //database.Entry(user).Property(x => x.Firstname).IsModified = true;
                    //database.Entry(user).Property(x => x.Middlename).IsModified = true;
                    //database.Entry(user).Property(x => x.Lastname).IsModified = true;
                    //database.Entry(user).Property(x => x.Birthday).IsModified = true;
                    //database.Entry(user).Property(x => x.UserName).IsModified = true;
                    //database.Entry(user).Property(x => x.Email).IsModified = true;
                    //database.Entry(user).Property(x => x.Phone1).IsModified = true;
                    //database.Entry(user).Property(x => x.Phone2).IsModified = true;
                    //database.Entry(user).Property(x => x.Address).IsModified = true;
                    //database.Entry(user).Property(x => x.Notes).IsModified = true;
                    //database.Entry(user).Property(x => x.Active).IsModified = true;
                    //database.Entry(user).Property(x => x.Branches_Id).IsModified = true;

                    int deleteUserRole = database.Database.ExecuteSqlCommand("DELETE FROM AspNetUserRoles WHERE UserId='" + editUserViewModels.User.Id + "'");

                    //database.UserRole.Attach(userRole);
                    //database.Entry(userRole).Property(x => x.RoleId).IsModified = true;

                    //database.SaveChanges();
                }

                //var list_role_before = db.UserRole.AsNoTracking().Where(x => x.UserId == editUserViewModels.User.Id).ToList();
                //foreach (var role in list_role_before)
                //{
                //    db.UserRole.Remove(role);
                //}

                foreach (var role_id in editUserViewModels.RoleId)
                {
                    //UserRoleModels urm = new UserRoleModels();
                    //urm.UserId = editUserViewModels.User.Id;
                    //urm.RoleId = role_id;
                    //db.UserRole.Add(urm);
                    using (var ctx = new iSpeakContext())
                    {
                        int updateUserRole = ctx.Database.ExecuteSqlCommand("INSERT INTO AspNetUserRoles VALUES ('" + editUserViewModels.User.Id + "','" + role_id + "')");
                    }
                }
                //db.SaveChanges();

                return(RedirectToAction("Index"));
            }

            ViewBag.listRole     = new SelectList(db.Role.OrderBy(x => x.Name).ToList(), "Id", "Name");
            ViewBag.listBranch   = new SelectList(db.Branches.Where(x => x.Active == true).OrderBy(x => x.Name).ToList(), "Id", "Name");
            ViewBag.listLanguage = new SelectList(db.Languages.Where(x => x.Active == true).OrderBy(x => x.Name).ToList(), "Id", "Name");
            ViewBag.listPromo    = new SelectList(db.PromotionEvents.OrderBy(x => x.Name).ToList(), "Id", "Name");
            return(View(editUserViewModels));
        }
        public override void OnResultExecuting(ResultExecutingContext filterContext)
        {
            //no-cache
            filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache); // HTTP 1.1.
            filterContext.HttpContext.Response.Cache.AppendCacheExtension("no-store, must-revalidate");
            filterContext.HttpContext.Response.AppendHeader("Pragma", "no-cache");              // HTTP 1.0.
            filterContext.HttpContext.Response.AppendHeader("Expires", "0");                    // Proxies.

            string userlogin = filterContext.HttpContext.User.Identity.Name;

            using (var db = new iSpeakContext())
            {
                filterContext.Controller.ViewBag.LoginBranch = new SelectList(db.Branches.Where(x => x.Active == true).OrderBy(x => x.Name).ToList(), "Id", "Name");

                //bool isSale = p.IsGranted(filterContext.HttpContext.User.Identity.Name, "navmenu_saleinvoice");
                //filterContext.Controller.ViewBag.SaleMenu = (isSale) ? "" : "style='display: none'";

                //bool isSchedule = p.IsGranted(filterContext.HttpContext.User.Identity.Name, "navmenu_schedules");
                //filterContext.Controller.ViewBag.ScheduleMenu = (isSchedule) ? "" : "style='display: none'";

                //bool isSessions = p.IsGranted(filterContext.HttpContext.User.Identity.Name, "navmenu_sessions");
                //filterContext.Controller.ViewBag.SessionsMenu = (isSessions) ? "" : "style='display: none'";

                //bool isInventory = p.IsGranted(filterContext.HttpContext.User.Identity.Name, "navmenu_inventory");
                //filterContext.Controller.ViewBag.InventoryMenu = (isInventory) ? "" : "style='display: none'";

                //bool isPettyCash = p.IsGranted(filterContext.HttpContext.User.Identity.Name, "navmenu_pettycash");
                //filterContext.Controller.ViewBag.PettyCashMenu = (isPettyCash) ? "" : "style='display: none'";

                //bool isReports = p.IsGranted(filterContext.HttpContext.User.Identity.Name, "navmenu_reports");
                //filterContext.Controller.ViewBag.ReportsMenu = (isReports) ? "" : "style='display: none'";

                //bool isMasterData = p.IsGranted(filterContext.HttpContext.User.Identity.Name, "navmenu_masterdata");
                //filterContext.Controller.ViewBag.MasterDataMenu = (isMasterData) ? "" : "style='display: none'";

                //bool isAccounts = p.IsGranted(filterContext.HttpContext.User.Identity.Name, "navmenu_accounts");
                //filterContext.Controller.ViewBag.AccountsMenu = (isAccounts) ? "" : "style='display: none'";

                //bool isFiles = p.IsGranted(filterContext.HttpContext.User.Identity.Name, "navmenu_files");
                //filterContext.Controller.ViewBag.FilesMenu = (isFiles) ? "" : "style='display: none'";

                #region SALE
                #region Sale Invoices
                filterContext.Controller.ViewBag.SaleIndex  = p.IsGranted(userlogin, "sale_index");
                filterContext.Controller.ViewBag.SaleCreate = p.IsGranted(userlogin, "sale_create");
                #endregion
                #region Payments
                filterContext.Controller.ViewBag.PaymentsPrint  = p.IsGranted(userlogin, "payments_print");
                filterContext.Controller.ViewBag.PaymentsCreate = p.IsGranted(userlogin, "payments_create");
                #endregion
                #region Returns
                filterContext.Controller.ViewBag.ReturnIndex  = p.IsGranted(userlogin, "return_index");
                filterContext.Controller.ViewBag.ReturnCreate = p.IsGranted(userlogin, "return_create");
                #endregion
                if (filterContext.Controller.ViewBag.SaleIndex == true || filterContext.Controller.ViewBag.PaymentsPrint == true || filterContext.Controller.ViewBag.ReturnIndex == true)
                {
                    filterContext.Controller.ViewBag.SaleMenu = "";
                }
                else
                {
                    filterContext.Controller.ViewBag.SaleMenu = "style='display: none'";
                }
                #endregion
                #region SCHEDULES
                #region Tutor
                filterContext.Controller.ViewBag.SchedulesTutorIndex  = p.IsGranted(userlogin, "schedules_tutorindex");
                filterContext.Controller.ViewBag.SchedulesTutorCreate = p.IsGranted(userlogin, "schedules_tutorcreate");
                filterContext.Controller.ViewBag.SchedulesTutorEdit   = p.IsGranted(userlogin, "schedules_tutoredit");
                filterContext.Controller.ViewBag.SchedulesTutorDelete = p.IsGranted(userlogin, "schedules_tutordelete");
                #endregion
                #region Student
                filterContext.Controller.ViewBag.SchedulesStudentIndex  = p.IsGranted(userlogin, "schedules_studentindex");
                filterContext.Controller.ViewBag.SchedulesStudentCreate = p.IsGranted(userlogin, "schedules_studentcreate");
                filterContext.Controller.ViewBag.SchedulesStudentEdit   = p.IsGranted(userlogin, "schedules_studentedit");
                filterContext.Controller.ViewBag.SchedulesStudentDelete = p.IsGranted(userlogin, "schedules_studentdelete");
                #endregion
                #region Search
                filterContext.Controller.ViewBag.SchedulesSearch = p.IsGranted(userlogin, "schedules_search");
                #endregion
                if (filterContext.Controller.ViewBag.SchedulesTutorIndex == true || filterContext.Controller.ViewBag.SchedulesStudentIndex == true || filterContext.Controller.ViewBag.SchedulesSearch == true)
                {
                    filterContext.Controller.ViewBag.ScheduleMenu = "";
                }
                else
                {
                    filterContext.Controller.ViewBag.ScheduleMenu = "style='display: none'";
                }
                #endregion
                #region SESSIONS
                filterContext.Controller.ViewBag.SessionsMenu         = (p.IsGranted(userlogin, "lessonsessions_index")) ? "" : "style='display: none'";
                filterContext.Controller.ViewBag.LessonSessionsCreate = p.IsGranted(userlogin, "lessonsessions_create");
                filterContext.Controller.ViewBag.LessonSessionsEdit   = p.IsGranted(userlogin, "lessonsessions_edit");
                #endregion
                #region INVENTORY
                filterContext.Controller.ViewBag.InventoryMenu   = (p.IsGranted(userlogin, "inventory_index")) ? "" : "style='display: none'";
                filterContext.Controller.ViewBag.InventoryCreate = p.IsGranted(userlogin, "inventory_create");
                filterContext.Controller.ViewBag.InventoryEdit   = p.IsGranted(userlogin, "inventory_edit");
                filterContext.Controller.ViewBag.InventoryStock  = p.IsGranted(userlogin, "inventory_stock");
                #endregion
                #region PETTY CASH
                filterContext.Controller.ViewBag.PettyCashMenu          = (p.IsGranted(userlogin, "pettycashrecords_index")) ? "" : "style='display: none'";
                filterContext.Controller.ViewBag.PettyCashRecordsCreate = p.IsGranted(userlogin, "pettycashrecords_create");
                #endregion
                #region INTERNAL
                #region Hourly Rates
                filterContext.Controller.ViewBag.HourlyRatesIndex  = p.IsGranted(userlogin, "hourlyrates_index");
                filterContext.Controller.ViewBag.HourlyRatesCreate = p.IsGranted(userlogin, "hourlyrates_create");
                filterContext.Controller.ViewBag.HourlyRatesEdit   = p.IsGranted(userlogin, "hourlyrates_edit");
                filterContext.Controller.ViewBag.HourlyRatesDelete = p.IsGranted(userlogin, "hourlyrates_delete");
                #endregion
                filterContext.Controller.ViewBag.ReportsNewStudent      = p.IsGranted(userlogin, "reports_newstudent");
                filterContext.Controller.ViewBag.ReportsPayroll         = p.IsGranted(userlogin, "reports_payroll");
                filterContext.Controller.ViewBag.ReportsPayrollPayments = p.IsGranted(userlogin, "reports_payrollpayments");
                filterContext.Controller.ViewBag.ReportsProfitLoss      = p.IsGranted(userlogin, "reports_profitloss");
                filterContext.Controller.ViewBag.ReportsSendEmails      = p.IsGranted(userlogin, "reports_sendemails");

                if (filterContext.Controller.ViewBag.ReportsNewStudent == true || filterContext.Controller.ViewBag.ReportsPayroll == true || filterContext.Controller.ViewBag.ReportsPayrollPayments == true || filterContext.Controller.ViewBag.ReportsProfitLoss == true || filterContext.Controller.ViewBag.ReportsSendEmails == true || filterContext.Controller.ViewBag.HourlyRatesIndex == true)
                {
                    filterContext.Controller.ViewBag.InternalMenu = "";
                }
                else
                {
                    filterContext.Controller.ViewBag.InternalMenu = "style='display: none'";
                }
                #endregion
                #region MASTER DATA
                #region Inventory
                #region Suppliers
                filterContext.Controller.ViewBag.SuppliersIndex  = p.IsGranted(userlogin, "suppliers_index");
                filterContext.Controller.ViewBag.SuppliersCreate = p.IsGranted(userlogin, "suppliers_create");
                filterContext.Controller.ViewBag.SuppliersEdit   = p.IsGranted(userlogin, "suppliers_edit");
                #endregion
                #region Products
                filterContext.Controller.ViewBag.ProductsIndex  = p.IsGranted(userlogin, "products_index");
                filterContext.Controller.ViewBag.ProductsCreate = p.IsGranted(userlogin, "products_create");
                filterContext.Controller.ViewBag.ProductsEdit   = p.IsGranted(userlogin, "products_edit");
                #endregion
                #region Units
                filterContext.Controller.ViewBag.UnitsIndex  = p.IsGranted(userlogin, "units_index");
                filterContext.Controller.ViewBag.UnitsCreate = p.IsGranted(userlogin, "units_create");
                filterContext.Controller.ViewBag.UnitsEdit   = p.IsGranted(userlogin, "units_edit");
                #endregion

                if (filterContext.Controller.ViewBag.SuppliersIndex == true || filterContext.Controller.ViewBag.ProductsIndex == true || filterContext.Controller.ViewBag.UnitsIndex == true)
                {
                    filterContext.Controller.ViewBag.MasterData_InventoryMenu = "";
                }
                else
                {
                    filterContext.Controller.ViewBag.MasterData_InventoryMenu = "style='display: none'";
                }
                #endregion
                #region Lessons
                #region Languages
                filterContext.Controller.ViewBag.LanguagesIndex  = p.IsGranted(userlogin, "languages_index");
                filterContext.Controller.ViewBag.LanguagesCreate = p.IsGranted(userlogin, "languages_create");
                filterContext.Controller.ViewBag.LanguagesEdit   = p.IsGranted(userlogin, "languages_edit");
                #endregion
                #region Lesson Types
                filterContext.Controller.ViewBag.LessonTypesIndex  = p.IsGranted(userlogin, "lessontypes_index");
                filterContext.Controller.ViewBag.LessonTypesCreate = p.IsGranted(userlogin, "lessontypes_create");
                filterContext.Controller.ViewBag.LessonTypesEdit   = p.IsGranted(userlogin, "lessontypes_edit");
                #endregion
                #region LessonPackages
                filterContext.Controller.ViewBag.LessonPackagesIndex  = p.IsGranted(userlogin, "lessonpackages_index");
                filterContext.Controller.ViewBag.LessonPackagesCreate = p.IsGranted(userlogin, "lessonpackages_create");
                filterContext.Controller.ViewBag.LessonPackagesEdit   = p.IsGranted(userlogin, "lessonpackages_edit");
                #endregion

                if (filterContext.Controller.ViewBag.LanguagesIndex == true || filterContext.Controller.ViewBag.LessonTypesIndex == true || filterContext.Controller.ViewBag.LessonPackagesIndex == true)
                {
                    filterContext.Controller.ViewBag.MasterData_LessonsMenu = "";
                }
                else
                {
                    filterContext.Controller.ViewBag.MasterData_LessonsMenu = "style='display: none'";
                }
                #endregion
                #region Expenses Sub Menu
                #region Expenses Categories
                filterContext.Controller.ViewBag.ExpenseCategoriesIndex  = p.IsGranted(userlogin, "expensecategories_index");
                filterContext.Controller.ViewBag.ExpenseCategoriesCreate = p.IsGranted(userlogin, "expensecategories_create");
                filterContext.Controller.ViewBag.ExpenseCategoriesEdit   = p.IsGranted(userlogin, "expensecategories_edit");
                #endregion
                #region Expenses
                filterContext.Controller.ViewBag.ExpensesIndex  = p.IsGranted(userlogin, "expenses_index");
                filterContext.Controller.ViewBag.ExpensesCreate = p.IsGranted(userlogin, "expenses_create");
                filterContext.Controller.ViewBag.ExpensesEdit   = p.IsGranted(userlogin, "expenses_edit");
                #endregion

                if (filterContext.Controller.ViewBag.ExpenseCategoriesIndex == true || filterContext.Controller.ViewBag.ExpensesIndex == true)
                {
                    filterContext.Controller.ViewBag.MasterData_ExpensesMenu = "";
                }
                else
                {
                    filterContext.Controller.ViewBag.MasterData_ExpensesMenu = "style='display: none'";
                }
                #endregion
                #region General Settings
                filterContext.Controller.ViewBag.SettingsIndex = p.IsGranted(userlogin, "settings_index");
                #region Role
                filterContext.Controller.ViewBag.RoleIndex  = p.IsGranted(userlogin, "role_index");
                filterContext.Controller.ViewBag.RoleCreate = p.IsGranted(userlogin, "role_create");
                filterContext.Controller.ViewBag.RoleEdit   = p.IsGranted(userlogin, "role_edit");
                filterContext.Controller.ViewBag.RoleManage = p.IsGranted(userlogin, "role_manage");
                #endregion
                #region Branches
                filterContext.Controller.ViewBag.BranchesIndex  = p.IsGranted(userlogin, "branches_index");
                filterContext.Controller.ViewBag.BranchesCreate = p.IsGranted(userlogin, "branches_create");
                filterContext.Controller.ViewBag.BranchesEdit   = p.IsGranted(userlogin, "branches_edit");
                #endregion

                if (filterContext.Controller.ViewBag.SettingsIndex == true || filterContext.Controller.ViewBag.RoleIndex == true || filterContext.Controller.ViewBag.BranchesIndex == true)
                {
                    filterContext.Controller.ViewBag.MasterData_GeneralSettingsMenu = "";
                }
                else
                {
                    filterContext.Controller.ViewBag.MasterData_GeneralSettingsMenu = "style='display: none'";
                }
                #endregion
                #region Consignments
                filterContext.Controller.ViewBag.ConsignmentsIndex  = p.IsGranted(userlogin, "consignments_index");
                filterContext.Controller.ViewBag.ConsignmentsCreate = p.IsGranted(userlogin, "consignments_create");
                filterContext.Controller.ViewBag.ConsignmentsEdit   = p.IsGranted(userlogin, "consignments_edit");
                #endregion
                #region Vouchers
                filterContext.Controller.ViewBag.VouchersIndex  = p.IsGranted(userlogin, "vouchers_index");
                filterContext.Controller.ViewBag.VouchersCreate = p.IsGranted(userlogin, "vouchers_create");
                filterContext.Controller.ViewBag.VouchersEdit   = p.IsGranted(userlogin, "vouchers_edit");
                #endregion
                #region Services
                filterContext.Controller.ViewBag.ServicesIndex  = p.IsGranted(userlogin, "services_index");
                filterContext.Controller.ViewBag.ServicesCreate = p.IsGranted(userlogin, "services_create");
                filterContext.Controller.ViewBag.ServicesEdit   = p.IsGranted(userlogin, "services_edit");
                #endregion
                #region Petty Cash Categories
                filterContext.Controller.ViewBag.PettyCashRecordsCategoriesIndex  = p.IsGranted(userlogin, "pettyCashrecordscategories_index");
                filterContext.Controller.ViewBag.PettyCashRecordsCategoriesCreate = p.IsGranted(userlogin, "pettyCashrecordscategories_create");
                filterContext.Controller.ViewBag.PettyCashRecordsCategoriesEdit   = p.IsGranted(userlogin, "pettyCashrecordscategories_edit");
                #endregion
                #region Promotion Events
                filterContext.Controller.ViewBag.PromotionEventsIndex  = p.IsGranted(userlogin, "promotionevents_index");
                filterContext.Controller.ViewBag.PromotionEventsCreate = p.IsGranted(userlogin, "promotionevents_create");
                filterContext.Controller.ViewBag.PromotionEventsEdit   = p.IsGranted(userlogin, "promotionevents_edit");
                #endregion

                if (filterContext.Controller.ViewBag.MasterData_InventoryMenu == "" ||
                    filterContext.Controller.ViewBag.MasterData_LessonsMenu == "" ||
                    filterContext.Controller.ViewBag.MasterData_ExpensesMenu == "" ||
                    filterContext.Controller.ViewBag.MasterData_GeneralSettingsMenu == "" ||
                    filterContext.Controller.ViewBag.ConsignmentsIndex == true ||
                    filterContext.Controller.ViewBag.VouchersIndex == true ||
                    filterContext.Controller.ViewBag.ServicesIndex == true ||
                    filterContext.Controller.ViewBag.PettyCashRecordsCategoriesIndex == true ||
                    filterContext.Controller.ViewBag.PromotionEventsIndex == true)
                {
                    filterContext.Controller.ViewBag.MasterDataMenu = "";
                }
                else
                {
                    filterContext.Controller.ViewBag.MasterDataMenu = "style='display: none'";
                }
                #endregion
                #region ACCOUNTS
                filterContext.Controller.ViewBag.AccountsMenu      = (p.IsGranted(userlogin, "user_index")) ? "" : "style='display: none'";
                filterContext.Controller.ViewBag.AccountRegister   = p.IsGranted(userlogin, "account_register");
                filterContext.Controller.ViewBag.UserEdit          = p.IsGranted(userlogin, "user_edit");
                filterContext.Controller.ViewBag.UserResetPassword = p.IsGranted(userlogin, "user_resetpassword");
                #endregion
                #region FILES
                filterContext.Controller.ViewBag.FilesMenu   = (p.IsGranted(userlogin, "files_index")) ? "" : "style='display: none'";
                filterContext.Controller.ViewBag.FilesCreate = p.IsGranted(userlogin, "files_create");
                filterContext.Controller.ViewBag.FilesUpdate = p.IsGranted(userlogin, "files_update");
                #endregion
            }
        }