grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026getContact(); } global $mod_strings; $temp_strings = $mod_strings; if (!empty($mod)) { global $current_language; $mod_strings = return_module_language($current_language, $mod); } global $app_strings; global $current_user; global $app_list_strings; $primary_address_country_options = get_select_options_with_id($app_list_strings['countries_dom'], $contact->primary_address_country); $lbl_required_symbol = $app_strings['LBL_REQUIRED_SYMBOL']; $lbl_first_name = $mod_strings['LBL_FIRST_NAME']; $lbl_last_name = $mod_strings['LBL_LAST_NAME']; $lbl_phone = $mod_strings['LBL_OFFICE_PHONE']; $lbl_address = $mod_strings['LBL_PRIMARY_ADDRESS']; if (isset($contact->assigned_user_id)) { $user_id=$contact->assigned_user_id; } else { $user_id = $current_user->id; } //Retrieve Email address and set email1, email2 $sugarEmailAddress = new SugarEmailAddress(); $sugarEmailAddress->handleLegacyRetrieve($contact); if (!isset($contact->email1)) { $contact->email1 = ''; } if (!isset($contact->email2)) { $contact->email2 = ''; } if (!isset($contact->email_opt_out)) { $contact->email_opt_out = ''; } $lbl_email_address = $mod_strings['LBL_EMAIL_ADDRESS']; $salutation_options=get_select_options_with_id($app_list_strings['salutation_dom'], $contact->salutation); if (isset($contact->lead_source)) { $lead_source_options=get_select_options_with_id($app_list_strings['lead_source_dom'], $contact->lead_source); } else { $lead_source_options=get_select_options_with_id($app_list_strings['lead_source_dom'], ''); } $form=""; if ($formname == 'ConvertProspect') { $lead_source_label = " "; $lead_source_field = " "; } else { $lead_source_label = "${mod_strings['LBL_LEAD_SOURCE']}"; $lead_source_field = ""; } global $timedate; $birthdate = ''; if (!empty($_REQUEST['birthdate'])) { $birthdate=$_REQUEST['birthdate']; } $ntc_date_format = $timedate->get_user_date_format(); $cal_dateformat = $timedate->get_cal_date_format(); $lbl_required_symbol = $app_strings['LBL_REQUIRED_SYMBOL']; $form .= << $lead_source_label $lead_source_field EOQ; $form .= $sugarEmailAddress->getEmailAddressWidgetEditView($contact->id, $_REQUEST['action']=='ConvertLead'?'Leads':'Contacts', false, 'include/SugarEmailAddress/templates/forWideFormBodyView.tpl'); require_once('include/SugarFields/Fields/Text/SugarFieldText.php'); $sugarfield = new SugarFieldText('Text'); $description_text = $sugarfield->getClassicEditView('description', $contact->description, $prefix, true); $form .= << EOQ; //carry forward custom lead fields common to contacts during Lead Conversion $tempContact = $this->getContact(); if (method_exists($contact, 'convertCustomFieldsForm')) { $contact->convertCustomFieldsForm($form, $tempContact, $prefix); } unset($tempContact); $form .= << EOQ; if ($portal == true) { if (isset($contact->portal_name)) { $form.=""; } else { $form.=""; } if (isset($contact->portal_app)) { $form.=""; } else { $form.=""; } if (!empty($contact->portal_name) && !empty($contact->portal_app)) { $form .= ""; } if (isset($contact->portal_password)) { $form.=""; $form.=""; $form .= ""; } else { $form.=""; $form.=""; $form .= ""; } } $form .= << Calendar.setup ({ inputField : "{$prefix}jscal_field", daFormat : "$cal_dateformat", ifFormat : "$cal_dateformat", showsTime : false, button : "{$prefix}jscal_trigger", singleClick : true, step : 1, weekNumbers:false }); EOQ; $javascript = new javascript(); $javascript->setFormName($formname); $javascript->setSugarBean($this->getContact()); $javascript->addField('email1', 'false', $prefix); $javascript->addField('email2', 'false', $prefix); $javascript->addRequiredFields($prefix); $form .=$javascript->getScript(); $mod_strings = $temp_strings; return $form; } public function getFormBody($prefix, $mod='', $formname='') { if (!ACLController::checkAccess('Contacts', 'edit', true)) { return ''; } global $mod_strings; $temp_strings = $mod_strings; if (!empty($mod)) { global $current_language; $mod_strings = return_module_language($current_language, $mod); } global $app_strings; global $current_user; $lbl_required_symbol = $app_strings['LBL_REQUIRED_SYMBOL']; $lbl_first_name = $mod_strings['LBL_FIRST_NAME']; $lbl_last_name = $mod_strings['LBL_LAST_NAME']; $lbl_phone = $mod_strings['LBL_PHONE']; $user_id = $current_user->id; $lbl_email_address = $mod_strings['LBL_EMAIL_ADDRESS']; if ($formname == 'EmailEditView') { $form = << $lbl_first_name

