0){
foreach($_REQUEST['assigned_user_id'] as $au){
$where_clauses[]="contacts.assigned_user_id='".$au."'";
}
}
if(count($_REQUEST['assigned_user_id_advanced'])>0){
foreach($_REQUEST['assigned_user_id_advanced'] as $au){
$where_clauses[]="contacts.assigned_user_id='".$au."'";
}
}
if($_REQUEST['account_id']){
$where_clauses[]="contacts.id IN (select contact_id as id from accounts_contacts as ac join accounts acc on acc.id=ac.account_id where acc.id='".$_REQUEST['account_id']."')";
}
if($_REQUEST['only_my_items'])$where_clauses[]="contacts.assigned_user_id='".$_SESSION['authenticated_user_id']."'";
/*append_where_clause($where_clauses, "address_postalcode", "contacts.alt_address_postalcode");
append_where_clause($where_clauses, "address_street", "contacts.alt_address_street");
append_where_clause($where_clauses, "address_city", "contacts.alt_address_city");
append_where_clause($where_clauses, "address_country", "contacts.alt_address_country");
append_where_clause($where_clauses, "address_state", "contacts.alt_address_state");*/
//append_where_clause($where_clauses, "assigned_user_advanced", "contacts.assigned_user_id");
$where = generate_where_statement($where_clauses);
// echo $where;
}
return $where;
}
/**
*
*/
function process_page_dial()
{
global $system_config;
/*
* CHECK IF USER WOULD LIKE TO USE PRO VERSION
*/
if( isset($system_config->settings['system_asterisk_pro']) && $system_config->settings['system_asterisk_pro'] == 1)
{
$asterisk_popup='include/asterisk/Asterisk_popup.tpl';
$pro='include/asterisk/pro.php';
/*
* CHECK THAT ALL NECESSARY FILES FOR PRO VERSION ARE AVAILABLE
*/
if( file_exists($asterisk_popup) && file_exists($pro) ){
require_once('include/asterisk/pro.php');
proLogic();
}
/*
* IF ALL FILES ARE NOT THERE THEN DISPLAY WHERE THEY ARE AVAILABLE AT
*/
else
{
/*
* TRYING TO USE PRO WITHOUT NECESSARY FILES
*/
echo "
Either the PRO version is not enabled or you are not using the PRO version. For more information you may visit http://www.voicerd.com/products.php or email VoiceRD ( voicerd@novacoast.com ) ";
}
}
/*
* USE THE OPEN SOURCE VERSION
*/
else{
$this->openSourceLogic();
}
}
function openSourceLogic()
{
global $system_config;
global $current_user;
$display_number = $_REQUEST['number'];
//remove anything that is not a number or an asterisk(*)
$number = preg_replace ( "/[^\d\*]/", "", $_REQUEST['number'] );
/*
* If there is a prefix to be dialed then pre-pend that to the number that will be dialed
*/
if(!isset($system_config->settings['system_asterisk_prefix']) || $system_config->settings['system_asterisk_prefix'] != "" )
{
/*
* Grab the prefix number and remove anything that is not a number or an asterisk(*)
*/
$prefix = $system_config->settings['system_asterisk_prefix'];
$prefix = preg_replace ( "/[^\d\*]/", "", $prefix );
/*
* Pre-prend the prefix to the dial number and to the display number
*/
$display_number = $prefix."+".$display_number;
$number = $prefix.$number;
}
/*
* If asterisk port was left empty in admin setting then default to 5038
*/
if(!isset($system_config->settings['system_asterisk_port']) || $system_config->settings['system_asterisk_port'] == "" )
$system_config->settings['system_asterisk_port'] = "5038";
/*
* If asterisk internal context was left empty in admin settings then default to "from-internal"
*/
if(!isset($system_config->settings['system_asterisk_internal_context']) || $system_config->settings['system_asterisk_internal_context'] == "" )
$system_config->settings['system_asterisk_internal_context'] = "from-internal";
/*
* If asterisk external context was left empty in admin settings then default to "from-internal"
*/
if(!isset($system_config->settings['system_asterisk_external_context']) || $system_config->settings['system_asterisk_external_context'] == "" )
$system_config->settings['system_asterisk_external_context'] = "from-internal";
/*
* If asterisk auto pickup is blank default to *3
*/
if(!isset($system_config->settings['system_asterisk_auto_pickup']) || $system_config->settings['system_asterisk_auto_pickup'] == "" )
$system_config->settings['system_asterisk_auto_pickup'] = "*3";
/*
* if any of the required fields were left empty in admin settings then signal error.
*/
if( !isset($system_config->settings['system_asterisk_server']) || $system_config->settings['system_asterisk_server'] == "" || !isset($system_config->settings['system_asterisk_username']) || $system_config->settings['system_asterisk_username'] == "" || !isset($system_config->settings['system_asterisk_secret']) || $system_config->settings['system_asterisk_secret'] == "" )
{
return "Asterisk Configuration Error.";
}
/*
* If all required fields are filled in then dial
*/
else
{
//HTML code
$output_html="";
if( isset($system_config->settings['system_asterisk_popup_timer']) && $system_config->settings['system_asterisk_popup_timer'] !="" )
{
$output_html.= "settings['system_asterisk_popup_timer']*1000).")\">";
}
else
{
$output_html="";
}
$output_html.=<<
Dialing...$display_number
EOQ;
///If user has auto pickup selected then pre-pend
if(isset($current_user->asterisk_auto_pickup) && $current_user->asterisk_auto_pickup == '1'){
$number = $system_config->settings['system_asterisk_auto_pickup'].$number;
}
//Asterisk DialCode
$timeout = 30;
$socket = fsockopen( $system_config->settings['system_asterisk_server'],$system_config->settings['system_asterisk_port'], $errno, $errstr, $timeout);
if(!$socket){ die("Error Connecting to Asterisk Server"); }
fputs($socket, "Action: Login\r\n");
fputs($socket, "UserName: ".$system_config->settings['system_asterisk_username']."\r\n");
fputs($socket, "Secret: ".$system_config->settings['system_asterisk_secret']."\r\n\r\n");
fputs($socket, "Action: Originate\r\n");
//Partially contributed by SugarForge User mikeyb
$callerid = $current_user->asterisk_extension;
if (strpos($current_user->asterisk_extension, '/') === false) {
fputs($socket, "Channel: Local/".$current_user->asterisk_extension."@".$system_config->settings['system_asterisk_internal_context']."\r\n");
} else {
fputs($socket, "Channel: ".$current_user->asterisk_extension."\r\n");
}
fputs($socket, "Context: ".$system_config->settings['system_asterisk_external_context']."\r\n");
fputs($socket, "Exten: ".$number."\r\n");
fputs($socket, "Priority: 1\r\n");
fputs($socket, "Callerid: ".$current_user->asterisk_extension."\r\n\r\n");
$wrets=fgets($socket,128);
echo $output_html;
}
}
////////END ASTERISK PATCH////////
function process_page()
{
global $theme;
global $mod_strings;
global $app_strings;
global $currentModule;
global $sugar_version, $sugar_config;
$output_html = '';
$where = '';
$where = $this->_get_where_clause();
$image_path = 'themes/'.$theme.'/images/';
$formBase = new ContactFormBase();
if(isset($_REQUEST['doAction']) && $_REQUEST['doAction'] == 'save')
{
$formBase->handleSave('', false, true);
}
$first_name = empty($_REQUEST['first_name']) ? '' : $_REQUEST['first_name'];
$last_name = empty($_REQUEST['last_name']) ? '' : $_REQUEST['last_name'];
$account_name = empty($_REQUEST['account_name']) ? '' : $_REQUEST['account_name'];
$request_data = empty($_REQUEST['request_data']) ? '' : $_REQUEST['request_data'];
$hide_clear_button = empty($_REQUEST['hide_clear_button']) ? false : true;
$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'];
// TODO: cleanup the construction of $addform
$formbody = $formBase->getFormBody('','','EmailEditView');
$addform = ''
.str_replace(' ', ' ', $formbody)
. '
'
. ' ';
$formSave = <<
EOQ;
$createContact = <<
EOQ;
$addformheader = get_form_header($mod_strings['LNK_NEW_CONTACT'], $formSave, false);
$button = "\n";
$first_name = empty($_REQUEST['first_name']) ? '' : $_REQUEST['first_name'];
$last_name = empty($_REQUEST['last_name']) ? '' : $_REQUEST['last_name'];
$form = new XTemplate('modules/Contacts/Popup_picker.html');
$form->assign('FIRST_NAME', $first_name);
$form->assign('LAST_NAME', $last_name);
$fields=array("first_name","last_name","address_postalcode","address_street","address_state","address_city","address_country","phone","account_id","account_name","assistant","assigned_user_id");
foreach($fields as $f){
if($_REQUEST[$f])$form->assign(strtoupper($f),$_REQUEST[$f]);
else $form->assign(strtoupper($f),$_REQUEST[$f."_advanced"]);
}
$w=mysql_query("select id,first_name,last_name from users where status='Active' and deleted='0' order by first_name asc, last_name asc");
while($r=mysql_fetch_array($w)){
$atr.=''.$r['first_name'].' '.$r['last_name'].' ';
}
if($_REQUEST['tab'])$form->assign("TABB",$_REQUEST['tab']);
else $form->assign("TABB","basic");
$form->assign('ASSIGNED_TO_LIST',$atr);
$atr="";
$arr=array(""=>"","1"=>"Yes","0"=>"No");
foreach($arr as $k=>$v){
$atr.=''.$v.' ';
}
$form->assign('FOREIGN_CONTACT',$atr);
$atr="";
$arr=array(""=>"","1"=>"Yes","0"=>"No");
foreach($arr as $k=>$v){
$atr.=''.$v.' ';
}
$form->assign('MAILING_TAG',$atr);
$form->assign('MOD', $mod_strings);
$form->assign('APP', $app_strings);
$form->assign('CREATECONTACT', $createContact);
$form->assign('ADDFORMHEADER', $addformheader);
$form->assign('ADDFORM', $addform);
$form->assign('THEME', $theme);
$form->assign('MODULE_NAME', $currentModule);
$form->assign('FIRST_NAME', $first_name);
$form->assign('LAST_NAME', $last_name);
$form->assign('ACCOUNT_NAME', $account_name);
$form->assign('request_data', $request_data);
//if(!$_REQUEST['Contacts_CONTACT_offset'])$offset=0;
//else $offset=$_REQUEST['Contacts_CONTACT_offset']+20;
//print_r($_REQUEST);
if(!isset($_REQUEST['Contacts_CONTACT_offset'])){
$form->assign("PAG","
".$button);
}
else{
$form->assign("PAG",$button);
}
$form->assign('offset',$offset);
$form->assign('DIV',$_REQUEST['div']);
$form->assign('PRE',$_REQUEST['pre']);
if($_REQUEST['only_my_items'])$form->assign("OMI_CHECKED","checked");
$dnc.=' ';
$dnc.=' No ';
$dnc.=' Yes assign('DO_NOT_CALL_LIST',$dnc);
ob_start();
insert_popup_header($theme);
$output_html .= ob_get_contents();
ob_end_clean();
$output_html .= get_form_header($mod_strings['LBL_SEARCH_FORM_TITLE'], '', false);
$form->parse('main.SearchHeader');
$output_html .= $form->text('main.SearchHeader');
// $output_html .= get_form_footer();
// Reset the sections that are already in the page so that they do not print again later.
$form->reset('main.SearchHeader');
// create the listview
$seed_bean = new Contact();
$ListView = new ListView();
$ListView->display_header_and_footer=false;
$ListView->show_export_button = false;
$ListView->process_for_popups = true;
$ListView->setXTemplate($form);
$ListView->setHeaderTitle($mod_strings['LBL_LIST_FORM_TITLE']);
$ListView->setHeaderText($button);
$ListView->setQuery($where, '', '', 'CONTACT');
$ListView->setModStrings($mod_strings);
$ListView->multi_select_popup=true;
ob_start();
$ListView->processListView($seed_bean, 'main', 'CONTACT');
$output_html .= ob_get_contents();
ob_end_clean();
//$output_html .= get_form_footer();
$output_html .= insert_popup_footer();
return $output_html;
}
function process_page_for_merge()
{
global $theme;
global $mod_strings;
global $app_strings;
global $currentModule;
global $sugar_version, $sugar_config;
$output_html = '';
$where = '';
$where = $this->_get_where_clause();
$image_path = 'themes/'.$theme.'/images/';
$first_name = empty($_REQUEST['first_name']) ? '' : $_REQUEST['first_name'];
$last_name = empty($_REQUEST['last_name']) ? '' : $_REQUEST['last_name'];
$account_name = empty($_REQUEST['account_name']) ? '' : $_REQUEST['account_name'];
$hide_clear_button = empty($_REQUEST['hide_clear_button']) ? false : true;
$button = "\n";
$form = new XTemplate('modules/Contacts/Popup_picker.html');
$form->assign('MOD', $mod_strings);
$form->assign('APP', $app_strings);
$form->assign('THEME', $theme);
$form->assign('MODULE_NAME', $currentModule);
$form->assign('FIRST_NAME', $first_name);
$form->assign('LAST_NAME', $last_name);
$form->assign('ACCOUNT_NAME', $account_name);
$request_data = empty($_REQUEST['request_data']) ? '' : $_REQUEST['request_data'];
$form->assign('request_data', $request_data);
ob_start();
insert_popup_header($theme);
$output_html .= ob_get_contents();
ob_end_clean();
$output_html .= get_form_header($mod_strings['LBL_SEARCH_FORM_TITLE'], '', false);
$form->parse('main.SearchHeader');
$output_html .= $form->text('main.SearchHeader');
$output_html .= get_form_footer();
// Reset the sections that are already in the page so that they do not print again later.
$form->reset('main.SearchHeader');
// create the listview
$seed_bean = new Contact();
$ListView = new ListView();
$ListView->display_header_and_footer=false;
$ListView->show_export_button = false;
$ListView->process_for_popups = true;
$ListView->setXTemplate($form);
$ListView->multi_select_popup=$multi_select;
if ($multi_select) $ListView->xTemplate->assign("TAG_TYPE","SPAN"); else $ListView->xTemplate->assign("TAG_TYPE","A");
$ListView->setHeaderTitle($mod_strings['LBL_LIST_FORM_TITLE']);
$ListView->setQuery($where, '', 'contacts.last_name, contacts.first_name', 'CONTACT');
$ListView->setModStrings($mod_strings);
ob_start();
$output_html .= get_form_header($mod_strings['LBL_LIST_FORM_TITLE'], $button, false);
//BEGIN ATHENA CUSTOMIZATION - rsmith
$query = $_REQUEST['select'].' WHERE '.$_REQUEST['where']."'".$_REQUEST['id']."'";
//$response = $seed_bean->process_list_query($_REQUEST['select'], 0, -1, -1, $_REQUEST['where']."'".$_REQUEST['id']."'");
$result = $seed_bean->db->query($query,true,"Error retrieving $seed_bean->object_name list: ");
$list = Array();
if(empty($rows_found))
{
$rows_found = $seed_bean->db->getRowCount($result);
}
$row_offset = 0;
global $sugar_config;
$max_per_page = $sugar_config['list_max_entries_per_page'];
while(($row = $seed_bean->db->fetchByAssoc($result)) != null)
{
$seed_bean = new Contact();
foreach($seed_bean->field_defs as $field=>$value)
{
if (isset($row[$field]))
{
$seed_bean->$field = $row[$field];
}
else if (isset($row[$seed_bean->table_name .'.'.$field]))
{
$seed_bean->$field = $row[$seed_bean->table_name .'.'.$field];
}
else
{
$seed_bean->$field = "";
}
}
$seed_bean->fill_in_additional_list_fields();
$list[] = $seed_bean;
}
$ListView->processListViewTwo($list, 'main', 'CONTACT');
//END ATHENA CUSTOMIZATION - rsmith
$output_html .= ob_get_contents();
ob_end_clean();
$output_html .= get_form_footer();
$output_html .= insert_popup_footer();
return $output_html;
}
/**
*
*/
function process_page_for_email()
{
global $theme;
global $mod_strings;
global $app_strings;
global $currentModule;
global $sugar_version, $sugar_config;
$output_html = '';
$where = '';
$where = $this->_get_where_clause();
$image_path = 'themes/'.$theme.'/images/';
$first_name = empty($_REQUEST['first_name']) ? '' : $_REQUEST['first_name'];
$last_name = empty($_REQUEST['last_name']) ? '' : $_REQUEST['last_name'];
$account_name = empty($_REQUEST['account_name']) ? '' : $_REQUEST['account_name'];
$hide_clear_button = empty($_REQUEST['hide_clear_button']) ? false : true;
$button = "\n";
$form = new XTemplate('modules/Contacts/Popup_picker.html');
$form->assign('MOD', $mod_strings);
$form->assign('APP', $app_strings);
$form->assign('THEME', $theme);
$form->assign('MODULE_NAME', $currentModule);
$form->assign('FIRST_NAME', $first_name);
$form->assign('LAST_NAME', $last_name);
$form->assign('ACCOUNT_NAME', $account_name);
ob_start();
insert_popup_header($theme);
$output_html .= ob_get_contents();
ob_end_clean();
$output_html .= get_form_header($mod_strings['LBL_SEARCH_FORM_TITLE'], '', false);
$form->parse('main.SearchHeader');
$output_html .= $form->text('main.SearchHeader');
$output_html .= get_form_footer();
// Reset the sections that are already in the page so that they do not print again later.
$form->reset('main.SearchHeader');
// create the listview
$seed_bean = new Contact();
$ListView = new ListView();
$ListView->display_header_and_footer=false;
$ListView->show_export_button = false;
$ListView->process_for_popups = true;
$ListView->setXTemplate($form);
$ListView->multi_select_popup=$multi_select;
if ($multi_select) $ListView->xTemplate->assign("TAG_TYPE","SPAN"); else $ListView->xTemplate->assign("TAG_TYPE","A");
$ListView->setHeaderTitle($mod_strings['LBL_LIST_FORM_TITLE']);
$ListView->setQuery($where, '', 'contacts.last_name, contacts.first_name', 'CONTACT');
$ListView->setModStrings($mod_strings);
ob_start();
$output_html .= get_form_header($mod_strings['LBL_LIST_FORM_TITLE'], $button, false);
$ListView->processListView($seed_bean, 'main', 'CONTACT');
$output_html .= ob_get_contents();
ob_end_clean();
$output_html .= get_form_footer();
$output_html .= insert_popup_footer();
return $output_html;
}
/**
*
*/
function process_page_for_address()
{
global $theme;
global $mod_strings;
global $app_strings;
global $currentModule;
global $sugar_version, $sugar_config;
$output_html = '';
$where = '';
$where = $this->_get_where_clause();
$image_path = 'themes/'.$theme.'/images/';
$formBase = new ContactFormBase();
if(isset($_REQUEST['doAction']) && $_REQUEST['doAction'] == 'save')
{
$formBase->handleSave('', false, true);
}
$first_name = empty($_REQUEST['first_name']) ? '' : $_REQUEST['first_name'];
$last_name = empty($_REQUEST['last_name']) ? '' : $_REQUEST['last_name'];
$account_name = empty($_REQUEST['account_name']) ? '' : $_REQUEST['account_name'];
$request_data = empty($_REQUEST['request_data']) ? '' : $_REQUEST['request_data'];
$hide_clear_button = empty($_REQUEST['hide_clear_button']) ? false : true;
$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'];
// TODO: cleanup the construction of $addform
$formbody = $formBase->getFormBody('','','EmailEditView');
$addform = ''
.str_replace(' ', ' ', $formbody)
. '
'
. ' ';
$formSave = <<
EOQ;
$createContact = <<
EOQ;
$addformheader = get_form_header($mod_strings['LNK_NEW_CONTACT'], $formSave, false);
$button = "\n";
$form = new XTemplate('modules/Contacts/Address_picker.html');
$form->assign('MOD', $mod_strings);
$form->assign('APP', $app_strings);
//$form->assign('CREATECONTACT', $createContact);
$form->assign('ADDFORMHEADER', $addformheader);
$form->assign('ADDFORM', $addform);
$form->assign('THEME', $theme);
$form->assign('MODULE_NAME', $currentModule);
$form->assign('FIRST_NAME', $first_name);
$form->assign('LAST_NAME', $last_name);
$form->assign('ACCOUNT_NAME', $account_name);
$form->assign('request_data', $request_data);
// fill in for mass update
$button = " ";
if(isset($_REQUEST['mass']) && is_array($_REQUEST['mass'])) {
foreach(array_unique($_REQUEST['mass']) as $record) {
$button .= " \n";
}
}
$button .= " ";
$button .= " ";
$button .= " ";
$button .= " ";
$button .= " ";
$button .= " ";
$button .= " ";
$button .= " ";
$button .= " ";
$button .= " ";
//$button .= " ";
$button .= " \n";
$button .= " \n";
ob_start();
insert_popup_header($theme);
$output_html .= ob_get_contents();
ob_end_clean();
//$output_html .= get_form_header($mod_strings['LBL_SEARCH_FORM_TITLE'], '', false);
//$form->parse('main.SearchHeader');
//$output_html .= $form->text('main.SearchHeader');
$output_html .= get_form_footer();
// Reset the sections that are already in the page so that they do not print again later.
$form->reset('main.SearchHeader');
// create the listview
$seed_bean = new Contact();
$ListView = new ListView();
$ListView->show_export_button = false;
$ListView->multi_select_popup=true;
$ListView->process_for_popups = true;
$ListView->setXTemplate($form);
$ListView->setHeaderTitle($mod_strings['LBL_LIST_FORM_TITLE']);
$ListView->setHeaderText($button);
$ListView->setQuery($where, '', '', 'CONTACT');
$ListView->setModStrings($mod_strings);
ob_start();
$ListView->processListViewMulti($seed_bean, 'main', 'CONTACT');
$output_html .= ob_get_contents();
ob_end_clean();
// Regular Expression to override sListView
$exp = '/sListView.save_checks/si';
$change = 'save_checks';
$output_html = preg_replace(array($exp), array($change), $output_html);
$output_html .= '';
$output_html .= get_form_footer();
$output_html .= insert_popup_footer();
return $output_html;
}
}
?>