Ejemplo n.º 1
0
        /// <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);
        }