/// <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 }); }
public async Task <IActionResult> AddOrUpdateCourseFeeTermsAsync([FromBody] AddCourseFeeTermAc addCourseFeeTermAc) { int currentUserInstituteId = await GetUserCurrentSelectedInstituteIdAsync(); ApplicationUser currentUser = await _userManager.FindByEmailAsync(User.Identity.Name); return(Ok(await _feeManagementRepository.AddOrUpdateCourseFeeTermsAsync(addCourseFeeTermAc, currentUserInstituteId, currentUser))); }
/// <summary> /// Method for adding or updating course fee terms - RS /// </summary> /// <param name="courseFeeTermAc"></param> /// <param name="currentUserInstituteId"></param> /// <param name="currentUser"></param> /// <returns></returns> public async Task <dynamic> AddOrUpdateCourseFeeTermsAsync(AddCourseFeeTermAc addCourseFeeTermAc, int currentUserInstituteId, ApplicationUser currentUser) { if (addCourseFeeTermAc.CourseFeeTermAc.Id == 0) { return(await AddCourseFeeTermsAsync(addCourseFeeTermAc, currentUserInstituteId, currentUser)); } else { return(await UpdateCourseFeeTermsAsync(addCourseFeeTermAc, currentUserInstituteId, currentUser)); } }
/// <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 }); }
/// <summary> /// Method for adding course fee details - RS /// </summary> /// <param name="addCourseFeeTermAc"></param> /// <param name="courseFeeTermId"></param> /// <param name="currentUser"></param> /// <returns></returns> private async Task AddCourseFeeDetailsAsync(AddCourseFeeTermAc addCourseFeeTermAc, int courseFeeTermId, ApplicationUser currentUser) { List <CourseFeeTermDetails> courseFeeTermDetailsList = new List <CourseFeeTermDetails>(); InstituteClass instituteClass = await _imsDbContext.InstituteClasses.FirstAsync(x => x.Id == addCourseFeeTermAc.CourseFeeTermAc.ClassId); foreach (CourseFeeTermDetailsAc courseFeeTermDetailsAc in addCourseFeeTermAc.CourseFeeTermDetailsList) { if (addCourseFeeTermAc.Term != 0) { courseFeeTermDetailsList.Add(new CourseFeeTermDetails { CourseFeeTermId = courseFeeTermId, FeeComponentId = courseFeeTermDetailsAc.FeeComponentId, Amount = courseFeeTermDetailsAc.Amount, Term = addCourseFeeTermAc.Term, CreatedBy = currentUser.Id, CreatedOn = DateTime.UtcNow }); } else { for (int i = 0; i < instituteClass.NumberOfFeeTerms; i++) { courseFeeTermDetailsList.Add(new CourseFeeTermDetails { CourseFeeTermId = courseFeeTermId, FeeComponentId = courseFeeTermDetailsAc.FeeComponentId, Amount = courseFeeTermDetailsAc.Amount, Term = i + 1, CreatedBy = currentUser.Id, CreatedOn = DateTime.UtcNow }); } } } _imsDbContext.CourseFeeTermDetails.AddRange(courseFeeTermDetailsList); await _imsDbContext.SaveChangesAsync(); }