if ($processor->getRequestedFields() &&
$processor->isPostalableOnly()
) {
- $postalColumns = ['is_deceased', 'do_not_mail', 'street_address', 'supplemental_address_1'];
- $exportParams['postal_mailing_export']['temp_columns'] = [];
- foreach ($postalColumns as $column) {
- if (!array_key_exists($column, $returnProperties)) {
- $returnProperties[$column] = 1;
- $exportParams['postal_mailing_export']['temp_columns'][$column] = 1;
- }
- }
+ $exportParams['postal_mailing_export']['temp_columns'] = $processor->getAdditionalFieldsForPostalExport();
}
// rectify params to what proximity search expects if there is a value for prox_distance
$this->isMergeSameAddress = $isMergeSameAddress;
}
+ /**
+ * Additional fields required to export postal fields.
+ *
+ * @var array
+ */
+ protected $additionalFieldsForPostalExport = [];
+
+ /**
+ * Get additional fields required to do a postal export.
+ *
+ * @return array
+ */
+ public function getAdditionalFieldsForPostalExport() {
+ return $this->additionalFieldsForPostalExport;
+ }
+
+ /**
+ * Set additional fields required for a postal export.
+ */
+ public function setAdditionalFieldsForPostalExport() {
+ if ($this->getRequestedFields() && $this->isPostalableOnly()) {
+ $fields = ['is_deceased', 'do_not_mail', 'street_address', 'supplemental_address_1'];
+ foreach ($fields as $index => $field) {
+ if (!empty($this->getReturnProperties()[$field])) {
+ unset($field[$index]);
+ }
+ }
+ $this->additionalFieldsForPostalExport = array_fill_keys($fields, 1);
+ }
+ }
+
/**
* Only export contacts that can receive postal mail.
*
$this->setIsMergeSameAddress($isMergeSameAddress);
$this->setReturnProperties($this->determineReturnProperties());
$this->setAdditionalFieldsForSameAddressMerge();
+ $this->setAdditionalFieldsForPostalExport();
}
/**
* @return array
*/
public function getReturnProperties() {
- return array_merge($this->returnProperties, $this->getAdditionalRequestedReturnProperties(), $this->getAdditionalFieldsForSameAddressMerge());
+ return array_merge($this->returnProperties, $this->getAdditionalRequestedReturnProperties(), $this->getAdditionalFieldsForSameAddressMerge(), $this->getAdditionalFieldsForPostalExport());
}
/**