$lbl_last_name $lbl_required_symbol

$lbl_email_address $lbl_required_symbol


EOQ; } else { $form = << $lbl_first_name

$lbl_last_name $lbl_required_symbol

$lbl_phone

$lbl_email_address


EOQ; } $javascript = new javascript(); $javascript->setFormName($formname); $javascript->setSugarBean($this->getContact()); $javascript->addField('email1', 'false', $prefix); $javascript->addRequiredFields($prefix); $form .=$javascript->getScript(); $mod_strings = $temp_strings; return $form; } public function getForm($prefix, $mod='') { if (!ACLController::checkAccess('Contacts', 'edit', true)) { return ''; } if (!empty($mod)) { global $current_language; $mod_strings = return_module_language($current_language, $mod); } else { global $mod_strings; } global $app_strings; $lbl_save_button_title = $app_strings['LBL_SAVE_BUTTON_TITLE']; $lbl_save_button_key = $app_strings['LBL_SAVE_BUTTON_KEY']; $lbl_save_button_label = $app_strings['LBL_SAVE_BUTTON_LABEL']; $the_form = get_left_form_header($mod_strings['LBL_NEW_FORM_TITLE']); $the_form .= << EOQ; $the_form .= $this->getFormBody($prefix, 'Contacts', "${prefix}ContactSave"); $the_form .= << EOQ; $the_form .= get_left_form_footer(); $the_form .= get_validate_record_js(); return $the_form; } public function handleSave($prefix, $redirect=true, $useRequired=false) { global $theme, $current_user; require_once('include/formbase.php'); global $timedate; $focus = $this->getContact(); if ($useRequired && !checkRequired($prefix, array_keys($focus->required_fields))) { return null; } if (!empty($_POST[$prefix.'new_reports_to_id'])) { $focus->retrieve($_POST[$prefix.'new_reports_to_id']); $focus->reports_to_id = $_POST[$prefix.'record']; } else { $focus = populateFromPost($prefix, $focus); if (isset($_POST[$prefix.'old_portal_password']) && !empty($focus->portal_password) && $focus->portal_password != $_POST[$prefix.'old_portal_password']) { $focus->portal_password = User::getPasswordHash($focus->portal_password); } if (!isset($_POST[$prefix.'email_opt_out'])) { $focus->email_opt_out = 0; } if (!isset($_POST[$prefix.'do_not_call'])) { $focus->do_not_call = 0; } } if (!$focus->ACLAccess('Save')) { ACLController::displayNoAccess(true); sugar_cleanup(true); } if ($_REQUEST['action'] != 'BusinessCard' && $_REQUEST['action'] != 'ConvertLead' && $_REQUEST['action'] != 'ConvertProspect') { if (!empty($_POST[$prefix.'sync_contact']) || !empty($focus->sync_contact)) { $focus->contacts_users_id = $current_user->id; } else { if (!isset($focus->users)) { $focus->load_relationship('user_sync'); } $focus->contacts_users_id = null; $focus->user_sync->delete($focus->id, $current_user->id); } } if (isset($GLOBALS['check_notify'])) { $check_notify = $GLOBALS['check_notify']; } else { $check_notify = false; } if (empty($_POST['record']) && empty($_POST['dup_checked'])) { $duplicateContacts = $this->checkForDuplicates($prefix); if (isset($duplicateContacts)) { $location='module=Contacts&action=ShowDuplicates'; $get = ''; if (isset($_POST['inbound_email_id']) && !empty($_POST['inbound_email_id'])) { $get .= '&inbound_email_id='.$_POST['inbound_email_id']; } // Bug 25311 - Add special handling for when the form specifies many-to-many relationships if (isset($_POST['relate_to']) && !empty($_POST['relate_to'])) { $get .= '&Contactsrelate_to='.$_POST['relate_to']; } if (isset($_POST['relate_id']) && !empty($_POST['relate_id'])) { $get .= '&Contactsrelate_id='.$_POST['relate_id']; } //add all of the post fields to redirect get string foreach ($focus->column_fields as $field) { if (!empty($focus->$field) && !is_object($focus->$field)) { $get .= "&Contacts$field=".urlencode($focus->$field); } } foreach ($focus->additional_column_fields as $field) { if (!empty($focus->$field)) { $get .= "&Contacts$field=".urlencode($focus->$field); } } if ($focus->hasCustomFields()) { foreach ($focus->field_defs as $name=>$field) { if (!empty($field['source']) && $field['source'] == 'custom_fields') { $get .= "&Contacts$name=".urlencode($focus->$name); } } } $emailAddress = new SugarEmailAddress(); $get .= $emailAddress->getFormBaseURL($focus); //create list of suspected duplicate contact id's in redirect get string $i=0; foreach ($duplicateContacts as $contact) { $get .= "&duplicate[$i]=".$contact['id']; $i++; } //add return_module, return_action, and return_id to redirect get string $urlData = array('return_module' => 'Contacts', 'return_action' => ''); foreach (array('return_module', 'return_action', 'return_id', 'popup', 'create', 'start') as $var) { if (!empty($_POST[$var])) { $urlData[$var] = $_POST[$var]; } } $get .= "&".http_build_query($urlData); $_SESSION['SHOW_DUPLICATES'] = $get; //now redirect the post to modules/Contacts/ShowDuplicates.php if (!empty($_POST['is_ajax_call']) && $_POST['is_ajax_call'] == '1') { ob_clean(); $json = getJSONobj(); echo $json->encode(array('status' => 'dupe', 'get' => $location)); } else { if (!empty($_REQUEST['ajax_load'])) { echo ""; } else { if (!empty($_POST['to_pdf'])) { $location .= '&to_pdf='.urlencode($_POST['to_pdf']); } header("Location: index.php?$location"); } } return null; } } global $current_user; if (is_admin($current_user)) { if (!isset($_POST[$prefix.'portal_active'])) { $focus->portal_active = '0'; } //if no password is set set account to inactive for portal if (empty($_POST[$prefix.'portal_name'])) { $focus->portal_active = '0'; } } /////////////////////////////////////////////////////////////////////////////// //// INBOUND EMAIL HANDLING /////////////////////////////////////////////////////////////////////////////// if (isset($_REQUEST['inbound_email_id']) && !empty($_REQUEST['inbound_email_id'])) { // fake this case like it's already saved. $focus->save($check_notify); $email = new Email(); $email->retrieve($_REQUEST['inbound_email_id']); $email->parent_type = 'Contacts'; $email->parent_id = $focus->id; $email->assigned_user_id = $current_user->id; $email->status = 'read'; $email->save(); $email->load_relationship('contacts'); $email->contacts->add($focus->id); header("Location: index.php?&module=Emails&action=EditView&type=out&inbound_email_id=".$_REQUEST['inbound_email_id']."&parent_id=".$email->parent_id."&parent_type=".$email->parent_type.'&start='.$_REQUEST['start'].'&assigned_user_id='.$current_user->id); exit(); } //// END INBOUND EMAIL HANDLING /////////////////////////////////////////////////////////////////////////////// $focus->save($check_notify); $return_id = $focus->id; $GLOBALS['log']->debug("Saved record with id of ".$return_id); if ($redirect && !empty($_POST['is_ajax_call']) && $_POST['is_ajax_call'] == '1') { $json = getJSONobj(); echo $json->encode(array('status' => 'success', 'get' => '')); $trackerManager = TrackerManager::getInstance(); $timeStamp = TimeDate::getInstance()->nowDb(); if ($monitor = $trackerManager->getMonitor('tracker')) { $monitor->setValue('action', 'detailview'); $monitor->setValue('user_id', $GLOBALS['current_user']->id); $monitor->setValue('module_name', 'Contacts'); $monitor->setValue('date_modified', $timeStamp); $monitor->setValue('visible', 1); if (!empty($this->bean->id)) { $monitor->setValue('item_id', $return_id); $monitor->setValue('item_summary', $focus->get_summary_text()); } $trackerManager->saveMonitor($monitor, true, true); } return null; } if ($redirect && isset($_POST['popup']) && $_POST['popup'] == 'true') { $urlData = array("query" => true, "first_name" => $focus->first_name, "last_name" => $focus->last_name, "module" => 'Accounts', 'action' => 'Popup'); if (!empty($_POST['return_module'])) { $urlData['module'] = $_POST['return_module']; } if (!empty($_POST['return_action'])) { $urlData['action'] = $_POST['return_action']; } foreach (array('return_id', 'popup', 'create', 'to_pdf') as $var) { if (!empty($_POST[$var])) { $urlData[$var] = $_POST[$var]; } } header("Location: index.php?".http_build_query($urlData)); return; } if ($redirect) { $this->handleRedirect($return_id); } else { return $focus; } } public function handleRedirect($return_id) { if (isset($_POST['return_module']) && $_POST['return_module'] != "") { $return_module = urlencode($_POST['return_module']); } else { $return_module = "Contacts"; } if (isset($_POST['return_action']) && $_POST['return_action'] != "") { if ($_REQUEST['return_module'] == 'Emails') { $return_action = urlencode($_REQUEST['return_action']); } // if we create a new record "Save", we want to redirect to the DetailView elseif ($_REQUEST['action'] == "Save" && $_REQUEST['return_module'] != "Home") { $return_action = 'DetailView'; } else { // if we "Cancel", we go back to the list view. $return_action = urlencode($_REQUEST['return_action']); } } else { $return_action = "DetailView"; } if (isset($_POST['return_id']) && $_POST['return_id'] != "") { $return_id = urlencode($_POST['return_id']); } //eggsurplus Bug 23816: maintain VCR after an edit/save. If it is a duplicate then don't worry about it. The offset is now worthless. $redirect_url = "index.php?action=$return_action&module=$return_module&record=$return_id"; if (isset($_REQUEST['offset']) && empty($_REQUEST['duplicateSave'])) { $redirect_url .= "&offset=".$_REQUEST['offset']; } if (!empty($_REQUEST['ajax_load'])) { echo "\n"; } else { header("Location: ". $redirect_url); } } /** * @return Contact */ protected function getContact() { return new Contact(); } }
$lbl_first_name $lbl_last_name $lbl_required_symbol ${mod_strings['LBL_TITLE']} ${mod_strings['LBL_DEPARTMENT']}
 
$lbl_address
${mod_strings['LBL_CITY']} ${mod_strings['LBL_STATE']} ${mod_strings['LBL_POSTAL_CODE']} ${mod_strings['LBL_COUNTRY']}
$lbl_phone ${mod_strings['LBL_MOBILE_PHONE']} ${mod_strings['LBL_FAX_PHONE']} ${mod_strings['LBL_HOME_PHONE']}
${mod_strings['LBL_OTHER_PHONE']}${mod_strings['LBL_BIRTHDATE']} 
 
${mod_strings['LBL_DESCRIPTION']}
{$description_text}