public function testFunc() { $objTest = new TypeTest(); $objTest->TestFloat = -1.0; $objTest->Save(); $objTest2 = new TypeTest(); $objTest2->TestFloat = -2.0; $objTest2->Save(); $objResArray = TypeTest::QueryArray(QQ::GreaterThan(QQ::Func('ABS', QQN::TypeTest()->TestFloat), 1.0)); $this->assertEquals(1, count($objResArray)); if (count($objResArray) > 0) { $objRes = $objResArray[0]; $this->assertNotNull($objRes); if ($objRes) { $this->assertEquals(-2.0, $objRes->TestFloat); } } $objTest->Delete(); $objTest2->Delete(); }
public function testVirtualAttributeAliases() { $clauses = [QQ::GroupBy(QQN::Project()->ProjectStatusTypeId), QQ::Sum(QQN::Project()->Budget, 'Budget Amount'), QQ::Expand(QQ::Virtual('Balance', QQ::Func('SUM', QQ::Sub(QQN::Project()->Budget, QQN::Project()->Spent))))]; $cond = QQ::Equal(QQN::Project()->ProjectStatusTypeId, ProjectStatusType::Open); $objProject = Project::QuerySingle($cond, $clauses); $amount1 = $objProject->GetVirtualAttribute('Budget Amount'); $this->assertEquals(83000, $amount1); $amount2 = $objProject->GetVirtualAttribute('Balance'); $this->assertEquals(5599.5, $amount2); }
public function __construct(QQColumnNode $objNode, $strAttributeName) { $this->objNode = QQ::Func($this->strFunctionName, $objNode); $this->strAttributeName = QQ::GetVirtualAlias($strAttributeName); // virtual attributes are queried lower case }