$queryOperator = 'AND'
) {
- $processor = new CRM_Export_BAO_ExportProcessor($exportMode);
+ $processor = new CRM_Export_BAO_ExportProcessor($exportMode, $queryOperator);
$returnProperties = array();
$paymentFields = $selectedPaymentFields = FALSE;
CRM_Contact_BAO_ProximityQuery::fixInputParams($params);
}
- list($query, $select, $from, $where, $having) = $processor->runQuery($params, $order, $queryOperator, $returnProperties);
+ list($query, $select, $from, $where, $having) = $processor->runQuery($params, $order, $returnProperties);
if ($mergeSameHousehold == 1) {
if (empty($returnProperties['id'])) {
*/
protected $queryFields = [];
+ /**
+ * Either AND or OR.
+ *
+ * @var string
+ */
+ protected $queryOperator;
+
+ /**
+ * CRM_Export_BAO_ExportProcessor constructor.
+ *
+ * @param int $exportMode
+ * @param string $queryOperator
+ */
+ public function __construct($exportMode, $queryOperator) {
+ $this->setExportMode($exportMode);
+ $this->setQueryMode();
+ $this->setQueryOperator($queryOperator);
+ }
+
+ /**
+ * @return string
+ */
+ public function getQueryOperator() {
+ return $this->queryOperator;
+ }
+
+ /**
+ * @param string $queryOperator
+ */
+ public function setQueryOperator($queryOperator) {
+ $this->queryOperator = $queryOperator;
+ }
+
/**
* @return array
*/
$this->queryFields = $queryFields;
}
- /**
- * CRM_Export_BAO_ExportProcessor constructor.
- *
- * @param int $exportMode
- */
- public function __construct($exportMode) {
- $this->setExportMode($exportMode);
- $this->setQueryMode();
- }
-
/**
* @return int
*/
/**
* @param $params
* @param $order
- * @param $queryOperator
* @param $returnProperties
* @return array
*/
- public function runQuery($params, $order, $queryOperator, $returnProperties) {
+ public function runQuery($params, $order, $returnProperties) {
$query = new CRM_Contact_BAO_Query($params, $returnProperties, NULL,
FALSE, FALSE, $this->getQueryMode(),
- FALSE, TRUE, TRUE, NULL, $queryOperator
+ FALSE, TRUE, TRUE, NULL, $this->getQueryOperator()
);
//sort by state
* Basic test to ensure the exportComponents function completes without error.
*/
public function testExportComponentsNull() {
- list($tableName, $sqlColumns) = CRM_Export_BAO_Export::exportComponents(
+ list($tableName) = CRM_Export_BAO_Export::exportComponents(
TRUE,
array(),
array(),
$pattern = '/as `?([^`,]*)/';
$queryFieldAliases = array();
preg_match_all($pattern, $select, $queryFieldAliases, PREG_PATTERN_ORDER);
- $processor = new CRM_Export_BAO_ExportProcessor(CRM_Contact_BAO_Query::MODE_CONTRIBUTE);
+ $processor = new CRM_Export_BAO_ExportProcessor(CRM_Contact_BAO_Query::MODE_CONTRIBUTE, 'AND');
$processor->setQueryFields($query->_fields);
- list($outputFields) = CRM_Export_BAO_Export::getExportStructureArrays($returnProperties, $processor, $contactRelationshipTypes, '', array());
+ list($outputFields) = CRM_Export_BAO_Export::getExportStructureArrays($returnProperties, $processor, $contactRelationshipTypes, '');
foreach (array_keys($outputFields) as $fieldAlias) {
if ($fieldAlias == 'Home-country') {
$this->assertTrue(in_array($fieldAlias . '_id', $queryFieldAliases[1]), 'Country is subject to some funky translate so we make sure country id is present');
));
//create address for contact A
- $result = $this->callAPISuccess('address', 'create', array(
+ $this->callAPISuccess('address', 'create', array(
'contact_id' => $contactA['id'],
'location_type_id' => 'Home',
'street_address' => 'ABC 12',
));
//create address for contact B
- $result = $this->callAPISuccess('address', 'create', array(
+ $this->callAPISuccess('address', 'create', array(
'contact_id' => $contactB['id'],
'location_type_id' => 'Home',
'street_address' => 'ABC 12',