private void createLedger()

in importer/src/main/java/org/apache/fineract/cn/accounting/importer/LedgerImporter.java [66:92]


  private void createLedger(final RecordFromLineNumber<Ledger> toCreate) {
    try {
      final Ledger ledger = toCreate.getRecord();
      if (ledger.getParentLedgerIdentifier() == null) {
        ledgerManager.createLedger(toCreate.getRecord());
      } else {
        ledgerManager.addSubLedger(ledger.getParentLedgerIdentifier(), ledger);
      }
      try {
        Thread.sleep(1000l);
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
    }
    catch (final LedgerAlreadyExistsException ignored) {
      final Ledger ledger = ledgerManager.findLedger(toCreate.getRecord().getIdentifier());
      if ((!Objects.equals(ledger.getIdentifier(), toCreate.getRecord().getIdentifier())) ||
              (!Objects.equals(ledger.getName(), toCreate.getRecord().getName())) ||
              (!Objects.equals(ledger.getType(), toCreate.getRecord().getType())) ||
              (!Objects.equals(ledger.getDescription(), toCreate.getRecord().getDescription())) ||
              (!Objects.equals(ledger.getParentLedgerIdentifier(), toCreate.getRecord().getParentLedgerIdentifier())) ||
              (!Objects.equals(ledger.getShowAccountsInChart(), toCreate.getRecord().getShowAccountsInChart())))
      {
        logger.error("Creation of ledger {} failed, because a ledger with the same identifier but different properties already exists {}", toCreate.getRecord(), ledger);
      }
    }
  }