FINERACT-2321: Adding arrears days to loan/at-date api
This commit is contained in:
+5
@@ -23,6 +23,7 @@ import org.apache.fineract.infrastructure.core.config.MapstructMapperConfig;
|
||||
import org.apache.fineract.organisation.monetary.data.CurrencyData;
|
||||
import org.apache.fineract.organisation.monetary.mapper.CurrencyMapper;
|
||||
import org.apache.fineract.portfolio.loanaccount.domain.Loan;
|
||||
import org.apache.fineract.portfolio.loanaccount.domain.arrears.LoanArrearsData;
|
||||
import org.mapstruct.Mapping;
|
||||
|
||||
@Data
|
||||
@@ -51,6 +52,9 @@ public class LoanPointInTimeData {
|
||||
private Long loanProductId;
|
||||
private String loanProductName;
|
||||
|
||||
// Arrears data
|
||||
private LoanArrearsData arrears;
|
||||
|
||||
@org.mapstruct.Mapper(config = MapstructMapperConfig.class, uses = { LoanStatusEnumData.Mapper.class, CurrencyMapper.class,
|
||||
LoanPrincipalData.Mapper.class, LoanInterestData.Mapper.class, LoanFeeData.Mapper.class, LoanPenaltyData.Mapper.class,
|
||||
LoanTotalAmountData.Mapper.class })
|
||||
@@ -70,6 +74,7 @@ public class LoanPointInTimeData {
|
||||
@Mapping(source = "summary", target = "total")
|
||||
@Mapping(source = "loanProduct.id", target = "loanProductId")
|
||||
@Mapping(source = "loanProduct.name", target = "loanProductName")
|
||||
@Mapping(target = "arrears", ignore = true)
|
||||
LoanPointInTimeData map(Loan source);
|
||||
}
|
||||
}
|
||||
|
||||
+7
-1
@@ -35,6 +35,7 @@ import org.apache.fineract.infrastructure.core.service.ThreadLocalContextUtil;
|
||||
import org.apache.fineract.portfolio.loanaccount.data.LoanPointInTimeData;
|
||||
import org.apache.fineract.portfolio.loanaccount.data.ScheduleGeneratorDTO;
|
||||
import org.apache.fineract.portfolio.loanaccount.domain.Loan;
|
||||
import org.apache.fineract.portfolio.loanaccount.domain.arrears.LoanArrearsData;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.transaction.interceptor.TransactionInterceptor;
|
||||
@@ -49,6 +50,7 @@ public class LoanPointInTimeServiceImpl implements LoanPointInTimeService {
|
||||
private final LoanAssembler loanAssembler;
|
||||
private final LoanPointInTimeData.Mapper dataMapper;
|
||||
private final EntityManager entityManager;
|
||||
private final LoanArrearsAgingService arrearsAgingService;
|
||||
|
||||
@Override
|
||||
public LoanPointInTimeData retrieveAt(Long loanId, LocalDate date) {
|
||||
@@ -69,7 +71,11 @@ public class LoanPointInTimeServiceImpl implements LoanPointInTimeService {
|
||||
ScheduleGeneratorDTO scheduleGeneratorDTO = loanUtilService.buildScheduleGeneratorDTO(loan, null, null);
|
||||
loanScheduleService.recalculateSchedule(loan, scheduleGeneratorDTO);
|
||||
|
||||
return dataMapper.map(loan);
|
||||
LoanArrearsData arrearsData = arrearsAgingService.calculateArrearsForLoan(loan);
|
||||
|
||||
LoanPointInTimeData result = dataMapper.map(loan);
|
||||
result.setArrears(arrearsData);
|
||||
return result;
|
||||
} finally {
|
||||
entityManager.clear();
|
||||
TransactionInterceptor.currentTransactionStatus().setRollbackOnly();
|
||||
|
||||
Reference in New Issue
Block a user