// "null" value for example is passed by dedupe merge in order to empty.
// Display name computation shouldn't consider such values.
- foreach (array('first_name', 'middle_name', 'last_name', 'nick_name', 'formal_title') as $displayField) {
+ foreach (array('first_name', 'middle_name', 'last_name', 'nick_name', 'formal_title', 'birth_date', 'deceased_date') as $displayField) {
if (CRM_Utils_Array::value($displayField, $params) == "null") {
$params[$displayField] = '';
}
--- /dev/null
+<?php
+
+/**
+ * Class CRM_Contact_BAO_IndividualTest
+ * @group headless
+ */
+class CRM_Contact_BAO_IndividualTest extends CiviUnitTestCase {
+
+ /**
+ * Test case for format() with "null" value dates.
+ *
+ * See CRM-19123: Merging contacts: blank date fields write as 1970
+ */
+ public function testFormatNullDates() {
+ $params = array(
+ 'contact_type' => 'Individual',
+ 'birth_date' => 'null',
+ 'deceased_date' => 'null',
+ );
+ $contact = new CRM_Contact_DAO_Contact();
+
+ CRM_Contact_BAO_Individual::format($params, $contact);
+
+ $this->assertEmpty($contact->birth_date);
+ $this->assertEmpty($contact->deceased_date);
+ }
+}