public string SaveFeeRefund(FeeRefund Obj)
        {
            DALFee dal = new DALFee(ConStr);

            return(dal.SaveFeeRefund(Obj));
        }
        public DataTable GetFeeRefundList(FeeRefund Obj)
        {
            DALFee dal = new DALFee(ConStr);

            return(dal.GetFeeRefundList(Obj));
        }
Пример #3
0
        /// <summary>
        /// Method to add fee refund - SS
        /// </summary>
        /// <param name="addFeeRefund">fee refund</param>
        /// <param name="loggedInUser">logged in user</param>
        /// <returns>response</returns>
        public async Task <FeeRefundManagementResponse> AddFeeRefundAsync(AddFeeRefundManagementAc addFeeRefund, ApplicationUser loggedInUser)
        {
            await semaphore.WaitAsync();

            try
            {
                var instituteId = await _instituteUserMappingHelperService.GetUserCurrentSelectedInstituteIdAsync(loggedInUser.Id, true);

                if (!await _iMSDbContext.StudentBasicInformation.AnyAsync(x => x.Id == addFeeRefund.StudentId && x.InstituteId == instituteId))
                {
                    return new FeeRefundManagementResponse()
                           {
                               HasError = true, Message = "Student not found", ErrorType = FeeRefundManagementErrorType.StudentId
                           }
                }
                ;
                else if (!await _iMSDbContext.UserInstituteMappings.AnyAsync(x => x.InstituteId == instituteId && x.UserId == addFeeRefund.IssuedById))
                {
                    return new FeeRefundManagementResponse()
                           {
                               HasError = true, Message = "Issued-by user not found", ErrorType = FeeRefundManagementErrorType.IssuedById
                           }
                }
                ;
                else
                {
                    if (string.IsNullOrEmpty(addFeeRefund.RefundNumber.Trim()))
                    {
                        return new FeeRefundManagementResponse()
                               {
                                   HasError = true, Message = "Refund number can't be empty", ErrorType = FeeRefundManagementErrorType.RefundNumber
                               }
                    }
                    ;
                    else if (string.IsNullOrEmpty(addFeeRefund.ChallanNumber.Trim()))
                    {
                        return new FeeRefundManagementResponse()
                               {
                                   HasError = true, Message = "Challan number can't be empty", ErrorType = FeeRefundManagementErrorType.ChallanNumber
                               }
                    }
                    ;
                    else if (string.IsNullOrEmpty(addFeeRefund.ChequeNumber.Trim()))
                    {
                        return new FeeRefundManagementResponse()
                               {
                                   HasError = true, Message = "Cheque number can't be empty", ErrorType = FeeRefundManagementErrorType.ChequeNumber
                               }
                    }
                    ;
                    else if (string.IsNullOrEmpty(addFeeRefund.BankName.Trim()))
                    {
                        return new FeeRefundManagementResponse()
                               {
                                   HasError = true, Message = "Bank name can't be empty", ErrorType = FeeRefundManagementErrorType.BankName
                               }
                    }
                    ;
                    else if (double.IsNaN(addFeeRefund.Amount))
                    {
                        return new FeeRefundManagementResponse()
                               {
                                   HasError = true, Message = "Amount number can't be empty and should be number", ErrorType = FeeRefundManagementErrorType.Amount
                               }
                    }
                    ;
                    else
                    {
                        if (await _iMSDbContext.FeeRefunds.AnyAsync(x => x.RefundNumber.ToLowerInvariant() == addFeeRefund.RefundNumber.ToLowerInvariant()))
                        {
                            var autoSequence = await _iMSDbContext.AutoSequenceGenerators.Include(s => s.AutoSequenceGeneratorDataTypes)
                                               .Include(d => d.Institute).FirstOrDefaultAsync(x => x.InstituteId == instituteId &&
                                                                                              x.AutoSequenceGeneratorType == AutoSequenceGeneratorTypeEnum.RefundNumber);

                            if (autoSequence == null)
                            {
                                return new FeeRefundManagementResponse()
                                       {
                                           Message = "Refund number already exist. Please use unique id", HasError = true, ErrorType = FeeRefundManagementErrorType.RefundNumber
                                       }
                            }
                            ;
                            else
                            {
                                addFeeRefund.RefundNumber = await GenerateRefundNumberAsync(autoSequence);
                            }
                        }
                        var refund = new FeeRefund()
                        {
                            Amount        = addFeeRefund.Amount,
                            BankName      = addFeeRefund.BankName,
                            ChallanNumber = addFeeRefund.ChallanNumber,
                            ChequeDate    = addFeeRefund.ChequeDate,
                            ChequeNumber  = addFeeRefund.ChequeNumber,
                            CreatedOn     = DateTime.UtcNow,
                            IssuedById    = addFeeRefund.IssuedById,
                            RefundDate    = addFeeRefund.RefundDate,
                            RefundNumber  = addFeeRefund.RefundNumber,
                            Remark        = addFeeRefund.Remark,
                            StudentId     = addFeeRefund.StudentId,
                            UpdatedById   = loggedInUser.Id,
                            UpdatedOn     = DateTime.UtcNow
                        };

                        _iMSDbContext.FeeRefunds.Add(refund);
                        await _iMSDbContext.SaveChangesAsync();

                        return(new FeeRefundManagementResponse()
                        {
                            HasError = false, Message = "Fee refund detail added successfully"
                        });
                    }
                }
            }
            finally
            {
                semaphore.Release();
            }
        }