public async Task <bool> BaoCaoTreHan(DeTaiNghienCuu deTai) { var baoCao = deTai.BaoCaoTienDo; int week = ((DateTime.Now - deTai.NgayThucHien.Value).Days) / 7 + 1; if (!baoCao.Any()) { if (week == 1) { BaoCaoTienDo entity = new BaoCaoTienDo { TuanDaNop = 1, NgayNop = DateTime.Now, Status = (int)StatusBaoCao.TreHan }; deTai.BaoCaoTienDo.Add(entity); } else { for (int i = 1; i < week; i++) { BaoCaoTienDo entity = new BaoCaoTienDo { TuanDaNop = i, NgayNop = DateTime.Now, Status = (int)StatusBaoCao.TreHan }; deTai.BaoCaoTienDo.Add(entity); } } await _service.Update(deTai); return(true); } else { int tuanDaNop = baoCao.LastOrDefault().TuanDaNop; if (tuanDaNop == week || week == tuanDaNop + 1) { return(true); } for (int i = tuanDaNop + 1; i < week; i++) { BaoCaoTienDo entity = new BaoCaoTienDo { TuanDaNop = i, NgayNop = DateTime.Now, Status = (int)StatusBaoCao.TreHan }; deTai.BaoCaoTienDo.Add(entity); } await _service.Update(deTai); return(true); } }
public async Task <IActionResult> Create(MoDot moDot) { var allXDDG = await _serviceXDDG.GetAll(); if (allXDDG.Any()) { foreach (var item in allXDDG) { item.Status = 0; await _serviceXDDG.Update(item); } } var HoiDong = await _serviceHoiDong.GetAll(); if (HoiDong.Any()) { foreach (var item in HoiDong) { item.StatusPhanCong = (int)StatusPhanCong.ChuaPhanCong; await _serviceHoiDong.Update(item); } } var DeTai = await _serviceDeTai.GetAll(); if (DeTai.Any()) { foreach (var item in DeTai) { item.TinhTrangPhanCong = (int)StatusPhanCong.ChuaPhanCong; await _serviceDeTai.Update(item); } } if (moDot.Loai == (int)MoDotLoai.DangKy) { var Nhom = await _serviceNhom.GetAll(); if (Nhom.Any()) { foreach (var item in Nhom) { item.Status = (int)BaseStatus.Disable; await _serviceNhom.Update(item); } } } moDot.Status = 1; moDot.IdquanLy = long.Parse(User.Identity.Name); await _service.Add(moDot); return(RedirectToAction("Index", new { mess = "Mở đợt thành công" })); }
public async Task <IActionResult> PhanCongGiangVien(long IdGiangVien, long IdDeTai) { DeTaiNghienCuu deTaiNghienCuu = await _service.GetById(IdDeTai); if (deTaiNghienCuu != null) { deTaiNghienCuu.IdgiangVien = IdGiangVien; await _service.Update(deTaiNghienCuu); return(RedirectToAction("Index", new { mess = "Phân công thành công" })); } else { return(RedirectToAction("Index")); } }
public async Task <IActionResult> LoadNoiDung(long idDeTai, int tab) { var deTai = await _serviceDeTai.GetById(idDeTai); ViewBag.TenDeTai = deTai.TenDeTai; ViewBag.NhomSV = deTai.NhomSinhVien.Select(x => x.IdsinhVienNavigation); var xetDuyetVaDanhGia = deTai.XetDuyetVaDanhGia.SingleOrDefault(x => x.Status == 1); if (Dot == 2 && tab == 1) { xetDuyetVaDanhGia = deTai.XetDuyetVaDanhGia.SingleOrDefault(x => x.Status == 0); } ViewBag.XDDG = xetDuyetVaDanhGia; var ct = xetDuyetVaDanhGia.CtxetDuyetVaDanhGia; double diemtb = 0; int chia = 0; foreach (var item in ct) { if (item.Diem.HasValue) { if (item.VaiTro == (int)LoaiVaiTro.PhanBien) { diemtb = diemtb + (2 * item.Diem.Value); chia = chia + 2; } else { diemtb = diemtb + item.Diem.Value; chia++; } } } if (chia == 0) { ViewBag.DiemTB = 0; } else { ViewBag.DiemTB = diemtb / chia * 1.0; } if (Dot == 1) { if (ViewBag.DiemTB < DotHienTai.DiemToiThieu) { deTai.TinhTrangDeTai = (int)StatusDeTai.Huy; } else if (ViewBag.DiemTB > DotHienTai.DiemToiDa && DotHienTai.Loai == (int)MoDotLoai.XetDuyetDeTai) { deTai.TinhTrangDeTai = (int)StatusDeTai.DaDangKy; } else if (ViewBag.DiemTB > DotHienTai.DiemToiDa && DotHienTai.Loai == (int)MoDotLoai.NghiemThuDeTai) { deTai.TinhTrangDeTai = (int)StatusDeTai.HoanThanh; } else { deTai.TinhTrangDeTai = (int)StatusDeTai.DanhGiaLai; } } else { if (ViewBag.DiemTB < DotHienTai.DiemToiThieu) { deTai.TinhTrangDeTai = (int)StatusDeTai.Huy; } else if (ViewBag.DiemTB > DotHienTai.DiemToiDa && DotHienTai.Loai == (int)MoDotLoai.XetDuyetDeTai) { deTai.TinhTrangDeTai = (int)StatusDeTai.DaDangKy; } else if (ViewBag.DiemTB > DotHienTai.DiemToiDa && DotHienTai.Loai == (int)MoDotLoai.NghiemThuDeTai) { deTai.TinhTrangDeTai = (int)StatusDeTai.HoanThanh; } else { deTai.TinhTrangDeTai = (int)StatusDeTai.Huy; } } await _serviceDeTai.Update(deTai); ViewBag.ctUSer = ct.SingleOrDefault(x => x.IdgiangVien == long.Parse(User.Identity.Name) && x.Status == 1); //foreach() ViewBag.Tab = tab; ViewBag.Dot = Dot; return(PartialView("_NoiDungXetDuyetGV", ct)); }
public async Task <ActionResult> DeXuatDeTai(DeTaiNghienCuuViewModel vmodel) { var SV = await _serviceSV.GetById(long.Parse(User.Identity.Name)); if (SV == null) { return(Ok(new { status = false, mess = MessageResult.NotFoundSV })); } if (vmodel.IdgiangVien == 0) { vmodel.IdgiangVien = null; } //Update DeTai if (vmodel.Id > 0) { var DeTai = await _service.GetById(vmodel.Id); DeTai.IdgiangVien = vmodel.IdgiangVien; DeTai.MoTa = vmodel.MoTa; DeTai.TenDeTai = vmodel.TenDeTai; if (await UpLoadFile(vmodel.Files, DeTai) == false) { return(Json(new { status = false, mess = MessageResult.UpLoadFileFail })); } await _service.Update(DeTai); return(Ok(new { status = true, mess = MessageResult.UpdateSuccess })); } //Kiểm tra SV đã có đề tài? var nhomSV = SV.NhomSinhVien.SingleOrDefault(x => x.IdnhomNavigation.Status == (int)BaseStatus.Active); if (nhomSV != null) { return(Ok(new { status = false, mess = MessageResult.ExistDeTai })); } IEnumerable <DeTaiNghienCuu> list = await _service.GetAll(); if (list.Count() != 0) { DeTaiNghienCuu LastE = list.OrderBy(x => x.Id).LastOrDefault(); vmodel.Id = _service.KhoiTaoMa(LastE); } else { vmodel.Id = long.Parse(DateTime.Now.Year.ToString() + "001"); } var model = new DeTaiNghienCuu() { Id = vmodel.Id, TenDeTai = vmodel.TenDeTai, MoTa = vmodel.MoTa, NgayDangKy = DateTime.Now, IdNguoiDangKy = long.Parse(User.Identity.Name), IdgiangVien = vmodel.IdgiangVien, NgayLap = DateTime.Now, TinhTrangDangKy = (int)StatusDangKyDeTai.Het, TinhTrangDeTai = (int)StatusDeTai.DaDangKy, Loai = LoaiDeTai.DeXuat }; if (await UpLoadFile(vmodel.Files, model) == false) { return(Json(new { status = false, mess = MessageResult.UpLoadFileFail })); } try { Nhom nhom = new Nhom(); await _serviceNhom.Add(nhom); NhomSinhVien nhomSinhVien = new NhomSinhVien { Idnhom = nhom.Id, IdsinhVien = SV.Mssv }; model.NhomSinhVien.Add(nhomSinhVien); await _service.Add(model); return(Json(new { status = true, create = true, data = model, mess = MessageResult.CreateSuccess })); } catch { return(Json(new { status = false, mess = MessageResult.Fail })); } }
public async Task <ActionResult> Edit(DeTaiNghienCuuViewModel model) { if (ModelState.IsValid) { var entity = await _service.GetById(model.Id); if (entity == null) { return(Ok(new { status = false, toastr = MessageResult.NotFoundObject })); } var isAuthorize = await _authorizationService.AuthorizeAsync(User, entity, DeTaiNghienCuuOperation.Update); if (!isAuthorize.Succeeded) { return(Ok(new { status = false, toastr = MessageResult.AccessDenied })); } else { if (entity.TinhTrangDeTai == (int)StatusDeTai.MoiTao) { if (await UpLoadFile(model.Files, entity) == false) { return(Ok(new { status = false, mess = MessageResult.UpLoadFileFail })); } entity.TenDeTai = model.TenDeTai; entity.MoTa = model.MoTa; await _service.Update(entity); return(Ok(new { status = true, mess = MessageResult.UpdateSuccess })); } else { YCChinhSuaDeTai yCChinhSua = new YCChinhSuaDeTai { MoTa = model.MoTa, TenDeTai = model.TenDeTai, }; YeuCauPheDuyet yeuCau = new YeuCauPheDuyet { LoaiYeuCau = (int)LoaiYeuCauPheDuyet.ChinhSua, NgayTao = DateTime.Now, }; if (await UpLoadFileYCChinhSua(model.Files, yCChinhSua) == false) { return(Ok(new { status = false, mess = MessageResult.UpLoadFileFail })); } var yeuCauHT = entity.YeuCauPheDuyet.FirstOrDefault(x => x.LoaiYeuCau == (int)LoaiYeuCauPheDuyet.ChinhSua && x.Status == 0); var yCChinhSuaHT = entity.YCChinhSuaDeTai.FirstOrDefault(x => x.Status == 0); entity.YeuCauPheDuyet.Remove(yeuCauHT); entity.YCChinhSuaDeTai.Remove(yCChinhSuaHT); entity.YeuCauPheDuyet.Add(yeuCau); entity.YCChinhSuaDeTai.Add(yCChinhSua); entity.TinhTrangPheDuyet = (int)StatusPheDuyet.GuiChinhSua; await _service.Update(entity); return(Ok(new { status = true, mess = "Gửi yêu cầu chỉnh sửa thành công" })); } } } else { return(Ok(new { status = false, mess = MessageResult.Fail })); } }