Exemplo n.º 1
0
        /// <summary>
        /// Lưu hồ sơ học sinh
        /// </summary>
        /// <param name="hocsinh">HocSinhDTO</param>
        /// <param name="MaLop">String: Mã lớp (nếu rỗng thì không phan lớp)</param>
        /// <returns>Bool</returns>
        public bool LuuHoSo_HocSinh(HocSinhDTO hocsinh, string MaLop = null)
        {
            DateTime ngayAD_QD = _quyDinhBUS.LayNgayApDung_QuyDinh();
            int      namCanDuoi = _quyDinhBUS.LayNamTuoi_CanDuoi(), namCanTren = _quyDinhBUS.LayNamTuoi_CanTren();
            DateTime ngayNhapHoc;

            // Sửa hồ sơ học sinh
            if (_hocSinhDAL.KiemTraTonTai_MaHocSinh(hocsinh.MaHocSinh))
            {
                // Nếu hồ sơ có phân lớp và có sửa STT
                if (MaLop != null && hocsinh.STT != _phanLopBUS.LaySTT_HienTai(hocsinh.MaHocSinh, MaLop) &&
                    _phanLopBUS.KiemTra_STT_TonTai(hocsinh.STT, MaLop))    // STT mới này đã tồn tại
                {
                    ExceptionUtil.Throw("Sửa hồ sơ học sinh không hợp lệ!"
                                        + "\nSố thứ tự " + hocsinh.STT + " đã tồn tại trong lớp " + MaLop + "."
                                        + "\nBạn có thể sử dụng chức năng \"Tự động sắp xếp số thứ tự\" theo alpha.");
                    return(false);
                }
                ngayNhapHoc = _hocSinhDAL.Lay_HoSo(hocsinh.MaHocSinh).NgayNhapHoc;
                // Nếu ngày nhập học sau ngày áp dụng quy định
                if (ngayNhapHoc >= ngayAD_QD)
                {
                    // Kiểm tra độ tuổi theo quy định
                    if (hocsinh.NgaySinh.Year < namCanDuoi || hocsinh.NgaySinh.Year > namCanTren)
                    {
                        ExceptionUtil.Throw("Sửa hồ sơ học sinh không hợp lệ!"
                                            + "\nNăm sinh của học sinh phải theo quy định trong khoảng từ năm " +
                                            namCanDuoi + " đến năm " + namCanTren);
                        return(false);
                    }
                }
                return(_hocSinhDAL.Sua_HoSo(hocsinh, MaLop));
            }
            else // Thêm mới hồ sơ học sinh
            {
                ngayNhapHoc = DateTime.Now;
                // Nếu hồ sơ có phân lớp và kiểm tra STT đã tồn tại hay chưa?
                if (MaLop != null && _phanLopBUS.KiemTra_STT_TonTai(hocsinh.STT, MaLop))
                {
                    ExceptionUtil.Throw("Tiếp nhận học sinh không hợp lệ!"
                                        + "\nSố thứ tự " + hocsinh.STT + " đã tồn tại trong lớp."
                                        + "\nChương trình sẽ tự động tạo số thứ tự tiếp theo trong bảng điểm"
                                        + "\nBạn có thể sử dụng chức năng \"Tự động sắp xếp số thứ tự\" theo alpha.");
                    return(false);
                }
                hocsinh.MaHocSinh = ObjectUtil.NextID(_hocSinhDAL.Lay_MaCuoiCung(), "HS", 8);
                // Nếu ngày nhập học sau ngày áp dụng quy định
                if (ngayNhapHoc >= ngayAD_QD)
                {
                    // Kiểm tra độ tuổi theo quy định
                    if (hocsinh.NgaySinh.Year < namCanDuoi || hocsinh.NgaySinh.Year > namCanTren)
                    {
                        ExceptionUtil.Throw("Tiếp nhận học sinh không hợp lệ!"
                                            + "\nNăm sinh của học sinh phải theo quy định trong khoảng từ năm " +
                                            namCanDuoi + " đến năm " + namCanTren);
                        return(false);
                    }
                }
                return(_hocSinhDAL.Them_HoSo(hocsinh, MaLop));
            }
        }