private function mergePeople($proxyPerson, $formPerson) { $formPerson->name_first; $formPerson->name_last; $person = new entity(); $person->addExtension('Person'); $person->name_first = $formPerson->name_first; $person->name_middle = $formPerson->name_middle; $person->name_last = $formPerson->name_last; $person->name_nick = $formPerson->name_nick; $person->name_prefix = $formPerson->name_prefix; $person->name_suffix = $formPerson->name_suffix; $compatible = false; if (!$proxyPerson->name_first or $proxyPerson->name_first == '') { return $person; } //check first name compatibility before doing anything if (stripos($proxyPerson->name_first, $formPerson->name_first) === 0 || stripos($formPerson->name_first, $proxyPerson->name_first) === 0) { if ($formPerson->name_middle == null || $formPerson->name_middle == '') { $compatible = true; $person->name_middle = $proxyPerson->name_middle; if (strlen($proxyPerson->name_first) > strlen($formPerson->name_first)) { $person->name_first = $proxyPerson->name_first; } } else { if (!$proxyPerson->name_middle || $proxyPerson->name_middle == '') { $compatible = true; if (strlen($proxyPerson->name_first) > strlen($formPerson->name_first)) { $person->name_first = $proxyPerson->name_first; } } else { if (stripos($proxyPerson->name_middle, $formPerson->name_middle) === 0 || stripos($formPerson->name_middle, $proxyPerson->name_middle) === 0) { $compatible = true; if (strlen($proxyPerson->name_middle) > strlen($formPerson->name_middle)) { $person->name_middle = $proxyPerson->name_middle; } if (strlen($proxyPerson->name_first) > strlen($formPerson->name_first)) { $person->name_first = $proxyPerson->name_first; } } } } } //if names have proven compatible, then check generational suffixes (Jr, Sr etc) if ($compatible == true) { $form_suffixes = explode(' ', $formPerson->name_suffix); $form_generationals = array_intersect($form_suffixes, LsLanguage::$generationalSuffixes); $proxy_suffixes = explode(' ', $proxyPerson->name_suffix); $common_generationals = array_intersect($form_generationals, $proxy_suffixes); //if there are no generationals in the form 4 name, go ahead and grab prefixes, suffixes, etc from proxy name if (count($form_generationals) == 0 || ($form_generationals = $common_generationals)) { if (strlen($proxyPerson->name_nick) > strlen($formPerson->name_nick)) { $person->name_nick = $proxyPerson->name_nick; } if (strlen($proxyPerson->name_prefix) > strlen($formPerson->name_prefix)) { $person->name_prefix = $proxyPerson->name_prefix; } if (strlen($proxyPerson->name_suffix) > strlen($formPerson->name_suffix)) { $person->name_suffix = $proxyPerson->name_suffix; } } } return $person; }