예제 #1
0
        public async Task <IActionResult> PutSys_Dm_Company(int id, Sys_Dm_Company sys_Dm_Company)
        {
            if (id != sys_Dm_Company.Id)
            {
                return(BadRequest());
            }

            _context.Entry(sys_Dm_Company).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!Sys_Dm_CompanyExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        public async Task <ActionResult <IEnumerable <CV_QT_MyWork> > > r2AddFLowDeadline()
        {
            try
            {
                var          model = JsonConvert.DeserializeObject <Dtos_FlowWorkPheDuyetTH>(Request.Form["model"]);
                RequestToken token = CommonData.GetDataFromToken(User);
                // lưu quy trình luân chuyển công việc phê duyệt công việc
                CV_QT_WorkFlow wflow = WorksCommon.objWorkFlow(_context, model.CV_QT_WorkFlow.MyWorkId, token.UserID, model.CV_QT_WorkFlow.UserDeliverId, model.CV_QT_WorkFlow.TypeFlow, "CV_MYWORK", model.CV_QT_WorkFlow.ParentId, model.CV_QT_WorkFlow.Note, model.CV_QT_WorkFlow.Require, 1);
                if (model.CV_QT_WorkFlow.TypeFlow == 2)
                {
                    var myWork = await _context.CV_QT_MyWork.FindAsync(model.CV_QT_WorkFlow.MyWorkId);

                    myWork.EndDate = model.ChangeDate;
                }
                _context.CV_QT_WorkFlow.Add(wflow);
                if (Request.Form.Files.Count != 0)
                {
                    foreach (var item in Request.Form.Files)
                    {
                        CV_QT_WorkFlowFile obj = new CV_QT_WorkFlowFile();
                        var file       = item;
                        var folderName = Path.Combine("Resources", "WorkFlows", "Deadlines");
                        var pathToSave = Path.Combine(Directory.GetCurrentDirectory(), folderName);
                        if (!Directory.Exists(pathToSave))
                        {
                            Directory.CreateDirectory(pathToSave);
                        }
                        if (model != null)
                        {
                            if (file.Length > 0)
                            {
                                var fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"');
                                var fullPath = Path.Combine(pathToSave, fileName);
                                var dbPath   = Path.Combine(folderName, fileName);
                                obj.Extension = Path.GetExtension(fileName);
                                obj.Path      = dbPath;
                                using (var stream = new FileStream(fullPath, FileMode.Create))
                                {
                                    file.CopyTo(stream);
                                }
                            }
                        }
                        obj.Name       = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"');
                        obj.WorkFlowId = wflow.Id;
                        obj.Size       = file.Length / 1048576;

                        _context.CV_QT_WorkFlowFile.Add(obj);
                    }
                }
                await _context.SaveChangesAsync();

                return(new ObjectResult(new { error = 0 }));
            }
            catch (Exception)
            {
                return(new ObjectResult(new { error = 1 }));
            }
        }
예제 #3
0
        public async Task <ActionResult <IEnumerable <Sys_Dm_User> > > r1AddDataSysDmUser(UserGroupRole userGroupRole)
        {
            try
            {
                RequestToken token     = CommonData.GetDataFromToken(User);
                var          userLogin = await _context.Sys_Dm_User.FindAsync(token.UserID);

                if (_context.Sys_Dm_User.Count(x => x.Code == userGroupRole.sys_Dm_User.Code) > 0)
                {
                    return(new ObjectResult(new { error = 2, ms = "Mã nhân viên đã tồn tại trong hệ thống." }));
                }
                var department = await _context.Sys_Dm_Department.FindAsync(userLogin.DepartmentId);

                var nest = await _context.Sys_Dm_Department.FindAsync(userGroupRole.sys_Dm_User.NestId);

                Nullable <int> NestId = null;
                if (nest != null)
                {
                    NestId = nest.Id;
                }
                var position = await _context.Sys_Dm_Position.FindAsync(userGroupRole.sys_Dm_User.PositionId);

                if (position == null)
                {
                    return(new ObjectResult(new { error = 2, ms = "Chưa chọn chức vụ cho nhân viên mới." }));
                }
                string PasswordEn = Helper.Encrypt(userGroupRole.sys_Dm_User.Username, userGroupRole.sys_Dm_User.Password);
                userGroupRole.sys_Dm_User.Password       = PasswordEn;
                userGroupRole.sys_Dm_User.PositionName   = position.Name;
                userGroupRole.sys_Dm_User.DepartmentName = department.Name;
                userGroupRole.sys_Dm_User.UserCreateId   = token.UserID;
                userGroupRole.sys_Dm_User.CreateDate     = DateTime.Now;
                userGroupRole.sys_Dm_User.NestId         = NestId;
                _context.Sys_Dm_User.Add(userGroupRole.sys_Dm_User);
                await _context.SaveChangesAsync();

                var user = _context.Sys_Dm_User.FirstOrDefault(x => x.Code == userGroupRole.sys_Dm_User.Code);
                foreach (var item in userGroupRole.GroupRoles)
                {
                    Sys_Cog_UsersGroup obj = new Sys_Cog_UsersGroup();
                    obj.UserId      = user.Id;
                    obj.GroupRoleId = item.Id;
                    _context.Sys_Cog_UsersGroup.Add(obj);
                }
                await _context.SaveChangesAsync();

                return(new ObjectResult(new { error = 0 }));
            }
            catch (Exception)
            {
                return(new ObjectResult(new { error = 1 }));
            }
        }
예제 #4
0
        public async Task <ActionResult <IEnumerable <Sys_Dm_User> > > ChangePassword(ChangePass change)
        {
            try
            {
                RequestToken token = CommonData.GetDataFromToken(User);
                var          user  = await _context.Sys_Dm_User.FindAsync(token.UserID);

                string passwordOld = Helper.Encrypt(user.Username, change.PassOld);
                string passwordNew = Helper.Encrypt(user.Username, change.PassNew);
                if (passwordOld == user.Password)
                {
                    user.Password = passwordNew;
                }
                else
                {
                    return(new ObjectResult(new { error = 1 }));
                }
                await _context.SaveChangesAsync();

                return(new ObjectResult(new { error = 0 }));
            }
            catch (Exception)
            {
                return(new ObjectResult(new { error = 1 }));
            }
        }
예제 #5
0
        public async Task <ActionResult <IEnumerable <Sys_Dm_User> > > ChangePassword(ChangePass change)
        {
            try
            {
                var userId = Convert.ToInt32(User.Claims.First(c => c.Type == "UserId").Value);
                var user   = await _context.Sys_Dm_User.FindAsync(userId);

                string passwordOld = Helper.Encrypt(user.Username, change.PassOld);
                string passwordNew = Helper.Encrypt(user.Username, change.PassNew);
                if (passwordOld == user.Password)
                {
                    user.Password = passwordNew;
                }
                else
                {
                    return(new ObjectResult(new { error = 1 }));
                }
                await _context.SaveChangesAsync();

                return(new ObjectResult(new { error = 0 }));
            }
            catch (Exception)
            {
                return(new ObjectResult(new { error = 1 }));
            }
        }
예제 #6
0
        public async Task <ActionResult <IEnumerable <Sys_Dm_User> > > r1AddDataSysDmUser(UserGroupRole userGroupRole)
        {
            try
            {
                var userId    = Convert.ToInt32(User.Claims.First(c => c.Type == "UserId").Value);
                var userLogin = await _context.Sys_Dm_User.FindAsync(userId);

                if (_context.Sys_Dm_User.Count(x => x.Code == userGroupRole.sys_Dm_User.Code) > 0)
                {
                    return(new ObjectResult(new { error = 2, ms = "Mã nhân viên đã tồn tại trong hệ thống." }));
                }
                var department = await _context.Sys_Dm_Department.FindAsync(userLogin.ParentDepartId);

                var position = await _context.Sys_Dm_Position.FindAsync(userGroupRole.sys_Dm_User.PositionId);

                if (position == null)
                {
                    return(new ObjectResult(new { error = 2, ms = "Chưa chọn chức vụ cho nhân viên mới." }));
                }
                string PasswordEn = Helper.Encrypt(userGroupRole.sys_Dm_User.Username, userGroupRole.sys_Dm_User.Password);
                userGroupRole.sys_Dm_User.Password       = PasswordEn;
                userGroupRole.sys_Dm_User.PositionName   = position.Name;
                userGroupRole.sys_Dm_User.DepartmentName = department.Name;
                userGroupRole.sys_Dm_User.UserCreateId   = userId;
                userGroupRole.sys_Dm_User.CreateDate     = DateTime.Now;
                _context.Sys_Dm_User.Add(userGroupRole.sys_Dm_User);
                await _context.SaveChangesAsync();

                var user = _context.Sys_Dm_User.FirstOrDefault(x => x.Code == userGroupRole.sys_Dm_User.Code);
                foreach (var item in userGroupRole.GroupRoles)
                {
                    Sys_Cog_UsersGroup obj = new Sys_Cog_UsersGroup();
                    obj.UserId      = user.Id;
                    obj.GroupRoleId = item.Id;
                    _context.Sys_Cog_UsersGroup.Add(obj);
                }
                await _context.SaveChangesAsync();

                return(new ObjectResult(new { error = 0 }));
            }
            catch (Exception)
            {
                return(new ObjectResult(new { error = 1 }));
            }
        }
예제 #7
0
        public async Task <ActionResult <IEnumerable <Sys_Dm_Company> > > r1PostUpdateThongBao(OptionId thongbao)
        {
            try
            {
                var userId = Convert.ToInt32(User.Claims.First(c => c.Type == "UserId").Value);
                var tables = await _context.Sys_QT_ThongBao.FindAsync(thongbao.Id);

                tables.DaDoc   = true;
                tables.NgayDoc = DateTime.Now;
                await _context.SaveChangesAsync();

                return(new ObjectResult(new { error = 0 }));
            }
            catch (Exception)
            {
                return(new ObjectResult(new { error = 1 }));
            }
        }
        public async Task <ActionResult <IEnumerable <CV_DM_Error> > > r2PostAddWorkCV_DM_Error(CV_DM_Error data)
        {
            try
            {
                var userId = Convert.ToInt32(User.Claims.First(c => c.Type == "UserId").Value);
                var user   = await _context.Sys_Dm_User.FindAsync(userId);

                data.DepartmentId = user.DepartmentId ?? 0;
                _context.CV_DM_Error.Add(data);
                await _context.SaveChangesAsync();

                return(new ObjectResult(new { error = 0, ms = "Thêm mới lỗi đánh giá công việc thành công!" }));
            }
            catch (Exception)
            {
                return(new ObjectResult(new { error = 1, ms = "Thêm mới lỗi đánh giá công việc không thành công!" }));
            }
        }
예제 #9
0
        public async Task <ActionResult <IEnumerable <Sys_Dm_GroupRole> > > r1AddDataGroupRole(Sys_Dm_GroupRole sys_Dm_Group)
        {
            try
            {
                var userId = Convert.ToInt32(User.Claims.First(c => c.Type == "UserId").Value);
                sys_Dm_Group.UserCreateId = userId;
                sys_Dm_Group.CreateDate   = DateTime.Now;
                sys_Dm_Group.RankRole     = GetRankRole(sys_Dm_Group);
                _context.Sys_Dm_GroupRole.Add(sys_Dm_Group);
                await _context.SaveChangesAsync();

                return(new ObjectResult(new { error = 0 }));
            }
            catch (Exception)
            {
                return(new ObjectResult(new { error = 1 }));
            }
        }
예제 #10
0
        public async Task <ActionResult <IEnumerable <Sys_Dm_Company> > > r1PostUpdateThongBao(OptionId thongbao)
        {
            try
            {
                RequestToken token  = CommonData.GetDataFromToken(User);
                var          tables = await _context.Sys_QT_ThongBao.FindAsync(thongbao.Id);

                tables.DaDoc   = true;
                tables.NgayDoc = DateTime.Now;
                await _context.SaveChangesAsync();

                return(new ObjectResult(new { error = 0 }));
            }
            catch (Exception)
            {
                return(new ObjectResult(new { error = 1 }));
            }
        }
예제 #11
0
        public async Task <ActionResult <IEnumerable <Sys_Dm_GroupRole> > > r1AddDataGroupRole(Sys_Dm_GroupRole sys_Dm_Group)
        {
            try
            {
                RequestToken token = CommonData.GetDataFromToken(User);
                sys_Dm_Group.UserCreateId = token.UserID;
                sys_Dm_Group.CreateDate   = DateTime.Now;
                sys_Dm_Group.RankRole     = GetRankRole(sys_Dm_Group);
                _context.Sys_Dm_GroupRole.Add(sys_Dm_Group);
                await _context.SaveChangesAsync();

                return(new ObjectResult(new { error = 0 }));
            }
            catch (Exception)
            {
                return(new ObjectResult(new { error = 1 }));
            }
        }
예제 #12
0
        public async Task <ActionResult <IEnumerable <CV_DM_Error> > > r2PostAddWorkCV_DM_Error(CV_DM_Error data)
        {
            try
            {
                RequestToken token = CommonData.GetDataFromToken(User);
                var          user  = await _context.Sys_Dm_User.FindAsync(token.UserID);

                data.DepartmentId = user.DepartmentId ?? 0;
                _context.CV_DM_Error.Add(data);
                await _context.SaveChangesAsync();

                return(new ObjectResult(new { error = 0, ms = "Thêm mới lỗi đánh giá công việc thành công!" }));
            }
            catch (Exception)
            {
                return(new ObjectResult(new { error = 1, ms = "Thêm mới lỗi đánh giá công việc không thành công!" }));
            }
        }
예제 #13
0
        public async Task SaveNotifiAsync(int QuyTrinhId, string MaLenh, string TenNguoiGui, string NoiDung, int NguoiNhanId, int TrangThaixl, string router)
        {
            Sys_QT_ThongBao sys_QT_ThongBao = new Sys_QT_ThongBao()
            {
                QuyTrinhId    = QuyTrinhId,
                MaLenh        = MaLenh,
                TenNguoiGui   = TenNguoiGui,
                NoiDung       = NoiDung,
                NgayGui       = DateTime.Now,
                NgayDoc       = null,
                DaDoc         = false,
                RouterLink    = router,
                NguoiNhanId   = NguoiNhanId,
                TrangThaiXuLy = TrangThaixl,
                TrangThai     = getTrangThaiXuLy(TrangThaixl, QuyTrinhId),
                IsNotifi      = true
            };
            NotifyContent notifyContent = new NotifyContent()
            {
                TenNguoiGui = sys_QT_ThongBao.TenNguoiGui,
                TrangThai   = sys_QT_ThongBao.TrangThai,
                Ngay        = DateTime.Now,
                NoiDung     = sys_QT_ThongBao.NoiDung
            };
            var connect = await _context.Sys_Dm_Connection.FirstOrDefaultAsync(x => x.UserId == NguoiNhanId);

            if (connect != null)
            {
                int[] typeflow = { 2, 3, 5, 6, 16, 15 };
                if (QuyTrinhId == 2 && typeflow.Contains(TrangThaixl))
                {
                    int[] pushtypef = { TrangThaixl };
                    HubService.Instance.PushTypeFlow(pushtypef, connect.ConnectionId);
                }
                HubService.Instance.CallHub(notifyContent, connect.ConnectionId);
            }
            else
            {
                sys_QT_ThongBao.IsNotifi = false;
            }
            _context.Sys_QT_ThongBao.Add(sys_QT_ThongBao);
            await _context.SaveChangesAsync();
        }
예제 #14
0
        public static async Task saveDateChangeMyWork(humanDbContext dbContext, string MyWorkId, DateTime DateEnd, DateTime DateStart, int UserId)
        {
            CV_QT_MyWorkChangeDate myWorkChangeDate = new CV_QT_MyWorkChangeDate()
            {
                MyWorkId  = MyWorkId,
                EndDate   = DateEnd,
                StartDate = DateStart,
                CreatedBy = UserId
            };

            dbContext.CV_QT_MyWorkChangeDate.Add(myWorkChangeDate);
            await dbContext.SaveChangesAsync();
        }
        public async Task <ActionResult <IEnumerable <VB_QT_QuyTrinh> > > r2AddListDataBuocLenh(QuyTrinhVB options)
        {
            try
            {
                if (_context.VB_QT_BuocLenhTuongTac.Count(x => x.LenhTuongTacId == options.LenhTuongTacId && x.BuocId == options.BuocId) > 0)
                {
                    return(new ObjectResult(new { error = 2 }));
                }
                VB_QT_BuocLenhTuongTac obj = new VB_QT_BuocLenhTuongTac();
                obj.BuocId         = options.BuocId ?? 1;
                obj.LenhTuongTacId = options.LenhTuongTacId ?? 1;
                obj.IsOrder        = _context.VB_QT_BuocLenhTuongTac.Count() + 1;
                _context.VB_QT_BuocLenhTuongTac.Add(obj);
                await _context.SaveChangesAsync();

                return(new ObjectResult(new { error = 0 }));
            }
            catch (Exception)
            {
                return(new ObjectResult(new { error = 1 }));
            }
        }
예제 #16
0
        public async Task <ActionResult <IEnumerable <CV_DM_DefaultTask> > > r1PostAddWorkDefault(CV_DM_DefaultTask defaultTask)
        {
            try
            {
                var userId = Convert.ToInt32(User.Claims.First(c => c.Type == "UserId").Value);
                var user   = await _context.Sys_Dm_User.FindAsync(userId);

                defaultTask.Id           = Helper.GenKey();
                defaultTask.Frequency    = 1;
                defaultTask.PointTask    = getPointTask(defaultTask.LevelTask, 1);
                defaultTask.PointTime    = getPointTask(defaultTask.LevelTime, 2);
                defaultTask.DepartmentId = user.ParentDepartId;
                _context.CV_DM_DefaultTask.Add(defaultTask);
                await _context.SaveChangesAsync();

                return(new ObjectResult(new { error = 0, ms = "Thêm mới công việc thường xuyên thành công!" }));
            }
            catch (Exception)
            {
                return(new ObjectResult(new { error = 1, ms = "Thêm mới công việc thường xuyên không thành công!" }));
            }
        }
예제 #17
0
        public async Task <ActionResult <IEnumerable <CV_DM_DefaultTask> > > r1PostAddWorkDefault(CV_DM_DefaultTask defaultTask)
        {
            try
            {
                RequestToken token = CommonData.GetDataFromToken(User);
                var          user  = await _context.Sys_Dm_User.FindAsync(token.UserID);

                defaultTask.Id           = Helper.GenKey();
                defaultTask.Frequency    = 1;
                defaultTask.PointTask    = getPointTask(defaultTask.LevelTask, 1);
                defaultTask.PointTime    = getPointTask(defaultTask.LevelTime, 2);
                defaultTask.DepartmentId = user.ParentDepartId;
                _context.CV_DM_DefaultTask.Add(defaultTask);
                await _context.SaveChangesAsync();

                return(new ObjectResult(new { error = 0, ms = "Thêm mới công việc thường xuyên thành công!" }));
            }
            catch (Exception)
            {
                return(new ObjectResult(new { error = 1, ms = "Thêm mới công việc thường xuyên không thành công!" }));
            }
        }
        public async Task <ActionResult <IEnumerable <VB_QT_LuanChuyenVanBan> > > r2ThuHoiQuyTrinhVanBan(VB_QT_LuanChuyenVanBan vB_QT_LuanChuyenVanBan)
        {
            var userId = Convert.ToInt32(User.Claims.First(c => c.Type == "UserId").Value);
            var tables = _context.VB_QT_LuanChuyenVanBan.Where(b => b.MaLenh == "VB_XNHT" && b.NguoiGuiId == userId && b.VbMoiSoHoaId == vB_QT_LuanChuyenVanBan.VbMoiSoHoaId);

            if (tables == null)
            {
                return(new ObjectResult(new { error = 1 }));
            }
            foreach (var item in tables)
            {
                item.MaLenh   = "VB_THUHOI";
                item.NgayXuLy = DateTime.Now;
                item.NoiDung  = vB_QT_LuanChuyenVanBan.NoiDung;
            }
            await _context.SaveChangesAsync();

            return(new ObjectResult(new { error = 0, }));
        }
예제 #19
0
        public async Task <ActionResult <IEnumerable <VB_QT_LuanChuyenVanBan> > > r2ThuHoiQuyTrinhVanBan(VB_QT_LuanChuyenVanBan vB_QT_LuanChuyenVanBan)
        {
            RequestToken token  = CommonData.GetDataFromToken(User);
            var          tables = _context.VB_QT_LuanChuyenVanBan.Where(b => b.MaLenh == "VB_XNHT" && b.NguoiGuiId == token.UserID && b.VbMoiSoHoaId == vB_QT_LuanChuyenVanBan.VbMoiSoHoaId);

            if (tables == null)
            {
                return(new ObjectResult(new { error = 1 }));
            }
            foreach (var item in tables)
            {
                item.MaLenh   = "VB_THUHOI";
                item.NgayXuLy = DateTime.Now;
                item.NoiDung  = vB_QT_LuanChuyenVanBan.NoiDung;
            }
            await _context.SaveChangesAsync();

            return(new ObjectResult(new { error = 0, }));
        }
예제 #20
0
        public async Task <ActionResult <IEnumerable <Sys_Cog_Permission> > > r2AddDataModel(MenuPermissionCom options)
        {
            try
            {
                if (options.NestId > 0)
                {
                    options.DepartmentId = options.NestId;
                }
                RequestToken token     = CommonData.GetDataFromToken(User);
                var          menuThree = await _context.Sys_Dm_Menu.FindAsync(options.MenuId);

                var menuComThree = _context.Sys_Cog_Permission.Count(x => x.MenuId == menuThree.Id && x.CompanyId == options.CompanyId && x.GroupRoleId == options.GroupRoleId);
                if (menuComThree == 0)
                {
                    var menuTwo = await _context.Sys_Dm_Menu.FindAsync(menuThree.ParentId);

                    var menuComTwo = _context.Sys_Cog_Permission.Count(x => x.MenuId == menuThree.ParentId && x.CompanyId == options.CompanyId && x.GroupRoleId == options.GroupRoleId);
                    if (menuComTwo == 0)
                    {
                        var menuOne = await _context.Sys_Dm_Menu.FindAsync(menuTwo.ParentId);

                        var menuComOne = _context.Sys_Cog_Permission.Count(x => x.MenuId == menuTwo.ParentId && x.CompanyId == options.CompanyId && x.GroupRoleId == options.GroupRoleId);
                        if (menuComOne == 0)
                        {
                            Sys_Cog_Permission objOne = new Sys_Cog_Permission();
                            objOne.MenuId       = menuOne.Id;
                            objOne.GroupRoleId  = options.GroupRoleId;
                            objOne.DepartmentId = options.DepartmentId;
                            objOne.CompanyId    = options.CompanyId;
                            objOne.IsActive     = true;
                            objOne.AddPer       = options.AddPer ?? false;
                            objOne.ViewPer      = options.ViewPer ?? false;
                            objOne.EditPer      = options.EditPer ?? false;
                            objOne.ExportPer    = options.ExportPer ?? false;
                            objOne.DelPer       = options.DelPer ?? false;
                            objOne.UserCreateId = token.UserID;
                            objOne.CreatDate    = DateTime.Now;
                            objOne.ParentId     = null;
                            _context.Sys_Cog_Permission.Add(objOne);
                            Sys_Cog_Permission objTwo = new Sys_Cog_Permission();
                            objTwo.MenuId       = menuTwo.Id;
                            objTwo.GroupRoleId  = options.GroupRoleId;
                            objTwo.CompanyId    = options.CompanyId;
                            objTwo.DepartmentId = options.DepartmentId;
                            objTwo.IsActive     = true;
                            objTwo.AddPer       = options.AddPer ?? false;
                            objTwo.ViewPer      = options.ViewPer ?? false;
                            objTwo.EditPer      = options.EditPer ?? false;
                            objTwo.ExportPer    = options.ExportPer ?? false;
                            objTwo.DelPer       = options.DelPer ?? false;
                            objTwo.UserCreateId = token.UserID;
                            objTwo.CreatDate    = DateTime.Now;
                            objTwo.ParentId     = menuOne.Id;
                            _context.Sys_Cog_Permission.Add(objTwo);
                            Sys_Cog_Permission objThree = new Sys_Cog_Permission();
                            objThree.MenuId       = options.MenuId;
                            objThree.GroupRoleId  = options.GroupRoleId;
                            objThree.DepartmentId = options.DepartmentId;
                            objThree.CompanyId    = options.CompanyId;
                            objThree.IsActive     = true;
                            objThree.AddPer       = options.AddPer ?? false;
                            objThree.ViewPer      = options.ViewPer ?? false;
                            objThree.EditPer      = options.EditPer ?? false;
                            objThree.ExportPer    = options.ExportPer ?? false;
                            objThree.DelPer       = options.DelPer ?? false;
                            objThree.UserCreateId = token.UserID;
                            objThree.CreatDate    = DateTime.Now;
                            objThree.ParentId     = menuTwo.Id;
                            _context.Sys_Cog_Permission.Add(objThree);
                        }
                        else
                        {
                            Sys_Cog_Permission objTwo = new Sys_Cog_Permission();
                            objTwo.MenuId       = menuTwo.Id;
                            objTwo.GroupRoleId  = options.GroupRoleId;
                            objTwo.DepartmentId = options.DepartmentId;
                            objTwo.CompanyId    = options.CompanyId;
                            objTwo.IsActive     = true;
                            objTwo.AddPer       = options.AddPer ?? false;
                            objTwo.ViewPer      = options.ViewPer ?? false;
                            objTwo.EditPer      = options.EditPer ?? false;
                            objTwo.ExportPer    = options.ExportPer ?? false;
                            objTwo.DelPer       = options.DelPer ?? false;
                            objTwo.UserCreateId = token.UserID;
                            objTwo.CreatDate    = DateTime.Now;
                            objTwo.ParentId     = menuOne.Id;
                            _context.Sys_Cog_Permission.Add(objTwo);
                            Sys_Cog_Permission objThree = new Sys_Cog_Permission();
                            objThree.MenuId       = options.MenuId;
                            objThree.GroupRoleId  = options.GroupRoleId;
                            objThree.DepartmentId = options.DepartmentId;
                            objThree.CompanyId    = options.CompanyId;
                            objThree.IsActive     = true;
                            objThree.AddPer       = options.AddPer ?? false;
                            objThree.ViewPer      = options.ViewPer ?? false;
                            objThree.EditPer      = options.EditPer ?? false;
                            objThree.ExportPer    = options.ExportPer ?? false;
                            objThree.DelPer       = options.DelPer ?? false;
                            objThree.UserCreateId = token.UserID;
                            objThree.CreatDate    = DateTime.Now;
                            objThree.ParentId     = menuTwo.Id;
                            _context.Sys_Cog_Permission.Add(objThree);
                        }
                    }
                    else
                    {
                        var menuComTwoParent = await _context.Sys_Cog_Permission.FirstOrDefaultAsync(x => x.MenuId == menuThree.ParentId && x.CompanyId == options.CompanyId && x.GroupRoleId == options.GroupRoleId);

                        Sys_Cog_Permission objThree = new Sys_Cog_Permission();
                        objThree.MenuId       = options.MenuId;
                        objThree.GroupRoleId  = options.GroupRoleId;
                        objThree.CompanyId    = options.CompanyId;
                        objThree.DepartmentId = options.DepartmentId;
                        objThree.IsActive     = true;
                        objThree.AddPer       = options.AddPer ?? false;
                        objThree.ViewPer      = options.ViewPer ?? false;
                        objThree.EditPer      = options.EditPer ?? false;
                        objThree.ExportPer    = options.ExportPer ?? false;
                        objThree.DelPer       = options.DelPer ?? false;
                        objThree.UserCreateId = token.UserID;
                        objThree.CreatDate    = DateTime.Now;
                        objThree.ParentId     = menuTwo.Id;
                        _context.Sys_Cog_Permission.Add(objThree);

                        #region ViewPer three nhap vao = true

                        if (_context.Sys_Cog_Permission.Count(x => x.ViewPer == true && x.ParentId == menuThree.ParentId && x.GroupRoleId == options.GroupRoleId && x.CompanyId == options.CompanyId && x.MenuId != options.MenuId) == 0)
                        {
                            var menuTwoParent = await _context.Sys_Cog_Permission.FirstOrDefaultAsync(x => x.MenuId == menuThree.ParentId && x.CompanyId == options.CompanyId && x.GroupRoleId == options.GroupRoleId);

                            menuTwoParent.ViewPer = true;
                            if (_context.Sys_Cog_Permission.Count(x => x.ViewPer == true && x.ParentId == menuTwoParent.ParentId && x.GroupRoleId == options.GroupRoleId && x.CompanyId == options.CompanyId && x.MenuId != menuTwoParent.MenuId) == 0)
                            {
                                var menuoneParent = await _context.Sys_Cog_Permission.FirstOrDefaultAsync(x => x.MenuId == menuTwoParent.ParentId && x.CompanyId == options.CompanyId && x.GroupRoleId == options.GroupRoleId);

                                menuoneParent.ViewPer = true;
                            }
                        }

                        #endregion
                    }
                }
                else
                {
                    var menuCome = await _context.Sys_Cog_Permission.FirstOrDefaultAsync(x => x.MenuId == options.MenuId && x.CompanyId == options.CompanyId && x.GroupRoleId == options.GroupRoleId);

                    #region Viewper nhap vao = false
                    if (options.ViewPer == false && menuCome.ViewPer == true)
                    {
                        if (_context.Sys_Cog_Permission.Count(x => x.ViewPer == true && x.ParentId == menuCome.ParentId && x.GroupRoleId == options.GroupRoleId && x.CompanyId == options.CompanyId && x.MenuId != options.MenuId) == 0)
                        {
                            var menuTwoParent = await _context.Sys_Cog_Permission.FirstOrDefaultAsync(x => x.MenuId == menuCome.ParentId && x.CompanyId == options.CompanyId && x.GroupRoleId == options.GroupRoleId);

                            menuTwoParent.ViewPer = false;
                            if (_context.Sys_Cog_Permission.Count(x => x.ViewPer == true && x.ParentId == menuTwoParent.ParentId && x.GroupRoleId == options.GroupRoleId && x.CompanyId == options.CompanyId && x.MenuId != menuTwoParent.MenuId) == 0)
                            {
                                var menuoneParent = await _context.Sys_Cog_Permission.FirstOrDefaultAsync(x => x.MenuId == menuTwoParent.ParentId && x.CompanyId == options.CompanyId && x.GroupRoleId == options.GroupRoleId);

                                menuoneParent.ViewPer = false;
                            }
                        }
                    }
                    #endregion
                    #region ViewPer three nhap vao = true
                    if (options.ViewPer == true && menuCome.ViewPer == false)
                    {
                        if (_context.Sys_Cog_Permission.Count(x => x.ViewPer == true && x.ParentId == menuCome.ParentId && x.GroupRoleId == options.GroupRoleId && x.CompanyId == options.CompanyId && x.MenuId != options.MenuId) == 0)
                        {
                            var menuTwoParent = await _context.Sys_Cog_Permission.FirstOrDefaultAsync(x => x.MenuId == menuCome.ParentId && x.CompanyId == options.CompanyId && x.GroupRoleId == options.GroupRoleId);

                            menuTwoParent.ViewPer = true;
                            if (_context.Sys_Cog_Permission.Count(x => x.ViewPer == true && x.ParentId == menuTwoParent.ParentId && x.GroupRoleId == options.GroupRoleId && x.CompanyId == options.CompanyId && x.MenuId != menuTwoParent.MenuId) == 0)
                            {
                                var menuoneParent = await _context.Sys_Cog_Permission.FirstOrDefaultAsync(x => x.MenuId == menuTwoParent.ParentId && x.CompanyId == options.CompanyId && x.GroupRoleId == options.GroupRoleId);

                                menuoneParent.ViewPer = true;
                            }
                        }
                    }
                    #endregion
                    menuCome.AddPer    = options.AddPer ?? false;
                    menuCome.ViewPer   = options.ViewPer ?? false;
                    menuCome.EditPer   = options.EditPer ?? false;
                    menuCome.ExportPer = options.ExportPer ?? false;
                    menuCome.DelPer    = options.DelPer ?? false;
                }
                await _context.SaveChangesAsync();

                return(new ObjectResult(new { error = 0 }));
            }
            catch (Exception)
            {
                return(new ObjectResult(new { error = 1 }));
            }
        }
예제 #21
0
        public async Task <ActionResult <IEnumerable <CV_QT_MyWork> > > r1SpaceTimeOnDay()
        {
            try
            {
                TimeSpan     ts17  = new TimeSpan(17, 00, 0);
                RequestToken token = CommonData.GetDataFromToken(User);

                var datesDefault = TransforDate.FromDateToDouble(new DateTime(DateTime.Now.Year, DateTime.Now.Month, 01));
                var dateeDefault = TransforDate.FromDateToDouble(DateTime.Now);
                var reports      = (from a in _context.CV_QT_StartPauseHistory
                                    where a.UserCreateId == token.UserID && a.Done != true && a.CreateDate.Month == DateTime.Now.Month
                                    orderby a.Id
                                    select new
                {
                    a.Id,
                    a.CreateDate,
                    a.CycleWork,
                    a.MyWorkId,
                    a.UserCreateId
                }).ToList();
                if (reports.Count() < 2)
                {
                    return(new ObjectResult(new { error = 0 }));
                }
                List <CV_QT_SpaceTimeOnDay> listSpace = new List <CV_QT_SpaceTimeOnDay>();

                for (int i = 0; i < reports.Count() - 1; i++)
                {
                    if (reports[i].CreateDate.Hour >= 17 && reports[i].CreateDate.Minute > 3)
                    {
                        continue;
                    }
                    if (reports[i].CycleWork == 2)
                    {
                        CV_QT_SpaceTimeOnDay obj = new CV_QT_SpaceTimeOnDay()
                        {
                            SpaceStart = TransforDate.FromDateToDouble(reports[i].CreateDate),
                            SpaceEnd   = TransforDate.FromDateToDouble(reports[i + 1].CreateDate),
                            Time       = SpaceTimeOnDay.CalSpaceTimeOnDay(reports[i].CreateDate, reports[i + 1].CreateDate),
                            MyWorkId   = reports[i].MyWorkId,
                            UserId     = reports[i].UserCreateId
                        };
                        if (obj.Time >= 30)
                        {
                            listSpace.Add(obj);
                        }
                    }
                }
                var objup = _context.CV_QT_StartPauseHistory.Where(x => x.UserCreateId == token.UserID && x.Done != true);
                foreach (var item in objup)
                {
                    item.Done = true;
                }
                _context.CV_QT_StartPauseHistory.UpdateRange(objup);
                await _context.AddRangeAsync(listSpace);

                await _context.SaveChangesAsync();

                return(new ObjectResult(new { error = 0 }));
            }
            catch (Exception e)
            {
                return(new ObjectResult(new { error = 1 }));
            }
        }
예제 #22
0
        public async Task <ActionResult <IEnumerable <VB_QT_VanBanMoiSoHoa> > > r2AddQTPheDuyetTrinhKy(LuanChuyenVbDuyetTrinhKy luanChuyenVbXNHT)
        {
            try
            {
                List <NguoiNhanThongBao> nhanThongBaos = new List <NguoiNhanThongBao>();
                var userId = Convert.ToInt32(User.Claims.First(c => c.Type == "UserId").Value);
                var user   = await _context.Sys_Dm_User.FindAsync(userId);

                var qtLuanChuyenVb = await _context.VB_QT_LuanChuyenVanBan.FindAsync(luanChuyenVbXNHT.VB_QT_LuanChuyenVanBan.Id);

                qtLuanChuyenVb.NgayXuLy = DateTime.Now;
                qtLuanChuyenVb.NgayDoc  = DateTime.Now;
                qtLuanChuyenVb.DaDoc    = true;

                var nguoiNhans = _context.VB_QT_LuanChuyenVanBan.Where(x => x.VbMoiSoHoaId == qtLuanChuyenVb.VbMoiSoHoaId).Select(a => new
                {
                    a.TenNguoiGui,
                    a.NguoiGuiId,
                    a.MaLenh
                }).Distinct().ToList();
                if (luanChuyenVbXNHT.UserXNHT.isNguoiGui == true)
                {
                    foreach (var item in nguoiNhans.Where(x => x.MaLenh == "VB_CHOTRINHKY" && x.NguoiGuiId != nguoiNhans.FirstOrDefault(x => x.MaLenh == "VB_MOISOHOA").NguoiGuiId))
                    {
                        var userNN = await _context.Sys_Dm_User.FindAsync(item.NguoiGuiId);

                        VB_QT_LuanChuyenVanBan lcvb = LuanChuyenVanBan.r2AddLuanChuyenVanBan(
                            qtLuanChuyenVb.VbMoiSoHoaId, item.NguoiGuiId, item.TenNguoiGui, userId, user.FullName,
                            luanChuyenVbXNHT.VB_QT_LuanChuyenVanBan.TieuDe,
                            luanChuyenVbXNHT.VB_QT_LuanChuyenVanBan.NoiDung, false,
                            luanChuyenVbXNHT.VB_QT_LuanChuyenVanBan.HanXuLy, null,
                            5,
                            "VB_NHANTHONGBAO", null, false,
                            qtLuanChuyenVb.Id,
                            luanChuyenVbXNHT.VB_QT_LuanChuyenVanBan.MenuGuiId,
                            luanChuyenVbXNHT.VB_QT_LuanChuyenVanBan.MenuNhanId,
                            userNN.PositionName, user.PositionName, userNN.DepartmentName, user.DepartmentName);
                        _context.VB_QT_LuanChuyenVanBan.Add(lcvb);
                        // thêm vào thông báo
                        Sys_QT_ThongBao obj = new Sys_QT_ThongBao();
                        obj.MaLenh        = "VB_NHANTHONGBAO";
                        obj.QuyTrinhId    = 1;
                        obj.TenNguoiGui   = user.FullName;
                        obj.NguoiNhanId   = item.NguoiGuiId;
                        obj.NoiDung       = luanChuyenVbXNHT.VB_QT_LuanChuyenVanBan.NoiDung;
                        obj.NgayGui       = DateTime.Now;
                        obj.DaDoc         = false;
                        obj.NgayDoc       = null;
                        obj.TrangThaiXuLy = 5;
                        obj.RouterLink    = "/vanban/quytrinhvanban/vanbandapheduyet";
                        NguoiNhanThongBao nguoiNhan = new NguoiNhanThongBao();
                        nguoiNhan.NguoiNhanId = item.NguoiGuiId;
                        nhanThongBaos.Add(nguoiNhan);
                        _context.Sys_QT_ThongBao.Add(obj);
                    }
                }
                var userNNN = await _context.Sys_Dm_User.FindAsync(nguoiNhans.FirstOrDefault(x => x.MaLenh == "VB_MOISOHOA").NguoiGuiId);

                VB_QT_LuanChuyenVanBan lcvb1 = LuanChuyenVanBan.r2AddLuanChuyenVanBan(
                    qtLuanChuyenVb.VbMoiSoHoaId, nguoiNhans.FirstOrDefault(x => x.MaLenh == "VB_MOISOHOA").NguoiGuiId, nguoiNhans.FirstOrDefault(x => x.MaLenh == "VB_MOISOHOA").TenNguoiGui, userId, user.FullName,
                    luanChuyenVbXNHT.VB_QT_LuanChuyenVanBan.TieuDe,
                    luanChuyenVbXNHT.VB_QT_LuanChuyenVanBan.NoiDung, false,
                    luanChuyenVbXNHT.VB_QT_LuanChuyenVanBan.HanXuLy, null,
                    3,
                    luanChuyenVbXNHT.VB_QT_LuanChuyenVanBan.MaLenh, null, false,
                    qtLuanChuyenVb.Id,
                    luanChuyenVbXNHT.VB_QT_LuanChuyenVanBan.MenuGuiId,
                    luanChuyenVbXNHT.VB_QT_LuanChuyenVanBan.MenuNhanId,
                    userNNN.PositionName, user.PositionName, userNNN.DepartmentName, user.DepartmentName);
                _context.VB_QT_LuanChuyenVanBan.Add(lcvb1);
                NguoiNhanThongBao nguoiNhan1 = new NguoiNhanThongBao();
                nguoiNhan1.NguoiNhanId = nguoiNhans.FirstOrDefault(x => x.MaLenh == "VB_MOISOHOA").NguoiGuiId;
                nhanThongBaos.Add(nguoiNhan1);
                // thêm vào thông báo
                Sys_QT_ThongBao obj1 = new Sys_QT_ThongBao();
                obj1.MaLenh        = luanChuyenVbXNHT.VB_QT_LuanChuyenVanBan.MaLenh;
                obj1.QuyTrinhId    = 1;
                obj1.TenNguoiGui   = user.FullName;
                obj1.NguoiNhanId   = nguoiNhans.FirstOrDefault(x => x.MaLenh == "VB_MOISOHOA").NguoiGuiId;
                obj1.NoiDung       = luanChuyenVbXNHT.VB_QT_LuanChuyenVanBan.NoiDung;
                obj1.NgayGui       = DateTime.Now;
                obj1.DaDoc         = false;
                obj1.NgayDoc       = null;
                obj1.TrangThaiXuLy = luanChuyenVbXNHT.VB_QT_LuanChuyenVanBan.TrangThaiXuLy;
                obj1.RouterLink    = "/vanban/quytrinhvanban/vanbandapheduyet";
                _context.Sys_QT_ThongBao.Add(obj1);
                await _context.SaveChangesAsync();

                return(new ObjectResult(new { error = 0, nguoiNhanTbs = nhanThongBaos }));
            }
            catch (Exception)
            {
                return(new ObjectResult(new { error = 1 }));
            }
        }
예제 #23
0
        public async Task <IActionResult> r2addObjUnitCode()
        {
            try
            {
                var model = JsonConvert.DeserializeObject <VB_QT_VanBanMoiSoHoa>(Request.Form["model"]);
                VB_QT_VanBanMoiSoHoa objvb = new VB_QT_VanBanMoiSoHoa();
                var userId = Convert.ToInt32(User.Claims.First(c => c.Type == "UserId").Value);
                var user   = await _context.Sys_Dm_User.FindAsync(userId);

                var userNguoiKy = await _context.Sys_Dm_User.FirstOrDefaultAsync(x => x.Id == model.NguoiKyId);

                if (model != null)
                {
                    objvb.Id           = Helper.GenKey();
                    objvb.CompanyId    = user.CompanyId ?? 0;
                    objvb.DepartmentId = user.DepartmentId ?? 0;
                    objvb.TenNguoiKy   = userNguoiKy.FullName;
                    objvb.LinhVucId    = model.LinhVucId;
                    objvb.LoaiVanBanId = model.LoaiVanBanId;
                    objvb.SoKyHieu     = model.SoKyHieu;
                    objvb.NoiBanHanh   = model.NoiBanHanh;
                    objvb.NgayBanHanh  = model.NgayBanHanh;
                    objvb.TuKhoa       = model.TuKhoa;
                    objvb.SoTrang      = model.SoTrang;
                    objvb.SoTrang      = model.SoTrang;
                    objvb.TenNguoiTao  = user.FullName;
                    objvb.CreateDate   = DateTime.Now;
                    objvb.UserCreateId = userId;
                    objvb.TrichYeu     = model.TrichYeu;
                    _context.VB_QT_VanBanMoiSoHoa.Add(objvb);
                }
                VB_QT_LuanChuyenVanBan lcvb = LuanChuyenVanBan.r2AddLuanChuyenVanBan(objvb.Id, userId, user.FullName, userId, user.FullName, "", "", false, null, null, 1, "VB_MOISOHOA", DateTime.Now, false, null, "VB0101", "VB0101", user.PositionName, user.PositionName, user.DepartmentName, user.DepartmentName);
                _context.VB_QT_LuanChuyenVanBan.Add(lcvb);
                if (Request.Form.Files.Count != 0)
                {
                    foreach (var item in Request.Form.Files)
                    {
                        VB_QT_FileVBMoiSoHoa obj = new VB_QT_FileVBMoiSoHoa();
                        var file       = item;
                        var folderName = Path.Combine("Resources", "VanBan");
                        var pathToSave = Path.Combine(Directory.GetCurrentDirectory(), folderName);
                        if (!Directory.Exists(pathToSave))
                        {
                            Directory.CreateDirectory(pathToSave);
                        }
                        if (model != null)
                        {
                            if (file.Length > 0)
                            {
                                var fileName = long.Parse(DateTime.Now.ToString("yyyyMMddHHmmss")).ToString() + ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"');
                                var fullPath = Path.Combine(pathToSave, fileName);
                                var dbPath   = Path.Combine(folderName, fileName);
                                obj.Path = dbPath;
                                using (var stream = new FileStream(fullPath, FileMode.Create))
                                {
                                    file.CopyTo(stream);
                                }
                            }
                        }
                        obj.Name         = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"');
                        obj.VbMoiSoHoaId = objvb.Id;
                        obj.Size         = file.Length;
                        obj.Type         = 1;
                        _context.VB_QT_FileVBMoiSoHoa.Add(obj);
                    }
                }
                await _context.SaveChangesAsync();

                return(new ObjectResult(new { error = 0, ms = "" }));;
            }
            catch (Exception ex)
            {
                var result = new OkObjectResult(new { error = 1, ms = "Lỗi khi thêm mới UnitCode, vui lòng kiểm tra lại!" });
                return(result);
            }
        }
예제 #24
0
        public async Task <ActionResult <IEnumerable <Sys_Cog_MenuCom> > > r2AddDataModel(MenuCongtyOp options)
        {
            try
            {
                RequestToken token     = CommonData.GetDataFromToken(User);
                var          menuThree = await _context.Sys_Dm_Menu.FindAsync(options.Id);

                var menuComThree = _context.Sys_Cog_MenuCom.Count(x => x.MenuId == menuThree.Id && x.CompanyId == options.CompanyId);
                if (menuComThree == 0)
                {
                    var menuTwo = await _context.Sys_Dm_Menu.FindAsync(menuThree.ParentId);

                    var menuComTwo = _context.Sys_Cog_MenuCom.Count(x => x.MenuId == menuThree.ParentId && x.CompanyId == options.CompanyId);
                    if (menuComTwo == 0)
                    {
                        var menuOne = await _context.Sys_Dm_Menu.FindAsync(menuTwo.ParentId);

                        var menuComOne = _context.Sys_Cog_MenuCom.Count(x => x.MenuId == menuTwo.ParentId && x.CompanyId == options.CompanyId);
                        if (menuComOne == 0)
                        {
                            Sys_Cog_MenuCom objOne = new Sys_Cog_MenuCom();
                            objOne.MenuId       = menuOne.Id;
                            objOne.CompanyId    = options.CompanyId;
                            objOne.IsActive     = true;
                            objOne.ParentId     = null;
                            objOne.UserUpdateId = token.UserID;
                            objOne.DateUpdate   = DateTime.Now;
                            _context.Sys_Cog_MenuCom.Add(objOne);
                            Sys_Cog_MenuCom objTwo = new Sys_Cog_MenuCom();
                            objTwo.MenuId       = menuTwo.Id;
                            objTwo.CompanyId    = options.CompanyId;
                            objTwo.IsActive     = true;
                            objTwo.ParentId     = menuOne.Id;
                            objTwo.UserUpdateId = token.UserID;
                            objTwo.DateUpdate   = DateTime.Now;
                            _context.Sys_Cog_MenuCom.Add(objTwo);
                            Sys_Cog_MenuCom objThree = new Sys_Cog_MenuCom();
                            objThree.MenuId       = options.Id;
                            objThree.CompanyId    = options.CompanyId;
                            objThree.IsActive     = true;
                            objThree.ParentId     = menuTwo.Id;
                            objThree.UserUpdateId = token.UserID;
                            objThree.DateUpdate   = DateTime.Now;
                            _context.Sys_Cog_MenuCom.Add(objThree);
                        }
                        else
                        {
                            Sys_Cog_MenuCom objTwo = new Sys_Cog_MenuCom();
                            objTwo.MenuId       = menuTwo.Id;
                            objTwo.CompanyId    = options.CompanyId;
                            objTwo.IsActive     = true;
                            objTwo.ParentId     = menuOne.Id;
                            objTwo.UserUpdateId = token.UserID;
                            objTwo.DateUpdate   = DateTime.Now;
                            _context.Sys_Cog_MenuCom.Add(objTwo);
                            Sys_Cog_MenuCom objThree = new Sys_Cog_MenuCom();
                            objThree.MenuId       = options.Id;
                            objThree.CompanyId    = options.CompanyId;
                            objThree.ParentId     = menuTwo.Id;
                            objThree.IsActive     = true;
                            objThree.UserUpdateId = token.UserID;
                            objThree.DateUpdate   = DateTime.Now;
                            _context.Sys_Cog_MenuCom.Add(objThree);
                        }
                    }
                    else
                    {
                        var menuComTwoParent = await _context.Sys_Cog_MenuCom.FirstOrDefaultAsync(x => x.MenuId == menuThree.ParentId && x.CompanyId == options.CompanyId);

                        Sys_Cog_MenuCom objThree = new Sys_Cog_MenuCom();
                        objThree.MenuId       = options.Id;
                        objThree.CompanyId    = options.CompanyId;
                        objThree.IsActive     = true;
                        objThree.ParentId     = menuTwo.Id;
                        objThree.UserUpdateId = token.UserID;
                        objThree.DateUpdate   = DateTime.Now;
                        _context.Sys_Cog_MenuCom.Add(objThree);
                        menuComTwoParent.IsActive = true;
                    }
                }
                else
                {
                    var menuCome = await _context.Sys_Cog_MenuCom.FirstOrDefaultAsync(x => x.MenuId == options.Id && x.CompanyId == options.CompanyId);

                    var menuComTwoParent = await _context.Sys_Cog_MenuCom.FirstOrDefaultAsync(x => x.MenuId == menuThree.ParentId && x.CompanyId == options.CompanyId);

                    if (options.IsActive == false)
                    {
                        var rmmenuDeps = _context.Sys_Cog_MenuDep.Where(x => x.MenuId == options.Id && x.CompanyId == options.CompanyId).ToList(); // xóa menu phòng

                        if (_context.Sys_Cog_MenuCom.Count(x => x.ParentId == menuThree.ParentId && x.CompanyId == options.CompanyId && x.IsActive == true && x.MenuId != options.Id) == 0)
                        {
                            menuComTwoParent.IsActive = false;
                        }
                        foreach (var item in rmmenuDeps)
                        {
                            item.IsActive = false;
                            var menuDepParent = await _context.Sys_Cog_MenuDep.FirstOrDefaultAsync(x => x.MenuId == item.ParentId && x.CompanyId == item.CompanyId && x.DepartmentId == item.DepartmentId);

                            if (_context.Sys_Cog_MenuDep.Count(x => x.ParentId == item.ParentId && x.CompanyId == item.CompanyId && x.IsActive == true && x.MenuId != item.MenuId) == 0)
                            {
                                menuDepParent.IsActive = false;
                            }
                            var rmmenuNests = _context.Sys_Cog_MenuNest.Where(x => x.MenuId == options.Id && x.CompanyId == options.CompanyId && x.ParentDepartmentId == item.DepartmentId).ToList(); // xóa menu phòng
                            foreach (var ntem in rmmenuNests)
                            {
                                ntem.IsActive = false;
                            }
                        }
                        menuCome.IsActive     = false;
                        menuCome.DateUpdate   = DateTime.Now;
                        menuCome.UserUpdateId = token.UserID;
                    }
                    else
                    {
                        if (_context.Sys_Cog_MenuCom.Count(x => x.ParentId == menuThree.ParentId && x.CompanyId == options.CompanyId && x.IsActive == true) == 0)
                        {
                            menuComTwoParent.IsActive = true;
                        }
                        menuCome.IsActive     = true;
                        menuCome.DateUpdate   = DateTime.Now;
                        menuCome.UserUpdateId = token.UserID;
                    }
                }
                await _context.SaveChangesAsync();

                return(new ObjectResult(new { error = 0 }));
            }
            catch (Exception ez)
            {
                return(new ObjectResult(new { error = 1 }));
            }
        }