public ActionResult F**k(int? LoaiChuyen, string NguoiChuyen, int viec_ID, string comment, string returnUrl)
        {
            //if (LoaiChuyen == null || string.IsNullOrEmpty(NguoiChuyen)) return JavaScript("Chưa chọn loại chuyển hoặc người nhận");
            if (LoaiChuyen == null || string.IsNullOrEmpty(NguoiChuyen)) return Content("Chưa chọn loại chuyển hoặc người nhận");
            var user = (ApplicationUser)S4T_HaTinhBase.GetUserSession();
            if (user == null) return RedirectToAction("Login", "Account", new { returnUrl = Request.Url.PathAndQuery });

            if (LoaiChuyen != null)
            {
                var objViec = db.TN_DauViec.FirstOrDefault(o => o.ID == viec_ID);
                if (LoaiChuyen == S4T_HaTinh.Common.LoaiChuyen.BaoCao)
                {
                    var objChuyen = db.TN_Chuyen.FirstOrDefault(o => o.Viec_ID == viec_ID && o.Active == 1 &&
                        (o.LoaiChuyen == S4T_HaTinh.Common.LoaiChuyen.BaoCao || o.LoaiChuyen == S4T_HaTinh.Common.LoaiChuyen.GiaoViec) && o.NguoiNhan_ID.Contains(user.Id));

                    if (objChuyen != null)
                    {
                        var objNew = new TN_Chuyen();
                        objNew.LoaiChuyen = S4T_HaTinh.Common.LoaiChuyen.BaoCao;
                        objNew.NguoiChuyen_ID = user.Id;
                        objNew.NguoiNhan_ID = NguoiChuyen;
                        objNew.TenNguoiChuyen = user.HoVaTen;
                        objNew.TenNguoiNhan = db.AspNetUsers.First(o => o.Id == NguoiChuyen).HoVaTen;
                        objNew.Viec_ID = viec_ID;
                        objNew.Ykien = comment;
                        objNew.Active = 1;
                        objNew.LuongBaoCao = objChuyen.LuongBaoCao.Replace(NguoiChuyen + ";", "");
                        db.TN_Chuyen.Add(objNew);

                        objChuyen.Active = 0;
                        db.Entry(objChuyen).State = EntityState.Modified;

                        db.SaveChanges();
                    }
                }

                if (LoaiChuyen == S4T_HaTinh.Common.LoaiChuyen.GiaoViec)
                {
                    var objChuyen = db.TN_Chuyen.FirstOrDefault(o => o.Viec_ID == viec_ID && o.Active == 1 &&
                        (o.LoaiChuyen == S4T_HaTinh.Common.LoaiChuyen.BaoCao || o.LoaiChuyen == S4T_HaTinh.Common.LoaiChuyen.GiaoViec) && o.NguoiNhan_ID.Contains(user.Id));
                    if (objChuyen != null)
                    {
                        var objNew = new TN_Chuyen();
                        objNew.LoaiChuyen = S4T_HaTinh.Common.LoaiChuyen.GiaoViec;
                        objNew.NguoiChuyen_ID = user.Id;
                        objNew.NguoiNhan_ID = NguoiChuyen;
                        objNew.TenNguoiChuyen = user.HoVaTen;
                        objNew.TenNguoiNhan = db.AspNetUsers.First(o => o.Id == NguoiChuyen).HoVaTen;
                        objNew.Viec_ID = viec_ID;
                        objNew.Ykien = comment;
                        objNew.Active = 1;
                        objNew.LuongBaoCao = objChuyen.LuongBaoCao + user.Id + ";";
                        db.TN_Chuyen.Add(objNew);

                        objChuyen.Active = 0;
                        db.Entry(objChuyen).State = EntityState.Modified;

                        objViec.Display = objViec.Display + "," + NguoiChuyen;
                        db.Entry(objViec).State = EntityState.Modified;

                        db.SaveChanges();
                    }
                }

                if (LoaiChuyen == S4T_HaTinh.Common.LoaiChuyen.XinYKien)
                {
                    var objNew = new TN_Chuyen();
                    objNew.LoaiChuyen = S4T_HaTinh.Common.LoaiChuyen.XinYKien;
                    objNew.NguoiChuyen_ID = user.Id;
                    objNew.NguoiNhan_ID = NguoiChuyen;
                    objNew.TenNguoiChuyen = user.HoVaTen;
                    objNew.TenNguoiNhan = db.AspNetUsers.First(o => o.Id == NguoiChuyen).HoVaTen;
                    objNew.Viec_ID = viec_ID;
                    objNew.Ykien = comment;
                    objNew.Active = 1;
                    objNew.LuongBaoCao = "";
                    db.TN_Chuyen.Add(objNew);

                    objViec.Display = objViec.Display + "," + NguoiChuyen;
                    db.Entry(objViec).State = EntityState.Modified;

                    db.SaveChanges();
                }

                if (LoaiChuyen == S4T_HaTinh.Common.LoaiChuyen.TraLoi)
                {
                    var objChuyen = db.TN_Chuyen.FirstOrDefault(o => o.Viec_ID == viec_ID && o.Active == 1 && o.LoaiChuyen == S4T_HaTinh.Common.LoaiChuyen.XinYKien && o.NguoiNhan_ID == user.Id);
                    var objNew = new TN_Chuyen();
                    objNew.LoaiChuyen = S4T_HaTinh.Common.LoaiChuyen.TraLoi;
                    objNew.NguoiChuyen_ID = user.Id;
                    objNew.NguoiNhan_ID = NguoiChuyen;
                    objNew.TenNguoiChuyen = user.HoVaTen;
                    objNew.TenNguoiNhan = db.AspNetUsers.First(o => o.Id == NguoiChuyen).HoVaTen;
                    objNew.Viec_ID = viec_ID;
                    objNew.Ykien = comment;
                    objNew.Active = 1;
                    objNew.LuongBaoCao = "";
                    objNew.TraLoi_ID = objChuyen.Chuyen_ID;
                    db.TN_Chuyen.Add(objNew);

                    objChuyen.Active = 0;
                    db.Entry(objChuyen).State = EntityState.Modified;

                    db.SaveChanges();
                }
            }
            return RedirectToLocal(returnUrl);
        }
        public ActionResult Create(TN_DauViec obj, List<HttpPostedFileBase> fileUpload, string FileXoa, string returnUrl, string Ykien)
        {
            var user = (ApplicationUser)S4T_HaTinhBase.GetUserSession();
            if (user == null) return RedirectToAction("Login", "Account", new { returnUrl = Request.Url.PathAndQuery });

            obj.PhamVi = PhamVi.PhongBan;// make to default

            //var objCauHinh = db.Ht_ThamSoHeThong.First(o => o.MaThamSo == "SepID");
            GetViewBag();
            if (!Validate(obj))
            {
                ViewBag.returnUrl = returnUrl;
                return View(obj);
            }
            try
            {
                var path = Server.MapPath("~") + "\\Upload\\TacNghiep";
                var idDelete = string.Empty;
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                var lstName = string.Empty;
                if (fileUpload != null && fileUpload.Any())
                    foreach (var item in fileUpload)
                    {
                        if (item != null)
                        {
                            var fileName = item.FileName;
                            if (item.ContentLength > 0 && !string.IsNullOrEmpty(fileName))
                            {
                                string newPath = Path.Combine(path, fileName);
                                fileName = Path.GetFileNameWithoutExtension(newPath) + "_" + DateTime.Now.ToBinary() + "_" + Path.GetExtension(newPath);
                                newPath = Path.Combine(path, fileName);
                                item.SaveAs(newPath);
                                lstName += fileName + ";";
                            }
                        }
                    }
                obj.Display = obj.NguoiThucHien_ID;
                obj.TenNguoiThucHien = GetTenNguoiThucHien(obj.NguoiThucHien_ID);
                //obj.TenNguoiDuyet = db.AspNetUsers.FirstOrDefault(o => o.Id == obj.NguoiDuyet_ID).HoVaTen;
                obj.TenNguoiDuyet = user.HoVaTen;
                obj.NguoiTao_ID = user.Id;
                obj.NgayTao = DateTime.Now;
                if (obj.ID <= 0)
                {
                    obj.NguoiDuyet_ID = user.Id;// make to default
                    if (lstName.Length > 2)
                        obj.FileDinhKem = lstName;
                    db.TN_DauViec.Add(obj);
                }
                else
                {
                    var objOld = db.TN_DauViec.FirstOrDefault(o => o.ID == obj.ID);
                    idDelete = GetchangeAssign(objOld.NguoiThucHien_ID, obj.NguoiThucHien_ID);
                    if (!string.IsNullOrEmpty(FileXoa))
                    {
                        foreach (var item in FileXoa.Split(';'))
                        {
                            if (string.IsNullOrEmpty(item)) break;
                            objOld.FileDinhKem = objOld.FileDinhKem.Replace(item, "");
                            objOld.FileDinhKem = objOld.FileDinhKem.Replace(";;", ";");
                        }

                    }
                    objOld.FileDinhKem += lstName;

                    objOld.DenNgay = obj.DenNgay;
                    objOld.LoaiViec = obj.LoaiViec;
                    objOld.NgayTao = obj.NgayTao;
                    //objOld.NguoiDuyet_ID = obj.NguoiDuyet_ID;
                    objOld.NguoiTao_ID = obj.NguoiTao_ID;
                    objOld.NguoiThucHien_ID = obj.NguoiThucHien_ID;
                    objOld.NoiDung = obj.NoiDung;
                    objOld.Parent_ID = obj.Parent_ID;
                    //objOld.PhamVi = obj.PhamVi;
                    objOld.TenDauViec = obj.TenDauViec;
                    objOld.TenNguoiDuyet = obj.TenNguoiDuyet;
                    objOld.TienDo = obj.TienDo;
                    objOld.TenNguoiThucHien = obj.TenNguoiThucHien;
                    objOld.TuNgay = obj.TuNgay;
                    objOld.Display = obj.Display;

                    db.Entry(objOld).State = EntityState.Modified;
                }

                if (obj.Parent_ID != null)
                {
                    var parentObj = db.TN_DauViec.FirstOrDefault(o => o.ID == obj.Parent_ID);
                    var lstNguoiThucHien = db.AspNetUsers.Where(o => obj.NguoiThucHien_ID.Contains(o.Id));
                    var lstDauViecCon = db.TN_DauViec.Where(o => o.Parent_ID == obj.Parent_ID && o.ID != obj.ID);// another child

                    foreach (var item in idDelete.Split(','))//Delete Display ID in parent which delete in child.
                    {
                        if (string.IsNullOrEmpty(item) || lstDauViecCon.Where(o => o.Display.Contains(item)).Any())// null or exist work item which contain idDelete
                            continue;
                        parentObj.Display = parentObj.Display.Replace("," + item, "");
                        //parentObj.Display.Replace(item, "");
                    }

                    foreach (var item in lstNguoiThucHien)
                    {
                        if (!parentObj.NguoiThucHien_ID.Contains(item.Id))
                        {
                            if (!parentObj.Display.Contains(item.Id))
                                parentObj.Display += "," + item.Id;
                        }
                    }
                    db.Entry(parentObj).State = EntityState.Modified;
                }
                db.SaveChanges();

                var objChuyen = new TN_Chuyen();
                objChuyen.LoaiChuyen = LoaiChuyen.GiaoViec;
                objChuyen.NguoiChuyen_ID = user.Id;
                objChuyen.NguoiNhan_ID = obj.NguoiThucHien_ID;
                objChuyen.TenNguoiChuyen = user.HoVaTen;
                objChuyen.TenNguoiNhan = obj.TenNguoiThucHien;
                objChuyen.Viec_ID = obj.ID;
                objChuyen.Ykien = Ykien;
                objChuyen.Active = 1;
                objChuyen.LuongBaoCao = user.Id + ";";
                db.TN_Chuyen.Add(objChuyen);

                db.SaveChanges();
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("FileDinhKem", "Lỗi upload");
                ViewBag.returnUrl = returnUrl;
                return View(obj);
            }
            return RedirectToLocal(returnUrl);
        }