public bool ThemTKB(sp_DeNghiTheoPhongTrongTuanResult t) { try { TKBDangXep.Add(new QuanLyDaoTao.DataAccess.ThoiKhoaBieu() { BuoiHoc = t.BuoiHoc, MaPC = t.MaPC, MaPhong = maPhong, CoDay = false, DaThanhToan = false, BuoiHoc1 = BuoiHocBUS.LayThongTin(t.BuoiHoc) }); Paint(t.MaPC, t.BuoiHoc, (int)thu, t.TietBatDau, t.SoTiet, t.TenMH, t.TenGV, t.MaLop, 1, t.MaGV, t.MaMH); return(true); } catch (Exception ex) { throw ex; } }
private void frmNhapTKB_Load(object sender, EventArgs e) { try { groupControl1.Text = "Các đề nghị giảng dạy ngày: " + ngayDauTuan.AddDays((int)thu).ToString("dd/MM/yyyy"); //load cac de nghi cho mot ngay source = ThoiKhoaBieuBUS.ThongTinXepTKB(maPhong, ngayDauTuan).Where(i => i.Ngay == ngayDauTuan.AddDays((int)thu)).ToList <sp_DeNghiTheoPhongTrongTuanResult>(); foreach (var x in TKBDangXep) //loại bỏ các đề nghị đang được xếp thời khóa biểu (chưa lưu vào CSDL) { for (int i = source.Count - 1; i >= 0; i--) //loại bỏ những đề nghị trùng buổi với cái đã xếp { if (source[i].BuoiHoc == x.BuoiHoc) { source.Remove(source[i]); } } } foreach (var x in TKBs)//loại bỏ các đề nghị trùng với thời khóa biểu đã được xếp rồi (đã lưu trong CSDL) { BuoiHoc buoi = BuoiHocBUS.LayThongTin(x.BuoiHoc); if (source.Any(i => i.MaLop == LopBUS.LayMaLop(x.MaPC) && i.TietBatDau == buoi.TietBatDau && i.SoTiet == buoi.SoTiet)) { source.Remove(source.Single(i => i.MaLop == LopBUS.LayMaLop(x.MaPC) && i.TietBatDau == buoi.TietBatDau && i.SoTiet == buoi.SoTiet)); } } //loại bỏ các đề nghị mà mã lớp của đề nghị đó đã được xếp vào học buổi đang chọn rồi //để tránh trường hợp 1 lớp học 2 môn cùng 1 buổi for (int i = source.Count - 1; i >= 0; i--) { if (ThoiKhoaBieuBUS.KiemTraLopNayDaHocBuoiNayChua(source[i].MaPC, source[i].BuoiHoc)) { source.Remove(source[i]); } } //loại bỏ các trường hợp trùng 1 số tiết với thời khóa biểu đã xếp for (int i = source.Count - 1; i >= 0; i--) { int tietKT = source[i].TietBatDau + source[i].SoTiet - 1; DateTime ngayDangXet = ngayDauTuan.AddDays((int)thu); foreach (var tkb in TKBs) { BuoiHoc b = BuoiHocBUS.LayThongTin(tkb.BuoiHoc); if (b.Ngay == ngayDangXet) { int tietKTCu = b.TietBatDau + b.SoTiet - 1; if (source[i].TietBatDau == b.TietBatDau) { source.Remove(source[i]); break; } if (source[i].TietBatDau < b.TietBatDau && tietKT >= b.TietBatDau) { source.Remove(source[i]); break; } if (source[i].TietBatDau > b.TietBatDau && tietKT <= tietKTCu) { source.Remove(source[i]); break; } if (source[i].TietBatDau == tietKTCu) { source.Remove(source[i]); break; } } } } //loại bỏ các trường hợp trùng 1 số tiết với thời khóa biểu đang xếp for (int i = source.Count - 1; i >= 0; i--) { int tietKT = source[i].TietBatDau + source[i].SoTiet - 1; DateTime ngayDangXet = ngayDauTuan.AddDays((int)thu); foreach (var tkb in TKBDangXep) { BuoiHoc b = BuoiHocBUS.LayThongTin(tkb.BuoiHoc); if (b.Ngay == ngayDangXet) { int tietKTCu = b.TietBatDau + b.SoTiet - 1; if (source[i].TietBatDau == b.TietBatDau) { source.Remove(source[i]); break; } if (source[i].TietBatDau < b.TietBatDau && tietKT >= b.TietBatDau) { source.Remove(source[i]); break; } if (source[i].TietBatDau > b.TietBatDau && tietKT <= tietKTCu) { source.Remove(source[i]); break; } if (source[i].TietBatDau > b.TietBatDau && source[i].TietBatDau <= tietKTCu && tietKT > tietKTCu) { source.Remove(source[i]); break; } if (source[i].TietBatDau == tietKTCu) { source.Remove(source[i]); break; } } } } gridControl1.DataSource = source; if (source.Count > 0) { selectedRowIndex = gridView1.GetDataSourceRowIndex(0); } } catch (Exception ex) { throw ex; } }