Files
agc_2-X/www/vicidial/lead_tools.php
T
mattf 528ffe3990 Changed all administrative web interface text to be output through new QXZ function instead of echo, reports are not done yet
Changed all default VICIdial logos to new logos

git-svn-id: svn://192.168.202.10@2183 3d104415-ff17-0410-8863-d5cf3c621b8a
2014-11-11 11:01:32 +00:00

899 lines
36 KiB
PHP

<?php
# lead_tools.php - Various tools for lead basic lead management.
#
# Copyright (C) 2014 Matt Florell,Michael Cargile <vicidial@gmail.com> LICENSE: AGPLv2
#
# CHANGES
# 121110-1446 - Initial Build
# 121114-0956 - Added input filtering and vicidial_admin_log logging
# 130124-1129 - Added new options, from issue #632<noah>
# 130610-1045 - Finalized changing of all ereg instances to preg
# 130619-2203 - Added filtering of input to prevent SQL injection attacks and new user auth
# 130901-1927 - Changed to mysqli PHP functions
# 131016-2029 - Added links to advanced lead tools
# 141007-2039 - Finalized adding QXZ translation to all admin files
#
$version = '2.8-8';
$build = '141007-2039';
# This limit is to prevent data inconsistancies.
# If there are too many leads in a list this
# script might not finish before the php execution limit.
$list_lead_limit = 100000;
# maximum call count the script will work with
$max_count = 20;
require("dbconnect_mysqli.php");
require("functions.php");
$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
$PHP_SELF=$_SERVER['PHP_SELF'];
$ip = getenv("REMOTE_ADDR");
$SQLdate = date("Y-m-d H:i:s");
$DB=0;
$move_submit="";
$update_submit="";
$delete_submit="";
$confirm_move="";
$confirm_update="";
$confirm_delete="";
if (isset($_GET["DB"])) {$DB=$_GET["DB"];}
elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];}
if (isset($_GET["move_submit"])) {$move_submit=$_GET["move_submit"];}
elseif (isset($_POST["move_submit"])) {$move_submit=$_POST["move_submit"];}
if (isset($_GET["update_submit"])) {$update_submit=$_GET["update_submit"];}
elseif (isset($_POST["update_submit"])) {$update_submit=$_POST["update_submit"];}
if (isset($_GET["delete_submit"])) {$delete_submit=$_GET["delete_submit"];}
elseif (isset($_POST["delete_submit"])) {$delete_submit=$_POST["delete_submit"];}
if (isset($_GET["confirm_move"])) {$confirm_move=$_GET["confirm_move"];}
elseif (isset($_POST["confirm_move"])) {$confirm_move=$_POST["confirm_move"];}
if (isset($_GET["confirm_update"])) {$confirm_move=$_GET["confirm_update"];}
elseif (isset($_POST["confirm_update"])) {$confirm_update=$_POST["confirm_update"];}
if (isset($_GET["confirm_delete"])) {$confirm_delete=$_GET["confirm_delete"];}
elseif (isset($_POST["confirm_delete"])) {$confirm_delete=$_POST["confirm_delete"];}
$DB = preg_replace('/[^0-9]/','',$DB);
$move_submit = preg_replace('/[^-_0-9a-zA-Z]/','',$move_submit);
$update_submit = preg_replace('/[^-_0-9a-zA-Z]/','',$update_submit);
$delete_submit = preg_replace('/[^-_0-9a-zA-Z]/','',$delete_submit);
$confirm_move = preg_replace('/[^-_0-9a-zA-Z]/','',$confirm_move);
$confirm_update = preg_replace('/[^-_0-9a-zA-Z]/','',$confirm_update);
$confirm_delete = preg_replace('/[^-_0-9a-zA-Z]/','',$confirm_delete);
$delete_status = preg_replace('/[^-_0-9a-zA-Z]/','',$delete_status);
#############################################
##### START SYSTEM_SETTINGS LOOKUP #####
$sys_settings_stmt = "SELECT use_non_latin, outbound_autodial_active, sounds_central_control_active FROM system_settings;";
$sys_settings_rslt=mysql_to_mysqli($sys_settings_stmt, $link);
if ($DB) {echo "$sys_settings_stmt\n";}
$num_rows = mysqli_num_rows($sys_settings_rslt);
if ($num_rows > 0)
{
$sys_settings_row=mysqli_fetch_row($sys_settings_rslt);
$non_latin = $sys_settings_row[0];
$SSoutbound_autodial_active = $sys_settings_row[1];
$sounds_central_control_active = $sys_settings_row[2];
}
else
{
# there is something really weird if there are no system settings
exit;
}
##### END SETTINGS LOOKUP #####
###########################################
if ($non_latin < 1)
{
$PHP_AUTH_USER = preg_replace('/[^0-9a-zA-Z]/', '', $PHP_AUTH_USER);
$PHP_AUTH_PW = preg_replace('/[^0-9a-zA-Z]/', '', $PHP_AUTH_PW);
}
else
{
$PHP_AUTH_PW = preg_replace("/'|\"|\\\\|;/","",$PHP_AUTH_PW);
$PHP_AUTH_USER = preg_replace("/'|\"|\\\\|;/","",$PHP_AUTH_USER);
}
$list_id_override = preg_replace('/[^0-9]/','',$list_id_override);
$auth=0;
$auth_message = user_authorization($PHP_AUTH_USER,$PHP_AUTH_PW,'',1);
if ($auth_message == 'GOOD')
{$auth=1;}
if ($auth < 1)
{
$VDdisplayMESSAGE = _QXZ("Login incorrect, please try again");
if ($auth_message == 'LOCK')
{
$VDdisplayMESSAGE = _QXZ("Too many login attempts, try again in 15 minutes");
Header ("Content-type: text/html; charset=utf-8");
echo "$VDdisplayMESSAGE: |$PHP_AUTH_USER|$auth_message|\n";
exit;
}
Header("WWW-Authenticate: Basic realm=\"CONTACT-CENTER-ADMIN\"");
Header("HTTP/1.0 401 Unauthorized");
echo "$VDdisplayMESSAGE: |$PHP_AUTH_USER|$PHP_AUTH_PW|$auth_message|\n";
exit;
}
header ("Content-type: text/html; charset=utf-8");
header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header ("Pragma: no-cache"); // HTTP/1.0
# valid user
$rights_stmt = "SELECT load_leads,user_group, delete_lists, modify_leads, modify_lists from vicidial_users where user='$PHP_AUTH_USER';";
if ($DB) {echo "|$stmt|\n";}
$rights_rslt=mysql_to_mysqli($rights_stmt, $link);
$rights_row=mysqli_fetch_row($rights_rslt);
$load_leads = $rights_row[0];
$user_group = $rights_row[1];
$delete_lists = $rights_row[2];
$modify_leads = $rights_row[3];
$modify_lists = $rights_row[4];
# check their permissions
if ( $load_leads < 1 )
{
header ("Content-type: text/html; charset=utf-8");
echo _QXZ("You do not have permissions to load leads")."\n";
exit;
}
if ( $modify_leads < 1 )
{
header ("Content-type: text/html; charset=utf-8");
echo _QXZ("You do not have permissions to modify leads")."\n";
exit;
}
if ( $modify_lists < 1 )
{
header ("Content-type: text/html; charset=utf-8");
echo _QXZ("You do not have permissions to modify lists")."\n";
exit;
}
echo "<html>\n";
echo "<head>\n";
echo "<META HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>\n";
echo "<!-- VERSION: <?php echo $version ?> BUILD: <?php echo $build ?> -->\n";
echo "<title>"._QXZ("ADMINISTRATION: Lead Tools")."</title>\n";
##### BEGIN Set variables to make header show properly #####
$ADD = '999998';
$hh = 'admin';
$LOGast_admin_access = '1';
$SSoutbound_autodial_active = '1';
$ADMIN = 'admin.php';
$page_width='770';
$section_width='750';
$header_font_size='3';
$subheader_font_size='2';
$subcamp_font_size='2';
$header_selected_bold='<b>';
$header_nonselected_bold='';
$admin_color = '#FFFF99';
$admin_font = 'BLACK';
$admin_color = '#E6E6E6';
$subcamp_color = '#C6C6C6';
##### END Set variables to make header show properly #####
require("admin_header.php");
echo "<table width=$page_width bgcolor=#E6E6E6 cellpadding=2 cellspacing=0>\n";
echo "<tr bgcolor='#E6E6E6'>\n";
echo "<td align=left>\n";
echo "<font face='ARIAL,HELVETICA' size=2>\n";
echo "<b> &nbsp; "._QXZ("Basic Lead Tools")." &nbsp; | &nbsp; <a href=\"lead_tools_advanced.php\">"._QXZ("Advanced Lead Tools")."</a></b>\n";
echo "</font>\n";
echo "</td>\n";
echo "<td align=right><font face='ARIAL,HELVETICA' size=2><b> &nbsp; </td>\n";
echo "</tr>\n";
echo "<tr bgcolor='#F0F5FE'><td align=left colspan=2><font face='ARIAL,HELVETICA' color=black size=3> &nbsp; \n";
# move confirmation page
if ($move_submit == "move" )
{
# get the variables
$move_from_list="";
$move_to_list="";
$move_status="";
$move_count_op="";
$move_count_num="";
if (isset($_GET["move_from_list"])) {$move_from_list=$_GET["move_from_list"];}
elseif (isset($_POST["move_from_list"])) {$move_from_list=$_POST["move_from_list"];}
if (isset($_GET["move_to_list"])) {$move_to_list=$_GET["move_to_list"];}
elseif (isset($_POST["move_to_list"])) {$move_to_list=$_POST["move_to_list"];}
if (isset($_GET["move_status"])) {$move_status=$_GET["move_status"];}
elseif (isset($_POST["move_status"])) {$move_status=$_POST["move_status"];}
if (isset($_GET["move_count_op"])) {$move_count_op=$_GET["move_count_op"];}
elseif (isset($_POST["move_count_op"])) {$move_count_op=$_POST["move_count_op"];}
if (isset($_GET["move_count_num"])) {$move_count_num=$_GET["move_count_num"];}
elseif (isset($_POST["move_count_num"])) {$move_count_num=$_POST["move_count_num"];}
#$move_status = preg_replace('/[^-_0-9a-zA-Z]/','',$move_status);
$move_from_list = preg_replace('/[^0-9]/','',$move_from_list);
$move_to_list = preg_replace('/[^0-9]/','',$move_to_list);
$move_count_num = preg_replace('/[^0-9]/','',$move_count_num);
$move_count_op = preg_replace('/[^<>=]/','',$move_count_op);
$move_count_op_phrase="";
if ( $move_count_op == "<" )
{
$move_count_op_phrase= _QXZ("less than")." ";
}
elseif ( $move_count_op == "<=" )
{
$move_count_op_phrase= _QXZ("less than or equal to")." ";
}
elseif ( $move_count_op == ">" )
{
$move_count_op_phrase= _QXZ("greater than")." ";
}
elseif ( $move_count_op == ">=" )
{
$move_count_op_phrase= _QXZ("greater than or equal to")." ";
}
# get the number of leads this action will move
$move_lead_count=0;
$move_lead_count_stmt = "SELECT count(1) FROM vicidial_list WHERE list_id = '$move_from_list' and status like '$move_status' and called_count $move_count_op $move_count_num";
if ($DB) { echo "|$move_lead_count_stmt|\n"; }
$move_lead_count_rslt = mysql_to_mysqli($move_lead_count_stmt, $link);
$move_lead_count_row = mysqli_fetch_row($move_lead_count_rslt);
$move_lead_count = $move_lead_count_row[0];
# get the number of leads in the list this action will move to
$to_list_lead_count=0;
$to_list_lead_stmt = "SELECT count(1) FROM vicidial_list WHERE list_id = '$move_to_list'";
if ($DB) { echo "|$to_list_lead_stmt|\n"; }
$to_list_lead_rslt = mysql_to_mysqli($to_list_lead_stmt, $link);
$to_list_lead_row = mysqli_fetch_row($to_list_lead_rslt);
$to_list_lead_count = $to_list_lead_row[0];
# check to see if we will exceed list_lead_limit in the move to list
if ( $to_list_lead_count + $move_lead_count > $list_lead_limit )
{
echo "<html>\n";
echo "<head>\n";
echo "<!-- VERSION: $version BUILD: $build -->\n";
echo "</head>\n";
echo "<body>\n";
echo "<p>"._QXZ("Sorry. This operation will cause list")." $move_to_list "._QXZ("to exceed")." $list_lead_limit "._QXZ("leads which is not allowed").".</p>\n";
echo "<p><a href='$PHP_SELF'>"._QXZ("Click here to start over").".</a></p>\n";
echo "</body>\n</html>\n";
}
else
{
echo "<p>"._QXZ("You are about to move")." $move_lead_count "._QXZ("leads from list")." $move_from_list "._QXZ("to")." $move_to_list "._QXZ("with the status")." $move_status "._QXZ("and that were called")." $move_count_op_phrase$move_count_num "._QXZ("times").". "._QXZ("Please press confirm to continue").".</p>\n";
echo "<center><form action=$PHP_SELF method=POST>\n";
echo "<input type=hidden name=move_from_list value='$move_from_list'>\n";
echo "<input type=hidden name=move_to_list value='$move_to_list'>\n";
echo "<input type=hidden name=move_status value='$move_status'>\n";
echo "<input type=hidden name=move_count_op value='$move_count_op'>\n";
echo "<input type=hidden name=move_count_num value='$move_count_num'>\n";
echo "<input type=submit name=confirm_move value=confirm>\n";
echo "</form></center>\n";
echo "<p><a href='$PHP_SELF'>"._QXZ("Click here to start over").".</a></p>\n";
echo "</body>\n</html>\n";
}
}
# actually do the move
if ($confirm_move == "confirm")
{
# get the variables
$move_from_list="";
$move_to_list="";
$move_status="";
$move_count_op="";
$move_count_num="";
if (isset($_GET["move_from_list"])) {$move_from_list=$_GET["move_from_list"];}
elseif (isset($_POST["move_from_list"])) {$move_from_list=$_POST["move_from_list"];}
if (isset($_GET["move_to_list"])) {$move_to_list=$_GET["move_to_list"];}
elseif (isset($_POST["move_to_list"])) {$move_to_list=$_POST["move_to_list"];}
if (isset($_GET["move_status"])) {$move_status=$_GET["move_status"];}
elseif (isset($_POST["move_status"])) {$move_status=$_POST["move_status"];}
if (isset($_GET["move_count_op"])) {$move_count_op=$_GET["move_count_op"];}
elseif (isset($_POST["move_count_op"])) {$move_count_op=$_POST["move_count_op"];}
if (isset($_GET["move_count_num"])) {$move_count_num=$_GET["move_count_num"];}
elseif (isset($_POST["move_count_num"])) {$move_count_num=$_POST["move_count_num"];}
#$move_status = preg_replace('/[^-_0-9a-zA-Z]/','',$move_status);
$move_from_list = preg_replace('/[^0-9]/','',$move_from_list);
$move_to_list = preg_replace('/[^0-9]/','',$move_to_list);
$move_count_num = preg_replace('/[^0-9]/','',$move_count_num);
$move_count_op = preg_replace('/[^<>=]/','',$move_count_op);
$move_count_op_phrase="";
if ( $move_count_op == "<" )
{
$move_count_op_phrase= _QXZ("less than")." ";
}
elseif ( $move_count_op == "<=" )
{
$move_count_op_phrase= _QXZ("less than or equal to")." ";
}
elseif ( $move_count_op == ">" )
{
$move_count_op_phrase= _QXZ("greater than")." ";
}
elseif ( $move_count_op == ">=" )
{
$move_count_op_phrase= _QXZ("greater than or equal to")." ";
}
$move_lead_stmt = "UPDATE vicidial_list SET list_id = '$move_to_list' WHERE list_id = '$move_from_list' and status like '$move_status' and called_count $move_count_op $move_count_num";
if ($DB) { echo "|$move_lead_stmt|\n"; }
$move_lead_rslt = mysql_to_mysqli($move_lead_stmt, $link);
$move_lead_count = mysqli_affected_rows($link);
$move_sentence = "$move_lead_count leads have been moved from list $move_from_list to $move_to_list with the status $move_status and that were called $move_count_op_phrase$move_count_num times.";
$SQL_log = "$move_lead_stmt|";
$SQL_log = preg_replace('/;/', '', $SQL_log);
$SQL_log = addslashes($SQL_log);
$admin_log_stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTS', event_type='OTHER', record_id='$move_from_list', event_code='ADMIN MOVE LEADS', event_sql=\"$SQL_log\", event_notes='$move_sentence';";
if ($DB) {echo "|$admin_log_stmt|\n";}
$admin_log_rslt=mysql_to_mysqli($admin_log_stmt, $link);
echo "<p>$move_sentence</p>";
echo "<p><a href='$PHP_SELF'>"._QXZ("Click here to start over").".</a></p>\n";
}
# update confirmation page
if ($update_submit == "update" )
{
# get the variables
$update_list="";
$update_from_status="";
$update_to_status="";
$update_count_op="";
$update_count_num="";
if (isset($_GET["update_list"])) {$update_list=$_GET["update_list"];}
elseif (isset($_POST["update_list"])) {$update_list=$_POST["update_list"];}
if (isset($_GET["update_from_status"])) {$update_from_status=$_GET["update_from_status"];}
elseif (isset($_POST["update_from_status"])) {$update_from_status=$_POST["update_from_status"];}
if (isset($_GET["update_to_status"])) {$update_to_status=$_GET["update_to_status"];}
elseif (isset($_POST["update_to_status"])) {$update_to_status=$_POST["update_to_status"];}
if (isset($_GET["update_count_op"])) {$update_count_op=$_GET["update_count_op"];}
elseif (isset($_POST["update_count_op"])) {$update_count_op=$_POST["update_count_op"];}
if (isset($_GET["update_count_num"])) {$update_count_num=$_GET["update_count_num"];}
elseif (isset($_POST["update_count_num"])) {$update_count_num=$_POST["update_count_num"];}
$update_from_status = preg_replace('/[^-_0-9a-zA-Z]/','',$update_from_status);
$update_to_status = preg_replace('/[^-_0-9a-zA-Z]/','',$update_to_status);
$update_list = preg_replace('/[^0-9]/','',$update_list);
$update_count_num = preg_replace('/[^0-9]/','',$update_count_num);
$update_count_op = preg_replace('/[^<>=]/','',$update_count_op);
$update_count_op_phrase="";
if ( $update_count_op == "<" )
{
$update_count_op_phrase= _QXZ("less than")." ";
}
elseif ( $update_count_op == "<=" )
{
$update_count_op_phrase= _QXZ("less than or equal to")." ";
}
elseif ( $update_count_op == ">" )
{
$update_count_op_phrase= _QXZ("greater than")." ";
}
elseif ( $update_count_op == ">=" )
{
$update_count_op_phrase= _QXZ("greater than or equal to")." ";
}
# get the number of leads this action will move
$update_lead_count=0;
$update_lead_count_stmt = "SELECT count(1) FROM vicidial_list WHERE list_id = '$update_list' and status = '$update_from_status' and called_count $update_count_op $update_count_num";
if ($DB) { echo "|$update_lead_count_stmt|\n"; }
$update_lead_count_rslt = mysql_to_mysqli($update_lead_count_stmt, $link);
$update_lead_count_row = mysqli_fetch_row($update_lead_count_rslt);
$update_lead_count = $update_lead_count_row[0];
echo "<p>"._QXZ("You are about to update")." $update_lead_count "._QXZ("leads in list")." $update_list "._QXZ("from the status")." $update_from_status "._QXZ("to the status")." $update_to_status "._QXZ("that were called")." $update_count_op_phrase$update_count_num "._QXZ("times").". "._QXZ("Please press confirm to continue").".</p>\n";
echo "<center><form action=$PHP_SELF method=POST>\n";
echo "<input type=hidden name=update_list value='$update_list'>\n";
echo "<input type=hidden name=update_from_status value='$update_from_status'>\n";
echo "<input type=hidden name=update_to_status value='$update_to_status'>\n";
echo "<input type=hidden name=update_count_op value='$update_count_op'>\n";
echo "<input type=hidden name=update_count_num value='$update_count_num'>\n";
echo "<input type=submit name=confirm_update value=confirm>\n";
echo "</form></center>\n";
echo "<p><a href='$PHP_SELF'>"._QXZ("Click here to start over").".</a></p>\n";
echo "</body>\n</html>\n";
}
# actually do the update
if ($confirm_update == "confirm")
{
# get the variables
$update_list="";
$update_from_status="";
$update_to_status="";
$update_count_op="";
$update_count_num="";
if (isset($_GET["update_list"])) {$update_list=$_GET["update_list"];}
elseif (isset($_POST["update_list"])) {$update_list=$_POST["update_list"];}
if (isset($_GET["update_from_status"])) {$update_from_status=$_GET["update_from_status"];}
elseif (isset($_POST["update_from_status"])) {$update_from_status=$_POST["update_from_status"];}
if (isset($_GET["update_to_status"])) {$update_to_status=$_GET["update_to_status"];}
elseif (isset($_POST["update_to_status"])) {$update_to_status=$_POST["update_to_status"];}
if (isset($_GET["update_count_op"])) {$update_count_op=$_GET["update_count_op"];}
elseif (isset($_POST["update_count_op"])) {$update_count_op=$_POST["update_count_op"];}
if (isset($_GET["update_count_num"])) {$update_count_num=$_GET["update_count_num"];}
elseif (isset($_POST["update_count_num"])) {$update_count_num=$_POST["update_count_num"];}
$update_from_status = preg_replace('/[^-_0-9a-zA-Z]/','',$update_from_status);
$update_to_status = preg_replace('/[^-_0-9a-zA-Z]/','',$update_to_status);
$update_list = preg_replace('/[^0-9]/','',$update_list);
$update_count_num = preg_replace('/[^0-9]/','',$update_count_num);
$update_count_op = preg_replace('/[^<>=]/','',$update_count_op);
$update_count_op_phrase="";
if ( $update_count_op == "<" )
{
$update_count_op_phrase= _QXZ("less than")." ";
}
elseif ( $update_count_op == "<=" )
{
$update_count_op_phrase= _QXZ("less than or equal to")." ";
}
elseif ( $update_count_op == ">" )
{
$update_count_op_phrase= _QXZ("greater than")." ";
}
elseif ( $update_count_op == ">=" )
{
$update_count_op_phrase= _QXZ("greater than or equal to")." ";
}
$update_lead_stmt = "UPDATE vicidial_list SET status = '$update_to_status' WHERE list_id = '$update_list' and status = '$update_from_status' and called_count $update_count_op $update_count_num";
if ($DB) { echo "|$delete_lead_stmt|\n"; }
$update_lead_rslt = mysql_to_mysqli($update_lead_stmt, $link);
$update_lead_count = mysqli_affected_rows($link);
$update_sentence = "$update_lead_count leads had their status changed from $update_from_status to $update_to_status in list $update_list that were called $update_count_op_phrase$update_count_num times.";
$SQL_log = "$update_lead_stmt|";
$SQL_log = preg_replace('/;/', '', $SQL_log);
$SQL_log = addslashes($SQL_log);
$admin_log_stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTS', event_type='MODIFY', record_id='$update_list', event_code='ADMIN UPDATE LEADS', event_sql=\"$SQL_log\", event_notes='$update_sentence';";
if ($DB) {echo "|$admin_log_stmt|\n";}
$admin_log_rslt=mysql_to_mysqli($admin_log_stmt, $link);
echo "<p>$update_sentence</p>";
echo "<p><a href='$PHP_SELF'>"._QXZ("Click here to start over").".</a></p>\n";
}
# delete confirmation page
if ( ( $delete_submit == "delete" ) && ( $delete_lists > 0 ) )
{
# get the variables
$delete_list="";
$delete_status="";
$delete_count_op="";
$delete_count_num="";
if (isset($_GET["delete_list"])) {$delete_list=$_GET["delete_list"];}
elseif (isset($_POST["delete_list"])) {$delete_list=$_POST["delete_list"];}
if (isset($_GET["delete_status"])) {$delete_status=$_GET["delete_status"];}
elseif (isset($_POST["delete_status"])) {$delete_status=$_POST["delete_status"];}
if (isset($_GET["delete_count_op"])) {$delete_count_op=$_GET["delete_count_op"];}
elseif (isset($_POST["delete_count_op"])) {$delete_count_op=$_POST["delete_count_op"];}
if (isset($_GET["delete_count_num"])) {$delete_count_num=$_GET["delete_count_num"];}
elseif (isset($_POST["delete_count_num"])) {$delete_count_num=$_POST["delete_count_num"];}
$delete_status = preg_replace('/[^-_0-9a-zA-Z]/','',$delete_status);
$delete_list = preg_replace('/[^0-9]/','',$delete_list);
$delete_count_num = preg_replace('/[^0-9]/','',$delete_count_num);
$delete_count_op = preg_replace('/[^<>=]/','',$delete_count_op);
$delete_count_op_phrase="";
if ( $delete_count_op == "<" )
{
$delete_count_op_phrase= _QXZ("less than")." ";
}
elseif ( $delete_count_op == "<=" )
{
$delete_count_op_phrase= _QXZ("less than or equal to")." ";
}
elseif ( $delete_count_op == ">" )
{
$delete_count_op_phrase= _QXZ("greater than")." ";
}
elseif ( $delete_count_op == ">=" )
{
$delete_count_op_phrase= _QXZ("greater than or equal to")." ";
}
# get the number of leads this action will move
$delete_lead_count=0;
$delete_lead_count_stmt = "SELECT count(1) FROM vicidial_list WHERE list_id = '$delete_list' and status = '$delete_status' and called_count $delete_count_op $delete_count_num";
if ($DB) { echo "|$delete_lead_count_stmt|\n"; }
$delete_lead_count_rslt = mysql_to_mysqli($delete_lead_count_stmt, $link);
$delete_lead_count_row = mysqli_fetch_row($delete_lead_count_rslt);
$delete_lead_count = $delete_lead_count_row[0];
echo "<p>"._QXZ("You are about to delete")." $delete_lead_count "._QXZ("leads in list")." $delete_list "._QXZ("with the status")." $delete_status "._QXZ("that were called")." $delete_count_op_phrase$delete_count_num "._QXZ("times").". "._QXZ("Please press confirm to continue").".</p>\n";
echo "<center><form action=$PHP_SELF method=POST>\n";
echo "<input type=hidden name=delete_list value='$delete_list'>\n";
echo "<input type=hidden name=delete_status value='$delete_status'>\n";
echo "<input type=hidden name=delete_count_op value='$delete_count_op'>\n";
echo "<input type=hidden name=delete_count_num value='$delete_count_num'>\n";
echo "<input type=submit name=confirm_delete value=confirm>\n";
echo "</form></center>\n";
echo "<p><a href='$PHP_SELF'>"._QXZ("Click here to start over").".</a></p>\n";
echo "</body>\n</html>\n";
}
# actually do the delete
if ( ( $confirm_delete == "confirm" ) && ( $delete_lists > 0 ) )
{
# get the variables
$delete_list="";
$delete_status="";
$delete_count_op="";
$delete_count_num="";
if (isset($_GET["delete_list"])) {$delete_list=$_GET["delete_list"];}
elseif (isset($_POST["delete_list"])) {$delete_list=$_POST["delete_list"];}
if (isset($_GET["delete_status"])) {$delete_status=$_GET["delete_status"];}
elseif (isset($_POST["delete_status"])) {$delete_status=$_POST["delete_status"];}
if (isset($_GET["delete_count_op"])) {$delete_count_op=$_GET["delete_count_op"];}
elseif (isset($_POST["delete_count_op"])) {$delete_count_op=$_POST["delete_count_op"];}
if (isset($_GET["delete_count_num"])) {$delete_count_num=$_GET["delete_count_num"];}
elseif (isset($_POST["delete_count_num"])) {$delete_count_num=$_POST["delete_count_num"];}
$delete_status = preg_replace('/[^-_0-9a-zA-Z]/','',$delete_status);
$delete_list = preg_replace('/[^0-9]/','',$delete_list);
$delete_count_num = preg_replace('/[^0-9]/','',$delete_count_num);
$delete_count_op = preg_replace('/[^<>=]/','',$delete_count_op);
$delete_count_op_phrase="";
if ( $delete_count_op == "<" )
{
$delete_count_op_phrase= _QXZ("less than")." ";
}
elseif ( $delete_count_op == "<=" )
{
$delete_count_op_phrase= _QXZ("less than or equal to")." ";
}
elseif ( $delete_count_op == ">" )
{
$delete_count_op_phrase= _QXZ("greater than")." ";
}
elseif ( $delete_count_op == ">=" )
{
$delete_count_op_phrase= _QXZ("greater than or equal to")." ";
}
$delete_lead_stmt = "DELETE FROM vicidial_list WHERE list_id = '$delete_list' and status = '$delete_status' and called_count $delete_count_op $delete_count_num";
if ($DB) { echo "|$delete_lead_stmt|\n"; }
$delete_lead_rslt = mysql_to_mysqli($delete_lead_stmt, $link);
$delete_lead_count = mysqli_affected_rows($link);
$delete_sentence = "$delete_lead_count "._QXZ("leads delete from list")." $delete_list "._QXZ("with the status")." $delete_status "._QXZ("that were called")." $delete_count_op_phrase$delete_count_num "._QXZ("times").".";
$SQL_log = "$update_lead_stmt|";
$SQL_log = preg_replace('/;/', '', $SQL_log);
$SQL_log = addslashes($SQL_log);
$admin_log_stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTS', event_type='DELETE', record_id='$delete_list', event_code='ADMIN DELETE LEADS', event_sql=\"$SQL_log\", event_notes='$delete_sentence';";
if ($DB) {echo "|$admin_log_stmt|\n";}
$admin_log_rslt=mysql_to_mysqli($admin_log_stmt, $link);
echo "<p>$delete_sentence</p>";
echo "<p><a href='$PHP_SELF'>"._QXZ("Click here to start over").".</a></p>\n";
}
# main page display
if (
($move_submit != "move" ) && ($update_submit != "update") && ($delete_submit != "delete") &&
($confirm_move != "confirm") && ($confirm_update != "confirm") && ($confirm_delete != "confirm")
)
{
# figure out which campaigns this user is allowed to work on
$allowed_campaigns_stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$user_group';";
if ($DB) { echo "|$allowed_campaigns_stmt|\n"; }
$rslt = mysql_to_mysqli($allowed_campaigns_stmt, $link);
$allowed_campaigns_row = mysqli_fetch_row($rslt);
$allowed_campaigns = $allowed_campaigns_row[0];
if ($DB) { echo "|$allowed_campaigns|\n"; }
$allowed_campaigns_sql = "";
if ( preg_match("/ALL\-CAMPAIGNS/i",$allowed_campaigns) )
{
if ($DB) { echo "|"._QXZ("Processing All Campaigns")."|\n"; }
$campaign_id_stmt = "SELECT campaign_id FROM vicidial_campaigns";
$campaign_id_rslt = mysql_to_mysqli($campaign_id_stmt, $link);
$campaign_id_num_rows = mysqli_num_rows($campaign_id_rslt);
if ($DB) { echo "|campaign_id_num_rows = $campaign_id_num_rows|\n"; }
if ($campaign_id_num_rows > 0)
{
$i = 0;
while ( $i < $campaign_id_num_rows )
{
$campaign_id_row = mysqli_fetch_row($campaign_id_rslt);
if ( $i == 0 )
{
$allowed_campaigns_sql = "'$campaign_id_row[0]'";
}
else
{
$allowed_campaigns_sql = "$allowed_campaigns_sql, '$campaign_id_row[0]'";
}
$i++;
}
}
}
else
{
$allowed_campaigns_sql = preg_replace("/ -/",'',$allowed_campaigns);
$allowed_campaigns_sql = preg_replace("/^ /",'',$allowed_campaigns_sql);
$allowed_campaigns_sql = preg_replace("/ $/",'',$allowed_campaigns_sql);
$allowed_campaigns_sql = preg_replace("/ /","','",$allowed_campaigns_sql);
$allowed_campaigns_sql = "'$allowed_campaigns_sql'";
}
# figure out which lists they are allowed to see
$lists_stmt = "SELECT list_id, list_name FROM vicidial_lists WHERE campaign_id IN ($allowed_campaigns_sql) and active = 'N' ORDER BY list_id";
if ($DB) { echo "|$lists_stmt|\n"; }
$lists_rslt = mysql_to_mysqli($lists_stmt, $link);
$num_rows = mysqli_num_rows($lists_rslt);
$i = 0;
$allowed_lists_count = 0;
while ( $i < $num_rows )
{
$lists_row = mysqli_fetch_row($lists_rslt);
# check how many leads are in the list
$lead_count_stmt = "SELECT count(1) FROM vicidial_list WHERE list_id = '$lists_row[0]'";
if ($DB) { echo "|$lead_count_stmt|\n"; }
$lead_count_rslt = mysql_to_mysqli($lead_count_stmt, $link);
$lead_count_row = mysqli_fetch_row($lead_count_rslt);
$lead_count = $lead_count_row[0];
# only show lists that are under the list_lead_limit
if ( $lead_count <= $list_lead_limit )
{
$list_ary[$allowed_lists_count] = $lists_row[0];
$list_name_ary[$allowed_lists_count] = $lists_row[1];
$list_lead_count_ary[$allowed_lists_count] = $lead_count_row[0];
if ($allowed_lists_count == 0)
{
$allowed_lists_sql = "'$lists_row[0]'";
}
else
{
$allowed_lists_sql = "$allowed_lists_sql, '$lists_row[0]'";
}
$allowed_lists_count++;
}
$i++;
}
# figure out which statuses are in the lists they are allowed to look at
$status_stmt = "SELECT DISTINCT status FROM vicidial_list WHERE list_id IN ( $allowed_lists_sql ) ORDER BY status";
if ($DB) { echo "|$status_stmt|\n"; }
$status_rslt = mysql_to_mysqli($status_stmt, $link);
$status_count=mysqli_num_rows($status_rslt);
$i = 0;
while ( $i < $status_count )
{
$status_row = mysqli_fetch_row($status_rslt);
$statuses[$i] = $status_row[0];
$i++;
}
# figure out which statuses are in the lists they are allowed to look at
$sys_status_stmt = "SELECT status FROM vicidial_statuses ORDER BY status";
if ($DB) { echo "|$sys_status_stmt|\n"; }
$sys_status_rslt = mysql_to_mysqli($sys_status_stmt, $link);
$sys_status_count=mysqli_num_rows($sys_status_rslt);
$i = 0;
while ( $i < $sys_status_count )
{
$sys_status_row = mysqli_fetch_row($sys_status_rslt);
$sys_statuses[$i] = $sys_status_row[0];
$i++;
}
echo "<p>"._QXZ("The following are basic lead management tools. They will only work on inactive lists with less than")." $list_lead_limit "._QXZ("leads in them").". "._QXZ("This is to avoid data inconsistencies").".</p>";
echo "<form action=$PHP_SELF method=POST>\n";
echo "<center><table width=$section_width cellspacing=3>\n";
# BEGIN lead move
echo "<tr bgcolor=#015B91><td colspan=2 align=center><font color=white><b>"._QXZ("Move Leads")."</b></font></td></tr>\n";
echo "<tr bgcolor=#B6D3FC><td align=right>"._QXZ("From List")."</td><td align=left>\n";
echo "<select size=1 name=move_from_list>\n";
echo "<option value='-'>"._QXZ("Select A List")."</option>\n";
$i = 0;
while ( $i < $allowed_lists_count )
{
echo "<option value='$list_ary[$i]'>$list_ary[$i] - $list_name_ary[$i] ($list_lead_count_ary[$i] leads)</option>\n";
$i++;
}
echo "</select></td></tr>\n";
echo "<tr bgcolor=#B6D3FC><td align=right>"._QXZ("To List")."</td><td align=left>\n";
echo "<select size=1 name=move_to_list>\n";
echo "<option value='-'>"._QXZ("Select A List")."</option>\n";
$i = 0;
while ( $i < $allowed_lists_count )
{
echo "<option value='$list_ary[$i]'>$list_ary[$i] - $list_name_ary[$i] ($list_lead_count_ary[$i] leads)</option>\n";
$i++;
}
echo "</select></td></tr>\n";
echo "<tr bgcolor=#B6D3FC><td align=right>"._QXZ("Status")."</td><td align=left>\n";
echo "<select size=1 name=move_status>\n";
echo "<option value='-'>"._QXZ("Select A Status")."</option>\n";
echo "<option value='%'>"._QXZ("All Statuses")."</option>\n";
$i = 0;
while ( $i < $status_count )
{
echo "<option value='$statuses[$i]'>$statuses[$i]</option>\n";
$i++;
}
echo "</select></td></tr>\n";
echo "<tr bgcolor=#B6D3FC><td align=right>"._QXZ("Called Count")."</td><td align=left>\n";
echo "<select size=1 name=move_count_op>\n";
echo "<option value='<'><</option>\n";
echo "<option value='<='><=</option>\n";
echo "<option value='>'>></option>\n";
echo "<option value='>='>>=</option>\n";
echo "<option value='='>=</option>\n";
echo "</select>\n";
echo "<select size=1 name=move_count_num>\n";
$i=0;
while ( $i <= $max_count )
{
echo "<option value='$i'>$i</option>\n";
$i++;
}
echo "</select></td></tr>\n";
echo "<tr bgcolor=#B6D3FC><td colspan=2 align=center><input type=submit name=move_submit value='"._QXZ("move")."'></td></tr>\n";
echo "</table></center>\n";
# END lead move
# BEGIN Status Update
echo "<br /><center><table width=$section_width cellspacing=3>\n";
echo "<tr bgcolor=#015B91><td colspan=2 align=center><font color=white><b>"._QXZ("Update Lead Statuses")."</b></font></td></tr>\n";
echo "<tr bgcolor=#B6D3FC><td align=right>"._QXZ("List")."</td><td align=left>\n";
echo "<select size=1 name=update_list>\n";
echo "<option value='-'>"._QXZ("Select A List")."</option>\n";
$i = 0;
while ( $i < $allowed_lists_count )
{
echo "<option value='$list_ary[$i]'>$list_ary[$i] - $list_name_ary[$i] ($list_lead_count_ary[$i] "._QXZ("leads").")</option>\n";
$i++;
}
echo "</select></td></tr>\n";
echo "<tr bgcolor=#B6D3FC><td align=right>"._QXZ("From Status")."</td><td align=left>\n";
echo "<select size=1 name=update_from_status>\n";
echo "<option value='-'>"._QXZ("Select A Status")."</option>\n";
$i = 0;
while ( $i < $status_count )
{
echo "<option value='$statuses[$i]'>$statuses[$i]</option>\n";
$i++;
}
echo "</select></td></tr>\n";
echo "<tr bgcolor=#B6D3FC><td align=right>"._QXZ("To Status")."</td><td align=left>\n";
echo "<select size=1 name=update_to_status>\n";
echo "<option value='-'>"._QXZ("Select A Status")."</option>\n";
$i = 0;
while ( $i < $sys_status_count )
{
echo "<option value='$sys_statuses[$i]'>$sys_statuses[$i]</option>\n";
$i++;
}
echo "</select></td></tr>\n";
echo "<tr bgcolor=#B6D3FC><td align=right>"._QXZ("Called Count")."</td><td align=left>\n";
echo "<select size=1 name=update_count_op>\n";
echo "<option value='<'><</option>\n";
echo "<option value='<='><=</option>\n";
echo "<option value='>'>></option>\n";
echo "<option value='>='>>=</option>\n";
echo "<option value='='>=</option>\n";
echo "</select>\n";
echo "<select size=1 name=update_count_num>\n";
$i=0;
while ( $i <= $max_count )
{
echo "<option value='$i'>$i</option>\n";
$i++;
}
echo "</select></td></tr>\n";
echo "<tr bgcolor=#B6D3FC><td colspan=2 align=center><input type=submit name=update_submit value='"._QXZ("update")."'></td></tr>\n";
# END Status Update
if ( $delete_lists > 0 )
{
# BEGIN Delete Leads
echo "</table></center>\n";
echo "<br /><center><table width=$section_width cellspacing=3>\n";
echo "<tr bgcolor=#015B91><td colspan=2 align=center><font color=white><b>"._QXZ("Delete Leads")."</b></font></td></tr>\n";
echo "<tr bgcolor=#B6D3FC><td align=right>"._QXZ("List")."</td><td align=left>\n";
echo "<select size=1 name=delete_list>\n";
echo "<option value='-'>"._QXZ("Select A List")."</option>\n";
$i = 0;
while ( $i < $allowed_lists_count )
{
echo "<option value='$list_ary[$i]'>$list_ary[$i] - $list_name_ary[$i] ($list_lead_count_ary[$i] "._QXZ("leads").")</option>\n";
$i++;
}
echo "</select></td></tr>\n";
echo "<tr bgcolor=#B6D3FC><td align=right>"._QXZ("Status")."</td><td align=left>\n";
echo "<select size=1 name=delete_status>\n";
echo "<option value='-'>"._QXZ("Select A Status")."</option>\n";
$i = 0;
while ( $i < $status_count )
{
echo "<option value='$statuses[$i]'>$statuses[$i]</option>\n";
$i++;
}
echo "</select></td></tr>\n";
echo "<tr bgcolor=#B6D3FC><td align=right>"._QXZ("Called Count")."</td><td align=left>\n";
echo "<select size=1 name=delete_count_op>\n";
echo "<option value='<'><</option>\n";
echo "<option value='<='><=</option>\n";
echo "<option value='>'>></option>\n";
echo "<option value='>='>>=</option>\n";
echo "<option value='='>=</option>\n";
echo "</select>\n";
echo "<select size=1 name=delete_count_num>\n";
$i=0;
while ( $i <= $max_count )
{
echo "<option value='$i'>$i</option>\n";
$i++;
}
echo "</select></td></tr>\n";
echo "<tr bgcolor=#B6D3FC><td colspan=2 align=center><input type=submit name=delete_submit value='"._QXZ("delete")."'></td></tr>\n";
# END Delete Leads
}
echo "</table></center>\n";
echo "</form>\n";
echo "</body></html>\n";
}
echo "</td></tr></table>\n";
?>