/**
* Determine if the membership status is the status used for new memberships.
*
- * @param array $id
+ * @param array $fieldSpec
* @param \Civi\Api4\Query\Api4SelectQuery $query
* return string
+ *
+ * @return string
+ * @throws \CRM_Core_Exception
+ * @noinspection PhpUnusedParameterInspection
*/
public static function isNewMembership(array $fieldSpec, Api4SelectQuery $query): string {
$newID = \CRM_Member_BAO_MembershipStatus::getNewMembershipTypeID();
- return "IF ({id} = $newID, 1, 0)";
+ if ($newID) {
+ return "IF ({$fieldSpec['sql_name']} = $newID, 1, 0)";
+ }
+ return '0';
}
}
'financial_type_id' => 2,
'is_active' => 1,
'sequential' => 1,
- 'visibility' => 'Public']);
+ 'visibility' => 'Public',
+ ]);
$this->createTestEntity('Contact', ['first_name', 'Bob', 'contact_type' => 'Individual'], 1);
$this->createTestEntity('Contact', ['first_name', 'Bob too', 'contact_type' => 'Individual'], 2);
$this->createTestEntity('Membership', [
'status_id:name' => 'Current',
], 2);
$memberships = Membership::get()->addSelect('status_id.is_new')->execute();
- $this->assertTrue($memberships[0]['is_new']);
- $this->assertFalse($memberships[1]['is_new']);
+ $this->assertTrue($memberships[0]['status_id.is_new']);
+ $this->assertFalse($memberships[1]['status_id.is_new']);
}
-
}