*/
protected $contactGreetingFields = [];
+ /**
+ * An array of primary IDs of the entity being exported.
+ *
+ * @var array
+ */
+ protected $ids = [];
+
/**
* Get additional non-visible fields for address merge purposes.
*
$this->queryOperator = $queryOperator;
}
+ /**
+ * @return array
+ */
+ public function getIds() {
+ return $this->ids;
+ }
+
+ /**
+ * @param array $ids
+ */
+ public function setIds($ids) {
+ $this->ids = $ids;
+ }
+
/**
* @return array
*/
public function getQueryFields() {
- return $this->queryFields;
+ return array_merge(
+ $this->queryFields,
+ $this->getComponentPaymentFields()
+ );
}
/**
$queryFields['country']['context'] = 'country';
$queryFields['world_region']['context'] = 'country';
$queryFields['state_province']['context'] = 'province';
+ $queryFields['contact_id'] = ['title' => ts('Contact ID'), 'type' => CRM_Utils_Type::T_INT];
$this->queryFields = $queryFields;
}
return $this->getQueryFields()[$field]['title'];
}
elseif ($this->isExportPaymentFields() && array_key_exists($field, $this->getcomponentPaymentFields())) {
- return CRM_Utils_Array::value($field, $this->getcomponentPaymentFields());
+ return CRM_Utils_Array::value($field, $this->getcomponentPaymentFields())['title'];
}
else {
return $field;
*/
public function getComponentPaymentFields() {
return [
- 'componentPaymentField_total_amount' => ts('Total Amount'),
- 'componentPaymentField_contribution_status' => ts('Contribution Status'),
- 'componentPaymentField_received_date' => ts('Date Received'),
- 'componentPaymentField_payment_instrument' => ts('Payment Method'),
- 'componentPaymentField_transaction_id' => ts('Transaction ID'),
+ 'componentPaymentField_total_amount' => ['title' => ts('Total Amount'), 'type' => CRM_Utils_Type::T_MONEY],
+ 'componentPaymentField_contribution_status' => ['title' => ts('Contribution Status'), 'type' => CRM_Utils_Type::T_STRING],
+ 'componentPaymentField_received_date' => ['title' => ts('Date Received'), 'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME],
+ 'componentPaymentField_payment_instrument' => ['title' => ts('Payment Method'), 'type' => CRM_Utils_Type::T_STRING],
+ 'componentPaymentField_transaction_id' => ['title' => ts('Transaction ID'), 'type' => CRM_Utils_Type::T_STRING],
];
}
*/
public function getPaymentHeaders() {
if ($this->isExportPaymentFields() && !$this->isExportSpecifiedPaymentFields()) {
- return $this->getcomponentPaymentFields();
+ return CRM_Utils_Array::collect('title', $this->getcomponentPaymentFields());
}
return [];
}
// call export hook
$headerRows = $this->getHeaderRows();
$exportTempTable = $this->getTemporaryTable();
+ $exportMode = $this->getExportMode();
+ $sqlColumns = $this->getSQLColumns();
+ $componentTable = $this->getComponentTable();
+ $ids = $this->getIds();
CRM_Utils_Hook::export($exportTempTable, $headerRows, $sqlColumns, $exportMode, $componentTable, $ids);
+ if ($exportMode !== $this->getExportMode() || $componentTable !== $this->getComponentTable()) {
+ CRM_Core_Error::deprecatedFunctionWarning('altering the export mode and/or component table in the hook is no longer supported.');
+ }
+ if ($ids !== $this->getIds()) {
+ CRM_Core_Error::deprecatedFunctionWarning('altering the ids in the hook is no longer supported.');
+ }
if ($exportTempTable !== $this->getTemporaryTable()) {
CRM_Core_Error::deprecatedFunctionWarning('altering the export table in the hook is deprecated (in some flows the table itself will be)');
$this->setTemporaryTable($exportTempTable);
while ($dao->fetch()) {
$row = [];
- foreach (array_keys($this->getSQLColumns()) as $column) {
+ foreach (array_keys($sqlColumns) as $column) {
$row[$column] = $dao->$column;
}
$componentDetails[] = $row;