Skip to content
Snippets Groups Projects
Unverified Commit c8eeafc7 authored by colemanw's avatar colemanw Committed by GitHub
Browse files

Merge pull request #25897 from eileenmcnaughton/import_contact_id

Fix for issue when optional contact_id is blank importing contributions
parents 7510f3eb c3176ab2
No related branches found
No related tags found
No related merge requests found
......@@ -232,7 +232,19 @@ class CRM_Contribute_Import_Parser_Contribution extends CRM_Import_Parser {
$params[$entity][$this->getFieldMetadata($mappedField['name'])['name']] = $this->getTransformedFieldValue($mappedField['name'], $fieldValue);
}
}
return $params;
return $this->removeEmptyValues($params);
}
protected function removeEmptyValues($array) {
foreach ($array as $key => $value) {
if (is_array($value)) {
$array[$key] = $this->removeEmptyValues($value);
}
elseif ($value === '') {
unset($array[$key]);
}
}
return $array;
}
/**
......
......@@ -597,6 +597,7 @@ class CRM_Contribute_Import_Parser_ContributionTest extends CiviUnitTestCase {
['name' => ''],
['name' => 'trxn_id'],
['name' => 'contribution_campaign_id'],
['name' => 'contribution_contact_id'],
];
// First we try to create without total_amount mapped.
// It will fail in create mode as total_amount is required for create.
......@@ -616,7 +617,7 @@ class CRM_Contribute_Import_Parser_ContributionTest extends CiviUnitTestCase {
$this->importCSV('contributions.csv', $fieldMappings, ['onDuplicate' => CRM_Import_Parser::DUPLICATE_SKIP]);
$row = $this->getDataSource()->getRows()[0];
$this->assertEquals('IMPORTED', $row[10]);
$this->assertEquals('IMPORTED', $row[11]);
$contribution = Contribution::get()->addSelect('source', 'id')->execute()->first();
$this->assertEmpty($contribution['source']);
......@@ -635,7 +636,7 @@ class CRM_Contribute_Import_Parser_ContributionTest extends CiviUnitTestCase {
$this->importCSV('contributions.csv', $fieldMappings, ['onDuplicate' => CRM_Import_Parser::DUPLICATE_UPDATE]);
$row = $this->getDataSource()->getRows()[0];
$this->assertEquals('IMPORTED', $row[10]);
$this->assertEquals('IMPORTED', $row[11]);
$contribution = Contribution::get()->addSelect('source', 'id')->execute()->first();
$this->assertEquals('Call him back', $contribution['source']);
}
......
External Identifier,Total Amount,Receive Date,Financial Type,Soft Credit to,Source,Note,Transaction ID,Campaign ID
bob,65,2008-09-20,Donation,mum@example.com,Word of mouth,Call him back,999,1
External Identifier,Total Amount,Receive Date,Financial Type,Soft Credit to,Source,Note,Transaction ID,Campaign ID,Blank column
bob,65,2008-09-20,Donation,mum@example.com,Word of mouth,Call him back,999,1,
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment