Пример #1
0
        /// <summary>
        /// Kiểm tra hợp lệ các cột điểm trên 1 dòng của bảng điểm BangDiemDTO
        /// </summary>
        /// <param name="bd">BangDiemDTO</param>
        /// <returns>Bool</returns>
        public bool KiemTraHopLe_DataRow_Lop_MonHoc_HocKy(BangDiemDTO bd)
        {
            const int diemNull = -1;
            string    msg      = "";

            if (bd.DM_1 == diemNull && bd.DM_2 == diemNull)
            {
                msg = "miệng";
            }
            else if (bd.D15_1 == diemNull && bd.D15_2 == diemNull && bd.D15_3 == diemNull && bd.D15_4 == diemNull)
            {
                msg = "15 phút";
            }
            else if (bd.D1T_1 == diemNull && bd.D1T_2 == diemNull)
            {
                msg = "1 tiết";
            }
            else if (bd.DThi == diemNull)
            {
                msg = "cuối kỳ";
            }
            if (!msg.Equals(""))
            {
                msg = "Bạn chưa nhập cột điểm " + msg + " cho học sinh "
                      + bd.HocSinh.TenHocSinh + " (" + bd.HocSinh.MaHocSinh + ").";
            }
            if (msg != "")
            {
                ExceptionUtil.Throw(msg);
                return(false);
            }
            return(true);
        }
Пример #2
0
        /// <summary>
        /// Tính điểm trung bình môn trên 1 dòng bảng điểm
        /// </summary>
        /// <param name="bd">BangDiemDTO (Quy định: VỚi điểm == -1 xem như chưa nhập</param>
        /// <returns>double: Điểm trung bình</returns>
        public double TinhDTB_DataRow_Lop_MonHoc_HocKy(BangDiemDTO bd)
        {
            int    soCotM = 0, soCot15 = 0, soCot1T = 0;
            double tongM = 0, tong15 = 0, tong1T = 0;

            // Đếm cột miệng nhập
            if (bd.DM_1 >= 0)
            {
                tongM += bd.DM_1;
                soCotM++;
            }
            if (bd.DM_2 >= 0)
            {
                tongM += bd.DM_2;
                soCotM++;
            }
            // Đếm cột 15' nhập
            if (bd.D15_1 >= 0)
            {
                tong15 += bd.D15_1;
                soCot15++;
            }
            if (bd.D15_2 >= 0)
            {
                tong15 += bd.D15_2;
                soCot15++;
            }
            if (bd.D15_3 >= 0)
            {
                tong15 += bd.D15_3;
                soCot15++;
            }
            if (bd.D15_4 >= 0)
            {
                tong15 += bd.D15_4;
                soCot15++;
            }
            // Đếm số cột 1T
            if (bd.D1T_1 >= 0)
            {
                tong1T += bd.D1T_1;
                soCot1T++;
            }
            if (bd.D1T_2 >= 0)
            {
                tong1T += bd.D1T_2;
                soCot1T++;
            }
            double tongDiem = (tong15 / soCot15) * 1   // 15' hệ số 1
                              + (tongM / soCotM) * 1   // M   hệ số 1
                              + (tong1T / soCot1T) * 2 // 1T  hệ số 2
                              + bd.DThi * 3;

            return(ObjectUtil.LamTron(tongDiem / 7));
        }
Пример #3
0
        /// <summary>
        /// Xóa bảng điểm 1 môn học / 1 học sinh / 1 học kỳ / 1 lớp / 1 năm học
        /// </summary>
        /// <param name="bd">BangDiemDTO</param>
        /// <returns>bool</returns>
        public bool XoaBangDiem_MonHoc_HocSinh_HocKy(BangDiemDTO bd)
        {
            string sql = string.Format("UPDATE BANGDIEM SET DM_1 = NULL, DM_2 =  NULL, D15_1 = NULL, D15_2 =  NULL, "
                                       +
                                       "D15_3 = NULL, D15_4 = NULL, D1T_1 =  NULL, D1T_2 =  NULL, DThi =  NULL, DTB =  NULL "
                                       + "WHERE MaHocSinh = '{0}' "
                                       + "AND MaLop = '{1}' AND MaHocKy = {2} AND MaMonHoc = '{3}'",
                                       bd.HocSinh.MaHocSinh, bd.LopDTO.MaLop, bd.MaHocKy, bd.MonHoc.MaMonHoc);

            return(ExecuteQuery(sql) > 0);
        }
Пример #4
0
        public List <BangDiemDTO> Search(string searchValue)
        {
            List <BangDiemDTO> list = new List <BangDiemDTO>();
            DataTable          data = DataProvider.Instance.ExecuteQuery("SP_BangDiem_Search @searchValue", new object[] { searchValue });

            foreach (DataRow item in data.Rows)
            {
                BangDiemDTO entry = new BangDiemDTO(item);
                list.Add(entry);
            }
            return(list);
        }
Пример #5
0
        public List <BangDiemDTO> GetByIdMonHoc(int idMonHoc)
        {
            List <BangDiemDTO> list = new List <BangDiemDTO>();
            DataTable          data = DataProvider.Instance.ExecuteQuery("SP_BangDiem_GetByIdMonHoc @idMonHoc", new object[] { idMonHoc });

            foreach (DataRow item in data.Rows)
            {
                BangDiemDTO entry = new BangDiemDTO(item);
                list.Add(entry);
            }
            return(list);
        }
