/// <summary> /// Lấy bảng tổng kết môn học theo học kỳ của lớp /// </summary> /// <param name="maKhoi"></param> /// <param name="maHocKy">String: Mã học kỳ</param> /// <param name="maMonHoc">String: Mã môn học</param> /// <param name="maNamHoc">String: Mã năm học</param> /// <returns>List TongKetMonDTO</returns> public List <TongKetMonDTO> LayList_BangTongKet_MonHoc_Khoi_HocKy(string maMonHoc, string maKhoi, string maHocKy, string maNamHoc) { // Lấy tất cả các lớp trong khối IEnumerable <LopDTO> dsLop = _lopDAL.LayListLop_MaNam_MaKhoi(maNamHoc, maKhoi); var bangDiemTongKetMon = new List <TongKetMonDTO>(); int stt = 1; foreach (LopDTO lop in dsLop) { // Kiểm tra đã nhập điểm đủ cho lớp này hay chưa int siSo = _phanLopDAL.Dem_SiSo_Lop(lop.MaLop); DataTable bdiemLop = _bangDiemDAL.LayBangDiem_MonHoc_Lop(lop.MaLop, maMonHoc, maHocKy); // Tính toán số lượng đạt và tỉ lệ double diemDat = _quyDinhBUS.LayDiemChuan_DatMon(); int soLuongDat = 0; // Chưa nhập đủ điểm if (bdiemLop.Rows.Count == siSo) { foreach (DataRow dr in bdiemLop.Rows) { if (Convert.ToDouble(dr["DTB"]) >= diemDat) { soLuongDat++; } } } // tạo bảng báo cáo tổng kết môn bangDiemTongKetMon.Add(new TongKetMonDTO { STT = stt++, TenGiaoVien = lop.GiaoVien.TenGiaoVien, TenLop = lop.TenLop, SiSo = siSo, SoLuongDat = (siSo > 0 && bdiemLop.Rows.Count == siSo) ? soLuongDat.ToString() : "__", TyLe = (siSo > 0 && bdiemLop.Rows.Count == siSo) ? ((soLuongDat * 100) / siSo).ToString() : "__" }); } return(bangDiemTongKetMon); }
/// <summary> /// Đếm sỉ số của 1 lớp /// </summary> /// <param name="maLop">String: Mã lớp</param> /// <returns>Int</returns> public int Dem_SiSo_Lop(string maLop) { return(_phanLopDAL.Dem_SiSo_Lop(maLop)); }