added custom fields import ability to the add_lead function in the non-agent API

git-svn-id: svn://192.168.202.10@1467 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2010-07-04 16:38:58 +00:00
parent f5c48a0300
commit 8bd35baac0
3 changed files with 128 additions and 6 deletions
+2 -1
View File
@@ -182,7 +182,8 @@ OTHER CHANGES:
to the agent. Also, the Calls Export Report and the List Download to the agent. Also, the Calls Export Report and the List Download
feature include the custom fields values for the leads exported. There feature include the custom fields values for the leads exported. There
is currently no way to import data through the lead loader into custom is currently no way to import data through the lead loader into custom
fields. fields, but you can import custom field data when using the non-agent
API add_lead function(see the NON-AGENT_API.txt doc for more info).
+13 -1
View File
@@ -5,7 +5,7 @@ Interface) for all functions NOT directly relating to the VICIDIAL Agent screen.
This functionality will be rather limited at first and will be built upon as This functionality will be rather limited at first and will be built upon as
critical functions are identified and programmed into it. critical functions are identified and programmed into it.
There is also a new agent API script, for more information on that, please read There is also an agent API script, for more information on that, please read
the AGENT_API.txt document. the AGENT_API.txt document.
@@ -35,6 +35,8 @@ Changes:
90916-2342 - Added vm_list voicemail list 90916-2342 - Added vm_list voicemail list
91203-1140 - Added agent_ingroup_info feature 91203-1140 - Added agent_ingroup_info feature
91216-0331 - Added duplication check features to add_lead function 91216-0331 - Added duplication check features to add_lead function
100118-0543 - Added new Australian and New Zealand DST schemes (FSO-FSA and LSS-FSA)
100704-1148 - Added custom fields inserts to the add_lead function
@@ -213,6 +215,9 @@ duplicate_check - Check for duplicate records in the system, can select more tha
DUPTITLEALTPHONELIST - check for duplicate title and alt_phone in same list DUPTITLEALTPHONELIST - check for duplicate title and alt_phone in same list
DUPTITLEALTPHONECAMP - check for duplicate title and alt_phone in all lists for this list's campaign DUPTITLEALTPHONECAMP - check for duplicate title and alt_phone in all lists for this list's campaign
DUPTITLEALTPHONESYS - check for duplicate title and alt_phone in entire system DUPTITLEALTPHONESYS - check for duplicate title and alt_phone in entire system
custom_fields - Y or N, default is N. Defines whether the API will accept custom field data when inserting leads into the vicidial_list table
For custom fields to be inserted, just add the field label as a variable to the URL string
For example, if the field_label is "favorite_color" you would add "&favorite_color=blue"
(for fields with spaces in the values, you can replace the space with a plus + sign[address, city, first_name, etc...]) (for fields with spaces in the values, you can replace the space with a plus + sign[address, city, first_name, etc...])
OPTIONAL FIELDS- OPTIONAL FIELDS-
@@ -242,6 +247,7 @@ rank - 1-5 digits
owner - 1-20 characters (user ID, Territory or user group) owner - 1-20 characters (user ID, Territory or user group)
Multi-ALT-Phones format: Multi-ALT-Phones format:
7275551212_1_work!7275551213_1_sister+house!1234567890_1_neighbor 7275551212_1_work!7275551213_1_sister+house!1234567890_1_neighbor
@@ -260,12 +266,18 @@ http://server/vicidial/non_agent_api.php?source=test&user=6666&pass=1234&functio
http://server/vicidial/non_agent_api.php?source=test&user=6666&pass=1234&function=add_lead&phone_number=7275551212&phone_code=1&list_id=999&dnc_check=N&first_name=Bob&last_name=Wilson&duplicate_check=DUPLIST-DUPTITLEALTPHONELIST http://server/vicidial/non_agent_api.php?source=test&user=6666&pass=1234&function=add_lead&phone_number=7275551212&phone_code=1&list_id=999&dnc_check=N&first_name=Bob&last_name=Wilson&duplicate_check=DUPLIST-DUPTITLEALTPHONELIST
http://server/vicidial/non_agent_api.php?source=test&user=6666&pass=1234&function=add_lead&phone_number=7275551212&phone_code=1&list_id=999&custom_fields=Y&favorite_color=blue
Example responses: Example responses:
SUCCESS: add_lead LEAD HAS BEEN ADDED - 7275551111|6666|999|193715|-4 SUCCESS: add_lead LEAD HAS BEEN ADDED - 7275551111|6666|999|193715|-4
NOTICE: add_lead ADDED TO HOPPER - 7275551111|6666|193715|1677922 NOTICE: add_lead ADDED TO HOPPER - 7275551111|6666|193715|1677922
SUCCESS: add_lead LEAD HAS BEEN ADDED - 7275551111|6666|999|193716|-4 SUCCESS: add_lead LEAD HAS BEEN ADDED - 7275551111|6666|999|193716|-4
NOTICE: add_lead CUSTOM FIELDS VALUES ADDED - 7275551111|1234|101
NOTICE: add_lead CUSTOM FIELDS NOT ADDED, CUSTOM FIELDS DISABLED - 7275551111|Y|0
NOTICE: add_lead CUSTOM FIELDS NOT ADDED, NO CUSTOM FIELDS DEFINED FOR THIS LIST - 7275551111|1234|101
NOTICE: add_lead CUSTOM FIELDS NOT ADDED, NO FIELDS DEFINED - 7275551111|1234|101
NOTICE: add_lead MULTI-ALT-PHONE NUMBERS LOADED - 3|6666|193716 NOTICE: add_lead MULTI-ALT-PHONE NUMBERS LOADED - 3|6666|193716
NOTICE: add_lead NOT ADDED TO HOPPER, OUTSIDE OF LOCAL TIME - 7275551111|6666|193716|-4|0 NOTICE: add_lead NOT ADDED TO HOPPER, OUTSIDE OF LOCAL TIME - 7275551111|6666|193716|-4|0
+113 -4
View File
@@ -31,10 +31,11 @@
# 91203-1140 - Added agent_ingroup_info feature # 91203-1140 - Added agent_ingroup_info feature
# 91216-0331 - Added duplication check features to add_lead function # 91216-0331 - Added duplication check features to add_lead function
# 100118-0543 - Added new Australian and New Zealand DST schemes (FSO-FSA and LSS-FSA) # 100118-0543 - Added new Australian and New Zealand DST schemes (FSO-FSA and LSS-FSA)
# 100704-1148 - Added custom fields inserts to the add_lead function
# #
$version = '2.2.0-17'; $version = '2.4-18';
$build = '100118-0543'; $build = '100704-1148';
require("dbconnect.php"); require("dbconnect.php");
@@ -129,6 +130,8 @@ if (isset($_GET["agent_user"])) {$agent_user=$_GET["agent_user"];}
elseif (isset($_POST["agent_user"])) {$agent_user=$_POST["agent_user"];} elseif (isset($_POST["agent_user"])) {$agent_user=$_POST["agent_user"];}
if (isset($_GET["duplicate_check"])) {$duplicate_check=$_GET["duplicate_check"];} if (isset($_GET["duplicate_check"])) {$duplicate_check=$_GET["duplicate_check"];}
elseif (isset($_POST["duplicate_check"])) {$duplicate_check=$_POST["duplicate_check"];} elseif (isset($_POST["duplicate_check"])) {$duplicate_check=$_POST["duplicate_check"];}
if (isset($_GET["custom_fields"])) {$custom_fields=$_GET["custom_fields"];}
elseif (isset($_POST["custom_fields"])) {$custom_fields=$_POST["custom_fields"];}
header ("Content-type: text/html; charset=utf-8"); header ("Content-type: text/html; charset=utf-8");
header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
@@ -136,13 +139,14 @@ header ("Pragma: no-cache"); // HTTP/1.0
############################################# #############################################
##### START SYSTEM_SETTINGS LOOKUP ##### ##### START SYSTEM_SETTINGS LOOKUP #####
$stmt = "SELECT use_non_latin FROM system_settings;"; $stmt = "SELECT use_non_latin,custom_fields_enabled FROM system_settings;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$qm_conf_ct = mysql_num_rows($rslt); $qm_conf_ct = mysql_num_rows($rslt);
if ($qm_conf_ct > 0) if ($qm_conf_ct > 0)
{ {
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$non_latin = $row[0]; $non_latin = $row[0];
$custom_fields_enabled = $row[1];
} }
##### END SETTINGS LOOKUP ##### ##### END SETTINGS LOOKUP #####
########################################### ###########################################
@@ -208,6 +212,7 @@ if ($non_latin < 1)
$rank = ereg_replace("[^0-9]","",$rank); $rank = ereg_replace("[^0-9]","",$rank);
$owner = ereg_replace("[^-_0-9a-zA-Z]","",$owner); $owner = ereg_replace("[^-_0-9a-zA-Z]","",$owner);
$duplicate_check = ereg_replace("[^-_0-9a-zA-Z]","",$duplicate_check); $duplicate_check = ereg_replace("[^-_0-9a-zA-Z]","",$duplicate_check);
$custom_fields = ereg_replace("[^0-9a-zA-Z]","",$custom_fields);
} }
else else
{ {
@@ -233,6 +238,7 @@ $postalgmt='';
$api_script = 'non-agent'; $api_script = 'non-agent';
$api_logging = 1; $api_logging = 1;
$vicidial_list_fields = '|lead_id|vendor_lead_code|source_id|list_id|gmt_offset_now|called_since_last_reset|phone_code|phone_number|title|first_name|middle_initial|last_name|address1|address2|address3|city|state|province|postal_code|country_code|gender|date_of_birth|alt_phone|email|security_phrase|comments|called_count|last_local_call_time|rank|owner|';
$secX = date("U"); $secX = date("U");
$hour = date("H"); $hour = date("H");
@@ -1470,6 +1476,109 @@ if ($function == 'add_lead')
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
} }
### BEGIN custom fields insert section ###
if ($custom_fields == 'Y')
{
if ($custom_fields_enabled > 0)
{
$stmt="SHOW TABLES LIKE \"custom_$list_id\";";
if ($DB>0) {echo "$stmt";}
$rslt=mysql_query($stmt, $link);
$tablecount_to_print = mysql_num_rows($rslt);
if ($tablecount_to_print > 0)
{
$CFinsert_SQL='';
$stmt="SELECT field_id,field_label,field_name,field_description,field_rank,field_help,field_type,field_options,field_size,field_max,field_default,field_cost,field_required,multi_position,name_position,field_order from vicidial_lists_fields where list_id='$list_id' order by field_rank,field_order,field_label;";
$rslt=mysql_query($stmt, $link);
$fields_to_print = mysql_num_rows($rslt);
$fields_list='';
$o=0;
while ($fields_to_print > $o)
{
$new_field_value='';
$form_field_value='';
$rowx=mysql_fetch_row($rslt);
$A_field_id[$o] = $rowx[0];
$A_field_label[$o] = $rowx[1];
$A_field_name[$o] = $rowx[2];
$A_field_type[$o] = $rowx[6];
$A_field_size[$o] = $rowx[8];
$A_field_max[$o] = $rowx[9];
$A_field_required[$o] = $rowx[12];
$A_field_value[$o] = '';
$field_name_id = $A_field_label[$o];
if (isset($_GET["$field_name_id"])) {$form_field_value=$_GET["$field_name_id"];}
elseif (isset($_POST["$field_name_id"])) {$form_field_value=$_POST["$field_name_id"];}
$A_field_value[$o] = $form_field_value;
if ( ($A_field_type[$o]=='DISPLAY') or ($A_field_type[$o]=='SCRIPT') )
{
$A_field_value[$o]='----IGNORE----';
}
else
{
if (!preg_match("/\|$A_field_label[$o]\|/",$vicidial_list_fields))
{
$CFinsert_SQL .= "$A_field_label[$o]='$A_field_value[$o]',";
}
}
$o++;
}
if (strlen($CFinsert_SQL)>3)
{
$CFinsert_SQL = preg_replace("/,$/","",$CFinsert_SQL);
$custom_table_update_SQL = "INSERT INTO custom_$list_id SET lead_id='$lead_id',$CFinsert_SQL;";
$rslt=mysql_query($custom_table_update_SQL, $link);
$custom_insert_count = mysql_affected_rows($link);
if ($custom_insert_count > 0)
{
$result = 'NOTICE';
$result_reason = "add_lead CUSTOM FIELDS VALUES ADDED";
echo "$result: $result_reason - $phone_number|$lead_id|$list_id\n";
$data = "$phone_number|$lead_id|$list_id";
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
}
else
{
$result = 'NOTICE';
$result_reason = "add_lead CUSTOM FIELDS NOT ADDED, NO FIELDS DEFINED";
echo "$result: $result_reason - $phone_number|$lead_id|$list_id\n";
$data = "$phone_number|$lead_id|$list_id";
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
}
}
else
{
$result = 'NOTICE';
$result_reason = "add_lead CUSTOM FIELDS NOT ADDED, NO FIELDS DEFINED";
echo "$result: $result_reason - $phone_number|$lead_id|$list_id\n";
$data = "$phone_number|$lead_id|$list_id";
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
}
}
else
{
$result = 'NOTICE';
$result_reason = "add_lead CUSTOM FIELDS NOT ADDED, NO CUSTOM FIELDS DEFINED FOR THIS LIST";
echo "$result: $result_reason - $phone_number|$lead_id|$list_id\n";
$data = "$phone_number|$lead_id|$list_id";
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
}
}
else
{
$result = 'NOTICE';
$result_reason = "add_lead CUSTOM FIELDS NOT ADDED, CUSTOM FIELDS DISABLED";
echo "$result: $result_reason - $phone_number|$lead_id|$custom_fields|$custom_fields_enabled\n";
$data = "$phone_number|$lead_id|$custom_fields|$custom_fields_enabled";
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
}
}
### END custom fields insert section ###
if ($add_to_hopper == 'Y') if ($add_to_hopper == 'Y')
{ {
$dialable=1; $dialable=1;