Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
        }