Skip to content
Snippets Groups Projects
RelationshipSource.php 1.72 KiB
Newer Older
  • Learn to ignore specific revisions
  • jaapjansma's avatar
    jaapjansma committed
    <?php
    /**
     * @author Jaap Jansma <jaap.jansma@civicoop.org>
     * @license AGPL-3.0
     */
    
    namespace Civi\DataProcessor\Source;
    
    use Civi\DataProcessor\DataFlow\SqlDataFlow\SimpleWhereClause;
    use Civi\DataProcessor\DataFlow\SqlTableDataFlow;
    use Civi\DataProcessor\DataSpecification\DataSpecification;
    use Civi\DataProcessor\DataSpecification\FieldSpecification;
    
    use CRM_Dataprocessor_ExtensionUtil as E;
    
    
    jaapjansma's avatar
    jaapjansma committed
    class RelationshipSource extends AbstractCivicrmEntitySource {
    
    jaapjansma's avatar
    jaapjansma committed
    
      /**
    
    jaapjansma's avatar
    jaapjansma committed
       * Returns the entity name
       *
       * @return String
    
    jaapjansma's avatar
    jaapjansma committed
       */
    
    jaapjansma's avatar
    jaapjansma committed
      protected function getEntity() {
        return 'Relationship';
    
    jaapjansma's avatar
    jaapjansma committed
      }
    
      /**
    
    jaapjansma's avatar
    jaapjansma committed
       * Returns the table name of this entity
    
    jaapjansma's avatar
    jaapjansma committed
       *
    
    jaapjansma's avatar
    jaapjansma committed
       * @return String
    
    jaapjansma's avatar
    jaapjansma committed
       */
    
    jaapjansma's avatar
    jaapjansma committed
      protected function getTable() {
        return 'civicrm_relationship';
    
    jaapjansma's avatar
    jaapjansma committed
      }
    
      /**
    
    jaapjansma's avatar
    jaapjansma committed
       * @return \Civi\DataProcessor\DataSpecification\DataSpecification
       * @throws \Exception
    
    jaapjansma's avatar
    jaapjansma committed
       */
    
    jaapjansma's avatar
    jaapjansma committed
      public function getAvailableFilterFields() {
        if (!$this->availableFilterFields) {
          $this->availableFilterFields = new DataSpecification();
    
          $alias = $this->getSourceName(). '_relationship_type_id';
          $options = array();
          $relationship_types = civicrm_api3('RelationshipType', 'get', array('options' => array('limit' => 0)));
          foreach($relationship_types['values'] as $rel_type) {
            $options[$rel_type['id']] = $rel_type['label_a_b'];
          }
          $fieldSpec = new FieldSpecification('relationship_type_id', 'Integer', E::ts('Relationship type'), $options, $alias);
          $this->availableFilterFields->addFieldSpecification($fieldSpec->name, $fieldSpec);
    
          $this->loadFields($this->availableFilterFields, array('relationship_type_id'));
          $this->loadCustomGroupsAndFields($this->availableFilterFields, true);
        }
        return $this->availableFilterFields;
    
    jaapjansma's avatar
    jaapjansma committed
      }
    
    }