docs: public final String revWhePri(final FilterInteger pFilterPrice,
      final BigDecimal pCuRt) throws Exception {
      if (pFilterPrice == null || pFilterPrice.getOperator() == null
        || pFilterPrice.getValue1() == null) {
        return "";
      }
      BigDecimal exchRate = pCuRt;
      if (exchRate.compareTo(BigDecimal.ZERO) == -1) {
        exchRate = BigDecimal.ONE.divide(exchRate.negate(), 15,
          RoundingMode.HALF_UP);
      }
      int val1 = pFilterPrice.getValue1();
      if (exchRate.compareTo(BigDecimal.ONE) != 0) {
        BigDecimal bd = new BigDecimal(val1);
        bd = bd.divide(exchRate, 0, RoundingMode.HALF_UP);
        val1 = bd.intValue();
      }
      if (EFilterOperator.LESS_THAN.equals(pFilterPrice.getOperator())
        || EFilterOperator.LESS_THAN_EQUAL.equals(pFilterPrice.getOperator())
        || EFilterOperator.GREATER_THAN.equals(pFilterPrice.getOperator())
      || EFilterOperator.GREATER_THAN_EQUAL.equals(pFilterPrice.getOperator())) {
        return " and ITSPRICE" + toSqlOperator(pFilterPrice.getOperator()) + val1;
      }
      if (pFilterPrice.getValue2() != null) {
        int val2 = pFilterPrice.getValue2();
        if (exchRate.compareTo(BigDecimal.ONE) != 0) {
          BigDecimal bd = new BigDecimal(val2);
          bd = bd.divide(exchRate, 0, RoundingMode.HALF_UP);
          val2 = bd.intValue();
        }
        if (EFilterOperator.BETWEEN.equals(pFilterPrice.getOperator())) {
          return " and ITSPRICE>" + val1 + " and ITSPRICE<" + val2;
        } else if (EFilterOperator.BETWEEN_INCLUDE
          .equals(pFilterPrice.getOperator())) {
          return " and ITSPRICE>=" + val1 + " and ITSPRICE<=" + val2;
        }
      }
      return "";
    }