public void createIMEI(ImeiVO imeiVO) throws MSMApplicationException {
   NdgUser userLogged = findNdgUserByName(imeiVO.getUserName());
   if (userManager.userAdminHasPositiveBalance(UserVO.IMEI_LIMIT, userLogged.getUserAdmin())) {
     imeiManager.createIMEI(imeiVO);
     sendDynamicJad(imeiVO.getMsisdn(), imeiVO.getImei());
   } else {
     throw new ImeiLimitReachedException();
   }
   userManager.updateUserAdminBalance(UserVO.IMEI_LIMIT, userLogged.getUserAdmin());
 }
  public void postResult(StringBuffer resultBuffered, TransactionLogVO postResultTransaction)
      throws MSMApplicationException, MSMSystemException {

    ResultParser parser = new ResultParser();
    ResultXml resultBean = null;
    NdgUser userLogged = null;

    try {
      resultBean = parser.parseResult(resultBuffered, "UTF-8");
    } catch (Exception e) {
      throw new ResultNotParsedException();
    }

    if (resultBean != null) {
      ImeiVO imei = imeiManager.getIMEI(resultBean.getImei());
      userLogged = findNdgUserByName(imei.getUserName());
      if (userManager.userAdminHasPositiveBalance(UserVO.RESULT_LIMIT, userLogged.getUserAdmin())) {
        resultHandler.postResult(resultBuffered, postResultTransaction);
        userManager.updateUserAdminBalance(UserVO.RESULT_LIMIT, userLogged.getUserAdmin());
      } else {
        throw new UserLimitReachedException();
      }
    }
  }