public ActionResult Add()
 {
     if (!this._nhanvien_permission.Contains("hangsx_add"))
     {
         return _fail_permission("hangsx_add");
     }
     HangSXController ctr = new HangSXController();
     HangSX obj = new HangSX();
     ViewBag.HangSX = obj;
     ViewBag.Title += " - Add";
     return View("Index");
 }
 public ActionResult Index(int page=1)
 {
     ViewBag.id = 4;
     List<NhomSanPham> nhomsp = null;
     List<HangSX> hangsx = null;
     String orderby = TextLibrary.ToString(front_timkiem_sanpham["front_orderby"]);
     Boolean desc = TextLibrary.ToBoolean(front_timkiem_sanpham["front_desc"]);
     if(!front_timkiem_sanpham["front_nhomsanpham_id"].Equals(""))
     {
         nhomsp = new List<NhomSanPham>();
         NhomSanPhamController ctr2 = new NhomSanPhamController(ctr._db);
         NhomSanPham tmp = ctr2.get_by_id(TextLibrary.ToInt(front_timkiem_sanpham["front_nhomsanpham_id"]));
         nhomsp = ctr2.get_tree2(tmp);
     }
     if(!front_timkiem_sanpham["front_hangsx_ten"].Equals(""))
     {
         hangsx = new List<HangSX>();
         HangSXController ctr3 = new HangSXController(ctr._db);
         hangsx=ctr3.timkiem("",TextLibrary.ToString(front_timkiem_sanpham["front_hangsx_ten"]),"1","id",false,0,-1);
     }
     //calculate offset
     if (TextLibrary.ToString(Request["front_current_page"]) != "") page = int.Parse(TextLibrary.ToString(Request["front_current_page"]));
     int max_item_per_page = TextLibrary.ToInt(this.front_timkiem_sanpham["front_max_item_per_page"]);
         int start_point = (page - 1) * max_item_per_page;
         if (start_point <= 0) start_point = 0;
     //get list
         List<SanPham> listnew = ctr.timkiem("", "", this.front_timkiem_sanpham["front_ten"], front_timkiem_sanpham["front_mota"],  TextLibrary.ToInt(front_timkiem_sanpham["front_gia_from"]),
             TextLibrary.ToInt(front_timkiem_sanpham["front_gia_to"]), hangsx, nhomsp , "1", orderby,desc, start_point, max_item_per_page);
         ViewBag.SanPham_List = listnew;
         ViewBag.front_timkiem_sanpham = this.front_timkiem_sanpham;
     //pagination
         int Current_Page = page;
      //   int Result_Count = listnew.Count;
         int Result_Count = ctr.timkiem_count(
             "",
             front_timkiem_sanpham["front_masp"],
             front_timkiem_sanpham["front_ten"],
             front_timkiem_sanpham["front_mota"],
             TextLibrary.ToInt(front_timkiem_sanpham["front_gia_from"]),
             TextLibrary.ToInt(front_timkiem_sanpham["front_gia_to"]), hangsx, nhomsp, "1");
         int Total_Page = (int)(Math.Ceiling((double)Result_Count / max_item_per_page));
         Boolean CanNextPage = Current_Page >= Total_Page ? false : true;
         Boolean CanPrevPage = Current_Page == 1 ? false : true;
         ViewBag.Result_Count = Result_Count;
         ViewBag.CanNextPage = CanNextPage;
         ViewBag.CanPrevPage = CanPrevPage;
         ViewBag.Current_Page = Current_Page;
         ViewBag.Total_page = Total_Page;
     return View();
 }
        public ActionResult Index(int id = 0)
        {
            if (!this._nhanvien_permission.Contains("hangsx_view"))
            {
                return _fail_permission("hangsx_view");
            }
            HangSXController ctr = new HangSXController();
            HangSX obj = ctr.get_by_id(id);

            if (obj == null)
            {
                //kich thuoc khong ton tai
                return RedirectToAction("Index", "AdminHangSXs");
            }
            ViewBag.HangSX = obj;
            ViewBag.Title += " - View";
            return View();
        }
 public ActionResult Index(int page=1)
 {
     //check
     if (!this._nhanvien_permission.Contains("hangsx_view"))
     {
         return this._fail_permission("hangsx_view");
     }
     //Chọn danh sách để hiển thị theo cookies tìm kiếm
     HangSXController ctr = new HangSXController();
     ViewBag.HangSX_List = ctr.timkiem(
         timkiem_hangsx["id"],
         timkiem_hangsx["ten"],
         timkiem_hangsx["active"], "id", true, 0, -1
         );
     //set search cookies
     ViewBag.timkiem_hangsx = this.timkiem_hangsx;
     ViewBag.Title += " - Quản lý";
     return View();
 }
        public ActionResult Add()
        {
            //check
            if (!this._nhanvien_permission.Contains("sanpham_add"))
            {
                return this._fail_permission("sanpham_add");
            }
            //check nhom sanpham co it nhat 1
                NhomSanPhamController ctr_nhomsanpham = new NhomSanPhamController();
                if (ctr_nhomsanpham.timkiem_count("", "", "", "1") <= 0)
                {
                    return this._show_notification("Yêu cầu phải có ít nhất 1 nhóm sản phẩm active mới được thêm sản phẩm mới!");
                }
            //check hangsx co it nhat 1
                HangSXController ctr_hangsx = new HangSXController();
                if (ctr_hangsx.timkiem_count("", "", "1") <= 0)
                {
                    return this._show_notification("Yêu cầu phải có ít nhất 1 hãng sản xuất active mới được thêm sản phẩm mới!");
                }

            return RedirectToAction("Add", "AdminSanPham");
        }
        public ActionResult Delete(int id = 0)
        {
            //check
            if (!this._nhanvien_permission.Contains("hangsx_delete"))
            {
                return this._fail_permission("hangsx_delete");
            }

            HangSXController controller = new HangSXController();
            if (!controller.is_exist(id))
            {
                return RedirectToAction("Index", "AdminHangSXs");
            }
            try
            {
                controller.delete(id);
            }
            catch (Exception)
            {
                return _show_notification("Hãng sản xuất này có dính khóa ngoại với sản phẩm hiện có nên không xóa được");
            }
            return RedirectToAction("Index", "AdminHangSXs");
        }
        protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            base.OnActionExecuting(filterContext);
            ViewBag.Title += " - Sản phẩm";
            //đặt activetab cố định cho controller này
            this._current_activetab();
            //load những dữ liệu common

                //active only
                NhomSanPhamController ctr_nhom = new NhomSanPhamController();
                ViewBag.NhomSanpham2_ListAll = ctr_nhom.timkiem();
                //active only
                HangSXController ctr_hangsx = new HangSXController();
                ViewBag.HangSX_ListAll = ctr_hangsx.timkiem();
                //
                KichThuocController ctr_kichthuoc = new KichThuocController();
                ViewBag.KichThuoc_ListAll = ctr_kichthuoc.timkiem();
                //
                MauSacController ctr_mausac = new MauSacController();
                ViewBag.MauSac_ListAll = ctr_mausac.timkiem();
                ViewBag.ChiTietSP = new ChiTietSP();//may be override by action
        }
        public ActionResult Submit()
        {
            //get obj id first
            int obj_id = TextLibrary.ToInt(Request["sanpham_id"]);
            //must use same dbcontext neu khong se bao loi (chi can thiet khi co cap nhat thao tac tren doi tuong sanpham trong session)
            SanPhamController ctr = new SanPhamController(this._get_current_dbcontext());

            SanPham obj = (SanPham)Session["sanpham_new_tmp"];
            Boolean un_save = false;
            if (obj != null)
            {
                //un save mode
                un_save = true;
                //add mode
                if (!this._nhanvien_permission.Contains("sanpham_add"))
                {
                    return _fail_permission("sanpham_add");
                }
            }
            else
            {
                //get obj from csdl
                obj = ctr.get_by_id(obj_id);
                //edit mode
                if (!this._nhanvien_permission.Contains("sanpham_edit"))
                {
                    return _fail_permission("sanpham_edit");
                }
                if (obj == null)
                {
                    return RedirectToAction("Index", "AdminSanPhams");
                }
            }

            //assign value
                obj.active = TextLibrary.ToBoolean(Request["sanpham_active"]);
                obj.gia = TextLibrary.ToInt(Request["sanpham_gia"]);
                obj.masp = TextLibrary.ToString(Request["sanpham_masp"]);
                obj.mota = TextLibrary.ToString(Request.Unvalidated["sanpham_mota"]);
                obj.ten = TextLibrary.ToString(Request["sanpham_ten"]);
                //get external object
                HangSXController ctr_hangsx = new HangSXController(ctr._db);
                obj.hangsx = ctr_hangsx.get_by_id(TextLibrary.ToInt(Request["sanpham_hangsx_id"]));

                NhomSanPhamController ctr_nhomsanpham = new NhomSanPhamController(ctr._db);
                obj.nhomsanpham = ctr_nhomsanpham.get_by_id(TextLibrary.ToInt(Request["sanpham_nhomsanpham_id"]));

            //validate properties
            List<String> validate = ctr.validate(obj);

            //action
            if (validate.Count == 0)
            {
                if (!un_save)
                {
                    //update properties first
                    ctr._db.SaveChanges();
                    this._state.Add("edit_ok");
                    this._add_state_tempdata("edit_ok");
                    //get image
                    if (!TextLibrary.ToString(Request["sanpham_upload_hinhanh"]).Equals(""))
                    {
                        HinhAnhController ctr_hinhanh = new HinhAnhController(ctr._db);
                        List<HinhAnh> hinhanh_list = ctr_hinhanh.upload(Server, Request.Files);
                        obj.ds_hinhanh.AddRange(hinhanh_list);
                        ctr._db.SaveChanges();
                    }

                    //successfull redirect
                    return RedirectToAction("Index", "AdminSanPham", new { id = obj.id });
                }
                else
                {
                    //người dùng bấm nút upload hình ảnh chứ không phải nút lưu
                    if (!TextLibrary.ToString(Request["sanpham_upload_hinhanh"]).Equals(""))
                    {
                        //khoan hãy lưu vào csdl
                        HinhAnhController ctr_hinhanh = new HinhAnhController(ctr._db);
                        List<HinhAnh> hinhanh_list = ctr_hinhanh.upload(Server, Request.Files);
                        obj.ds_hinhanh.AddRange(hinhanh_list);
                        //re assign to session
                        Session["sanpham_new_tmp"] = obj;
                        //successfull redirect
                        return RedirectToAction("Index", "AdminSanPham", new { id = 0 });
                    }
                    else
                    {
                        //call add
                        int maxid = ctr.add(obj);
                        //re assign id
                        obj.id = maxid;
                        this._state.Add("add_ok");
                        this._add_state_tempdata("add_ok");
                        //successfull redirect
                        return RedirectToAction("Index", "AdminSanPham", new { id = obj.id });
                    }

                }
            }
            else
            {
                //người dùng bấm nút upload hình ảnh chứ không phải nút lưu
                if (!TextLibrary.ToString(Request["sanpham_upload_hinhanh"]).Equals(""))
                {
                    //khoan hãy lưu vào csdl
                    HinhAnhController ctr_hinhanh = new HinhAnhController(ctr._db);
                    List<HinhAnh> hinhanh_list = ctr_hinhanh.upload(Server, Request.Files);
                    obj.ds_hinhanh.AddRange(hinhanh_list);
                    //re assign to session
                    Session["sanpham_new_tmp"] = obj;
                    //successfull redirect
                    this._add_state_tempdata(validate);
                    return RedirectToAction("Index", "AdminSanPham", new { id = 0 });
                }
            }

            //fail or redirect
            this._state.AddRange(validate);
            ViewBag.State = this._state;
            ViewBag.SanPham = obj;
            ViewBag.Title += " - Submit";
            return View("Index");
        }
        public ActionResult Submit()
        {
            //get nv id first
            int obj_id = TextLibrary.ToInt(Request["hangsx_id"]);
            HangSXController ctr = new HangSXController();
            HangSX obj;
            //check mode
            Boolean edit_mode = true;
            if (obj_id == 0)
            {
                //add mode
                if (!this._nhanvien_permission.Contains("hangsx_add"))
                {
                    return _fail_permission("hangsx_add");
                }

                obj = new HangSX();
                edit_mode = false;
            }
            else
            {
                //edit mode
                if (!this._nhanvien_permission.Contains("hangsx_edit"))
                {
                    return _fail_permission("hangsx_edit");
                }

                if (ctr.is_exist(obj_id))
                {
                    //update model
                    //get instance of record of table
                    obj = ctr.get_by_id(obj_id);
                }
                else
                {
                    //nvid khong ton tai
                    return RedirectToAction("Index", "AdminHangSXs");
                }
            }
            //assign value
            obj.ten = TextLibrary.ToString(Request["hangsx_ten"]);
            obj.active = TextLibrary.ToBoolean(Request["hangsx_active"]);
            //validate properties
            List<String> validate = ctr.validate(obj);

            //action
            if (validate.Count == 0)
            {
                if (edit_mode)
                {
                    //update properties first
                    ctr._db.SaveChanges();
                    this._state.Add("edit_ok");
                }
                else
                {
                    //call add
                    int maxid = ctr.add(obj);
                    //re assign id
                    obj.id = maxid;
                    this._state.Add("add_ok");
                }
                //successfull redirect
                return RedirectToAction("Index", "AdminHangSXs");
            }
            //fail redirect
            this._state.AddRange(validate);
            ViewBag.State = this._state;
            ViewBag.HangSX = obj;
            ViewBag.Title += " - Submit";
            return View("Index");
        }
 protected override void OnActionExecuting(ActionExecutingContext filterContext)
 {
     NhomSanPhamController ctr = new NhomSanPhamController();
     List<NhomSanPham2> list1 = ctr.timkiem("", "", "", "1");
     ViewBag.loaisp = list1;
     HangSXController ctr2 = new HangSXController(ctr._db);
     List<HangSX> list2 = ctr2.timkiem("", "", "1", "id", false, 0, -1);
     ViewBag.hangsx = list2;
     base.OnActionExecuting(filterContext);
     ViewBag.Title += " - Tìm kiếm sản phẩm";
     if (Request.Cookies.Get("front_sanpham") == null)
     {
         //chưa set cookies trước => tiến hành set cookies
         this.khoitao_cookie();
         this.luu_cookie();
     }
     else
     {
         try
         {
             this.front_sanpham = CookieLibrary.Base64Decode(Request.Cookies.Get("front_sanpham"));
         }
         catch (Exception)
         {
             this.khoitao_cookie();
             this.luu_cookie();
         }
     }
     ViewBag.front_sanpham = this.front_sanpham;
 }
 protected override void OnActionExecuting(ActionExecutingContext filterContext)
 {
     NhomSanPhamController ctr = new NhomSanPhamController();
     List<NhomSanPham2> list1 = ctr.timkiem("", "", "", "1");
     ViewBag.loaisp = list1;
     HangSXController ctr2 = new HangSXController(ctr._db);
     List<HangSX> list2 = ctr2.timkiem("", "", "1", "id", false, 0, -1);
     ViewBag.hangsx = list2;
     base.OnActionExecuting(filterContext);
     ViewBag.Title += " - Tìm kiếm sản phẩm";
 }
        public ActionResult Index(int page=1)
        {
            //check
            if (!this._nhanvien_permission.Contains("sanpham_view"))
            {
                return this._fail_permission("sanpham_view");
            }
            SanPhamController ctr = new SanPhamController();
            NhomSanPhamController ctr_nhom = new NhomSanPhamController();
            HangSXController ctr_hangsx = new HangSXController();
            List<HangSX> hangsx_list = ctr_hangsx.timkiem(timkiem_sanpham["hangsx_id"]);
            NhomSanPham nhom_obj = ctr_nhom.get_by_id(TextLibrary.ToInt(timkiem_sanpham["nhomsanpham_id"]));
            List<NhomSanPham> nhomsanpham_list = ctr_nhom.get_tree2(nhom_obj);
            //pagination
                int max_item_per_page = TextLibrary.ToInt(this.timkiem_sanpham["max_item_per_page"]);
                Pagination pg = new Pagination();
                pg.set_current_page(page);
                pg.set_max_item_per_page(max_item_per_page);
                pg.set_total_item(
                    ctr.timkiem_count(
                        timkiem_sanpham["id"],
                        timkiem_sanpham["masp"],
                        timkiem_sanpham["ten"],
                        "",
                        TextLibrary.ToInt(timkiem_sanpham["gia_from"]),
                        TextLibrary.ToInt(timkiem_sanpham["gia_to"]),
                        hangsx_list, nhomsanpham_list, timkiem_sanpham["active"]
                        )
                    );
                pg.update();
            //Chọn danh sách nhân viên để hiển thị theo cookies tìm kiếm

            ViewBag.SanPham_List = ctr.timkiem(
                timkiem_sanpham["id"],
                timkiem_sanpham["masp"],
                timkiem_sanpham["ten"],
                "",
                TextLibrary.ToInt( timkiem_sanpham["gia_from"]),
                TextLibrary.ToInt(timkiem_sanpham["gia_to"]),
                hangsx_list, nhomsanpham_list, timkiem_sanpham["active"], timkiem_sanpham["order_by"], TextLibrary.ToBoolean(timkiem_sanpham["order_desc"]), pg.start_point, max_item_per_page
                );
            //set search cookies
            ViewBag.timkiem_sanpham = this.timkiem_sanpham;
            ViewBag.Title += " - Quản lý";
            ViewBag.pagination = pg;
            ViewBag.NhomSanPham2_List = ctr_nhom.timkiem();
            ViewBag.HangSX_List = ctr_hangsx.timkiem();
            return View();
        }