public function findVSPForTradeData(TradeData $tradeData)
 {
     $sql = "\n            SELECT 'VSP' as purchase, DATE_FORMAT(l.date,'%m%d%Y') as purchase_date, rq.quantity\n            FROM rebalancer_queue rq\n              LEFT JOIN lots l ON l.id = rq.lot_id\n              LEFT JOIN rebalancer_actions ra On ra.id = rq.rebalancer_action_id\n            WHERE rq.system_client_account_id = :accountId AND rq.security_id = :securityId\n        ";
     $connection = $this->getEntityManager()->getConnection();
     $stmt = $connection->prepare($sql);
     //        $stmt->bindValue('jobId', $tradeData->getJobId());
     $stmt->bindValue('accountId', $tradeData->getAccountId());
     $stmt->bindValue('securityId', $tradeData->getSecurityId());
     $stmt->execute();
     return $stmt->fetchAll();
 }
Ejemplo n.º 2
0
 /**
  * Get Trade Data for generate file
  *
  * @param RiaCompanyInformation $riaCompanyInformation
  * @param array $clientValuesIds
  * @return TradeData[]
  */
 public function getTradeDataCollection(RiaCompanyInformation $riaCompanyInformation, array $clientValuesIds)
 {
     if ($riaCompanyInformation->isHouseholdManagedLevel()) {
         $tradeDataArray = $this->repository->findTradeDataArrayForClientPortfolioValuesIds($clientValuesIds);
     } else {
         $tradeDataArray = $this->repository->findTradeDataArrayForClientAccountValuesIds($clientValuesIds);
     }
     $tradeDataCollection = array();
     foreach ($tradeDataArray as $data) {
         $tradeData = new TradeData();
         $tradeData->loadFromArray($data);
         if (RebalancerQueue::STATUS_SELL === $tradeData->getAction()) {
             $vsps = $this->repository->findVSPForTradeData($tradeData);
             $tradeData->setVsps($vsps);
         }
         $tradeDataCollection[] = $tradeData;
     }
     return $tradeDataCollection;
 }