docs: @Override
    public final void handle(final Map<String, Object> pRqVs,
      final IRequestData pRqDt) throws Exception {
      TradingSettings ts = srvTradingSettings
        .lazyGetTradingSettings(pRqVs);
      pRqVs.put("tradSet", ts);
      pRqVs.put("setAdd", srvSettingsAdd.lazyGetSettingsAdd(pRqVs));
      pRqDt.setAttribute("utlTradeJsp", this.utlTradeJsp);
      List<CurrRate> curRatesTmp = null;
      List<Deliv> dlvMtsTmp = null;
      if (ts.getUseAdvancedI18n()) {
        String lang = (String) pRqVs.get("lang");
        String langDef = (String) pRqVs.get("langDef");
        if (lang != null && langDef != null && !lang.equals(langDef)) {
          List<I18nWebStore> i18nTrTmp = null;
          List<I18nCatalogGs> i18nCtTmp;
          synchronized (this) {
            if (this.i18nWebStoreList == null) {
              try {
                this.logger.info(null, HndlTradeVarsRequest.class,
                  "Refreshing I18N data...");
                this.srvDatabase.setIsAutocommit(false);
                this.srvDatabase.setTransactionIsolation(ISrvDatabase
                  .TRANSACTION_READ_UNCOMMITTED);
                this.srvDatabase.beginTransaction();
                List<I18nWebStore> i18ntr = this.srvOrm.retrieveList(pRqVs,
                  I18nWebStore.class);
                List<I18nCatalogGs> i18nct = this.srvOrm.retrieveList(pRqVs,
                  I18nCatalogGs.class);
                List<CurrRate> cRnct = this.srvOrm.retrieveList(pRqVs,
                  CurrRate.class);
                List<Deliv> dlvMt = getSrvOrm().retrieveList(pRqVs, Deliv.class);
                this.srvDatabase.commitTransaction();
                //assigning fully initialized data:
                this.i18nWebStoreList = i18ntr;
                this.i18nCatalogs = i18nct;
                this.currRates = cRnct;
                this.dlvMts = dlvMt;
              } catch (Exception ex) {
                if (!this.srvDatabase.getIsAutocommit()) {
                  this.srvDatabase.rollBackTransaction();
                }
                throw ex;
              } finally {
                this.srvDatabase.releaseResources();
              }
            }
            i18nTrTmp = this.i18nWebStoreList;
            i18nCtTmp = this.i18nCatalogs;
            curRatesTmp = this.currRates;
            dlvMtsTmp = this.dlvMts;
          }
          pRqVs.put("i18nCatalogs", i18nCtTmp);
          pRqVs.put("i18nWebStoreList", i18nTrTmp);
        }
      }
      if (curRatesTmp == null) {
        synchronized (this) {
          try {
            this.srvDatabase.setIsAutocommit(false);
            this.srvDatabase.setTransactionIsolation(ISrvDatabase
              .TRANSACTION_READ_UNCOMMITTED);
            this.srvDatabase.beginTransaction();
            List<CurrRate> cRnct = this.srvOrm.retrieveList(pRqVs,
              CurrRate.class);
            List<Deliv> dlvMt = getSrvOrm().retrieveList(pRqVs, Deliv.class);
            this.srvDatabase.commitTransaction();
            //assigning fully initialized data:
            this.currRates = cRnct;
            this.dlvMts = dlvMt;
          } catch (Exception ex) {
            if (!this.srvDatabase.getIsAutocommit()) {
              this.srvDatabase.rollBackTransaction();
            }
            throw ex;
          } finally {
            this.srvDatabase.releaseResources();
          }
          curRatesTmp = this.currRates;
          dlvMtsTmp = this.dlvMts;
        }
      }
      pRqVs.put("currRates", curRatesTmp);
      pRqVs.put("dlvMts", dlvMtsTmp);
      Currency wscurr = null;
      if (curRatesTmp.size() > 0) {
        String wscurrs = pRqDt.getParameter("wscurr");
        if (wscurrs != null) {
          Long wscurrl = Long.parseLong(wscurrs);
          for (CurrRate cr : curRatesTmp) {
            if (cr.getCurr().getItsId().equals(wscurrl)) {
              wscurr = cr.getCurr();
              pRqDt.setCookieValue("wscurr", wscurr.getItsId().toString());
              break;
            }
          }
        } else {
          String  wscurrsc = pRqDt.getCookieValue("wscurr");
          if (wscurrsc != null) {
            Long wscurrl = Long.parseLong(wscurrsc);
            for (CurrRate cr : curRatesTmp) {
              if (cr.getCurr().getItsId().equals(wscurrl)) {
                wscurr = cr.getCurr();
                break;
              }
            }
          }
        }
      }
      if (wscurr == null) {
        AccSettings as = (AccSettings) pRqVs.get("accSet");
        wscurr = as.getCurrency();
        pRqDt.setCookieValue("wscurr", wscurr.getItsId().toString());
      }
      pRqVs.put("wscurr", wscurr);
      Boolean shTxDet;
      String shTxDets = pRqDt.getParameter("shTxDet");
      if (shTxDets == null) {
        String shTxDetsc = pRqDt.getCookieValue("shTxDet");
        if (shTxDetsc == null) {
          shTxDet = Boolean.FALSE;
          pRqDt.setCookieValue("shTxDet", shTxDet.toString());
        } else {
          shTxDet = Boolean.valueOf(shTxDetsc);
        }
      } else {
        shTxDet = Boolean.valueOf(shTxDets);
        pRqDt.setCookieValue("shTxDet", shTxDet.toString());
      }
      pRqVs.put("shTxDet", shTxDet);
    }