Пример #1
0
        /// <summary>
        /// Method for adding new course fee terms entry - RS
        /// </summary>
        /// <param name="addCourseFeeTermAc"></param>
        /// <param name="currentUserInstituteId"></param>
        /// <param name="currentUser"></param>
        /// <returns></returns>
        private async Task <dynamic> AddCourseFeeTermsAsync(AddCourseFeeTermAc addCourseFeeTermAc, int currentUserInstituteId, ApplicationUser currentUser)
        {
            #region Add Course Fee Term

            CourseFeeTerm courseFeeTerm = new CourseFeeTerm
            {
                ClassId        = addCourseFeeTermAc.CourseFeeTermAc.ClassId,
                AcademicYearId = addCourseFeeTermAc.CourseFeeTermAc.AcademicYearId,
                ReligionId     = addCourseFeeTermAc.CourseFeeTermAc.ReligionId,
                LateFee        = addCourseFeeTermAc.CourseFeeTermAc.LateFee,
                DueDate        = addCourseFeeTermAc.CourseFeeTermAc.DueDate,
                InstituteId    = currentUserInstituteId,
                CreatedBy      = currentUser.Id,
                CreatedOn      = DateTime.UtcNow
            };
            _imsDbContext.CourseFeeTerms.Add(courseFeeTerm);
            await _imsDbContext.SaveChangesAsync();

            #endregion

            #region Add Course Fee Term Details

            await AddCourseFeeDetailsAsync(addCourseFeeTermAc, courseFeeTerm.Id, currentUser);

            #endregion

            return(new { Message = "Course fee term added successfully", HasError = false });
        }
Пример #2
0
        /// <summary>
        /// Method for updating existing course fee terms entry - RS
        /// </summary>
        /// <param name="addCourseFeeTermAc"></param>
        /// <param name="currentUserInstituteId"></param>
        /// <param name="currentUser"></param>
        /// <returns></returns>
        private async Task <dynamic> UpdateCourseFeeTermsAsync(AddCourseFeeTermAc addCourseFeeTermAc, int currentUserInstituteId, ApplicationUser currentUser)
        {
            #region Update Course Fee Term

            CourseFeeTerm existingCourseFeeTerm = await _imsDbContext.CourseFeeTerms
                                                  .FirstOrDefaultAsync(x => x.Id == addCourseFeeTermAc.CourseFeeTermAc.Id && x.InstituteId == currentUserInstituteId && x.AcademicYearId == addCourseFeeTermAc.CourseFeeTermAc.AcademicYearId);

            if (existingCourseFeeTerm == null)
            {
                return(new { Message = "No course fee term entry found with this id", HasError = true });
            }

            existingCourseFeeTerm.ReligionId     = addCourseFeeTermAc.CourseFeeTermAc.ReligionId;
            existingCourseFeeTerm.AcademicYearId = addCourseFeeTermAc.CourseFeeTermAc.AcademicYearId;
            existingCourseFeeTerm.ClassId        = addCourseFeeTermAc.CourseFeeTermAc.ClassId;
            existingCourseFeeTerm.DueDate        = addCourseFeeTermAc.CourseFeeTermAc.DueDate;
            existingCourseFeeTerm.LateFee        = addCourseFeeTermAc.CourseFeeTermAc.LateFee;
            _imsDbContext.CourseFeeTerms.Update(existingCourseFeeTerm);
            await _imsDbContext.SaveChangesAsync();

            #endregion

            #region Update Course Fee Term Details

            List <CourseFeeTermDetails> existingCourseFeeTermDetailsList = await _imsDbContext.CourseFeeTermDetails
                                                                           .Where(x => x.CourseFeeTermId == existingCourseFeeTerm.Id && x.CourseFeeTerm.AcademicYearId == addCourseFeeTermAc.CourseFeeTermAc.AcademicYearId)
                                                                           .ToListAsync();

            if (addCourseFeeTermAc.Term != 0)
            {
                existingCourseFeeTermDetailsList = existingCourseFeeTermDetailsList.Where(x => x.Term == addCourseFeeTermAc.Term).ToList();
            }
            _imsDbContext.CourseFeeTermDetails.RemoveRange(existingCourseFeeTermDetailsList);
            await _imsDbContext.SaveChangesAsync();
            await AddCourseFeeDetailsAsync(addCourseFeeTermAc, existingCourseFeeTerm.Id, currentUser);

            #endregion

            return(new { Message = "Course fee term entry updated successfully", HasError = false });
        }
Пример #3
0
        public async Task <IActionResult> GetFeeComponentAsync(int classId, int?religionId)
        {
            var instituteId = await GetUserCurrentSelectedInstituteIdAsync();

            var academicYear = await _imsDbContext.InstituteAcademicYears.FirstOrDefaultAsync(x => x.InstituteId == instituteId && x.IsActive);

            if (academicYear != null)
            {
                CourseFeeTerm courseFeeTerms = new CourseFeeTerm();
                if (religionId.HasValue)
                {
                    courseFeeTerms = await _imsDbContext.CourseFeeTerms.FirstOrDefaultAsync(x => x.ClassId == classId &&
                                                                                            x.AcademicYearId == academicYear.Id && x.InstituteId == instituteId && x.ReligionId == religionId.Value);
                }
                else
                {
                    courseFeeTerms = await _imsDbContext.CourseFeeTerms.FirstOrDefaultAsync(x => x.ClassId == classId &&
                                                                                            x.AcademicYearId == academicYear.Id && x.InstituteId == instituteId);
                }
                if (courseFeeTerms != null)
                {
                    var courseFeeTermComponents = await _imsDbContext.CourseFeeTermDetails.Where(x => x.CourseFeeTermId == courseFeeTerms.Id).ToListAsync();

                    var feeComponents = await _imsDbContext.FeeComponents.OrderByDescending(x => x.Priority).Where(x => x.InstituteId == instituteId).ToListAsync();

                    feeComponents.Reverse();
                    var terms = (await _imsDbContext.InstituteClasses.FirstAsync(x => x.Id == classId)).NumberOfFeeTerms;
                    return(Ok(new { courseFeeTermComponents, feeComponents, terms }));
                }
                else
                {
                    return(Ok(new { Message = "No record found" }));
                }
            }
            else
            {
                return(Ok(new { Message = "No record found" }));
            }
        }