public MICRResolution expand()

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;
  }