Пример #6
0
        public List <BangDiemDTO> GetAll()
        {
            List <BangDiemDTO> list = new List <BangDiemDTO>();
            DataTable          data = DataProvider.Instance.ExecuteQuery("SP_BangDiem_GetAll");

            foreach (DataRow item in data.Rows)
            {
                BangDiemDTO entry = new BangDiemDTO(item);
                list.Add(entry);
            }
            return(list);
        }
        private void advBandedGridView1_ValidateRow(object sender, ValidateRowEventArgs e)
        {
            DataRow dr       = advBandedGridView1.GetDataRow(e.RowHandle);
            var     bangDiem = new BangDiemDTO
            {
                HocSinh =
                {
                    MaHocSinh  = dr["MaHocSinh"].ToString(),
                    TenHocSinh = dr["TenHocSinh"].ToString()
                },
                MaHocKy = Convert.ToInt32(CboUtil.GetValueItem(comboBoxEditHocKy)),
                MonHoc  = { MaMonHoc = CboUtil.GetValueItem(comboBoxEditMonHoc) },
                LopDTO  = { MaLop = treeListLopHoc.FocusedNode.GetValue("MaKhoi").ToString() },
                DM_1    = dr["DM_1"] is DBNull ? -1 : Convert.ToDouble(dr["DM_1"]),
                DM_2    = dr["DM_2"] is DBNull ? -1 : Convert.ToDouble(dr["DM_2"]),
                D15_1   = dr["D15_1"] is DBNull ? -1 : Convert.ToDouble(dr["D15_1"]),
                D15_2   = dr["D15_2"] is DBNull ? -1 : Convert.ToDouble(dr["D15_2"]),
                D15_3   = dr["D15_3"] is DBNull ? -1 : Convert.ToDouble(dr["D15_3"]),
                D15_4   = dr["D15_4"] is DBNull ? -1 : Convert.ToDouble(dr["D15_4"]),
                D1T_1   = dr["D1T_1"] is DBNull ? -1 : Convert.ToDouble(dr["D1T_1"]),
                D1T_2   = dr["D1T_2"] is DBNull ? -1 : Convert.ToDouble(dr["D1T_2"]),
                DThi    = dr["DThi"] is DBNull ? -1 : Convert.ToDouble(dr["DThi"]),
                DTB     = dr["DTB"] is DBNull ? -1 : Convert.ToDouble(dr["DTB"])
            };


            try
            {
                // Kiểm tra điểm hợp lệ trên 1 dòng
                _bangDiemBUS.KiemTraHopLe_DataRow_Lop_MonHoc_HocKy(bangDiem);
                // Tính điểm trung bình
                double dTbBangdiem = _bangDiemBUS.TinhDTB_DataRow_Lop_MonHoc_HocKy(bangDiem);
                bangDiem.DTB = dTbBangdiem;
                // Gán và hiển thị cột DTB
                advBandedGridView1.SetRowCellValue(e.RowHandle, "DTB", dTbBangdiem);
                // Lưu vào CSDL
                _bangDiemBUS.LuuBangDiem_HocSinh_MonHoc_HocKy(bangDiem);
            }
            catch (Exception ex)
            {
                if (MsgboxUtil.YesNo(ex.Message
                                     + "\nBạn có muốn bỏ dòng này và nhập lại lần sau hay không?") ==
                    DialogResult.No)
                {
                    e.Valid = false;
                }
                else
                {
                    _bangDiemBUS.XoaBangDiem_HocSinh_MonHoc_HocKy(bangDiem);
                    HienThi_Lai_BangDiem();
                }
            }
        }
Пример #8
0
        /// <summary>
        /// Lưu bảng điểm 1 môn học / 1 học sinh / 1 học kỳ / 1 lớp / 1 năm học
        /// </summary>
        /// <param name="bd">BangDiemDTO</param>
        /// <returns>Bool</returns>
        public bool LuuBangDiem_MonHoc_HocSinh_HocKy(BangDiemDTO bd)
        {
            const int diemNull = -1;
            string    sql      = string.Format("UPDATE BANGDIEM SET DM_1 = {1}, DM_2 = {2}, D15_1 = {3}, D15_2 = {4}, "
                                               + "D15_3 = {5}, D15_4 = {6}, D1T_1 = {7}, D1T_2 = {8}, DThi = {9}, DTB = {10} "
                                               + "WHERE MaHocSinh = '{0}' AND MaHocKy = '{11}' AND MaLop = '{12}'",
                                               bd.HocSinh.MaHocSinh,
                                               (bd.DM_1 == diemNull) ? "NULL" : bd.DM_1.ToString(),
                                               (bd.DM_2 == diemNull) ? "NULL" : bd.DM_2.ToString(),
                                               (bd.D15_1 == diemNull) ? "NULL" : bd.D15_1.ToString(),
                                               (bd.D15_2 == diemNull) ? "NULL" : bd.D15_2.ToString(),
                                               (bd.D15_3 == diemNull) ? "NULL" : bd.D15_3.ToString(),
                                               (bd.D15_4 == diemNull) ? "NULL" : bd.D15_4.ToString(),
                                               (bd.D1T_1 == diemNull) ? "NULL" : bd.D1T_1.ToString(),
                                               (bd.D1T_2 == diemNull) ? "NULL" : bd.D1T_2.ToString(),
                                               (bd.DThi == diemNull) ? "NULL" : bd.DThi.ToString(),
                                               (bd.DTB == diemNull) ? "NULL" : bd.DTB.ToString(),
                                               bd.MaHocKy, bd.LopDTO.MaLop);

            return(ExecuteQuery(sql) > 0);
        }
Пример #9
0
 /// <summary>
 /// Xóa bảng điểm 1 môn học / 1 học sinh / 1 học kỳ / 1 lớp / 1 năm học
 /// </summary>
 /// <param name="bd">BangDiemDTO</param>
 /// <returns>bool</returns>
 public bool XoaBangDiem_HocSinh_MonHoc_HocKy(BangDiemDTO bd)
 {
     return(_bangDiemDAL.XoaBangDiem_MonHoc_HocSinh_HocKy(bd));
 }