in service/src/main/java/org/apache/fineract/cn/cheque/service/internal/service/MICRService.java [64:93]
public MICRResolution expand(final MICR micr) {
if (this.chequeService.findBy(micr).isPresent()) {
throw ServiceException.conflict("Cheque already used.");
}
final Office office =
this.organizationService.findOffice(micr.getBranchSortCode())
.orElseThrow(() -> ServiceException.notFound("Given MICR is unknown."));
final IssuedChequeEntity issuedChequeEntity =
this.issuedChequeRepository.findByAccountIdentifier(micr.getAccountNumber())
.orElseThrow(() -> ServiceException.conflict("Cheque was never issued."));
if (Integer.valueOf(micr.getChequeNumber()) > issuedChequeEntity.getLastIssuedNumber()) {
throw ServiceException.conflict("Cheque number invalid.");
}
final ProductInstance productInstance =
this.depositService.findProductInstance(micr.getAccountNumber())
.orElseThrow(() -> ServiceException.badRequest("Given account not valid."));
final Customer customer =
this.customerService.findCustomer(productInstance.getCustomerIdentifier())
.orElseThrow(() -> ServiceException.badRequest("Given customer not valid."));
final MICRResolution micrResolution = new MICRResolution();
micrResolution.setOffice(office.getName());
micrResolution.setCustomer(customer.getGivenName() + " " + customer.getSurname());
return micrResolution;
}