示例#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
        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)));
        }
示例#3
0
 /// <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));
     }
 }
示例#4
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 });
        }
示例#5
0
        /// <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();
        }