@Override public CustomerStatusDetailDto retrieveCustomerStatusDetails( Short newStatusId, Short flagIdValue, Short customerLevelId) { CustomerLevel customerLevel = CustomerLevel.getLevel(customerLevelId); CustomerStatus customerStatus = CustomerStatus.fromInt(newStatusId); CustomerStatusFlag statusFlag = null; if (customerStatus.isCustomerCancelledOrClosed()) { statusFlag = CustomerStatusFlag.getStatusFlag(flagIdValue); } String statusName = AccountStateMachines.getInstance().getCustomerStatusName(customerStatus, customerLevel); String flagName = AccountStateMachines.getInstance().getCustomerFlagName(statusFlag, customerLevel); return new CustomerStatusDetailDto(statusName, flagName); }
@Override public void updateCustomerStatus( Integer customerId, Integer previousCustomerVersionNo, String flagIdAsString, String newStatusIdAsString, String notes) { MifosUser user = (MifosUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); UserContext userContext = toUserContext(user); Short flagId = null; Short newStatusId = null; if (StringUtils.isNotBlank(flagIdAsString)) { flagId = Short.valueOf(flagIdAsString); } if (StringUtils.isNotBlank(newStatusIdAsString)) { newStatusId = Short.valueOf(newStatusIdAsString); } CustomerStatusFlag customerStatusFlag = null; if (flagId != null) { customerStatusFlag = CustomerStatusFlag.fromInt(flagId); } CustomerStatus newStatus = CustomerStatus.fromInt(newStatusId); CustomerStatusUpdate customerStatusUpdate = new CustomerStatusUpdate( customerId, previousCustomerVersionNo, customerStatusFlag, newStatus, notes); try { this.customerService.updateCustomerStatus(userContext, customerStatusUpdate); } catch (CustomerException e) { throw new BusinessRuleException(e.getKey(), e); } }