2022-01-04 12:06:53 +00:00
|
|
|
<?php
|
|
|
|
use CRM_Bij1migratie_ExtensionUtil as E;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Class voor BIJ1 migratie activiteit verwerking
|
|
|
|
*
|
|
|
|
* @author Erik Hommel (CiviCooP) <erik.hommel@civicoop.org>
|
|
|
|
* @date 4 Jan 2022
|
|
|
|
* @license AGPL-3.0
|
|
|
|
*/
|
|
|
|
class CRM_Bij1migratie_Activiteit {
|
|
|
|
private $_gereedActivityStatusId;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Constructor CRM_Bij1migratie_Activiteit
|
|
|
|
*/
|
|
|
|
public function __construct() {
|
|
|
|
$query = "SELECT cov.value
|
|
|
|
FROM civicrm_option_group cog JOIN civicrm_option_value cov ON cog.id = cov.option_group_id
|
|
|
|
WHERE cog.name = %1 AND cov.name = %2";
|
|
|
|
$this->_gereedActivityStatusId = (int) CRM_Core_DAO::singleValueQuery($query, [
|
|
|
|
1 => ["activity_status", "String"],
|
2022-01-06 16:07:43 +00:00
|
|
|
2 => ["Completed", "String"],
|
2022-01-04 12:06:53 +00:00
|
|
|
]);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Method om een lidmaatschapsaanvraag aan te maken
|
|
|
|
*
|
|
|
|
* @param int $contactId
|
|
|
|
* @param DateTime $aanvraagDatum
|
|
|
|
* @param string|NULL $frequentie
|
|
|
|
* @throws API_Exception
|
|
|
|
* @throws \Civi\API\Exception\UnauthorizedException
|
|
|
|
*/
|
|
|
|
public function maakLidmaatschapsaanvraag(int $contactId, DateTime $aanvraagDatum, string $frequentie = NULL) {
|
|
|
|
if ($contactId) {
|
|
|
|
$contacts = \Civi\Api4\Contact::get()
|
|
|
|
->addSelect('first_name', 'last_name', 'email.email')
|
|
|
|
->addJoin('Email AS email', 'LEFT', ['id', '=', 'email.contact_id'])
|
|
|
|
->addWhere('id', '=', $contactId)
|
|
|
|
->addWhere('email.is_primary', '=', TRUE)
|
|
|
|
->execute();
|
|
|
|
$contactData = $contacts->first();
|
|
|
|
$activity = \Civi\Api4\Activity::create()
|
|
|
|
->addValue('activity_type_id', Civi::service('bij1Algemeen')->getLidmaatschapsaanvraagTypeId())
|
|
|
|
->addValue('subject', 'Lidmaatschapsaanvraag aangemaakt bij migratie naar CiviCRM')
|
|
|
|
->addValue('activity_date_time', $aanvraagDatum->format('Y-m-d'))
|
|
|
|
->addValue('status_id', $this->_gereedActivityStatusId)
|
|
|
|
->addValue('target_contact_id', [$contactId])
|
|
|
|
->addValue('source_contact_id', 1);
|
|
|
|
if (isset($contactData['first_name'])) {
|
|
|
|
$activity->addValue('lidmaatschapsaanvraag_data.voornaam', $contactData['first_name']);
|
|
|
|
}
|
|
|
|
if (isset($contactData['last_name'])) {
|
|
|
|
$activity->addValue('lidmaatschapsaanvraag_data.achternaam', $contactData['last_name']);
|
|
|
|
}
|
|
|
|
if (isset($contactData['email.email'])) {
|
|
|
|
$activity->addValue('lidmaatschapsaanvraag_data.email', $contactData['email.email']);
|
|
|
|
}
|
|
|
|
if ($frequentie) {
|
|
|
|
$activity->addValue('lidmaatschapsaanvraag_data.frequentie', $frequentie);
|
|
|
|
}
|
|
|
|
$activity->execute();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|