public async Task <ActionResult <IEnumerable <VB_QT_VanBanMoiSoHoa> > > r2AddQTChuyenChoPheDuyet(VB_QT_LuanChuyenVanBan vB_QT_LuanChuyenVanBan)
        {
            try
            {
                var userId = Convert.ToInt32(User.Claims.First(c => c.Type == "UserId").Value);
                var user   = await _context.Sys_Dm_User.FindAsync(userId);

                var userNN = await _context.Sys_Dm_User.FindAsync(vB_QT_LuanChuyenVanBan.NguoiNhanId);

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

                qtLuanChuyenVb.NgayDoc  = DateTime.Now;
                qtLuanChuyenVb.DaDoc    = true;
                qtLuanChuyenVb.NgayXuLy = DateTime.Now;
                VB_QT_LuanChuyenVanBan lcvb = LuanChuyenVanBan.r2AddLuanChuyenVanBan(
                    qtLuanChuyenVb.VbMoiSoHoaId, vB_QT_LuanChuyenVanBan.NguoiNhanId, vB_QT_LuanChuyenVanBan.TenNguoiNhan, userId, user.FullName,
                    vB_QT_LuanChuyenVanBan.TieuDe,
                    vB_QT_LuanChuyenVanBan.NoiDung, false,
                    vB_QT_LuanChuyenVanBan.HanXuLy, null,
                    vB_QT_LuanChuyenVanBan.TrangThaiXuLy,
                    vB_QT_LuanChuyenVanBan.MaLenh, null,
                    false, qtLuanChuyenVb.Id,
                    vB_QT_LuanChuyenVanBan.MenuGuiId,
                    vB_QT_LuanChuyenVanBan.MenuNhanId,
                    userNN.PositionName, user.PositionName, userNN.DepartmentName, user.DepartmentName);
                _context.VB_QT_LuanChuyenVanBan.Add(lcvb);
                Sys_QT_ThongBao obj = new Sys_QT_ThongBao();
                obj.MaLenh        = vB_QT_LuanChuyenVanBan.MaLenh;
                obj.QuyTrinhId    = 1;
                obj.TenNguoiGui   = user.FullName;
                obj.NguoiNhanId   = vB_QT_LuanChuyenVanBan.NguoiNhanId ?? 0;
                obj.NoiDung       = vB_QT_LuanChuyenVanBan.NoiDung;
                obj.NgayGui       = DateTime.Now;
                obj.DaDoc         = false;
                obj.NgayDoc       = null;
                obj.TrangThaiXuLy = vB_QT_LuanChuyenVanBan.TrangThaiXuLy;
                obj.RouterLink    = "/vanban/quytrinhvanban/vanbanchopheduyet";
                _context.Sys_QT_ThongBao.Add(obj);
                List <NguoiNhanThongBao> nhanThongBaos = new List <NguoiNhanThongBao>();
                NguoiNhanThongBao        nguoiNhan     = new NguoiNhanThongBao();
                nguoiNhan.NguoiNhanId = vB_QT_LuanChuyenVanBan.NguoiNhanId ?? 0;
                nhanThongBaos.Add(nguoiNhan);
                await _context.SaveChangesAsync();

                return(new ObjectResult(new { error = 0, nguoiNhanTbs = nhanThongBaos }));
            }
            catch (Exception)
            {
                return(new ObjectResult(new { error = 1 }));
            }
        }
Exemplo n.º 2
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 }));
            }
        }