Added allow_inactive_list_leads option to AST_VDhopper.pl script, useful feature if you have many lists and want to use list mix

Added list mix display to real-time screen

git-svn-id: svn://192.168.202.10@1136 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2009-06-02 08:11:39 +00:00
parent 2212d4fb5d
commit 47477ccc99
2 changed files with 61 additions and 20 deletions
+36 -13
View File
@@ -52,6 +52,7 @@
# 80909-1901 - Added support for campaign-specific DNC lists
# 90430-0117 - Added last call time and random sorting options
# 90430-1022 - Changed this script to allow for List Mix ability
# 90601-2111 - Added allow_inactive_list_leads to allow for inactive lists while in List Mix mode
#
# constants
@@ -120,6 +121,7 @@ $VDL_one = "$Vyear-$Vmon-$Vmday $Vhour:$Vmin:$Vsec";
if (length($ARGV[0])>1)
{
$i=0;
$allow_inactive_list_leads=0;
while ($#ARGV >= $i)
{
$args = "$args $ARGV[$i]";
@@ -128,7 +130,16 @@ if (length($ARGV[0])>1)
if ($args =~ /--help/i)
{
print "allowed run time options(must stay in this order):\n [--debug] = debug\n [--debugX] = super debug\n [--dbgmt] = show GMT offset of records as they are inserted into hopper\n [--dbdetail] = additional level of logging the leads that are inserted into the hopper\n [-t] = test\n [--level=XXX] = force a hopper_level of XXX\n [--campaign=XXX] = run for campaign XXX only\n\n";
print "allowed run time options(must stay in this order):\n";
print " [--debug] = debug\n";
print " [--debugX] = super debug\n";
print " [--dbgmt] = show GMT offset of records as they are inserted into hopper\n";
print " [--dbdetail] = additional level of logging the leads that are inserted into the hopper\n";
print " [--allow-inactive-list-leads] = do not delete inactive list leads\n";
print " [-t] = test\n";
print " [--level=XXX] = force a hopper_level of XXX\n";
print " [--campaign=XXX] = run for campaign XXX only\n";
print "\n";
exit;
}
else
@@ -170,6 +181,11 @@ if (length($ARGV[0])>1)
if ($args =~ /--dbdetail/i)
{
$DB_detail=1;
# print "\n-----DEBUG DETAIL -----\n\n";
}
if ($args =~ /--allow-inactive-list-leads/i)
{
$allow_inactive_list_leads=1;
# print "\n-----DEBUG DETAIL -----\n\n";
}
if ($args =~ /-t/i)
@@ -304,11 +320,14 @@ if ($DB) {print "Inactive Lists: $inactive_lists_count\n";}
if ($inactive_lists_count > 0)
{
chop($inactive_lists);
$stmtA = "DELETE from $vicidial_hopper where list_id IN($inactive_lists);";
$affected_rows = $dbhA->do($stmtA);
if ($DB) {print "Inactive List Leads Deleted: $affected_rows |$stmtA|\n";}
$event_string = "|INACTIVE LIST DEL|$affected_rows|";
&event_logger;
if ($allow_inactive_list_leads < 1)
{
$stmtA = "DELETE from $vicidial_hopper where list_id IN($inactive_lists);";
$affected_rows = $dbhA->do($stmtA);
if ($DB) {print "Inactive List Leads Deleted: $affected_rows |$stmtA|\n";}
$event_string = "|INACTIVE LIST DEL|$affected_rows|";
&event_logger;
}
}
### BEGIN Change CBHOLD status leads to CALLBK if their vicidial_callbacks time has passed
@@ -1099,8 +1118,12 @@ foreach(@campaign_id)
{
if ($DB) {print " hopper too low ($hopper_ready_count|$hopper_level[$i]) starting hopper dump\n";}
$active_listSQL = "and active='Y'";
if ( ($list_order_mix[$i] !~ /DISABLED/) && ($allow_inactive_list_leads > 0) )
{$active_listSQL = '';}
### Get list of the lists in the campaign ###
$stmtA = "SELECT list_id FROM vicidial_lists where campaign_id='$campaign_id[$i]' and active='Y';";
$stmtA = "SELECT list_id FROM vicidial_lists where campaign_id='$campaign_id[$i]' $active_listSQL;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArows=$sthA->rows;
@@ -1480,7 +1503,7 @@ foreach(@campaign_id)
if ($DBX) {print " LM $x |$list_mix_stepARY[0]|$list_mix_stepARY[2]|$LM_step_goal[$x]|$list_mix_stepARY[3]|\n";}
$list_mix_dialableSQL = "(list_id='$list_mix_stepARY[0]' and status IN($list_mix_stepARY[3]))";
$stmtA = "SELECT lead_id,list_id,gmt_offset_now,phone_number,state,status FROM vicidial_list where called_since_last_reset='N' and $list_mix_dialableSQL and lead_id NOT IN($lead_id_lists) and ($all_gmtSQL[$i]) $lead_filter_sql[$i] $order_stmt limit $LM_step_goal[$x];";
$stmtA = "SELECT lead_id,list_id,gmt_offset_now,phone_number,state,status,modify_date,user FROM vicidial_list where called_since_last_reset='N' and $list_mix_dialableSQL and lead_id NOT IN($lead_id_lists) and ($all_gmtSQL[$i]) $lead_filter_sql[$i] $order_stmt limit $LM_step_goal[$x];";
if ($DBX) {print " |$stmtA|\n";}
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
@@ -1503,7 +1526,7 @@ foreach(@campaign_id)
$order = ( ($x * 1000000) + $rec_count);
}
}
$LM_results[$z] = "$order$USX$aryA[0]$USX$aryA[1]$USX$aryA[2]$USX$aryA[3]$USX$aryA[4]$USX$aryA[5]";
$LM_results[$z] = "$order$USX$aryA[0]$USX$aryA[1]$USX$aryA[2]$USX$aryA[3]$USX$aryA[4]$USX$aryA[5]$USX$aryA[6]$USX$aryA[7]";
# if ($DBX) {print " $z|$LM_results[$z]\n";}
$rec_count++;
@@ -1536,11 +1559,11 @@ foreach(@campaign_id)
$leads_to_hopper[$rec_countLEADS] = "$aryA[1]";
$lists_to_hopper[$rec_countLEADS] = "$aryA[2]";
$gmt_to_hopper[$rec_countLEADS] = "$aryA[3]";
$state_to_hopper[$rec_countLEADS] = "$aryA[4]";
$phone_to_hopper[$rec_countLEADS] = "$aryA[5]";
$phone_to_hopper[$rec_countLEADS] = "$aryA[4]";
$state_to_hopper[$rec_countLEADS] = "$aryA[5]";
$status_to_hopper[$rec_countLEADS] = "$aryA[6]";
$modify_to_hopper[$rec_countLEADS] = "$aryA[6]";
$user_to_hopper[$rec_countLEADS] = "$aryA[7]";
$modify_to_hopper[$rec_countLEADS] = "$aryA[7]";
$user_to_hopper[$rec_countLEADS] = "$aryA[8]";
if ($DB_show_offset) {print "LEAD_ADD: $aryA[3] $aryA[4] $aryA[5]\n";}
if ($DBX) {print " $w|$LM_results[$w]\n";}
$rec_countLEADS++;
@@ -49,10 +49,11 @@
# 90508-0623 - Changed to PHP long tags
# 90518-0930 - Fixed $CALLSdisplay static assignment bug for some links(bug #210)
# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion
# 90602-0405 - Added list mix display in statuses and order if active
#
$version = '2.0.5-40';
$build = '90524-2231';
$version = '2.0.5-41';
$build = '90602-0405';
header ("Content-type: text/html; charset=utf-8");
@@ -787,7 +788,7 @@ else
if (eregi('ALL-ACTIVE',$group_string))
{
$multi_drop++;
$stmt="select avg(auto_dial_level),min(dial_status_a),min(dial_status_b),min(dial_status_c),min(dial_status_d),min(dial_status_e),min(lead_order),min(lead_filter_id),sum(hopper_level),min(dial_method),avg(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),min(available_only_ratio_tally),min(adaptive_latest_server_time),min(local_call_time),avg(dial_timeout),min(dial_statuses),max(agent_pause_codes_active) from vicidial_campaigns;";
$stmt="select avg(auto_dial_level),min(dial_status_a),min(dial_status_b),min(dial_status_c),min(dial_status_d),min(dial_status_e),min(lead_order),min(lead_filter_id),sum(hopper_level),min(dial_method),avg(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),min(available_only_ratio_tally),min(adaptive_latest_server_time),min(local_call_time),avg(dial_timeout),min(dial_statuses),max(agent_pause_codes_active),max(list_order_mix) from vicidial_campaigns;";
$stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats;";
}
@@ -815,13 +816,13 @@ else
$closer_campaignsSQL = preg_replace("/,$/","",$closer_campaignsSQL);
if ($DB > 0) {echo "\n|$closer_campaigns|$closer_campaignsSQL|$stmt|\n";}
$stmt="select auto_dial_level,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,lead_filter_id,hopper_level,dial_method,adaptive_maximum_level,adaptive_dropped_percentage,adaptive_dl_diff_target,adaptive_intensity,available_only_ratio_tally,adaptive_latest_server_time,local_call_time,dial_timeout,dial_statuses,agent_pause_codes_active from vicidial_campaigns where campaign_id IN ($group_SQL,$closer_campaignsSQL);";
$stmt="select auto_dial_level,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,lead_filter_id,hopper_level,dial_method,adaptive_maximum_level,adaptive_dropped_percentage,adaptive_dl_diff_target,adaptive_intensity,available_only_ratio_tally,adaptive_latest_server_time,local_call_time,dial_timeout,dial_statuses,agent_pause_codes_active,list_order_mix from vicidial_campaigns where campaign_id IN ($group_SQL,$closer_campaignsSQL);";
$stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats where campaign_id IN ($group_SQL,$closer_campaignsSQL);";
}
else
{
$stmt="select avg(auto_dial_level),max(dial_status_a),max(dial_status_b),max(dial_status_c),max(dial_status_d),max(dial_status_e),max(lead_order),max(lead_filter_id),max(hopper_level),max(dial_method),max(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),max(available_only_ratio_tally),max(adaptive_latest_server_time),max(local_call_time),max(dial_timeout),max(dial_statuses),max(agent_pause_codes_active) from vicidial_campaigns where campaign_id IN($group_SQL);";
$stmt="select avg(auto_dial_level),max(dial_status_a),max(dial_status_b),max(dial_status_c),max(dial_status_d),max(dial_status_e),max(lead_order),max(lead_filter_id),max(hopper_level),max(dial_method),max(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),max(available_only_ratio_tally),max(adaptive_latest_server_time),max(local_call_time),max(dial_timeout),max(dial_statuses),max(agent_pause_codes_active),max(list_order_mix) from vicidial_campaigns where campaign_id IN($group_SQL);";
$stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats where campaign_id IN($group_SQL);";
}
@@ -849,9 +850,8 @@ else
$CALLtime = $row[16];
$DIALtimeout = $row[17];
$DIALstatuses = $row[18];
$DIALstatuses = (preg_replace("/ -$|^ /","",$DIALstatuses));
$DIALstatuses = (ereg_replace(' ',', ',$DIALstatuses));
$agent_pause_codes_active = $row[19];
$DIALmix = $row[20];
$stmt="select count(*) from vicidial_hopper where campaign_id IN($group_SQL);";
@@ -909,6 +909,24 @@ else
$row=mysql_fetch_row($rslt);
$balanceSHORT = $row[0];
if (ereg('DISABLED',$DIALmix))
{
$DIALstatuses = (preg_replace("/ -$|^ /","",$DIALstatuses));
$DIALstatuses = (ereg_replace(' ',', ',$DIALstatuses));
}
else
{
$stmt="select vcl_id from vicidial_campaigns_list_mix where campaign_id IN($group_SQL) and status='ACTIVE' limit 1;";
$rslt=mysql_query($stmt, $link);
$Lmix_to_print = mysql_num_rows($rslt);
if ($Lmix_to_print > 0)
{
$row=mysql_fetch_row($rslt);
$DIALstatuses = "List Mix: $row[0]";
$DIALorder = "List Mix: $row[0]";
}
}
echo "<BR><table cellpadding=0 cellspacing=0><TR>";
echo "<TD ALIGN=RIGHT><font size=2><B>DIAL LEVEL:</B></TD><TD ALIGN=LEFT><font size=2>&nbsp; $DIALlev&nbsp; &nbsp; </TD>";
echo "<TD ALIGN=RIGHT><font size=2><B>TRUNK SHORT/FILL:</B></TD><TD ALIGN=LEFT><font size=2>&nbsp; $balanceSHORT / $balanceFILL &nbsp; &nbsp; </TD>";