From d5a5456b5a815c37f7edce3f76b166a94caa1c1c Mon Sep 17 00:00:00 2001
From: Matthew Wire <mjw@mjwconsult.co.uk>
Date: Wed, 12 Feb 2020 11:09:05 +0000
Subject: [PATCH] Add Recurring Contribution as datasource

---
 Civi/DataProcessor/Factory.php                |  1 +
 .../Contribution/ContributionRecurSource.php  | 49 +++++++++++++++++++
 2 files changed, 50 insertions(+)
 create mode 100644 Civi/DataProcessor/Source/Contribution/ContributionRecurSource.php

diff --git a/Civi/DataProcessor/Factory.php b/Civi/DataProcessor/Factory.php
index 37ba0419..60d6a491 100644
--- a/Civi/DataProcessor/Factory.php
+++ b/Civi/DataProcessor/Factory.php
@@ -105,6 +105,7 @@ class Factory {
     $this->addDataSource('website', 'Civi\DataProcessor\Source\Contact\WebsiteSource', E::ts('Website'));
     $this->addDataSource('campaign', 'Civi\DataProcessor\Source\Campaign\CampaignSource', E::ts('Campaign'));
     $this->addDataSource('contribution', 'Civi\DataProcessor\Source\Contribution\ContributionSource', E::ts('Contribution'));
+    $this->addDataSource('contribution_recur', 'Civi\DataProcessor\Source\Contribution\ContributionRecurSource', E::ts('Recurring Contribution'));
     $this->addDataSource('case', 'Civi\DataProcessor\Source\Cases\CaseSource', E::ts('Case'));
     $this->addDataSource('relationship', 'Civi\DataProcessor\Source\Contact\RelationshipSource', E::ts('Relationship'));
     $this->addDataSource('relationship_type', 'Civi\DataProcessor\Source\Contact\RelationshipTypeSource', E::ts('Relationship Type'));
diff --git a/Civi/DataProcessor/Source/Contribution/ContributionRecurSource.php b/Civi/DataProcessor/Source/Contribution/ContributionRecurSource.php
new file mode 100644
index 00000000..637ac415
--- /dev/null
+++ b/Civi/DataProcessor/Source/Contribution/ContributionRecurSource.php
@@ -0,0 +1,49 @@
+<?php
+/**
+ * @author Jaap Jansma <jaap.jansma@civicoop.org>
+ * @license AGPL-3.0
+ */
+
+namespace Civi\DataProcessor\Source\Contribution;
+
+use Civi\DataProcessor\Source\AbstractCivicrmEntitySource;
+
+use CRM_Dataprocessor_ExtensionUtil as E;
+
+class ContributionRecurSource extends AbstractCivicrmEntitySource {
+
+  /**
+   * Returns the entity name
+   *
+   * @return String
+   */
+  protected function getEntity() {
+    return 'ContributionRecur';
+  }
+
+  /**
+   * Returns the table name of this entity
+   *
+   * @return String
+   */
+  protected function getTable() {
+    return 'civicrm_contribution_recur';
+  }
+
+  /**
+   * Returns the default configuration for this data source
+   *
+   * @return array
+   */
+  public function getDefaultConfiguration() {
+    return [
+      'filter' => [
+        'is_test' => [
+          'op' => '=',
+          'value' => '0',
+        ]
+      ]
+    ];
+  }
+
+}
-- 
GitLab