private void DocKeHoachChiTiet(long IDXL_Tuan) { oBKeHoachChiTiet = new cBXL_KeHoachChiTiet(); DataTable dt = oBKeHoachChiTiet.Get_SuKienTKB(IDXL_Tuan); sks = new SuKienTKB(); DataRow[] arrDr; string IDDM_Lop = ""; int SoTiet, IDXL_MonHocTrongKy, count; List <CHIA_TIET> lst; XL_SuKienTKBInfo sk = new XL_SuKienTKBInfo(true), skClone; for (int i = 0; i < dt.Rows.Count; i++) { IDXL_MonHocTrongKy = 0; count = 0; if (dt.Rows[i]["IDDM_Lop"].ToString() != IDDM_Lop) { IDDM_Lop = dt.Rows[i]["IDDM_Lop"].ToString(); arrDr = dt.Select("IDDM_Lop = " + IDDM_Lop); SoTiet = int.Parse(dt.Compute("Sum(SoTiet)", "IDDM_Lop = " + IDDM_Lop).ToString()); lst = lstChiaTiet32(arrDr, SoTiet); foreach (CHIA_TIET pChiaTiet in lst) { if (pChiaTiet.IDXL_MonHocTrongKy != IDXL_MonHocTrongKy) { sk = new XL_SuKienTKBInfo(true); GanSuKien(sk, arrDr[count]); sk.SoTiet = pChiaTiet.SoTiet; IDXL_MonHocTrongKy = pChiaTiet.IDXL_MonHocTrongKy; count++; } else { skClone = sk.Clone(); skClone.SoTiet = pChiaTiet.SoTiet; skClone.Idx = sks.Count; sks.Add(skClone); } } i += count - 1; } //XL_SuKienTKBInfo sk = new XL_SuKienTKBInfo(true); //GanSuKien(sk, dr); //ChiaSuKien(sk); } }
private void GanSuKien(XL_SuKienTKBInfo sk, DataRow dr) { sk.Idx = sks.Count; sk.IDXL_Tuan = intIDTuan; sk.IDDM_Lop = int.Parse(dr["IDDM_Lop"].ToString()); sk.IdxLop = lps.SearchIndexLop(sk.IDDM_Lop); sk.TenLop = dr["TenLop"].ToString(); sk.IDXL_MonHocTrongKy = int.Parse("0" + dr["IDXL_MonHocTrongKy"].ToString()); sk.IDDM_MonHoc = int.Parse("0" + dr["IDDM_MonHoc"].ToString()); sk.SuDungPhong = (SU_DUNG_PHONG)dr["SuDungPhong"]; sk.TenMon = dr["TenMonHoc"].ToString(); sk.KyHieu = dr["KyHieu"].ToString(); sk.CaHoc = "" + dr["CaHoc"] == "" ? CA_HOC.KHONG_XAC_DINH : (CA_HOC)dr["CaHoc"]; if (sk.SuDungPhong != SU_DUNG_PHONG.KHONG_SD) { if (sk.SuDungPhong == SU_DUNG_PHONG.DUOI_DAY && sk.IDDM_PhongHoc > 0) { if (htbPhong.ContainsKey(sk.IDDM_MonHoc)) { arrPhong = (int[])htbPhong[sk.IDDM_MonHoc]; for (int i = 0; i < arrPhong.Length; i++) { if (htbPhanCongPhong.ContainsKey(sk.IDDM_PhongHoc.ToString() + "_" + sk.CaHoc.ToString())) { if (int.Parse(htbPhanCongPhong[arrPhong[i].ToString() + "_" + sk.CaHoc.ToString()].ToString()) < objThamSoTKB.SO_NHOMTIET_CA) { sk.IDDM_PhongHoc = arrPhong[i]; sk.IdxPhong = phs.SearchIndexPhong(sk.IDDM_PhongHoc); sk.TenPhong = phs[sk.IdxPhong].TenPhongHoc; htbPhanCongPhong[arrPhong[i].ToString() + "_" + sk.CaHoc.ToString()] = int.Parse(htbPhanCongPhong[arrPhong[i].ToString() + "_" + sk.CaHoc.ToString()].ToString()) + 1; break; } } else { sk.IDDM_PhongHoc = arrPhong[i]; sk.IdxPhong = phs.SearchIndexPhong(sk.IDDM_PhongHoc); sk.TenPhong = phs[sk.IdxPhong].TenPhongHoc; htbPhanCongPhong.Add(sk.IDDM_PhongHoc.ToString() + "_" + sk.CaHoc.ToString(), 1); break; } } } } else { if ("" + dr["IDDM_PhongHoc"] != "") { sk.IDDM_PhongHoc = int.Parse(dr["IDDM_PhongHoc"].ToString()); sk.IdxPhong = phs.SearchIndexPhong(sk.IDDM_PhongHoc); sk.TenPhong = dr["TenPhongHoc"].ToString(); } } } sk.IDNS_GiaoVien = int.Parse(dr["IDNS_GiaoVien"].ToString()); sk.IdxGiaoVien = gvs.SearchIndexGV(sk.IDNS_GiaoVien); sk.TenGiaoVien = dr["HoTen"].ToString(); sk.TenVietTat = dr["TenVietTat"].ToString(); sk.Thu = int.Parse(dr["Thu"].ToString()); sk.TietDau = int.Parse(dr["TietDau"].ToString()); sk.SoTiet = int.Parse(dr["SoTiet"].ToString()); sk.LoaiTiet = (LOAI_TIET)dr["LoaiTiet"]; sk.DaXepLich = bool.Parse(dr["DaXepLich"].ToString()); sk.Locked = false; sks.Add(sk); }