/** * This is the web service method that creates a new account 1. Creates an account object using * the parameters from KC and the default Account table 2. Creates an account automatic * maintenance document and puts the account object into it 3. Returns the status object * * @param AccountAutoCreateDefaults * @return AccountCreationStatusDTO */ @Override public AccountCreationStatusDTO createAccount(AccountParametersDTO accountParameters) { AccountCreationStatusDTO accountCreationStatus = new AccountCreationStatusDTO(); accountCreationStatus.setErrorMessages(new ArrayList<String>()); accountCreationStatus.setStatus(KcConstants.KcWebService.STATUS_KC_SUCCESS); // check to see if the user has the permission to create account String principalId = accountParameters.getPrincipalId(); LOG.debug("principalId ::::" + principalId); if (!isValidUser(principalId)) { this.setFailStatus( accountCreationStatus, KcUtils.getErrorMessage( KcConstants.AccountCreationService.ERROR_KC_DOCUMENT_INVALID_USER, new String[] {principalId})); return accountCreationStatus; } // get the defaults table String unitNumber = accountParameters.getUnit(); AccountAutoCreateDefaults defaults = getAccountDefaultsService().getAccountDefaults(unitNumber); if (defaults == null) { this.setFailStatus( accountCreationStatus, KcConstants.AccountCreationService.ERROR_KC_ACCOUNT_PARAMS_UNIT_NOT_DEFINED); return accountCreationStatus; } try { // create an account object Account account = createAccountObject(accountParameters, defaults); // if invalid chart/account number, failure status and return to KC if (!isValidAccount(account, accountCreationStatus)) { return accountCreationStatus; } // create an account automatic maintenance document createAutomaticCGAccountMaintenanceDocument(account, accountCreationStatus); } catch (Exception ex) { this.setFailStatus( accountCreationStatus, KcConstants.AccountCreationService.ERROR_KC_DOCUMENT_ACCOUNT_GENERATION_PROBLEM); return accountCreationStatus; } // set required values to AccountCreationStatus if (accountCreationStatus.getStatus().equals(KcConstants.KcWebService.STATUS_KC_SUCCESS)) { accountCreationStatus.setAccountNumber(accountParameters.getAccountNumber()); accountCreationStatus.setChartOfAccountsCode(defaults.getChartOfAccountsCode()); } return accountCreationStatus; }