public SchoolEngine(int IDNamHoc, long _IDTuan, cBDM_PhongHoc arrPhongHoc, cBNS_GiaoVien arrGiaoVien, cBDM_Lop arrLop, SuKienTKB arrSuKien, SuKienKhacTKB mSk_lp, SuKienKhacTKB mSk_gv, HT_ThamSoXepLichInfo pThamSoTKB, int[] _arrNhomTiet) { intIDTuan = _IDTuan; sks = arrSuKien; lps = arrLop; gvs = arrGiaoVien; phs = arrPhongHoc; sk_lp = mSk_lp; sk_gv = mSk_gv; objThamSoTKB = pThamSoTKB; arrNhomTiet = _arrNhomTiet; if (arrNhomTiet.Length > 1) { if (arrNhomTiet[0] != arrNhomTiet[1]) { IsTietNhomKhacNhau = true; } } }
private void DocKeHoachLop(DataTable dtThucHanh) { string[] arrStr; sk_lp = new SuKienKhacTKB(); // Đọc các kế hoạch lớp trong kế hoạch toàn trường cBXL_KeHoachTruong oBKeHoachTruong = new cBXL_KeHoachTruong(); DataTable dtKeHoachTruong = oBKeHoachTruong.GetByIDTuan(intIDTuan); int idxLop; if (dtKeHoachTruong.Rows.Count > 0) { foreach (DataRow dr in dtKeHoachTruong.Rows) { idxLop = lps.SearchIndexLop(int.Parse(dr["IDDM_Lop"].ToString())); if (idxLop > -1) { if (("" + dr["NgayNghi"]) == "CaTuan") { for (int Thu = objThamSoTKB.THU_BAT_DAU; Thu <= objThamSoTKB.THU_KET_THUC; Thu++) { for (int i = 0; i < objThamSoTKB.SO_TIET_NGAY; i++) { XL_SuKienKhacLopInfo skk = new XL_SuKienKhacLopInfo(); skk.ID = 0; skk.IDLop = int.Parse(dr["IDDM_Lop"].ToString()); skk.MoTa = dr["TenVietTat"].ToString(); skk.SoTiet = 1; skk.TenLop = dr["TenLop"].ToString(); skk.Thu = Thu; skk.Tiet = i; // Thêm kế hoạch lớp sk_lp.Add(skk); lps[idxLop].TKB[skk.Thu, skk.Tiet] = sk_lp.Count - 1; lps[idxLop].TKB[skk.Thu, skk.Tiet, true] = eLOAI_SK.LK_LOP; } } } else { arrStr = ("" + dr["NgayNghi"]).Split(','); if (arrStr.Length > 0) { foreach (string Thu in arrStr) { for (int i = 0; i < objThamSoTKB.SO_TIET_NGAY; i++) { XL_SuKienKhacLopInfo skk = new XL_SuKienKhacLopInfo(); skk.ID = 0; skk.IDLop = int.Parse(dr["IDDM_Lop"].ToString()); skk.MoTa = dr["TenVietTat"].ToString(); skk.SoTiet = 1; skk.TenLop = dr["TenLop"].ToString(); skk.Thu = int.Parse(Thu); skk.Tiet = i; // Thêm kế hoạch lớp sk_lp.Add(skk); lps[idxLop].TKB[skk.Thu, skk.Tiet] = sk_lp.Count - 1; lps[idxLop].TKB[skk.Thu, skk.Tiet, true] = eLOAI_SK.LK_LOP; } } } } } } } if (dtThucHanh.Rows.Count > 0) { int Thu, TuTiet, DenTiet; foreach (DataRow dr in dtThucHanh.Rows) { idxLop = lps.SearchIndexLop(int.Parse(dr["IDDM_Lop"].ToString())); if (idxLop > -1) { Thu = (int)DateTime.Parse(dr["NgayThucHanh"].ToString()).DayOfWeek; if (dr["CaHoc"].ToString() == "0") { TuTiet = 0; DenTiet = objThamSoTKB.SO_TIET_CASANG - 1; } else if (dr["CaHoc"].ToString() == "1") { TuTiet = objThamSoTKB.SO_TIET_CASANG; DenTiet = objThamSoTKB.SO_TIET_CASANG + objThamSoTKB.SO_TIET_CACHIEU - 1; } else { TuTiet = objThamSoTKB.SO_TIET_CASANG + objThamSoTKB.SO_TIET_CACHIEU; DenTiet = objThamSoTKB.SO_TIET_NGAY - 1; } for (int i = TuTiet; i <= DenTiet; i++) { XL_SuKienKhacLopInfo skk = new XL_SuKienKhacLopInfo(); skk.ID = 0; skk.IDLop = int.Parse(dr["IDDM_Lop"].ToString()); skk.MoTa = GetTenThucHanhLop(dr); skk.SoTiet = 1; skk.TenLop = lps[idxLop].TenLop; skk.Thu = Thu; skk.Tiet = i; // Thêm kế hoạch lớp sk_lp.Add(skk); lps[idxLop].TKB[skk.Thu, skk.Tiet] = sk_lp.Count - 1; lps[idxLop].TKB[skk.Thu, skk.Tiet, true] = eLOAI_SK.LK_LOP; } } } } }
private void DocKeHoachGiaoVien(DataTable dtThucHanh) { sk_gv = new SuKienKhacTKB(); // Đọc kế hoạch báo bận giáo viên cBXL_BaoBanGiaoVien oBBaoBanGV = new cBXL_BaoBanGiaoVien(); DataTable dtBaoBan = oBBaoBanGV.GetByIDTuan(intIDTuan); int idxGV; foreach (DataRow dr in dtBaoBan.Rows) { XL_BaoBanGiaoVienInfo skk = new XL_BaoBanGiaoVienInfo(); skk.XL_BaoBanGiaoVienID = 0; skk.IDTuan = long.Parse(dr["IDTuan"].ToString()); skk.IDNS_GiaoVien = int.Parse(dr["IDNS_GiaoVien"].ToString()); skk.Thu = int.Parse(dr["Thu"].ToString()); skk.Tiet = int.Parse(dr["Tiet"].ToString()); skk.CaHoc = int.Parse(dr["CaHoc"].ToString()); skk.MoTa = dr["MoTa"].ToString(); sk_gv.Add(skk); idxGV = gvs.SearchIndexGV(skk.IDNS_GiaoVien); gvs[idxGV].TKB[skk.Thu, skk.Tiet] = sk_gv.Count - 1; gvs[idxGV].TKB[skk.Thu, skk.Tiet, true] = eLOAI_SK.LK_GV; } if (dtThucHanh.Rows.Count > 0) { int Thu, TuTiet, DenTiet; foreach (DataRow dr in dtThucHanh.Rows) { if (int.Parse("0" + dr["IDNS_GiaoVien"]) > 0) { idxGV = gvs.SearchIndexGV(int.Parse(dr["IDNS_GiaoVien"].ToString())); if (idxGV > -1) { Thu = (int)DateTime.Parse(dr["NgayThucHanh"].ToString()).DayOfWeek; if (dr["CaHoc"].ToString() == "0") { TuTiet = 0; DenTiet = objThamSoTKB.SO_TIET_CASANG - 1; } else if (dr["CaHoc"].ToString() == "1") { TuTiet = objThamSoTKB.SO_TIET_CASANG; DenTiet = objThamSoTKB.SO_TIET_CASANG + objThamSoTKB.SO_TIET_CACHIEU - 1; } else { TuTiet = objThamSoTKB.SO_TIET_CASANG + objThamSoTKB.SO_TIET_CACHIEU; DenTiet = objThamSoTKB.SO_TIET_NGAY - 1; } for (int i = TuTiet; i <= DenTiet; i++) { XL_BaoBanGiaoVienInfo skk = new XL_BaoBanGiaoVienInfo(); skk.XL_BaoBanGiaoVienID = 0; skk.IDTuan = long.Parse(dr["IDXL_Tuan"].ToString()); skk.IDNS_GiaoVien = int.Parse(dr["IDNS_GiaoVien"].ToString()); skk.Thu = Thu; skk.Tiet = i; skk.CaHoc = int.Parse(dr["CaHoc"].ToString()); skk.MoTa = GetTenThucHanhGV(dr); sk_gv.Add(skk); gvs[idxGV].TKB[skk.Thu, skk.Tiet] = sk_gv.Count - 1; gvs[idxGV].TKB[skk.Thu, skk.Tiet, true] = eLOAI_SK.LK_GV; } } } } } }