public bool ChuyenLop_HocSinh_Lop(Dictionary <string, string> dsHocSinhChon, ChuyenLopDTO thongTinCL)
        {
            IList <bool> listSuccess = new List <bool>();

            foreach (var item in dsHocSinhChon)
            {
                if (thongTinCL.GiuLaiBangDiem)
                {
                    _bangDiemBUS.CapNhat_BangDiem_HocSinh_LopMoi(item.Key, thongTinCL.TuLop, thongTinCL.DenLop);
                }
                else
                {
                    _bangDiemBUS.XoaBangDiem_HocSinh_Lop(item.Key, thongTinCL.TuLop);
                }

                if (!_phanLopBUS.KiemTraTonTai_HocSinh_TrongLop(item.Key, thongTinCL.DenLop))
                {
                    _phanLopBUS.ThayDoi_LopMoi_HocSinh(item.Key, thongTinCL.TuLop, thongTinCL.DenLop);
                }
                listSuccess.Add(_chuyenLopDAL.Luu_ThongTin_ChuyenLop(item.Key, thongTinCL));
            }
            foreach (bool item in listSuccess)
            {
                if (!item)
                {
                    return(false);
                }
            }
            return(true);
        }
예제 #2
0
        public bool Luu_ThongTin_ChuyenLop(string maHocSinh, ChuyenLopDTO cl)
        {
            string sql = "set dateformat dmy\n";

            sql +=
                string.Format(
                    "INSERT INTO CHUYENLOP (TuLop, DenLop , NgayChuyen, LyDoChuyen, ChuyenBangDiem, MaHocSinh) "
                    + "VALUES ('{0}','{1}','{2}',N'{3}','{4}','{5}')",
                    cl.TuLop, cl.DenLop, cl.NgayChuyen.ToString("dd-MM-yyy HH:mm:ss"), cl.LyDoChuyen, cl.GiuLaiBangDiem,
                    maHocSinh);
            return(ExecuteQuery(sql) > 0);
        }
        private void simpleButtonChuyenLop_Click(object sender, EventArgs e)
        {
            if (!_KiemTra_LopMoi_DaChon())
            {
                return;
            }

            var dsHocSinhChon = new Dictionary <string, string>();

            for (int i = 0; i < gridViewDSHocSinh.RowCount; i++)
            {
                if (Convert.ToBoolean(gridViewDSHocSinh.GetRowCellValue(i, "Check")))
                {
                    dsHocSinhChon.Add(gridViewDSHocSinh.GetRowCellValue(i, "MaHocSinh").ToString(),
                                      gridViewDSHocSinh.GetRowCellValue(i, "TenHocSinh").ToString());
                }
            }
            if (dsHocSinhChon.Count == 0)
            {
                MsgboxUtil.Error("Bạn chưa chọn học sinh để chuyển!");
                return;
            }

            int siSoToiDa = _quyDinhBUS.LaySiSo_CanTren();


            // Chuyển cùng khối, chuyển và xóa hồ sơ cũ
            int siSoLopMoi;

            if (radioButtonChuyenLopCungKhoi.Checked)
            {
                string maLop     = CboUtil.GetValueItem(comboBoxEditLop),
                       tenLop    = CboUtil.GetDisplayItem(comboBoxEditLop),
                       maLopMoi  = CboUtil.GetValueItem(comboBoxEditLopMoi),
                       tenLopMoi = CboUtil.GetDisplayItem(comboBoxEditLopMoi);

                siSoLopMoi = _phanLopBUS.Dem_SiSo_Lop(maLopMoi);
                if (siSoLopMoi >= siSoToiDa)
                {
                    MsgboxUtil.Error("Không thể thực hiện vì lớp " +
                                     tenLopMoi + " (" + siSoLopMoi + " hs) đã đủ sỉ số học sinh quy định (" + siSoToiDa +
                                     " hs/Lớp)!");
                    return;
                }

                var chuyenLopDTO = new ChuyenLopDTO();
                chuyenLopDTO.TuLop          = maLop;
                chuyenLopDTO.DenLop         = maLopMoi;
                chuyenLopDTO.NgayChuyen     = DateTime.Now;
                chuyenLopDTO.LyDoChuyen     = textEditLyDoChuyen.Text.Replace("'", "''");
                chuyenLopDTO.GiuLaiBangDiem = checkEditChuyenBangDiem.Checked;


                if (_chuyenLopBUS.ChuyenLop_HocSinh_Lop(dsHocSinhChon, chuyenLopDTO))
                {
                    MsgboxUtil.Success("Đã chuyển toàn bộ hồ sơ học sinh từ lớp "
                                       + tenLop + " sang lớp " + tenLopMoi + " thành công!");
                }
                else
                {
                    MsgboxUtil.Info("Có lỗi trong quá trình chuyển!");
                }
            }
            else // phân lớp
            {
                string maLopMoi     = CboUtil.GetValueItem(comboBoxEditLopMoi),
                       tenLopMoi    = CboUtil.GetDisplayItem(comboBoxEditLopMoi),
                       tenNamHocMoi = CboUtil.GetDisplayItem(comboBoxEditNamHocMoi),
                       tenKhoiMoi   = CboUtil.GetDisplayItem(comboBoxEditKhoiMoi);


                siSoLopMoi = _phanLopBUS.Dem_SiSo_Lop(maLopMoi);
                int siSoDSChuyen = dsHocSinhChon.Count;
                if ((siSoDSChuyen + siSoLopMoi) >= siSoToiDa)
                {
                    MsgboxUtil.Error("Không thể thực hiện vì sau khi chuyển học sinh đến lớp " +
                                     tenLopMoi + " (" + siSoLopMoi + " hs) sẽ vượt quá quy định (" + siSoToiDa + ")!");
                    return;
                }

                if (MsgboxUtil.YesNo(
                        "Lưu ý: Các học sinh đã chọn nếu đã được phân lớp vào " + tenKhoiMoi
                        + " trong năm học " + tenNamHocMoi
                        + " sẽ được giữ nguyên hồ sơ.\nChương trình chỉ chuyển những học sinh chưa được phân lớp vào " +
                        tenKhoiMoi + " năm này."
                        + "\n\nBạn có muốn chuyển các học sinh đã chọn"
                        + " sang lớp: " + tenLopMoi + " năm học: " + tenNamHocMoi + " hay không?") == DialogResult.No)
                {
                    return;
                }
                List <PhanLopDTO> dsHsTonTai;
                if (_phanLopBUS.PhanLop_DSHocSinh_Lop(dsHocSinhChon, maLopMoi, out dsHsTonTai) &&
                    dsHsTonTai.Count == 0)
                {
                    MsgboxUtil.Success("Đã phân lớp danh sách học sinh đến lớp mới: " + tenLopMoi + ".");
                }
                else
                {
                    string dsHocsinhTonTai = "";
                    foreach (PhanLopDTO item in dsHsTonTai)
                    {
                        dsHocsinhTonTai = "\n" + item.STT + ". "
                                          + item.TenHocSinh + " (" + item.MaHocSinh + ") lớp: " + item.TenLop
                                          + dsHocsinhTonTai;
                    }
                    MsgboxUtil.Info("Các học sinh sau đã tồn tại trong năm " + tenNamHocMoi + ":"
                                    + dsHocsinhTonTai);
                }
            }
            // Cập nhật lại danh sách lớp mới
            comboBoxEditLopMoi_SelectedIndexChanged(sender, e);
            _LoadGridcontrolDSHocSinh();
            _LoadGridcontrolDSHocSinhMoi();
            // Cập nhật lại danh sách lớp cũ
            if (radioButtonPhanLopHoSo_ChuaPhanLop.Checked || radioButtonChuyenLopCungKhoi.Checked)
            {
                _LoadGridcontrolDSHocSinh();
            }

            _HienThi_Button();
        }