/// <summary> /// Lấy bảng điểm tổng kết học kỳ theo lớp /// </summary> /// <param name="maLop">String: mã lớp</param> /// <param name="maHocKy">String: Mã học kỳ</param> /// <returns>List BangDiemHocKyDTO</returns> public List <BangDiemHocKyDTO> LayList_BangDiem_Lop_HocKy(string maLop, string maHocKy) { var bangDiemHocKy = new List <BangDiemHocKyDTO>(); // Lấy ds học sinh của lớp List <HocSinhDTO> dsHocsinh = _hocSinhDAL.LayList_HocSinh_LopHoc(maLop); MonHoc_HeSoDTO dsHeSoMonHoc = _monHocDAL.LayDTO_HeSoMonHoc(); foreach (HocSinhDTO hocsinh in dsHocsinh) { var bangDiemCaNhan = new BangDiemHocKyDTO { STT = hocsinh.STT, MaHocSinh = hocsinh.MaHocSinh, TenHocSinh = hocsinh.TenHocSinh }; // Tinh điểm tb DataTable tbBangDiem = _bangDiemDAL.LayBangDiem_HocKy_HocSinh(maLop, hocsinh.MaHocSinh, maHocKy); int soMonHoc = tbBangDiem.Rows.Count; int soMonDuDiem = 0; double tongDiem = 0; double tongHeSo = 0; double heso = 0; foreach (DataRow dr in tbBangDiem.Rows) { object dtb; if (dr["DTB"] is DBNull) { dtb = "_"; } else { dtb = dr["DTB"]; } switch (Convert.ToString(dr["MaMonHoc"])) { case "toan": bangDiemCaNhan.Dtoan = dtb; heso = dsHeSoMonHoc.toan; break; case "ly": bangDiemCaNhan.Dly = dtb; heso = dsHeSoMonHoc.ly; break; case "hoa": bangDiemCaNhan.Dhoa = dtb; heso = dsHeSoMonHoc.hoa; break; case "sinh": bangDiemCaNhan.Dsinh = dtb; heso = dsHeSoMonHoc.sinh; break; case "ngvan": bangDiemCaNhan.Dngvan = dtb; heso = dsHeSoMonHoc.nngu; break; case "su": bangDiemCaNhan.Dsu = dtb; heso = dsHeSoMonHoc.su; break; case "dia": bangDiemCaNhan.Ddia = dtb; heso = dsHeSoMonHoc.dia; break; case "nngu": bangDiemCaNhan.Dnngu = dtb; heso = dsHeSoMonHoc.nngu; break; case "tin": bangDiemCaNhan.Dtin = dtb; heso = dsHeSoMonHoc.tin; break; case "tduc": bangDiemCaNhan.Dtduc = dtb; heso = dsHeSoMonHoc.tduc; break; case "gdcd": bangDiemCaNhan.Dgdcd = dtb; heso = dsHeSoMonHoc.gdcd; break; case "qphong": bangDiemCaNhan.Dqphong = dtb; heso = dsHeSoMonHoc.qphong; break; case "cnghe": bangDiemCaNhan.Dcnghe = dtb; heso = dsHeSoMonHoc.cnghe; break; } if (!Convert.ToString(dtb).Equals("_")) { tongDiem += heso * Convert.ToDouble(dtb); tongHeSo += heso; soMonDuDiem++; } } if (soMonDuDiem == soMonHoc) { bangDiemCaNhan.DTB = ObjectUtil.LamTron(tongDiem / tongHeSo, 2); } else { bangDiemCaNhan.DTB = "_"; } bangDiemHocKy.Add(bangDiemCaNhan); } return(bangDiemHocKy); }