/// <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 }); }
/// <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 }); }
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" })); } }