Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Save information that data were exported #176

Merged
merged 10 commits into from
Dec 20, 2018
Prev Previous commit
Next Next commit
Implement Activity exported activity #157
  • Loading branch information
scardinius committed Aug 2, 2018
commit 0a540291975af40ac90905e50acb86a8ce7adf1b
39 changes: 38 additions & 1 deletion gdpr.php
Original file line number Diff line number Diff line change
Expand Up @@ -382,8 +382,45 @@ function gdpr_civicrm_exportIds($ids, $componentTable, $exportMode) {
break;

case CRM_Export_Form_Select::ACTIVITY_EXPORT:
CRM_Core_Error::debug_var('$ids', $ids);
$session = CRM_Core_Session::singleton();
$loggedUserID = $session->get('userID');
$activityTypeId = CRM_Gdpr_Activity::activityExportedTypeId();
$query = "SELECT DISTINCTROW
ac.contact_id, ac.activity_id, ovt.activity_name, ovs.activity_status,
DATE_FORMAT(a.activity_date_time, '%Y-%m-%d') activity_date
FROM civicrm_activity a
JOIN civicrm_activity_contact ac ON ac.activity_id = a.id
JOIN (SELECT
v.value, v.label activity_name
FROM civicrm_option_value v
JOIN civicrm_option_group g ON g.id = v.option_group_id AND g.name = 'activity_type'
) ovt ON ovt.value = a.activity_type_id
JOIN (SELECT
v.value, v.label activity_status
FROM civicrm_option_value v
JOIN civicrm_option_group g ON g.id = v.option_group_id AND g.name = 'activity_status'
) ovs ON ovs.value = a.status_id
WHERE a.id IN (" . implode(', ', array_values($ids)) .")
AND ac.record_type_id IN (2, 3)";
$dao = CRM_Core_DAO::executeQuery($query);
while ($dao->fetch()) {
$params = [
'sequential' => 1,
'source_record_id' => $dao->activity_id,
'source_contact_id' => $loggedUserID,
'activity_type_id' => $activityTypeId,
'parent_id' => $dao->activity_id,
'activity_date_time' => date('YmdHis'),
'status_id' => 'Completed',
'subject' => $dao->activity_name . " (" . $dao->activity_status . ") at " . $dao->activity_date,
'api.ActivityContact.create' => [
'activity_id' => '$value.id',
'contact_id' => $dao->contact_id,
'record_type_id' => 3,
]
];
CRM_Gdpr_Utils::CiviCRMAPIWrapper('Activity', 'create', $params);
}
break;

case CRM_Export_Form_Select::CONTRIBUTE_EXPORT:
Expand Down