예제 #1
0
 private void updateFundShare(EtfReportInfo etfReportInfo) throws AccountException {
   BigDecimal fundShare = etfReportInfo.getFillShare();
   if (ETFTradeTypeConsts.ETF_ADMIN_REDEEM.equals(etfReportInfo.getTradeType())) {
     fundShare = fundShare.negate();
   }
   fundService.updateFundShare(etfReportInfo.getFundId(), fundShare);
 }
예제 #2
0
  private AdjustTradeEvent createPositionEvent(
      EtfReportInfo etfReportInfo, BaseConfig config, BasketQueryResult basket)
      throws AccountException {
    AdjustTradeEvent adjustTradeEvent = new AdjustTradeEvent();
    adjustTradeEvent.setTradeLevel(TradeLevelConsts.FILL);
    if (ETFTradeTypeConsts.ETF_ADMIN_CREATION.equals(etfReportInfo.getTradeType())) {
      adjustTradeEvent.setTradeType(TradeTypeConsts.ETF_ADMIN_SUBSCRIBE);
    }
    if (ETFTradeTypeConsts.ETF_ADMIN_REDEEM.equals(etfReportInfo.getTradeType())) {
      adjustTradeEvent.setTradeType(TradeTypeConsts.ETF_ADMIN_REDEEM);
    }
    adjustTradeEvent.setPortfolioId(config.getPortfolioId());

    adjustTradeEvent.setUserId(SYSTEM_USER_ID);
    adjustTradeEvent.setExchange(etfReportInfo.getEtfExecutionReport2().getExchangeCode());
    List<AdjustTradeEventLeg> adjustTradeEventLegs = getTradeEventLegs(etfReportInfo, basket);
    adjustTradeEvent.setTradeEventlegs(adjustTradeEventLegs);

    return adjustTradeEvent;
  }