/**
  * Returns an array with parameters used for processing an action
  *
  * @param array $params
  * @param object CRM_Civirules_EventData_EventData $eventData
  * @return array $params
  * @access protected
  */
 protected function alterApiParameters($params, CRM_Civirules_EventData_EventData $eventData)
 {
     //this function could be overridden in subclasses to alter parameters to meet certain criteraia
     $params['entity_id'] = $eventData->getContactId();
     $params['entity_table'] = 'civicrm_contact';
     return $params;
 }
 public function isConditionValid(CRM_Civirules_EventData_EventData $eventData)
 {
     $contactId = $eventData->getContactId();
     $entityData = $eventData->getEntityData('ContributionSoft');
     $contacts = array();
     $query = $this->conditionParams['smart_group_query'];
     if (!empty($query)) {
         $subQueries = explode(';', $query);
         // To run only first and select statement in query string
         if (!empty($subQueries) && !preg_match('/^(insert|update|delete|create|drop|replace)/i', $subQueries[0])) {
             CRM_Core_Error::debug_var('CiviRules::Custom Query Contact Condition Query', $subQueries[0]);
             CRM_Core_Error::debug_var('CiviRules::Custom Query Contact Condition Param Contribution', $entityData['contribution_id']);
             $dao = CRM_Core_DAO::executeQuery('SELECT ' . $subQueries[0], array(1 => array($entityData['contribution_id'], 'Int')));
             while ($dao->fetch()) {
                 $contacts[] = $dao->contact_id;
             }
         }
     }
     CRM_Core_Error::debug_var('CiviRules::Custom Query Contact Condition Contacts', $contacts);
     if (!empty($contacts)) {
         $eventData->setConditionOutputData('ContributionSoft', $contacts);
         return TRUE;
     } else {
         return FALSE;
     }
 }
 /**
  * Method processAction to execute the action
  *
  * @param CRM_Civirules_EventData_EventData $eventData
  * @access public
  *
  */
 public function processAction(CRM_Civirules_EventData_EventData $eventData)
 {
     $contactId = $eventData->getContactId();
     $processContact = false;
     // retrieve contact type of contact
     $contactParams = array('id' => $contactId, 'return' => 'contact_type');
     $contactType = civicrm_api3('Contact', 'Getvalue', $contactParams);
     // retrieve contact type Donor and only execute if the same
     $donorType = civicrm_api3('ContactType', 'Getsingle', array('name' => 'Donor'));
     try {
         switch ($contactType) {
             case 'Individual':
                 if ($donorType['parent_id'] = 1) {
                     $processContact = true;
                 }
                 break;
             case 'Household':
                 if ($donorType['parent_id'] = 2) {
                     $processContact = true;
                 }
                 break;
             case 'Organization':
                 if ($donorType['parent_id'] = 3) {
                     $processContact = true;
                 }
                 break;
         }
     } catch (CiviCRM_API3_Exception $ex) {
     }
     if ($processContact) {
         $newParams = array('id' => $contactId, 'contact_sub_type' => 'Donor');
         civicrm_api3('Contact', 'Create', $newParams);
     }
 }
 /**
  * Method is mandatory and checks if the condition is met
  *
  * @param CRM_Civirules_EventData_EventData $eventData
  * @return bool
  * @access public
  */
 public function isConditionValid(CRM_Civirules_EventData_EventData $eventData)
 {
     $contactId = $eventData->getContactId();
     $donorHasAny = FALSE;
     $recurringParams = array('contact_id' => $contactId, 'is_test' => 0);
     try {
         $foundRecurring = civicrm_api3('ContributionRecur', 'Get', $recurringParams);
         foreach ($foundRecurring['values'] as $recurring) {
             if (CRM_Civirules_Utils::endDateLaterThanToday($recurring['end_date']) == TRUE || !isset($recurring['end_date'])) {
                 $donorHasAny = TRUE;
             }
         }
         if ($donorHasAny) {
             if ($this->conditionParams['has_recurring']) {
                 $isConditionValid = TRUE;
             } else {
                 $isConditionValid = FALSE;
             }
         } else {
             if ($this->conditionParams['has_recurring']) {
                 $isConditionValid = FALSE;
             } else {
                 $isConditionValid = TRUE;
             }
         }
     } catch (CiviCRM_API3_Exception $ex) {
         if ($this->conditionParams['has_recurring']) {
             $isConditionValid = FALSE;
         } else {
             $isConditionValid = TRUE;
         }
     }
     return $isConditionValid;
 }
 public function isConditionValid(CRM_Civirules_EventData_EventData $eventData)
 {
     $groupContact = $eventData->getEntityData('GroupContact');
     if ($groupContact['group_id'] == $this->conditionParams['group_id']) {
         return true;
     }
     return false;
 }
 /**
  * Method to check if the condition is valid, will check if the contact
  * has an activity of the selected type
  *
  * @param object CRM_Civirules_EventData_EventData $eventData
  * @return bool
  * @access public
  */
 public function isConditionValid(CRM_Civirules_EventData_EventData $eventData)
 {
     $ActivityContact = $eventData->getEntityData('ActivityContact');
     if ($ActivityContact['record_type_id'] == $this->conditionParams['record_type_id']) {
         return true;
     }
     return false;
 }
 public function isConditionValid(CRM_Civirules_EventData_EventData $eventData)
 {
     $contribution = $eventData->getEntityData('Contribution');
     if ($contribution['contribution_status_id'] == $this->conditionParams['contribution_status_id']) {
         return true;
     }
     return false;
 }
 /**
  * Method to check if the condition is valid, will check if the contact
  * has an activity of the selected type
  *
  * @param object CRM_Civirules_EventData_EventData $eventData
  * @return bool
  * @access public
  */
 public function isConditionValid(CRM_Civirules_EventData_EventData $eventData)
 {
     $activity = $eventData->getEntityData('Activity');
     if ($activity['activity_type_id'] == $this->conditionParams['activity_type_id']) {
         return true;
     }
     return false;
 }
 /**
  * Returns value of the field
  *
  * @param object CRM_Civirules_EventData_EventData $eventData
  * @return mixed
  * @access protected
  */
 protected function getFieldValue(CRM_Civirules_EventData_EventData $eventData)
 {
     $contribution = $eventData->getEntityData('Contribution');
     if (isset($contribution['total_amount'])) {
         return (double) $contribution['total_amount'];
     }
     return (double) 0.0;
     //undefined birth date
 }
 /**
  * Method processAction to execute the action
  *
  * @param CRM_Civirules_EventData_EventData $eventData
  * @access public
  *
  */
 public function processAction(CRM_Civirules_EventData_EventData $eventData)
 {
     $contactId = $eventData->getContactId();
     //we cannot delete domain contacts
     if (CRM_Contact_BAO_Contact::checkDomainContact($contactId)) {
         return;
     }
     CRM_Contact_BAO_Contact::deleteContact($contactId);
 }
    /**
     * Method to determine if the condition is valid
     *
     * @param CRM_Civirules_EventData_EventData $eventData
     * @return bool
     */
    public function isConditionValid(CRM_Civirules_EventData_EventData $eventData)
    {
        $isConditionValid = FALSE;
        $contact_id = $eventData->getContactId();
        /*
         * retrieve count of contributions for donor grouped by extracted YMD from receive_date
         */
        $query = 'SELECT COUNT(DISTINCT CONCAT(EXTRACT(YEAR FROM receive_date),
EXTRACT(MONTH FROM receive_date), EXTRACT(DAY FROM receive_date))) AS distinctDates
FROM civicrm_contribution WHERE contact_id = %1 AND civicrm_contribution.contribution_status_id = %2';
        $params = array(1 => array($contact_id, 'Positive'), 2 => array(CRM_Civirules_Utils::getContributionStatusIdWithName('Completed'), 'Positive'));
        $periodStartDate = CRM_CivirulesConditions_Utils_Period::convertPeriodToStartDate($this->conditionParams);
        $periodEndDate = CRM_CivirulesConditions_Utils_Period::convertPeriodToEndDate($this->conditionParams);
        if ($periodStartDate) {
            $query .= " AND DATE(`receive_date`) >= '" . $periodStartDate->format('Y-m-d') . "'";
        }
        if ($periodEndDate) {
            $query .= " AND DATE(`receive_date`) <= '" . $periodEndDate->format('Y-m-d') . "'";
        }
        $dao = CRM_Core_DAO::executeQuery($query, $params);
        if ($dao->fetch()) {
            switch ($this->conditionParams['operator']) {
                case 1:
                    if ($dao->distinctDates != $this->conditionParams['no_of_days']) {
                        $isConditionValid = TRUE;
                    }
                    break;
                case 2:
                    if ($dao->distinctDates > $this->conditionParams['no_of_days']) {
                        $isConditionValid = TRUE;
                    }
                    break;
                case 3:
                    if ($dao->distinctDates >= $this->conditionParams['no_of_days']) {
                        $isConditionValid = TRUE;
                    }
                    break;
                case 4:
                    if ($dao->distinctDates < $this->conditionParams['no_of_days']) {
                        $isConditionValid = TRUE;
                    }
                    break;
                case 5:
                    if ($dao->distinctDates <= $this->conditionParams['no_of_days']) {
                        $isConditionValid = TRUE;
                    }
                    break;
                default:
                    if ($dao->distinctDates == $this->conditionParams['no_of_days']) {
                        $isConditionValid = TRUE;
                    }
                    break;
            }
        }
        return $isConditionValid;
    }
 /**
  * Returns the value of the field for the condition
  * For example: I want to check if age > 50, this function would return the 50
  *
  * @param object CRM_Civirules_EventData_EventData $eventData
  * @return
  * @access protected
  * @abstract
  */
 protected function getFieldValue(CRM_Civirules_EventData_EventData $eventData)
 {
     $entity = $this->conditionParams['entity'];
     $field = $this->conditionParams['field'];
     $data = $eventData->getEntityData($entity);
     if (isset($data[$field])) {
         return $this->normalizeValue($data[$field]);
     }
     return null;
 }
 /**
  * Returns value of the field
  *
  * @param object CRM_Civirules_EventData_EventData $eventData
  * @return mixed
  * @access protected
  */
 protected function getFieldValue(CRM_Civirules_EventData_EventData $eventData)
 {
     $sourceBirthDate = civicrm_api3('Contact', 'getvalue', array('id' => $eventData->getContactId(), 'return' => 'birth_date'));
     if ($sourceBirthDate) {
         $birthDate = new DateTime($sourceBirthDate);
         return $birthDate->diff(new DateTime('now'))->y;
     }
     return false;
     //undefined birth date
 }
 /**
  * Returns an array with parameters used for processing an action
  *
  * @param array $params
  * @param object CRM_Civirules_EventData_EventData $eventData
  * @return array $params
  * @access protected
  */
 protected function alterApiParameters($params, CRM_Civirules_EventData_EventData $eventData)
 {
     //this function could be overridden in subclasses to alter parameters to meet certain criteraia
     $params['contact_id'] = $eventData->getContactId();
     $entityData = $eventData->getEntityData('ContributionSoft');
     // Alter Params if contribution soft event is happening
     if (!empty($entityData)) {
         $params['contact_id'] = $eventData->getConditionOutputData('ContributionSoft');
     }
     return $params;
 }
 /**
  * Method to determine if the condition is valid
  *
  * @param CRM_Civirules_EventData_EventData $eventData
  * @return bool
  */
 public function isConditionValid(CRM_Civirules_EventData_EventData $eventData)
 {
     $isConditionValid = FALSE;
     $recurring = $eventData->getEntityData('ContributionRecur');
     if ($this->conditionParams['end_date'] == 0 && empty($recurring['end_date'])) {
         $isConditionValid = TRUE;
     }
     if ($this->conditionParams['end_date'] == 1 && !empty($recurring['end_date'])) {
         $isConditionValid = TRUE;
     }
     return $isConditionValid;
 }
 /**
  * Returns an array with parameters used for processing an action
  *
  * @param array $params
  * @param object CRM_Civirules_EventData_EventData $eventData
  * @return array $params
  * @access protected
  */
 protected function alterApiParameters($params, CRM_Civirules_EventData_EventData $eventData)
 {
     $action_params = $this->getActionParameters();
     //this function could be overridden in subclasses to alter parameters to meet certain criteraia
     $params['target_contact_id'] = $eventData->getContactId();
     $params['activity_type_id'] = $action_params['activity_type_id'];
     $params['status_id'] = $action_params['status_id'];
     $params['subject'] = $action_params['subject'];
     if (!empty($action_params['assignee_contact_id'])) {
         $params['assignee_contact_id'] = $action_params['assignee_contact_id'];
     }
     return $params;
 }
 /**
  * Returns value of the field
  *
  * @param object CRM_Civirules_EventData_EventData $eventData
  * @return mixed
  * @access protected
  */
 protected function getFieldValue(CRM_Civirules_EventData_EventData $eventData)
 {
     $completed_status_id = CRM_Core_OptionGroup::getValue('contribution_status', 'completed', 'name');
     $contact_id = $eventData->getContactId();
     $params[1] = array($completed_status_id, 'Integer');
     $params[2] = array($contact_id, 'Integer');
     $last_date = CRM_Core_DAO::singleValueQuery("SELECT MAX(`receive_date`) FROM `civicrm_contribution` WHERE `contribution_status_id` = %1 AND `contact_id` = %2", $params);
     if ($last_date) {
         $last_date = new DateTime($last_date);
         return $last_date->diff(new DateTime('now'))->days;
     }
     return false;
     //undefined contribution date
 }
 public function __construct($contactId, $entity, $data)
 {
     parent::__construct();
     $this->entity = $entity;
     $this->contact_id = $contactId;
     $this->setEntityData($entity, $data);
 }
    /**
     * Method to determine if the condition is valid
     *
     * @param CRM_Civirules_EventData_EventData $eventData
     * @return bool
     */
    public function isConditionValid(CRM_Civirules_EventData_EventData $eventData)
    {
        $isConditionValid = FALSE;
        $contribution = $eventData->getEntityData('Contribution');
        /*
         * retrieve count of completed contributions for donor where recurring_contribution_id is not empty
         */
        $query = 'SELECT COUNT(*) AS recurringContributions FROM civicrm_contribution
WHERE contact_id = %1 AND civicrm_contribution.contribution_recur_id > %2 AND contribution_status_id = %3';
        $params = array(1 => array($contribution['contact_id'], 'Positive'), 2 => array(0, 'Positive'), 3 => array(CRM_Civirules_Utils::getContributionStatusIdWithName('Completed'), 'String'));
        $dao = CRM_Core_DAO::executeQuery($query, $params);
        if ($dao->fetch()) {
            switch ($this->conditionParams['operator']) {
                case 1:
                    if ($dao->recurringContributions != $this->conditionParams['no_of_recurring']) {
                        $isConditionValid = TRUE;
                    }
                    break;
                case 2:
                    if ($dao->recurringContributions > $this->conditionParams['no_of_recurring']) {
                        $isConditionValid = TRUE;
                    }
                    break;
                case 3:
                    if ($dao->recurringContributions >= $this->conditionParams['no_of_recurring']) {
                        $isConditionValid = TRUE;
                    }
                    break;
                case 4:
                    if ($dao->recurringContributions < $this->conditionParams['no_of_recurring']) {
                        $isConditionValid = TRUE;
                    }
                    break;
                case 5:
                    if ($dao->recurringContributions <= $this->conditionParams['no_of_recurring']) {
                        $isConditionValid = TRUE;
                    }
                    break;
                default:
                    if ($dao->recurringContributions == $this->conditionParams['no_of_recurring']) {
                        $isConditionValid = TRUE;
                    }
                    break;
            }
        }
        return $isConditionValid;
    }
 /**
  * This method returns true or false when an condition is valid or not
  *
  * @param CRM_Civirules_EventData_EventData $eventData
  * @return bool
  * @access public
  * @abstract
  */
 public function isConditionValid(CRM_Civirules_EventData_EventData $eventData)
 {
     $isConditionValid = false;
     $contact_id = $eventData->getContactId();
     switch ($this->conditionParams['operator']) {
         case 'in one of':
             $isConditionValid = $this->contactIsMemberOfOneGroup($contact_id, $this->conditionParams['group_ids']);
             break;
         case 'in all of':
             $isConditionValid = $this->contactIsMemberOfAllGroups($contact_id, $this->conditionParams['group_ids']);
             break;
         case 'not in':
             $isConditionValid = $this->contactIsNotMemberOfGroup($contact_id, $this->conditionParams['group_ids']);
             break;
     }
     return $isConditionValid;
 }
 /**
  * This method returns true or false when an condition is valid or not
  *
  * @param CRM_Civirules_EventData_EventData $eventData
  * @return bool
  * @access public
  * @abstract
  */
 public function isConditionValid(CRM_Civirules_EventData_EventData $eventData)
 {
     $isConditionValid = false;
     $contact_id = $eventData->getContactId();
     switch ($this->conditionParams['operator']) {
         case 'in one of':
             $isConditionValid = $this->contactHasOneOfTags($contact_id, $this->conditionParams['tag_ids']);
             break;
         case 'in all of':
             $isConditionValid = $this->contactHasAllTags($contact_id, $this->conditionParams['tag_ids']);
             break;
         case 'not in':
             $isConditionValid = $this->contactHasNotTag($contact_id, $this->conditionParams['tag_ids']);
             break;
     }
     return $isConditionValid;
 }
 /**
  * Method to determine if the condition is valid
  *
  * @param CRM_Civirules_EventData_EventData $eventData
  * @return bool
  */
 public function isConditionValid(CRM_Civirules_EventData_EventData $eventData)
 {
     $isConditionValid = FALSE;
     $contribution = $eventData->getEntityData('Contribution');
     switch ($this->conditionParams['operator']) {
         case 0:
             if ($contribution['financial_type_id'] == $this->conditionParams['financial_type_id']) {
                 $isConditionValid = TRUE;
             }
             break;
         case 1:
             if ($contribution['financial_type_id'] != $this->conditionParams['financial_type_id']) {
                 $isConditionValid = TRUE;
             }
             break;
     }
     return $isConditionValid;
 }
 /**
  * Returns value of the field
  *
  * @param object CRM_Civirules_EventData_EventData $eventData
  * @return mixed
  * @access protected
  */
 protected function getFieldValue(CRM_Civirules_EventData_EventData $eventData)
 {
     $completed_status_id = CRM_Core_OptionGroup::getValue('contribution_status', 'completed', 'name');
     $contact_id = $eventData->getContactId();
     $sql = "SELECT SUM(`total_amount`)\n            FROM `civicrm_contribution`\n            WHERE `contribution_status_id` = %1 AND `contact_id` = %2";
     $params[1] = array($completed_status_id, 'Integer');
     $params[2] = array($contact_id, 'Integer');
     $periodStartDate = CRM_CivirulesConditions_Utils_Period::convertPeriodToStartDate($this->conditionParams);
     $periodEndDate = CRM_CivirulesConditions_Utils_Period::convertPeriodToEndDate($this->conditionParams);
     if ($periodStartDate) {
         $sql .= " AND DATE(`receive_date`) >= '" . $periodStartDate->format('Y-m-d') . "'";
     }
     if ($periodEndDate) {
         $sql .= " AND DATE(`receive_date`) <= '" . $periodEndDate->format('Y-m-d') . "'";
     }
     $total_amount = (double) CRM_Core_DAO::singleValueQuery($sql, $params);
     return $total_amount;
 }
 /**
  * Method to determine if the condition is valid
  *
  * @param CRM_Civirules_EventData_EventData $eventData
  * @return bool
  */
 public function isConditionValid(CRM_Civirules_EventData_EventData $eventData)
 {
     $isConditionValid = FALSE;
     $this->buildWhereClauses($eventData->getEntityData('Contribution'));
     if (!empty($this->whereClauses)) {
         $query = 'SELECT COUNT(*) as countContributions FROM civicrm_contribution WHERE ' . implode(' AND ', $this->whereClauses);
         $dao = CRM_Core_DAO::executeQuery($query, $this->whereParams);
         if ($dao->fetch()) {
             switch ($this->conditionParams['count_operator']) {
                 case 1:
                     if ($dao->countContributions != $this->conditionParams['no_of_contributions']) {
                         $isConditionValid = TRUE;
                     }
                     break;
                 case 2:
                     if ($dao->countContributions > $this->conditionParams['no_of_contributions']) {
                         $isConditionValid = TRUE;
                     }
                     break;
                 case 3:
                     if ($dao->countContributions >= $this->conditionParams['no_of_contributions']) {
                         $isConditionValid = TRUE;
                     }
                     break;
                 case 4:
                     if ($dao->countContributions < $this->conditionParams['no_of_contributions']) {
                         $isConditionValid = TRUE;
                     }
                     break;
                 case 5:
                     if ($dao->countContributions <= $this->conditionParams['no_of_contributions']) {
                         $isConditionValid = TRUE;
                     }
                     break;
                 default:
                     if ($dao->countContributions == $this->conditionParams['no_of_contribution']) {
                         $isConditionValid = TRUE;
                     }
                     break;
             }
         }
     }
     return $isConditionValid;
 }
 public function __construct($entity, $objectId, $data)
 {
     parent::__construct();
     $this->entity = $entity;
     $this->setEntityData($entity, $data);
     if ($entity == 'contact') {
         $this->contact_id = $objectId;
     } elseif (isset($data['contact_id'])) {
         $this->contact_id = $data['contact_id'];
     }
 }
 /**
  * Method processAction to execute the action
  *
  * @param CRM_Civirules_EventData_EventData $eventData
  * @access public
  *
  */
 public function processAction(CRM_Civirules_EventData_EventData $eventData)
 {
     $contactId = $eventData->getContactId();
     $subTypes = CRM_Contact_BAO_Contact::getContactSubType($contactId);
     $contactType = CRM_Contact_BAO_Contact::getContactType($contactId);
     $changed = false;
     $action_params = $this->getActionParameters();
     foreach ($action_params['sub_type'] as $sub_type) {
         if (CRM_Contact_BAO_ContactType::isExtendsContactType($sub_type, $contactType)) {
             $subTypes[] = $sub_type;
             $changed = true;
         }
     }
     if ($changed) {
         $params['id'] = $contactId;
         $params['contact_id'] = $contactId;
         $params['contact_type'] = $contactType;
         $params['contact_sub_type'] = $subTypes;
         CRM_Contact_BAO_Contact::add($params);
     }
 }
 /**
  * Method is mandatory and checks if the condition is met
  *
  * @param CRM_Civirules_EventData_EventData $eventData
  * @return bool
  * @access public
  */
 public function isConditionValid(CRM_Civirules_EventData_EventData $eventData)
 {
     $contactId = $eventData->getContactId();
     $contributionParams = array('contact_id' => $contactId);
     $countContributions = civicrm_api3('Contribution', 'getcount', $contributionParams);
     switch ($countContributions) {
         case 0:
             return TRUE;
             break;
         case 1:
             $existingContribution = civicrm_api3('Contribution', 'Getsingle', array('contact_id' => $contactId));
             $eventContribution = $eventData->getEntityData('Contribution');
             if ($eventContribution['contribution_id'] == $existingContribution['contribution_id']) {
                 return TRUE;
             }
             break;
         default:
             return FALSE;
             break;
     }
 }
 /**
  * Process the action
  *
  * @param CRM_Civirules_EventData_EventData $eventData
  * @access public
  */
 public function processAction(CRM_Civirules_EventData_EventData $eventData)
 {
     $entity = $this->getApiEntity();
     $action = $this->getApiAction();
     $contactId = $eventData->getContactId();
     $action_params = $this->getActionParameters();
     $group_ids = array();
     if (!empty($action_params['group_id'])) {
         $group_ids = array($action_params['group_id']);
     } elseif (!empty($action_params['group_ids']) && is_array($action_params['group_ids'])) {
         $group_ids = $action_params['group_ids'];
     }
     foreach ($group_ids as $group_id) {
         if (CRM_CivirulesConditions_Utils_GroupContact::isContactInGroup($contactId, $group_id)) {
             $params = array();
             $params['group_id'] = $group_id;
             //alter parameters by subclass
             $params = $this->alterApiParameters($params, $eventData);
             //execute the action
             $this->executeApiAction($entity, $action, $params);
         }
     }
 }
 /**
  * Method processAction to execute the action
  *
  * @param CRM_Civirules_EventData_EventData $eventData
  * @access public
  *
  */
 public function processAction(CRM_Civirules_EventData_EventData $eventData)
 {
     $contribution = $eventData->getEntityData('Contribution');
     $actionParams = $this->getActionParameters();
     switch ($actionParams['thank_you_radio']) {
         case 1:
             if (!empty($actionParams['number_of_days'])) {
                 $thankYouDate = new DateTime();
                 $thankYouDate->modify('+' . $actionParams['number_of_days'] . ' day');
             }
             break;
         case 2:
             $thankYouDate = new DateTime($actionParams['thank_you_date']);
             break;
         default:
             $thankYouDate = new DateTime();
             break;
     }
     $params = array('id' => $contribution['id'], 'thankyou_date' => $thankYouDate->format('Ymd'));
     try {
         civicrm_api3('Contribution', 'Create', $params);
     } catch (CiviCRM_API3_Exception $ex) {
     }
 }
 /**
  * Method to get the field data
  *
  * @param object CRM_Civirules_EventData_EventData $eventData
  * @return mixed|null
  * @access protected
  */
 protected function getFieldData(CRM_Civirules_EventData_EventData $eventData)
 {
     $entity = $this->getEntity();
     $data = $eventData->getEntityData($entity);
     $field = $this->getField();
     if (isset($data[$field])) {
         return $this->transformFieldData($data[$field]);
     }
     return null;
 }