This deprecates 'today' as a synonym for 'now' as the latter is more standard and slightly simplifies the date handling
$calcStatus = CRM_Member_BAO_MembershipStatus::getMembershipStatusByDate($dates['start_date'],
$dates['end_date'],
$dates['join_date'],
- 'today',
+ 'now',
TRUE,
$membership->membership_type_id,
(array) $membership
$calcStatus = CRM_Member_BAO_MembershipStatus::getMembershipStatusByDate($dates['start_date'],
$dates['end_date'],
$dates['join_date'],
- 'today',
+ 'now',
TRUE,
$membershipParams['membership_type_id'],
$membershipParams
}
$calcStatus = CRM_Member_BAO_MembershipStatus::getMembershipStatusByDate($params['start_date'], $params['end_date'], $params['join_date'],
- 'today', $excludeIsAdmin, $params['membership_type_id'] ?? NULL, $params
+ 'now', $excludeIsAdmin, $params['membership_type_id'] ?? NULL, $params
);
if (empty($calcStatus)) {
throw new CRM_Core_Exception(ts("The membership cannot be saved because the status cannot be calculated for start_date: {$params['start_date']} end_date {$params['end_date']} join_date {$params['join_date']} as at " . date('Y-m-d H:i:s')));
* @throws \CRM_Core_Exception
*/
public static function fixMembershipStatusBeforeRenew(&$currentMembership, $changeToday) {
- $today = NULL;
+ $today = 'now';
if ($changeToday) {
$today = CRM_Utils_Date::processDate($changeToday, NULL, FALSE, 'Y-m-d');
}
CRM_Utils_Date::customFormat($dates['join_date'],
$statusFormat
),
- 'today',
+ 'now',
TRUE,
$membershipTypeID,
$memParams
$updates["start_date"] ?? $newMembership->start_date,
$updates["end_date"] ?? $newMembership->end_date,
$updates["join_date"] ?? $newMembership->join_date,
- 'today',
+ 'now',
FALSE,
$newMembershipId,
$newMembership
*/
public static function getMembershipStatusByDate(
$startDate, $endDate, $joinDate,
- $statusDate = 'today', $excludeIsAdmin = FALSE, $membershipTypeID = NULL, $membership = []
+ $statusDate = 'now', $excludeIsAdmin = FALSE, $membershipTypeID = NULL, $membership = []
) {
$membershipDetails = [];
- if (!$statusDate || $statusDate == 'today') {
- $statusDate = date('Ymd');
- }
- else {
- $statusDate = CRM_Utils_Date::customFormat($statusDate, '%Y%m%d');
+ if (!$statusDate || $statusDate === 'today') {
+ $statusDate = 'now';
+ CRM_Core_Error::deprecatedFunctionWarning('pass now rather than today in');
}
+ $statusDate = date('Ymd', strtotime($statusDate));
+
//fix for CRM-3570, if we have statuses with is_admin=1,
//exclude these statuses from calculatation during import.
$where = "is_active = 1";
$calcStatus = CRM_Member_BAO_MembershipStatus::getMembershipStatusByDate($startDate,
$endDate,
$joinDate,
- 'today',
+ 'now',
TRUE,
$memType,
$params
$calcStatus = CRM_Member_BAO_MembershipStatus::getMembershipStatusByDate($startDate,
$endDate,
$joinDate,
- 'today',
+ 'now',
$excludeIsAdmin,
$formatted['membership_type_id'],
$formatted
$calcStatus = CRM_Member_BAO_MembershipStatus::getMembershipStatusByDate($startDate,
$endDate,
$joinDate,
- 'today',
+ 'now',
$excludeIsAdmin,
$formatted['membership_type_id'],
$formatted
$dao = CRM_Core_DAO::executeQuery($query, $params);
if ($dao->fetch()) {
$membershipTypeID = empty($membershipParams['membership_type_id']) ? $dao->membership_type_id : $membershipParams['membership_type_id'];
- $result = CRM_Member_BAO_MembershipStatus::getMembershipStatusByDate($dao->start_date, $dao->end_date, $dao->join_date, 'today', CRM_Utils_Array::value('ignore_admin_only', $membershipParams), $membershipTypeID, $membershipParams);
+ $result = CRM_Member_BAO_MembershipStatus::getMembershipStatusByDate($dao->start_date, $dao->end_date, $dao->join_date, 'now', CRM_Utils_Array::value('ignore_admin_only', $membershipParams), $membershipTypeID, $membershipParams);
//make is error zero only when valid status found.
if (!empty($result['id'])) {
$result['is_error'] = 0;
$membershipStatus = CRM_Member_BAO_MembershipStatus::add($params);
$toDate = date('Ymd');
- $result = CRM_Member_BAO_MembershipStatus::getMembershipStatusByDate($toDate, $toDate, $toDate, 'today', TRUE, NULL, $params);
+ $result = CRM_Member_BAO_MembershipStatus::getMembershipStatusByDate($toDate, $toDate, $toDate, 'now', TRUE, NULL, $params);
$this->assertEquals($result['name'], 'Current', 'Verify membership status record.');
$this->callAPISuccess('MembershipStatus', 'Delete', ['id' => $membershipStatus->id]);
*
* @dataProvider getThousandSeparators
* @throws \CRM_Core_Exception
+ * @throws \CiviCRM_API3_Exception
*/
public function testSubmit($thousandSeparator) {
CRM_Core_Session::singleton()->getStatus(TRUE);