in service/src/main/java/org/apache/fineract/cn/accounting/service/rest/LedgerRestController.java [131:150]
ResponseEntity<Void> addSubLedger(@PathVariable("identifier") final String identifier,
@RequestBody @Valid final Ledger subLedger) {
final Optional<Ledger> optionalParentLedger = this.ledgerService.findLedger(identifier);
if (optionalParentLedger.isPresent()) {
final Ledger parentLedger = optionalParentLedger.get();
if (!parentLedger.getType().equals(subLedger.getType())) {
throw ServiceException.badRequest("Ledger type must be the same.");
}
} else {
throw ServiceException.notFound("Parent ledger {0} not found.", identifier);
}
if (this.ledgerService.findLedger(subLedger.getIdentifier()).isPresent()) {
throw ServiceException.conflict("Ledger {0} already exists.", subLedger.getIdentifier());
}
this.commandGateway.process(new AddSubLedgerCommand(identifier, subLedger));
return ResponseEntity.accepted().build();
}