public async Task <bool> AddOrUpdateCollateralCustomerConsumptionAsync(CollateralCustomerConsumptionObj model) { var creditCollateralCustomerConsumptionDb = await _dataContext.credit_collateralcustomerconsumption.FirstOrDefaultAsync(x => x.CollateralCustomerConsumptionId == model.CollateralCustomerConsumptionId); if (creditCollateralCustomerConsumptionDb != null) { creditCollateralCustomerConsumptionDb.CollateralCustomerId = model.CollateralCustomerId; creditCollateralCustomerConsumptionDb.CollateralCustomerConsumptionId = model.CollateralCustomerConsumptionId; creditCollateralCustomerConsumptionDb.LoanApplicationId = model.LoanApplicationId; creditCollateralCustomerConsumptionDb.Amount = model.ActualCollateralValue; creditCollateralCustomerConsumptionDb.Active = true; creditCollateralCustomerConsumptionDb.Deleted = false; creditCollateralCustomerConsumptionDb.UpdatedBy = model.CreatedBy; creditCollateralCustomerConsumptionDb.UpdatedOn = DateTime.Now; } else { var item = new credit_collateralcustomerconsumption { CollateralCustomerId = model.CollateralCustomerId, CollateralCustomerConsumptionId = model.CollateralCustomerConsumptionId, CustomerId = model.CustomerId, LoanApplicationId = model.LoanApplicationId, Amount = model.ActualCollateralValue, Active = true, Deleted = false, CreatedBy = model.CreatedBy, CreatedOn = DateTime.Now, UpdatedBy = model.CreatedBy, UpdatedOn = DateTime.Now, }; await _dataContext.credit_collateralcustomerconsumption.AddAsync(item); } return(await _dataContext.SaveChangesAsync() > 0); }
public async Task <ActionResult <CollateralCustomerRespObj> > CalculateCurrentCustomerCollateralValue([FromQuery] CollateralCustomerSearchObj search) { try { var customerCollateral = _repo.GetCollateralCustomer(search.CollateralCustomerId); var collateral = _repo.GetCollateralType(customerCollateral.CollateralTypeId); var loanApplication = _loanApplicationRepository.GetLoanApplication(search.LoanApplicationId); var allCollateralConsumptions = await _collateralCustomerConsumptionRepository .GetCollateralCustomerConsumptionByCollateralCustomerIdAsync(search.CollateralCustomerId); decimal totalConsumptionOnCollateral = 0; foreach (var coll in allCollateralConsumptions) { totalConsumptionOnCollateral += coll.Amount; } var collateralValueWithHairCutConsidered = customerCollateral.CollateralValue; if (collateral.HairCut != 0 && collateral.HairCut != null) { collateralValueWithHairCutConsidered = (customerCollateral.CollateralValue * (100 - collateral.HairCut.Value)) / 100; } var response = new CollateralCustomerConsumptionObj { //ActualCollateralValue = customerCollateral.collateralValue, Amount = 0, CollateralCurrentAmount = collateralValueWithHairCutConsidered - totalConsumptionOnCollateral, CollateralCustomerId = customerCollateral.CollateralCustomerId, CollateralCustomerConsumptionId = search.collateralCustomerConsumptionId }; if (search.collateralCustomerConsumptionId != 0) { var consumption = await _collateralCustomerConsumptionRepository.GetCollateralCustomerConsumptionById(search.collateralCustomerConsumptionId); response.ActualCollateralValue = consumption.Amount; response.CollateralCurrentAmount += consumption.Amount; } if (response != null) { return(new CollateralCustomerRespObj { CollateralCustomerConsumption = response, Status = new APIResponseStatus { IsSuccessful = false, Message = new APIResponseMessage { FriendlyMessage = "Successful" } } }); } return(new CollateralCustomerRespObj { Status = new APIResponseStatus { IsSuccessful = false, Message = new APIResponseMessage { FriendlyMessage = "Error Occurred" } } }); } catch (Exception ex) { var errorCode = ErrorID.Generate(5); _logger.Error($"ErrorID : {errorCode} Ex : {ex?.Message ?? ex?.InnerException?.Message} ErrorStack : {ex?.StackTrace}"); return(new CollateralCustomerRespObj { Status = new APIResponseStatus { IsSuccessful = false, Message = new APIResponseMessage { FriendlyMessage = "Error Occurred", TechnicalMessage = ex?.Message, MessageId = errorCode } } }); } }
public async Task <ActionResult <CollateralCustomerRespObj> > AddOrUpdateCollateralCustomerConsumptionAsync([FromBody] CollateralCustomerConsumptionObj model) { try { var user = await _serverRequest.UserDataAsync(); var createdBy = user.UserName; model.CreatedBy = createdBy; model.UpdatedBy = createdBy; var isDone = await _collateralCustomerConsumptionRepository.AddOrUpdateCollateralCustomerConsumptionAsync(model); return(new CollateralCustomerRespObj { Status = new APIResponseStatus { IsSuccessful = true, Message = new APIResponseMessage { FriendlyMessage = "Successful" } } }); } catch (Exception ex) { var errorCode = ErrorID.Generate(5); _logger.Error($"ErrorID : {errorCode} Ex : {ex?.Message ?? ex?.InnerException?.Message} ErrorStack : {ex?.StackTrace}"); return(new CollateralCustomerRespObj { Status = new APIResponseStatus { IsSuccessful = false, Message = new APIResponseMessage { FriendlyMessage = "Error Occurred", TechnicalMessage = ex?.Message, MessageId = errorCode } } }); } }