Пример #1
0
        /// <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);
        }
Пример #2
0
 /// <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));
 }