示例#1
0
        void LoadBangDiemLenListView()
        {
            lvBDMH.Items.Clear();

            //lay ra toan bo bang diem chi tiet de up len listview
            BangDiemMonBLL bdbll = new BangDiemMonBLL();
            string         malop = cbDSLop.Text;

            string[] listma = malop.Split('(');
            malop = listma[0];
            List <BangDiemDayDu> Listbdm = bdbll.GetListBangDiemMonDayDu(malop, cbDSHocKy.Text, cbDSNH.Text, cbDanhSachMonHoc.Text);


            int STT         = 1;
            int indexDiemTB = listhtkt.Count + 3;

            foreach (BangDiemDayDu bdm in Listbdm)
            {
                int indexHTKT = 2;
                for (int i = 0; i < listhtkt.Count; i++)
                {
                    if (listhtkt[i].MaHTKT == bdm.HinhThucKT)
                    {
                        indexHTKT = i + 3;
                    }
                }

                bool kiemTraTonTai = false;
                // ListViewItemCollection listlvi = lvBDMH.Items;
                if (lvBDMH.Items.Count > 0)
                {
                    foreach (ListViewItem lvis in lvBDMH.Items)
                    {
                        //MessageBox.Show(lvis.SubItems[0].Text.ToString());
                        // neu ma hs giong nhau tuc la day la diem cua thang do
                        if (lvis.SubItems[1].Text == bdm.maHS)
                        {
                            kiemTraTonTai = true;
                            // MessageBox.Show(bdm.maHS + "da ton tai");
                            // lvi.SubItems.Add ( new ListViewItem.ListViewSubItem(lvi, bdm.DiemHTKT+""));
                            lvis.SubItems[indexHTKT].Text = bdm.DiemHTKT + "";
                            break;
                        }
                    }
                }


                //neu khong co ma nao da nam trong ds
                //thi day la lan dau tien co ten hs nay
                if (!kiemTraTonTai)
                {
                    //  MessageBox.Show(bdm.maHS + "chua ton tai");
                    ListViewItem lvi = new ListViewItem(STT + "");
                    lvi.SubItems.Add(bdm.maHS);
                    lvi.SubItems.Add(bdm.tenHS);


                    lvi.SubItems.Add("-");
                    lvi.SubItems.Add("-");
                    lvi.SubItems.Add("-");
                    lvi.SubItems.Add("-");
                    lvi.SubItems.Add("-");

                    lvi.SubItems[indexHTKT].Text = bdm.DiemHTKT + "";

                    //no luon co diem trung binh nen cu them vao
                    lvi.SubItems[indexDiemTB].Text = bdm.DiemTB + "";
                    lvBDMH.Items.Add(lvi);
                    STT++;
                    //    MessageBox.Show(lvi.SubItems[1].ToString());
                }
            }
        }
        private void btnLuu_Click(object sender, EventArgs e)
        {
            if (lvDSHS.SelectedItems.Count > 0)
            {
                #region KiemTraRangBuocTuNhien

                if (string.IsNullOrEmpty(tbDiem.Text))
                {
                    MessageBox.Show("Bạn phải điền điểm vào ô điểm!", "Cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                try
                {
                    float             diem       = float.Parse(tbDiem.Text);
                    ThayDoiQuyDinhBLL quydinhbll = new ThayDoiQuyDinhBLL();
                    List <ThamSo>     dsThamSo   = quydinhbll.GetListThamSo();

                    float diemToiThieu = 0, diemToiDa = 10;
                    foreach (ThamSo ts in dsThamSo)
                    {
                        if (ts.MaThamSo == "DiemToiThieu")
                        {
                            diemToiThieu = ts.GiaTri;
                        }
                        if (ts.MaThamSo == "DiemToiDa")
                        {
                            diemToiDa = ts.GiaTri;
                        }
                    }

                    if (diem < diemToiThieu || diem > diemToiDa)
                    {
                        MessageBox.Show("Điểm phải lớn hơn " + diemToiThieu + " và nhỏ hơn " + diemToiDa, "Cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }
                }
                catch
                {
                    MessageBox.Show("Điểm phải là dạng số!", "Cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                #endregion

                QuaTrinhHocTapBLL qthocbll = new QuaTrinhHocTapBLL();
                QuaTrinhHocTap    qthoctap = qthocbll.GetQuaTrinhHocTapCo(tbMaHS.Text, cbDSHocKy.Text, cbDSNH.Text);

                BangDiemMonBLL bdbll = new BangDiemMonBLL();
                BangDiemMon    bdm   = bdbll.GetBangDiemMon(qthoctap.MaQTH, cbDanhSachMonHoc.Text);

                if (bdm == null)
                {
                    //neu chua ton tai bd thi them bd vao

                    string mabdm = bdbll.GetMaBDMMax();
                    mabdm = (Int32.Parse(mabdm) + 1).ToString();
                    // MessageBox.Show(mabdm + "");
                    bdbll.ThemBDM(mabdm, qthoctap.MaQTH, cbDanhSachMonHoc.Text);
                    bdm = bdbll.GetBangDiemMon(qthoctap.MaQTH, cbDanhSachMonHoc.Text);
                }

                //lay ra ma ma bang diem dang can nhap
                string mabd = bdm.MaBangDiemMon;
                //lay ra chi tiet bang diem mon, neu chua co thi insert| nhieu khi da them diem truoc do nen da co
                CTBangDiemMonBLL   ctbdbll = new CTBangDiemMonBLL();
                ChiTietBangDiemMon ctbdm   = ctbdbll.GetCTBangDiemMon(mabd, cbDSHTKT.Text);

                ErrorType result;
                if (ctbdm == null)
                {
                    #region Nếu chưa tồn tại bảng điểm chi tiết tức là đang insert
                    //tao ma chi tiet bang diem mon moi de insert
                    string mactbd = ctbdbll.GetMaCTBDMMax();
                    mactbd = (Int32.Parse(mactbd) + 1).ToString();
                    // MessageBox.Show(mactbd);
                    result = ctbdbll.ThemCTBDM(mactbd, mabd, cbDSHTKT.Text, tbDiem.Text);

                    #endregion
                }
                else
                {
                    #region Đã tồn tại tức là mình đang update.
                    result = ctbdbll.SuaCTBDM(ctbdm.MaCTBangDiemMon, mabd, cbDSHTKT.Text, tbDiem.Text);
                    //  MessageBox.Show("sua bang diem");
                    #endregion
                }

                if (result == ErrorType.THANH_CONG)
                {
                    MessageBox.Show("Thành công !", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    tbDiem.Text = "";
                }
                else
                {
                    MessageBox.Show("Không thể thêm", "Lỗi kết nối", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                MessageBox.Show("Bạn phải chọn 1 học sinh để vào điểm", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }