/**
  * Get all empty transactions
  *
  * @param integer $limit
  * @return array
  */
 public function getEmptyTransactions($limit)
 {
     $predicate = new Predicate();
     $select = $this->select();
     $select->from(['a' => 'payment_transaction_list'])->columns(['id', 'slug'])->join(['b' => 'payment_transaction_item'], 'a.id = b.transaction_id', [], 'left')->where([$predicate->isNull('b.transaction_id')])->group('a.id')->limit($limit);
     $statement = $this->prepareStatementForSqlObject($select);
     $resultSet = new ResultSet();
     $resultSet->initialize($statement->execute());
     return $resultSet->toArray();
 }
Exemple #2
0
 public function testCanNestPredicates()
 {
     $predicate = new Predicate();
     $predicate->isNull('foo.bar')->nest()->isNotNull('bar.baz')->and->equalTo('baz.bat', 'foo')->unnest();
     $parts = $predicate->getExpressionData();
     $this->assertEquals(7, count($parts));
     $this->assertContains('%1$s IS NULL', $parts[0]);
     $this->assertContains(array('foo.bar'), $parts[0]);
     $this->assertEquals(' AND ', $parts[1]);
     $this->assertEquals('(', $parts[2]);
     $this->assertContains('%1$s IS NOT NULL', $parts[3]);
     $this->assertContains(array('bar.baz'), $parts[3]);
     $this->assertEquals(' AND ', $parts[4]);
     $this->assertContains('%s = %s', $parts[5]);
     $this->assertContains(array('baz.bat', 'foo'), $parts[5]);
     $this->assertEquals(')', $parts[6]);
 }
 /**
  * Delete not active empty connections
  *
  * @return boolean|string
  */
 public function deleteNotActiveEmptyConnections()
 {
     try {
         $this->adapter->getDriver()->getConnection()->beginTransaction();
         $predicate = new Predicate();
         $delete = $this->delete()->from('membership_level_connection')->where(['active' => self::MEMBERSHIP_LEVEL_CONNECTION_NOT_ACTIVE, $predicate->isNull('membership_id')]);
         $statement = $this->prepareStatementForSqlObject($delete);
         $statement->execute();
         $this->adapter->getDriver()->getConnection()->commit();
     } catch (Exception $e) {
         $this->adapter->getDriver()->getConnection()->rollback();
         ApplicationErrorLogger::log($e);
         return $e->getMessage();
     }
     return true;
 }