public function testSetJob()
 {
     $newJob = new Job();
     $newJob->setId(2);
     $this->rebalancerAction->setJob($newJob);
     $this->assertEquals(2, $this->rebalancerAction->getJob()->getId());
 }
 public function findByPortfolioAndJob(Portfolio $portfolio, Job $job)
 {
     $sql = "SELECT ra.*, j.rebalance_type as status, cp.portfolio_id FROM " . $this->table . " ra\n                    LEFT JOIN " . self::TABLE_CLIENT_PORTFOLIO_VALUE . " cpv ON cpv.id = ra.client_portfolio_value_id\n                    LEFT JOIN " . self::TABLE_CLIENT_PORTFOLIO . " cp ON cp.id = cpv.client_portfolio_id\n                    LEFT JOIN " . self::TABLE_JOB . " j ON j.id = ra.job_id\n                WHERE cp.portfolio_id = :portfolioId AND ra.job_id = :jobId\n        ";
     $parameters = array('portfolioId' => $portfolio->getId(), 'jobId' => $job->getId());
     $results = $this->db->query($sql, $parameters);
     $collection = $this->bindCollection($results);
     foreach ($collection as $item) {
         $item->setJob($job);
     }
     return $collection;
 }
Example #3
0
 public function testSetRia()
 {
     $newRia = new Ria();
     $newRia->setId(78);
     $this->job->setRia($newRia);
     $this->assertEquals(78, $this->job->getRia()->getId());
 }
 public function getTradeDataCollectionForJob(Job $job)
 {
     $sql = "SELECT\n                  rq.id as id,\n                  s.id as security_id,\n                  sca.id as account_id,\n                  sca.account_number as account_number,\n                  st.name as security_type,\n                  rq.status as action,\n                  p.quantity as position_quantity,\n                  s.symbol as symbol,\n                  SUM(rq.quantity) as quantity,\n                  SUM(rq.amount) as amount,\n                  IF(p.quantity = SUM(rq.quantity) OR (rq.status = '" . QueueItem::STATUS_SELL . "' AND rq.lot_id IS NULL), 'AS', 'S') as quantity_type\n                FROM " . $this->table . " rq\n                  LEFT JOIN " . self::TABLE_SECURITY . " s on s.id = rq.security_id\n                  LEFT JOIN " . self::TABLE_SYSTEM_ACCOUNT . " sca ON sca.id = rq.system_client_account_id\n                  LEFT JOIN " . self::TABLE_SECURITY_TYPE . " st ON st.id = s.security_type_id\n                  LEFT JOIN " . self::TABLE_LOT . " l ON l.id = rq.lot_id\n                  LEFT JOIN " . self::TABLE_POSITION . " p ON p.id = l.position_id\n                  LEFT JOIN " . self::TABLE_REBALANCER_ACTION . " ra On ra.id = rq.rebalancer_action_id\n                WHERE ra.job_id = :jobId\n                GROUP BY sca.id, s.id\n                ORDER BY rq.id";
     $paramaters = array('jobId' => $job->getId());
     $results = $this->db->query($sql, $paramaters);
     $tradeDataCollection = new ArrayCollection();
     foreach ($results as $result) {
         $tradeData = new TradeData();
         $tradeData->loadFromArray($result);
         if ($tradeData->getAction() === TradeData::ACTION_SELL) {
             $vsps = $this->findVSPForTradeData($tradeData);
             $tradeData->setVsps($vsps);
         }
         $tradeData->setJobId($job->getId());
         $tradeDataCollection->add($tradeData);
     }
     return $tradeDataCollection;
 }
Example #5
0
 public function finish(Job $job)
 {
     $sql = "UPDATE " . self::TABLE_JOB . " SET finished_at = NOW() WHERE id = :jobId";
     $parameters = array('jobId' => $job->getId());
     $this->db->query($sql, $parameters);
 }