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(); }
/** * 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; }