Пример #1
0
        public IActionResult Upsert(string id)
        {
            ViewBag.PhanLoaiList = GetSelectItemsPhanLoai();
            ViewBag.SanPhamList  = GetSelectItemsMatHang();
            var vm = new MagiamgiaViewModel();

            ViewBag.Id = "";
            if (id != null)
            {
                ViewBag.Id = "has";
                var parameter = new DynamicParameters();
                parameter.Add("@MAGG", id);
                var result = _unitOfWork.SP_Call.Excute(SD.Giam_Gia.GET, parameter);
                if (result.success)
                {
                    var objString = result.message.Substring(8, result.message.Length - 9);
                    var obj       = JArray.Parse(objString);
                    vm.Id          = id;
                    vm.Name        = obj[0]["TEN"].ToString();
                    vm.DateStart   = DateTime.Parse(obj[0]["NGAYBD"].ToString());
                    vm.DateEnd     = DateTime.Parse(obj[0]["NGAYKT"].ToString());
                    vm.Percent     = int.Parse(obj[0]["PT_GIAM"].ToString());
                    vm.MaxDisCount = int.Parse(obj[0]["TIENGIAM"].ToString());
                    vm.MaxTimeUse  = int.Parse(obj[0]["LANSUDUNGMAX"].ToString());
                }
            }
            return(View(vm));
        }
Пример #2
0
        public IActionResult Upsert(MagiamgiaViewModel vm)
        {                                                                                         // đầu vào là name của các "Đối tượng html" trong view Upserts muốn truyền cho HttpPost để upload dữ liệu lên cho server
            if (ModelState.IsValid)                                                               // nếu các trường nhập vào cho view Upsert không bị sai quy tắc
            {
                var parameter = new DynamicParameters();                                          // tạo 1 dynamic parameters để lưu các tham số truyền vào
                parameter.Add("@MAGG", vm.Id);                                                    // dùng hàm add để thêm tham số truyền vào cho parameter
                var result = _unitOfWork.SP_Call.Excute(SD.Giam_Gia.IS_EXIST, parameter).message; // hàm kiểm tra mã giảm giá còn tồn tại không
                // _unitOfWork.Sp_Call.Excute là hàm excute 1 hàm SQL, với đầu vào gồm 2 biến(biến thứ nhất kiểu string là tên stored procedure,
                //  biến thứ 2 kiểu Dynamic Parameters là tham số truyền vào cho stored procedure)
                result = result.Substring(8, result.Length - 9); // loại bỏ chữ data ở đầu
                var obj     = JArray.Parse(result);              // biến result thành dạng Jarray(mảng Json)
                var isExist = obj[0]["IS_EXIST"].ToString();     // truy xuất vào phần tử thứ 0 cột is _exist
                parameter.Add("@TEN", vm.Name);                  // các properties của view model Vm được truyền vào, đem gán cho parameter
                parameter.Add("@NGAYBD", vm.DateStart);
                parameter.Add("@NGAYKT", vm.DateEnd);
                parameter.Add("@PT_GIAM", vm.Percent);
                parameter.Add("@TIENGIAM", vm.MaxDisCount);
                parameter.Add("@LANSUDUNGMAX", vm.MaxTimeUse);
                if (isExist != "1")  // nếu mã giảm giá  không tồn tại
                {
                    //add

                    var res = _unitOfWork.SP_Call.Excute(SD.Giam_Gia.CREATE, parameter); // add thông tin mã giảm giá đó vào bảng Giảm Giá
                    if (res.success)                                                     // nếu add thành công
                    {
                        return(RedirectToAction("index"));                               // quay về view của action Index
                    }
                    ModelState.AddModelError("", res.message);                           // nếu không add thành công thì in ra lỗi
                }
                else // nếu mã giảm gía đã  tồn tại
                {
                    //update mã giảm giá đó
                    var res = _unitOfWork.SP_Call.Excute(SD.Giam_Gia.UPDATE, parameter); // gọi hàm update, với tham số truyền vào là parameter ở trên
                    if (res.success)                                                     // nếu add thành công
                    {
                        return(RedirectToAction("index"));                               // quay về view của action Index
                    }
                    ModelState.AddModelError("", res.message);                           // nếu không add thành công thì in ra lỗi
                }
            }

            return(View(vm));
        }