From 1149b9273ab55522c9b1faba5bfcccaf24158df6 Mon Sep 17 00:00:00 2001 From: Jon goldberg - Linux laptop Date: Sun, 15 Sep 2013 16:28:14 -0400 Subject: [PATCH] Mailing Labels - CRM-13396 - use addressee_display when possible when combining mailing addresses ---------------------------------------- * CRM-13396: Prefix missing in Mailing Labels when 'Merge labels for contacts with the same address' checked http://issues.civicrm.org/jira/browse/CRM-13396 --- CRM/Contact/Form/Task/Label.php | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/CRM/Contact/Form/Task/Label.php b/CRM/Contact/Form/Task/Label.php index 73e8c3852e..5d69eb2640 100644 --- a/CRM/Contact/Form/Task/Label.php +++ b/CRM/Contact/Form/Task/Label.php @@ -434,14 +434,16 @@ class CRM_Contact_Form_Task_Label extends CRM_Contact_Form_Task { } // fill uniqueAddress array with last/first name tree if (isset($uniqueAddress[$address])) { - $uniqueAddress[$address]['names'][$name][] = $rows[$rowID]['first_name']; + $uniqueAddress[$address]['names'][$name][$rows[$rowID]['first_name']]['first_name'] = $rows[$rowID]['first_name']; + $uniqueAddress[$address]['names'][$name][$rows[$rowID]['first_name']]['addressee_display'] = $rows[$rowID]['addressee_display']; // drop unnecessary rows unset($rows[$rowID]); // this is the first listing at this address } else { $uniqueAddress[$address]['ID'] = $rowID; - $uniqueAddress[$address]['names'][$name][] = $rows[$rowID]['first_name']; + $uniqueAddress[$address]['names'][$name][$rows[$rowID]['first_name']]['first_name'] = $rows[$rowID]['first_name']; + $uniqueAddress[$address]['names'][$name][$rows[$rowID]['first_name']]['addressee_display'] = $rows[$rowID]['addressee_display']; } } foreach ($uniqueAddress as $address => $data) { @@ -453,15 +455,20 @@ class CRM_Contact_Form_Task_Label extends CRM_Contact_Form_Task { if ($count > 2) { break; } - // collapse the tree to summarize - $family = trim(implode(" & ", $first_names) . " " . $last_name); - if ($count) { - $processedNames .= "\n" . $family; - } - else { - // build display_name string - $processedNames = $family; - } + if(count($first_names) == 1){ + $family = $first_names[current(array_keys($first_names))]['addressee_display']; + } + else { + // collapse the tree to summarize + $family = trim(implode(" & ", array_keys($first_names)) . " " . $last_name); + } + if ($count) { + $processedNames .= "\n" . $family; + } + else { + // build display_name string + $processedNames = $family; + } $count++; } $rows[$data['ID']]['addressee'] = $rows[$data['ID']]['addressee_display'] = $rows[$data['ID']]['display_name'] = $processedNames; -- 2.25.1