public ActionResult Edit(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var managerHD = new Models.ManagerHD();

            if (Authentication.Auth.AuthUser.roles == Authentication.Roles.staff)
            {
                var staff_id = Authentication.Auth.AuthUser.staff_id;
                var local    = db.groups.FirstOrDefault(m => m.id == staff_id);
                managerHD = db.ManagerHD.FirstOrDefault(m => m.id == id && m.localID == local.level);
            }
            else
            {
                managerHD = db.ManagerHD.Find(id);
            }

            if (managerHD == null)
            {
                return(HttpNotFound());
            }
            ViewBag.local   = db.groups.Where(d => d.app_key == Common.Objects.groups.department && d.level > 0).OrderBy(d => d.level).ToList();
            ViewBag.listOld = db.ManagerHD.Where(d => d.contractID == managerHD.contractID).Where(d => d.flag == 3 || d.flag == 4).OrderByDescending(d => d.updatedAt).ToList();

            return(View(managerHD));
        }
        public JsonResult Edit(Guid id, string details, Models.ManagerHD managerHDUpdate)
        {
            var index     = 0;
            var Extension = ".pdf";

            try
            {
                TM.IO.FileDirectory.CreateDirectory(TM.Common.Directories.Hopdong);
                var managerHD = db.ManagerHD.FirstOrDefault(d => d.id == id);
                if (Authentication.Auth.AuthUser.roles == Authentication.Roles.admin)
                {
                    managerHD.customerName    = managerHDUpdate.customerName;
                    managerHD.customerAddress = managerHDUpdate.customerAddress;
                    managerHD.customerPhone   = managerHDUpdate.customerPhone;
                    var acc = managerHDUpdate.accounts.Trim(',').Trim().Split(',');
                    managerHD.accounts      = ",";
                    managerHD.accountNumber = 0;
                    foreach (var i in acc)
                    {
                        managerHD.accounts += $"{i.Trim()},";
                        managerHD.accountNumber++;
                    }
                    managerHD.accounts = managerHD.accounts.Substring(0, managerHD.accounts.Length - 2);

                    if (Request.Files.Count > 0)
                    {
                        if (Request.Files[0].ContentLength > 0)
                        {
                            var file = Request.Files[0];
                            if (!file.FileName.IsExtension(Extension))
                            {
                                return(Json(new { danger = "Tệp phải định dạng .pdf" }, JsonRequestBehavior.AllowGet));
                            }
                            var fileName = $"{TM.Common.Directories.Hopdong}{managerHD.contractID.Replace("/", "").Replace("\\", "")}_{managerHD.id}{Extension}";
                            file.SaveAs(TM.IO.FileDirectory.MapPath(fileName));
                            managerHD.attach = fileName;
                        }
                    }
                    db.Entry(managerHD).State = System.Data.Entity.EntityState.Modified;
                    db.SaveChanges();
                }
                else  //Gửi yc cập nhật
                {
                    if (Request.Files.Count < 1)
                    {
                        return(Json(new { danger = "Vui lòng chọn file hợp đồng (.pdf)" }, JsonRequestBehavior.AllowGet));
                    }
                    else
                    {
                        var managerHDNew = new Models.ManagerHD();
                        managerHDNew.id              = Guid.NewGuid();
                        managerHDNew.app_key         = managerHD.app_key;
                        managerHDNew.localID         = managerHD.localID;
                        managerHDNew.localName       = managerHD.localName;
                        managerHDNew.contractID      = managerHD.contractID;
                        managerHDNew.customerName    = managerHD.customerName;
                        managerHDNew.customerAddress = managerHD.customerAddress;
                        managerHDNew.customerPhone   = managerHD.customerPhone;
                        managerHDNew.accounts        = managerHD.accounts;
                        managerHDNew.accountNumber   = managerHD.accountNumber;
                        managerHDNew.createdBy       = managerHD.createdBy;
                        managerHDNew.createdAt       = managerHD.createdAt;
                        managerHDNew.updatedBy       = Authentication.Auth.AuthUser.username;
                        managerHDNew.updatedAt       = DateTime.Now;
                        managerHDNew.details         = details;
                        managerHDNew.flag            = 2;
                        //
                        for (int i = 0; i < Request.Files.Count; i++)
                        {
                            var file = Request.Files[i];
                            if (file.ContentLength <= 0)
                            {
                                return(Json(new { danger = "Vui lòng chọn file hợp đồng (.pdf)" }, JsonRequestBehavior.AllowGet));
                            }
                            if (!file.FileName.IsExtension(Extension))
                            {
                                return(Json(new { danger = "Tệp phải định dạng .pdf" }, JsonRequestBehavior.AllowGet));
                            }

                            var fileName = $"{TM.Common.Directories.Hopdong}{managerHD.contractID.Replace("/", "").Replace("\\", "")}_{managerHD.id}{Extension}";
                            file.SaveAs(TM.IO.FileDirectory.MapPath(fileName));
                            managerHDNew.attach += fileName;
                            //FileManagerController
                            Portal.Controllers.FileManagerController.InsertDirectory(TM.Common.Directories.Hopdong);
                            Portal.Controllers.FileManagerController.InsertFile(fileName);
                        }
                        //
                        db.ManagerHD.Add(managerHDNew);
                        db.SaveChanges();
                    }
                }
                return(Json(new { success = "Gửi yêu cầu cập nhật thành công!" }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex) { return(Json(new { danger = ex.Message + " - Index: " + index }, JsonRequestBehavior.AllowGet)); }
        }