@Override
public void run(final InvoiceCreationInternalEvent event) {
try {
final InternalCallContext context = internalCallContextFactory.createInternalCallContext(event.getSearchKey2(), event.getSearchKey1(), "CreateParentInvoice", CallOrigin.INTERNAL, UserType.SYSTEM, event.getUserToken());
final Account account = accountApi.getAccountById(event.getAccountId(), context);
if (isChildrenAccountAndPaymentDelegated(account)) {
dispatcher.processParentInvoiceForInvoiceGeneration(account, event.getInvoiceId(), context);
}
} catch (final InvoiceApiException e) {
log.warn("Unable to process event {}", event, e);
} catch (final AccountApiException e) {
log.warn("Unable to process event {}", event, e);
}
}
});