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