public void DeleteDanhSachDuThi(KQHT_DanhSachKhongThiInfo pKQHT_DanhSachKhongThiInfo, int IDXL_MonHocTrongKy) { oDKQHT_DanhSachKhongThi.DeleteDanhSachDuThi(pKQHT_DanhSachKhongThiInfo, IDXL_MonHocTrongKy); mErrorMessage = oDKQHT_DanhSachKhongThi.ErrorMessages; mErrorNumber = oDKQHT_DanhSachKhongThi.ErrorNumber; }
public void TinhDiemTBHS(DataTable dtSV, DataRow drMonHoc, int IDDM_Lop, int IDDM_TrinhDo, int IDDM_NamHoc, int HocKy, int IDKQHT_ThanhPhanDiem, int LanThi, string CongThucDiem, int NS_GiaoVienID) { DataTable dtDiem = GetTongHopTBHS(int.Parse(drMonHoc["XL_MonHocTrongKyID"].ToString()), int.Parse(drMonHoc["DM_MonHocID"].ToString()), IDDM_Lop, IDDM_TrinhDo, IDDM_NamHoc, HocKy, LanThi); DataTable dtTPBatBuoc = (new cDKQHT_ThanhPhanDiemBatBuoc()).GetByTrinhDo(IDDM_TrinhDo); string TinhCaTietNghiCoPhep = (new cBHT_ThamSoHeThong()).GetGiaTriByMaThamSo("TinhCaTietNghiCoPhep"); string LyDo; int SoTietNghi; double DiemThapNhat = double.Parse((new cBHT_ThamSoHeThong()).GetGiaTriByMaThamSo("DieuKienDiemDuThi")); DataRow[] arrDr, arrDrTPBatBuoc; KQHT_DiemThanhPhanInfo pKQHT_DiemThanhPhanInfo = new KQHT_DiemThanhPhanInfo(); pKQHT_DiemThanhPhanInfo.IDDM_MonHoc = int.Parse(drMonHoc["DM_MonHocID"].ToString()); pKQHT_DiemThanhPhanInfo.IDXL_MonHocTrongKy = int.Parse(drMonHoc["XL_MonHocTrongKyID"].ToString()); pKQHT_DiemThanhPhanInfo.IDDM_NamHoc = IDDM_NamHoc; pKQHT_DiemThanhPhanInfo.HocKy = HocKy; pKQHT_DiemThanhPhanInfo.IDKQHT_ThanhPhanDiem = IDKQHT_ThanhPhanDiem; pKQHT_DiemThanhPhanInfo.IDHT_User = NS_GiaoVienID; pKQHT_DiemThanhPhanInfo.DiemThu = LanThi; pKQHT_DiemThanhPhanInfo.DiemLan = LanThi; cDKQHT_DanhSachKhongThi oDKQHT_DanhSachKhongThi = new cDKQHT_DanhSachKhongThi(); KQHT_DanhSachKhongThiInfo pKQHT_DanhSachKhongThiInfo = new KQHT_DanhSachKhongThiInfo(); pKQHT_DanhSachKhongThiInfo.IDDM_MonHoc = pKQHT_DiemThanhPhanInfo.IDDM_MonHoc; pKQHT_DanhSachKhongThiInfo.IDDM_NamHoc = IDDM_NamHoc; pKQHT_DanhSachKhongThiInfo.HocKy = HocKy; pKQHT_DanhSachKhongThiInfo.LanThi = LanThi; foreach (DataRow dr in dtSV.Rows) { LyDo = ""; // Kiểm tra số tiết nghỉ SoTietNghi = int.Parse("0" + dr["KhongLyDo"]); if (TinhCaTietNghiCoPhep != "0") { SoTietNghi += int.Parse("0" + dr["CoLyDo"]); } if (SoTietNghi > SoTietNghiChoPhep * int.Parse("0" + drMonHoc["SoTiet"])) { LyDo = "Nghỉ quá số tiết quy định;"; } // Kiểm tra số thành phần điểm arrDr = dtDiem.Select("IDSV_SinhVien = " + dr["SV_SinhVienID"]); if (arrDr.Length > 0) { foreach (DataRow dr1 in arrDr) { arrDrTPBatBuoc = dtTPBatBuoc.Select("SoHocTrinh = " + drMonHoc["SoHocTrinh"] + " And IDKQHT_ThanhPhanDiem = " + dr1["IDKQHT_ThanhPhanDiem"]); if (arrDrTPBatBuoc.Length > 0) { if (int.Parse("0" + dr1["SoDiem"]) < int.Parse("0" + arrDrTPBatBuoc[0]["SoDiemBatBuoc"])) { dr1["SoDiem"] = arrDrTPBatBuoc[0]["SoDiemBatBuoc"]; LyDo += "Số thành phần của " + dr1["KyHieu"] + " ít hơn quy định;"; } } } // Được phép tổng hợp điểm hệ số pKQHT_DiemThanhPhanInfo.IDSV_SinhVien = int.Parse(dr["SV_SinhVienID"].ToString()); pKQHT_DiemThanhPhanInfo.Diem = TestCongThuc(arrDr, CongThucDiem); if (!(double.IsInfinity(pKQHT_DiemThanhPhanInfo.Diem) || double.IsNaN(pKQHT_DiemThanhPhanInfo.Diem) || double.IsNegativeInfinity(pKQHT_DiemThanhPhanInfo.Diem))) { dr[IDKQHT_ThanhPhanDiem.ToString() + "_" + LanThi.ToString()] = pKQHT_DiemThanhPhanInfo.Diem; oDKQHT_DiemThanhPhan.Add(pKQHT_DiemThanhPhanInfo); pKQHT_DiemThanhPhanInfo.Diem = 0; } if (pKQHT_DiemThanhPhanInfo.Diem < DiemThapNhat) { LyDo += "Điểm TBHS < " + DiemThapNhat.ToString() + ";"; } } else { LyDo = "Chưa có điểm thành phần"; pKQHT_DiemThanhPhanInfo.IDSV_SinhVien = int.Parse(dr["SV_SinhVienID"].ToString()); oDKQHT_DiemThanhPhan.DeleteByInfo(pKQHT_DiemThanhPhanInfo); } if (LyDo != "") { // Đưa SV vào danh sách không được thi pKQHT_DanhSachKhongThiInfo.IDSV_SinhVien = int.Parse(dr["SV_SinhVienID"].ToString()); pKQHT_DanhSachKhongThiInfo.LyDo = LyDo; pKQHT_DanhSachKhongThiInfo.LanThi = LanThi; oDKQHT_DanhSachKhongThi.AddTuDong(pKQHT_DanhSachKhongThiInfo); dr["LyDo"] = LyDo; } else if ("" + dr["LyDo"] != "") { pKQHT_DanhSachKhongThiInfo.IDSV_SinhVien = int.Parse(dr["SV_SinhVienID"].ToString()); pKQHT_DanhSachKhongThiInfo.LanThi = LanThi; oDKQHT_DanhSachKhongThi.DeleteTuDong(pKQHT_DanhSachKhongThiInfo); dr["LyDo"] = ""; } } oDKQHT_DanhSachKhongThi.DeleteDanhSachDuThi(pKQHT_DanhSachKhongThiInfo, pKQHT_DiemThanhPhanInfo.IDXL_MonHocTrongKy); }