";
$MAIN.="\n\n";
$MAIN.="\n\n";
if (strlen($group[0]) < 1)
{
$MAIN.="\n\n";
$MAIN.=_QXZ("PLEASE SELECT A CAMPAIGN AND DATE ABOVE AND CLICK SUBMIT")."\n";
}
else
{
$OUToutput = '';
$OUToutput .= _QXZ("Lists Campaign Status Stats",55)." $NOW_TIME\n";
$OUToutput .= "\n";
##############################
######### LIST ID BREAKDOWN STATS
$TOTALleads = 0;
$OUToutput .= "\n";
$OUToutput .= "---------- "._QXZ("LIST ID SUMMARY",19)." "._QXZ("DOWNLOAD")."\n";
$OUToutput .= "+------------------------------------------+------------+----------+\n";
$OUToutput .= "| "._QXZ("LIST",40)." | "._QXZ("LEADS",10)." | "._QXZ("ACTIVE",8)." |\n";
$OUToutput .= "+------------------------------------------+------------+----------+\n";
$CSV_text1.="\""._QXZ("LIST ID SUMMARY")."\"\n";
$CSV_text1.="\""._QXZ("LIST")."\",\""._QXZ("LEADS")."\",\""._QXZ("ACTIVE")."\"\n";
$max_calls=1;
$graph_stats=array();
$lists_id_str="";
$list_stmt="SELECT list_id from vicidial_lists where active IN('Y','N') $group_SQLand";
$list_rslt=mysql_to_mysqli($list_stmt, $link);
while ($lrow=mysqli_fetch_row($list_rslt)) {
$lists_id_str.="'$lrow[0]',";
}
$lists_id_str=substr($lists_id_str,0,-1);
$stmt="select count(*),list_id from ".$vicidial_list_table." where list_id IN($lists_id_str) group by list_id;";
$rslt=mysql_to_mysqli($stmt, $link);
if ($DB) {$MAIN.="$stmt\n";}
$listids_to_print = mysqli_num_rows($rslt);
$i=0;
$LISTIDcalls=array();
$LISTIDlists=array();
while ($i < $listids_to_print)
{
$row=mysqli_fetch_row($rslt);
$LISTIDcalls[$i] = $row[0];
$LISTIDlists[$i] = $row[1];
$list_id_SQL .= "'$row[1]',";
if ($row[0]>$max_calls) {$max_calls=$row[0];}
$graph_stats[$i][0]=$row[0];
$graph_stats[$i][1]=$row[1];
$i++;
}
if (strlen($list_id_SQL)>2) {$list_id_SQL = substr("$list_id_SQL", 0, -1);}
else {$list_id_SQL="''";}
$i=0;
$LISTIDlist_names=array();
$LISTIDlist_active=array();
while ($i < $listids_to_print)
{
$stmt="select list_name,active from vicidial_lists where list_id='$LISTIDlists[$i]';";
$rslt=mysql_to_mysqli($stmt, $link);
if ($DB) {$MAIN.="$stmt\n";}
$list_name_to_print = mysqli_num_rows($rslt);
if ($list_name_to_print > 0)
{
$row=mysqli_fetch_row($rslt);
$LISTIDlist_names[$i] = $row[0];
$graph_stats[$i][1].=" - $row[0]";
if ($row[1]=='Y')
{$LISTIDlist_active[$i] = _QXZ("ACTIVE",8); $graph_stats[$i][1].=" ("._QXZ("ACTIVE").")";}
else
{$LISTIDlist_active[$i] = _QXZ("INACTIVE",8); $graph_stats[$i][1].=" ("._QXZ("INACTIVE").")";}
}
$TOTALleads = ($TOTALleads + $LISTIDcalls[$i]);
$LISTIDcount = sprintf("%10s", $LISTIDcalls[$i]);while(strlen($LISTIDcount)>10) {$LISTIDcount = substr("$LISTIDcount", 0, -1);}
$LISTIDname = sprintf("%-40s", "$LISTIDlists[$i] - $LISTIDlist_names[$i]");while(strlen($LISTIDname)>40) {$LISTIDname = substr("$LISTIDname", 0, -1);}
$OUToutput .= "| $LISTIDname | $LISTIDcount | $LISTIDlist_active[$i] |\n";
$CSV_text1.="\"$LISTIDname\",\"$LISTIDcount\",\"$LISTIDlist_active[$i]\"\n";
$i++;
}
$TOTALleads = sprintf("%10s", $TOTALleads);
$OUToutput .= "+------------------------------------------+------------+----------+\n";
$OUToutput .= "| "._QXZ("TOTAL:",40)." | $TOTALleads |\n";
$OUToutput .= "+------------------------------------------+------------+\n";
$CSV_text1.="\""._QXZ("TOTAL")."\",\"$TOTALleads\"\n";
#########
$graph_array=array("LID_SUMMARYdata|||integer|");
$graph_id++;
$default_graph="bar"; # Graph that is initally displayed when page loads
include("graph_color_schemas.inc");
$graph_totals_array=array();
$graph_totals_rawdata=array();
for ($q=0; $q"._QXZ("TOTAL")." - ".sec_convert($current_graph_total, 'H')." \n";
$chart_options="options: {tooltips: {callbacks: {label: function(tooltipItem, data) {var value = Math.round(data.datasets[0].data[tooltipItem.index]); return value.toHHMMSS();}}}, legend: { display: false }},";
break;
case "percent":
$graph_totals_array[$q]="";
$chart_options="options: {tooltips: {callbacks: {label: function(tooltipItem, data) {var value = data.datasets[0].data[tooltipItem.index]; return value + '%';}}}, legend: { display: false }},";
break;
default:
$graph_totals_array[$q]=" "._QXZ("TOTAL").": $current_graph_total\n";
$chart_options="options: { legend: { display: false }},";
break;
}
$datasets.=$data;
$datasets.=$graphConstantsA.$graphConstantsB.$graphConstantsC.$graphConstants; # SEE TOP OF SCRIPT
$datasets.="\t\t\t}\n";
$datasets.="\t\t]\n";
$datasets.="\t}\n";
$JS_text.=$labels.$datasets;
# $JS_text.="}\n";
# $JS_text.="prepChart('$default_graph', $graph_id, $q, $dataset_name);\n";
$JS_text.="var main_ctx = document.getElementById(\"CanvasID".$graph_id."_".$q."\");\n";
$JS_text.="var GraphID".$graph_id."_".$q." = new Chart(main_ctx, {type: '$default_graph', $chart_options data: $dataset_name});\n";
}
$graph_count=count($graph_array);
$graph_title=_QXZ("LIST ID SUMMARY");
include("graphcanvas.inc");
$HEADER.=$HTML_graph_head;
$GRAPH.=$graphCanvas;
##############################
######### STATUS FLAGS STATS
$HA_count=0;
$HA_percent=0;
$SALE_count=0;
$SALE_percent=0;
$DNC_count=0;
$DNC_percent=0;
$CC_count=0;
$CC_percent=0;
$NI_count=0;
$NI_percent=0;
$UW_count=0;
$UW_percent=0;
$SC_count=0;
$SC_percent=0;
$COMP_count=0;
$COMP_percent=0;
$max_calls=1; $graph_stats=array();
$stmt="select count(*) from ".$vicidial_list_table." where status IN($human_answered_statuses) and list_id IN($list_id_SQL);";
$rslt=mysql_to_mysqli($stmt, $link);
if ($DB) {$MAIN.="$stmt\n";}
$HA_results = mysqli_num_rows($rslt);
if ($HA_results > 0)
{
$row=mysqli_fetch_row($rslt);
$HA_count = $row[0];
$flag_count+=$row[0];
if ($HA_count>$max_calls) {$max_calls=$HA_count;}
$HA_percent = ( MathZDC($HA_count, $TOTALleads) * 100);
}
$stmt="select count(*) from ".$vicidial_list_table." where status IN($sale_statuses) and list_id IN($list_id_SQL);";
$rslt=mysql_to_mysqli($stmt, $link);
if ($DB) {$MAIN.="$stmt\n";}
$SALE_results = mysqli_num_rows($rslt);
if ($SALE_results > 0)
{
$row=mysqli_fetch_row($rslt);
$SALE_count = $row[0];
$flag_count+=$row[0];
if ($SALE_count>$max_calls) {$max_calls=$SALE_count;}
$SALE_percent = ( MathZDC($SALE_count, $TOTALleads) * 100);
}
$stmt="select count(*) from ".$vicidial_list_table." where status IN($dnc_statuses) and list_id IN($list_id_SQL);";
$rslt=mysql_to_mysqli($stmt, $link);
if ($DB) {$MAIN.="$stmt\n";}
$DNC_results = mysqli_num_rows($rslt);
if ($DNC_results > 0)
{
$row=mysqli_fetch_row($rslt);
$DNC_count = $row[0];
$flag_count+=$row[0];
if ($DNC_count>$max_calls) {$max_calls=$DNC_count;}
$DNC_percent = ( MathZDC($DNC_count, $TOTALleads) * 100);
}
$stmt="select count(*) from ".$vicidial_list_table." where status IN($customer_contact_statuses) and list_id IN($list_id_SQL);";
$rslt=mysql_to_mysqli($stmt, $link);
if ($DB) {$MAIN.="$stmt\n";}
$CC_results = mysqli_num_rows($rslt);
if ($CC_results > 0)
{
$row=mysqli_fetch_row($rslt);
$CC_count = $row[0];
$flag_count+=$row[0];
if ($C_count>$max_calls) {$max_calls=$CC_count;}
$CC_percent = ( MathZDC($CC_count, $TOTALleads) * 100);
}
$stmt="select count(*) from ".$vicidial_list_table." where status IN($not_interested_statuses) and list_id IN($list_id_SQL);";
$rslt=mysql_to_mysqli($stmt, $link);
if ($DB) {$MAIN.="$stmt\n";}
$NI_results = mysqli_num_rows($rslt);
if ($NI_results > 0)
{
$row=mysqli_fetch_row($rslt);
$NI_count = $row[0];
$flag_count+=$row[0];
if ($NI_count>$max_calls) {$max_calls=$NI_count;}
$NI_percent = ( MathZDC($NI_count, $TOTALleads) * 100);
}
$stmt="select count(*) from ".$vicidial_list_table." where status IN($unworkable_statuses) and list_id IN($list_id_SQL);";
$rslt=mysql_to_mysqli($stmt, $link);
if ($DB) {$MAIN.="$stmt\n";}
$UW_results = mysqli_num_rows($rslt);
if ($UW_results > 0)
{
$row=mysqli_fetch_row($rslt);
$UW_count = $row[0];
$flag_count+=$row[0];
if ($UW_count>$max_calls) {$max_calls=$UW_count;}
$UW_percent = ( MathZDC($UW_count, $TOTALleads) * 100);
}
$stmt="select count(*) from ".$vicidial_list_table." where status IN($scheduled_callback_statuses) and list_id IN($list_id_SQL);";
$rslt=mysql_to_mysqli($stmt, $link);
if ($DB) {$MAIN.="$stmt\n";}
$SC_results = mysqli_num_rows($rslt);
if ($SC_results > 0)
{
$row=mysqli_fetch_row($rslt);
$SC_count = $row[0];
$flag_count+=$row[0];
if ($SC_count>$max_calls) {$max_calls=$SC_count;}
$SC_percent = ( MathZDC($SC_count, $TOTALleads) * 100);
}
$stmt="select count(*) from ".$vicidial_list_table." where status IN($completed_statuses) and list_id IN($list_id_SQL);";
$rslt=mysql_to_mysqli($stmt, $link);
if ($DB) {$MAIN.="$stmt\n";}
$COMP_results = mysqli_num_rows($rslt);
if ($COMP_results > 0)
{
$row=mysqli_fetch_row($rslt);
$COMP_count = $row[0];
$flag_count+=$row[0];
if ($COMP_count>$max_calls) {$max_calls=$COMP_count;}
$COMP_percent = ( MathZDC($COMP_count, $TOTALleads) * 100);
}
$HA_percent = sprintf("%6.2f", "$HA_percent"); while(strlen($HA_percent)>6) {$HA_percent = substr("$HA_percent", 0, -1);}
$SALE_percent = sprintf("%6.2f", "$SALE_percent"); while(strlen($SALE_percent)>6) {$SALE_percent = substr("$SALE_percent", 0, -1);}
$DNC_percent = sprintf("%6.2f", "$DNC_percent"); while(strlen($DNC_percent)>6) {$DNC_percent = substr("$DNC_percent", 0, -1);}
$CC_percent = sprintf("%6.2f", "$CC_percent"); while(strlen($CC_percent)>6) {$CC_percent = substr("$CC_percent", 0, -1);}
$NI_percent = sprintf("%6.2f", "$NI_percent"); while(strlen($NI_percent)>6) {$NI_percent = substr("$NI_percent", 0, -1);}
$UW_percent = sprintf("%6.2f", "$UW_percent"); while(strlen($UW_percent)>6) {$UW_percent = substr("$UW_percent", 0, -1);}
$SC_percent = sprintf("%6.2f", "$SC_percent"); while(strlen($SC_percent)>6) {$SC_percent = substr("$SC_percent", 0, -1);}
$COMP_percent = sprintf("%6.2f", "$COMP_percent"); while(strlen($COMP_percent)>6) {$COMP_percent = substr("$COMP_percent", 0, -1);}
$HA_count = sprintf("%10s", "$HA_count"); while(strlen($HA_count)>10) {$HA_count = substr("$HA_count", 0, -1);}
$SALE_count = sprintf("%10s", "$SALE_count"); while(strlen($SALE_count)>10) {$SALE_count = substr("$SALE_count", 0, -1);}
$DNC_count = sprintf("%10s", "$DNC_count"); while(strlen($DNC_count)>10) {$DNC_count = substr("$DNC_count", 0, -1);}
$CC_count = sprintf("%10s", "$CC_count"); while(strlen($CC_count)>10) {$CC_count = substr("$CC_count", 0, -1);}
$NI_count = sprintf("%10s", "$NI_count"); while(strlen($NI_count)>10) {$NI_count = substr("$NI_count", 0, -1);}
$UW_count = sprintf("%10s", "$UW_count"); while(strlen($UW_count)>10) {$UW_count = substr("$UW_count", 0, -1);}
$SC_count = sprintf("%10s", "$SC_count"); while(strlen($SC_count)>10) {$SC_count = substr("$SC_count", 0, -1);}
$COMP_count = sprintf("%10s", "$COMP_count"); while(strlen($COMP_count)>10) {$COMP_count = substr("$COMP_count", 0, -1);}
$graph_stats2=array(array("$HA_count", "Human Answer"), array("$SALE_count", "Sale"), array("$DNC_count", "DNC"), array("$CC_count", "Customer Contact"), array("$NI_count", "Not Interested"), array("$UW_count", "Unworkable"), array("$SC_count", "Scheduled Callbacks"), array("$COMP_count", "Completed"));
$OUToutput .= "\n";
$OUToutput .= "\n";
$OUToutput .= "---------- "._QXZ("STATUS FLAGS SUMMARY:",24)." ("._QXZ("and % of leads in selected lists").") "._QXZ("DOWNLOAD")."\n";
$OUToutput .= "+------------------+------------+----------+\n";
$OUToutput .= "| "._QXZ("Human Answer",16)." | $HA_count | $HA_percent% |\n";
$OUToutput .= "| "._QXZ("Sale",16)." | $SALE_count | $SALE_percent% |\n";
$OUToutput .= "| "._QXZ("DNC",16)." | $DNC_count | $DNC_percent% |\n";
$OUToutput .= "| "._QXZ("Customer Contact",16)." | $CC_count | $CC_percent% |\n";
$OUToutput .= "| "._QXZ("Not Interested",16)." | $NI_count | $NI_percent% |\n";
$OUToutput .= "| "._QXZ("Unworkable",16)." | $UW_count | $UW_percent% |\n";
$OUToutput .= "| "._QXZ("Sched Callbacks",16)." | $SC_count | $SC_percent% |\n";
$OUToutput .= "| "._QXZ("Completed",16)." | $COMP_count | $COMP_percent% |\n";
$OUToutput .= "+------------------+------------+----------+\n";
$OUToutput .= "\n";
$CSV_text2.="\""._QXZ("STATUS FLAGS SUMMARY").":\"\n";
$CSV_text2 .= "\""._QXZ("Human Answer")."\",\"$HA_count\",\"$HA_percent%\"\n";
$CSV_text2 .= "\""._QXZ("Sale")."\",\"$SALE_count\",\"$SALE_percent%\"\n";
$CSV_text2 .= "\""._QXZ("DNC")."\",\"$DNC_count\",\"$DNC_percent%\"\n";
$CSV_text2 .= "\""._QXZ("Customer Contact")."\",\"$CC_count\",\"$CC_percent%\"\n";
$CSV_text2 .= "\""._QXZ("Not Interested")."\",\"$NI_count\",\"$NI_percent%\"\n";
$CSV_text2 .= "\""._QXZ("Unworkable")."\",\"$UW_count\",\"$UW_percent%\"\n";
$CSV_text2 .= "\""._QXZ("Scheduled Callbacks")."\",\"$SC_count\",\"$SC_percent%\"\n";
$CSV_text2 .= "\""._QXZ("Completed")."\",\"$COMP_count\",\"$COMP_percent%\"\n";
#########
$graph_array=array("APDdata|||intpct|");
$graph_id++;
$default_graph="bar"; # Graph that is initally displayed when page loads
include("graph_color_schemas.inc");
$graph_totals_array=array();
$graph_totals_rawdata=array();
for ($q=0; $q"._QXZ("TOTAL")." - ".sec_convert($current_graph_total, 'H')." \n";
$chart_options="options: {tooltips: {callbacks: {label: function(tooltipItem, data) {var value = Math.round(data.datasets[0].data[tooltipItem.index]); return value.toHHMMSS();}}}, legend: { display: false }},";
break;
case "percent":
$graph_totals_array[$q]="";
$chart_options="options: {tooltips: {callbacks: {label: function(tooltipItem, data) {var value = data.datasets[0].data[tooltipItem.index]; return value + '%';}}}, legend: { display: false }},";
break;
default:
$graph_totals_array[$q]=" "._QXZ("TOTAL").": $current_graph_total\n";
$chart_options="options: { legend: { display: false }},";
break;
}
$datasets.=$data;
$datasets.=$graphConstantsA.$graphConstantsB.$graphConstantsC.$graphConstants; # SEE TOP OF SCRIPT
$datasets.="\t\t\t}\n";
$datasets.="\t\t]\n";
$datasets.="\t}\n";
$JS_text.=$labels.$datasets;
# $JS_text.="}\n";
# $JS_text.="prepChart('$default_graph', $graph_id, $q, $dataset_name);\n";
$JS_text.="var main_ctx = document.getElementById(\"CanvasID".$graph_id."_".$q."\");\n";
$JS_text.="var GraphID".$graph_id."_".$q." = new Chart(main_ctx, {type: '$default_graph', $chart_options data: $dataset_name});\n";
}
$graph_count=count($graph_array);
$graph_title=_QXZ("STATUS FLAG SUMMARY");
include("graphcanvas.inc");
$HEADER.=$HTML_graph_head;
$GRAPH.=$graphCanvas;
# $OUToutput.=$GRAPH;
##############################
######### STATUS CATEGORY STATS
$OUToutput .= "\n";
$OUToutput .= "---------- "._QXZ("CUSTOM STATUS CATEGORY STATS",32)." "._QXZ("DOWNLOAD")."\n";
$OUToutput .= "+----------------------+------------+--------------------------------+\n";
$OUToutput .= "| "._QXZ("CATEGORY",20)." | "._QXZ("CALLS",10)." | "._QXZ("DESCRIPTION",30)." |\n";
$OUToutput .= "+----------------------+------------+--------------------------------+\n";
$CSV_text3.="\""._QXZ("CUSTOM STATUS CATEGORY STATS")."\"\n";
$CSV_text3.="\""._QXZ("CATEGORY")."\",\""._QXZ("CALLS")."\",\""._QXZ("DESCRIPTION")."\"\n";
$max_calls=1;
$graph_stats=array();
$TOTCATcalls=0;
$r=0; $i=0;
while ($r < $statcats_to_print)
{
if ($vsc_id[$r] != 'UNDEFINED')
{
$TOTCATcalls = ($TOTCATcalls + $vsc_count[$r]);
$category = sprintf("%-20s", $vsc_id[$r]); while(strlen($category)>20) {$category = substr("$category", 0, -1);}
$CATcount = sprintf("%10s", $vsc_count[$r]); while(strlen($CATcount)>10) {$CATcount = substr("$CATcount", 0, -1);}
$CATname = sprintf("%-30s", $vsc_name[$r]); while(strlen($CATname)>30) {$CATname = substr("$CATname", 0, -1);}
if ($vsc_count[$r]>$max_calls) {$max_calls=$vsc_count[$r];}
$graph_stats[$i][0]=$vsc_count[$r];
$graph_stats[$i][1]=$vsc_id[$r];
$i++;
$OUToutput .= "| $category | $CATcount | $CATname |\n";
$CSV_text3.="\"$category\",\"$CATcount\",\"$CATname\"\n";
}
$r++;
}
$TOTCATcalls = sprintf("%10s", $TOTCATcalls); while(strlen($TOTCATcalls)>10) {$TOTCATcalls = substr("$TOTCATcalls", 0, -1);}
$OUToutput .= "+----------------------+------------+--------------------------------+\n";
$OUToutput .= "| "._QXZ("TOTAL",20)." | $TOTCATcalls |\n";
$OUToutput .= "+----------------------+------------+\n";
$CSV_text3.="\""._QXZ("TOTAL")."\",\"$TOTCATcalls\"\n";
#########
$graph_array=array("CSCSdata|||integer|");
$graph_id++;
$default_graph="bar"; # Graph that is initally displayed when page loads
include("graph_color_schemas.inc");
$graph_totals_array=array();
$graph_totals_rawdata=array();
for ($q=0; $q"._QXZ("TOTAL")." - ".sec_convert($current_graph_total, 'H')." \n";
$chart_options="options: {tooltips: {callbacks: {label: function(tooltipItem, data) {var value = Math.round(data.datasets[0].data[tooltipItem.index]); return value.toHHMMSS();}}}, legend: { display: false }},";
break;
case "percent":
$graph_totals_array[$q]="";
$chart_options="options: {tooltips: {callbacks: {label: function(tooltipItem, data) {var value = data.datasets[0].data[tooltipItem.index]; return value + '%';}}}, legend: { display: false }},";
break;
default:
$graph_totals_array[$q]=" "._QXZ("TOTAL").": $current_graph_total\n";
$chart_options="options: { legend: { display: false }},";
break;
}
$datasets.=$data;
$datasets.=$graphConstantsA.$graphConstantsB.$graphConstantsC.$graphConstants; # SEE TOP OF SCRIPT
$datasets.="\t\t\t}\n";
$datasets.="\t\t]\n";
$datasets.="\t}\n";
$JS_text.=$labels.$datasets;
# $JS_text.="}\n";
# $JS_text.="prepChart('$default_graph', $graph_id, $q, $dataset_name);\n";
$JS_text.="var main_ctx = document.getElementById(\"CanvasID".$graph_id."_".$q."\");\n";
$JS_text.="var GraphID".$graph_id."_".$q." = new Chart(main_ctx, {type: '$default_graph', $chart_options data: $dataset_name});\n";
}
$graph_count=count($graph_array);
$graph_title=_QXZ("CUSTOM STATUS CATEGORY STATS");
include("graphcanvas.inc");
$HEADER.=$HTML_graph_head;
$GRAPH.=$graphCanvas;
#$OUToutput.=$GRAPH;
##############################
######### PER LIST DETAIL STATS
$TOTALleads = 0;
$OUToutput .= "\n";
$OUToutput .= "---------- "._QXZ("PER LIST DETAIL STATS",25)." "._QXZ("DOWNLOAD")."\n";
$OUToutput .= "\n";
$CSV_text4.="\""._QXZ("PER LIST DETAIL STATS")."\"\n\n";
$i=0;
while ($i < $listids_to_print)
{
$TOTALleads=0;
$header_list_id = "$LISTIDlists[$i] - $LISTIDlist_names[$i]";
$header_list_id = sprintf("%-51s", $header_list_id); while(strlen($header_list_id)>51) {$header_list_id = substr("$header_list_id", 0, -1);}
$header_list_count = sprintf("%10s", $LISTIDcalls[$i]); while(strlen($header_list_count)>10) {$header_list_count = substr("$header_list_count", 0, -1);}
$OUToutput .= "\n";
$OUToutput .= "+--------------------------------------------------------------+\n";
$OUToutput .= "| $header_list_id $LISTIDlist_active[$i] |\n";
$OUToutput .= "| "._QXZ("TOTAL LEADS",14,"r").": $header_list_count |\n";
$OUToutput .= "+--------------------------------------------------------------+\n";
$max_flags=1;
$max_status=1;
$graph_stats=array();
$CSV_text4.="\""._QXZ("LIST ID").": $LISTIDlists[$i]\",\"$LISTIDlist_names[$i]\",\"$LISTIDlist_active[$i]\"\n";
$CSV_text4.="\""._QXZ("TOTAL LEADS").":\",\"$header_list_count\"\n\n";
$HA_count=0;
$HA_percent=0;
$SALE_count=0;
$SALE_percent=0;
$DNC_count=0;
$DNC_percent=0;
$CC_count=0;
$CC_percent=0;
$NI_count=0;
$NI_percent=0;
$UW_count=0;
$UW_percent=0;
$SC_count=0;
$SC_percent=0;
$COMP_count=0;
$COMP_percent=0;
$stmt="select count(*) from ".$vicidial_list_table." where list_id='$LISTIDlists[$i]' and status IN($human_answered_statuses);";
$rslt=mysql_to_mysqli($stmt, $link);
if ($DB) {$MAIN.="$stmt\n";}
$HA_results = mysqli_num_rows($rslt);
if ($HA_results > 0)
{
$row=mysqli_fetch_row($rslt);
$HA_count = $row[0];
$HA_percent = ( MathZDC($HA_count, $LISTIDcalls[$i]) * 100);
}
if ($HA_count>$max_flags) {$max_flags=$HA_count;}
$stmt="select count(*) from ".$vicidial_list_table." where list_id='$LISTIDlists[$i]' and status IN($sale_statuses);";
$rslt=mysql_to_mysqli($stmt, $link);
if ($DB) {$MAIN.="$stmt\n";}
$SALE_results = mysqli_num_rows($rslt);
if ($SALE_results > 0)
{
$row=mysqli_fetch_row($rslt);
$SALE_count = $row[0];
$SALE_percent = ( MathZDC($SALE_count, $LISTIDcalls[$i]) * 100);
}
if ($SALE_count>$max_flags) {$max_flags=$SALE_count;}
$stmt="select count(*) from ".$vicidial_list_table." where list_id='$LISTIDlists[$i]' and status IN($dnc_statuses);";
$rslt=mysql_to_mysqli($stmt, $link);
if ($DB) {$MAIN.="$stmt\n";}
$DNC_results = mysqli_num_rows($rslt);
if ($DNC_results > 0)
{
$row=mysqli_fetch_row($rslt);
$DNC_count = $row[0];
$DNC_percent = ( MathZDC($DNC_count, $LISTIDcalls[$i]) * 100);
}
if ($DNC_count>$max_flags) {$max_flags=$DNC_count;}
$stmt="select count(*) from ".$vicidial_list_table." where list_id='$LISTIDlists[$i]' and status IN($customer_contact_statuses);";
$rslt=mysql_to_mysqli($stmt, $link);
if ($DB) {$MAIN.="$stmt\n";}
$CC_results = mysqli_num_rows($rslt);
if ($CC_results > 0)
{
$row=mysqli_fetch_row($rslt);
$CC_count = $row[0];
$CC_percent = ( MathZDC($CC_count, $LISTIDcalls[$i]) * 100);
}
if ($CC_count>$max_flags) {$max_flags=$CC_count;}
$stmt="select count(*) from ".$vicidial_list_table." where list_id='$LISTIDlists[$i]' and status IN($not_interested_statuses);";
$rslt=mysql_to_mysqli($stmt, $link);
if ($DB) {$MAIN.="$stmt\n";}
$NI_results = mysqli_num_rows($rslt);
if ($NI_results > 0)
{
$row=mysqli_fetch_row($rslt);
$NI_count = $row[0];
$NI_percent = ( MathZDC($NI_count, $LISTIDcalls[$i]) * 100);
}
if ($NI_count>$max_flags) {$max_flags=$NI_count;}
$stmt="select count(*) from ".$vicidial_list_table." where list_id='$LISTIDlists[$i]' and status IN($unworkable_statuses);";
$rslt=mysql_to_mysqli($stmt, $link);
if ($DB) {$MAIN.="$stmt\n";}
$UW_results = mysqli_num_rows($rslt);
if ($UW_results > 0)
{
$row=mysqli_fetch_row($rslt);
$UW_count = $row[0];
$UW_percent = ( MathZDC($UW_count, $LISTIDcalls[$i]) * 100);
}
if ($UW_count>$max_flags) {$max_flags=$UW_count;}
$stmt="select count(*) from ".$vicidial_list_table." where list_id='$LISTIDlists[$i]' and status IN($scheduled_callback_statuses);";
$rslt=mysql_to_mysqli($stmt, $link);
if ($DB) {$MAIN.="$stmt\n";}
$SC_results = mysqli_num_rows($rslt);
if ($SC_results > 0)
{
$row=mysqli_fetch_row($rslt);
$SC_count = $row[0];
$SC_percent = ( MathZDC($SC_count, $LISTIDcalls[$i]) * 100);
}
if ($SC_count>$max_flags) {$max_flags=$SC_count;}
$stmt="select count(*) from ".$vicidial_list_table." where list_id='$LISTIDlists[$i]' and status IN($completed_statuses);";
$rslt=mysql_to_mysqli($stmt, $link);
if ($DB) {$MAIN.="$stmt\n";}
$COMP_results = mysqli_num_rows($rslt);
if ($COMP_results > 0)
{
$row=mysqli_fetch_row($rslt);
$COMP_count = $row[0];
$COMP_percent = ( MathZDC($COMP_count, $LISTIDcalls[$i]) * 100);
}
if ($COMP_count>$max_flags) {$max_flags=$COMP_count;}
$graph_stats2=array(array("$HA_count", "Human Answer"), array("$SALE_count", "Sale"), array("$DNC_count", "DNC"), array("$CC_count", "Customer Contact"), array("$NI_count", "Not Interested"), array("$UW_count", "Unworkable"), array("$SC_count", "Scheduled Callbacks"), array("$COMP_count", "Completed"));
$HA_percent = sprintf("%6.2f", "$HA_percent"); while(strlen($HA_percent)>6) {$HA_percent = substr("$HA_percent", 0, -1);}
$SALE_percent = sprintf("%6.2f", "$SALE_percent"); while(strlen($SALE_percent)>6) {$SALE_percent = substr("$SALE_percent", 0, -1);}
$DNC_percent = sprintf("%6.2f", "$DNC_percent"); while(strlen($DNC_percent)>6) {$DNC_percent = substr("$DNC_percent", 0, -1);}
$CC_percent = sprintf("%6.2f", "$CC_percent"); while(strlen($CC_percent)>6) {$CC_percent = substr("$CC_percent", 0, -1);}
$NI_percent = sprintf("%6.2f", "$NI_percent"); while(strlen($NI_percent)>6) {$NI_percent = substr("$NI_percent", 0, -1);}
$UW_percent = sprintf("%6.2f", "$UW_percent"); while(strlen($UW_percent)>6) {$UW_percent = substr("$UW_percent", 0, -1);}
$SC_percent = sprintf("%6.2f", "$SC_percent"); while(strlen($SC_percent)>6) {$SC_percent = substr("$SC_percent", 0, -1);}
$COMP_percent = sprintf("%6.2f", "$COMP_percent"); while(strlen($COMP_percent)>6) {$COMP_percent = substr("$COMP_percent", 0, -1);}
$HA_count = sprintf("%9s", "$HA_count"); while(strlen($HA_count)>9) {$HA_count = substr("$HA_count", 0, -1);}
$SALE_count = sprintf("%9s", "$SALE_count"); while(strlen($SALE_count)>9) {$SALE_count = substr("$SALE_count", 0, -1);}
$DNC_count = sprintf("%9s", "$DNC_count"); while(strlen($DNC_count)>9) {$DNC_count = substr("$DNC_count", 0, -1);}
$CC_count = sprintf("%9s", "$CC_count"); while(strlen($CC_count)>9) {$CC_count = substr("$CC_count", 0, -1);}
$NI_count = sprintf("%9s", "$NI_count"); while(strlen($NI_count)>9) {$NI_count = substr("$NI_count", 0, -1);}
$UW_count = sprintf("%9s", "$UW_count"); while(strlen($UW_count)>9) {$UW_count = substr("$UW_count", 0, -1);}
$SC_count = sprintf("%9s", "$SC_count"); while(strlen($SC_count)>9) {$SC_count = substr("$SC_count", 0, -1);}
$COMP_count = sprintf("%9s", "$COMP_count"); while(strlen($COMP_count)>9) {$COMP_count = substr("$COMP_count", 0, -1);}
$OUToutput .= "| "._QXZ("STATUS FLAGS BREAKDOWN",22).": "._QXZ("(and % of total leads in the list)",35)." |\n";
$OUToutput .= "| "._QXZ("Human Answer:",19)." $HA_count $HA_percent% |\n";
$OUToutput .= "| "._QXZ("Sale:",19)." $SALE_count $SALE_percent% |\n";
$OUToutput .= "| "._QXZ("DNC:",19)." $DNC_count $DNC_percent% |\n";
$OUToutput .= "| "._QXZ("Customer Contact:",19)." $CC_count $CC_percent% |\n";
$OUToutput .= "| "._QXZ("Not Interested:",19)." $NI_count $NI_percent% |\n";
$OUToutput .= "| "._QXZ("Unworkable:",19)." $UW_count $UW_percent% |\n";
$OUToutput .= "| "._QXZ("Sched Callbacks:",19)." $SC_count $SC_percent% |\n";
$OUToutput .= "| "._QXZ("Completed:",19)." $COMP_count $COMP_percent% |\n";
$OUToutput .= "+----+--------------------------------------------+------------+\n";
$OUToutput .= " | "._QXZ("STATUS BREAKDOWN",19,"r").": | "._QXZ("COUNT",8,"r")." |\n";
$OUToutput .= " +--------+-----------------------------------+------------+\n";
$FLAGS_graph.=" | "._QXZ("HUMAN ANSWER")." | $HA_count ($HA_percent%) | ";
$FLAGS_graph.=" | "._QXZ("SALE")." | $SALE_count ($SALE_percent%) | ";
$FLAGS_graph.=" | "._QXZ("DNC")." | $DNC_count ($DNC_percent%) | ";
$FLAGS_graph.=" | "._QXZ("CUSTOMER CONTACT")." | $CC_count ($CC_percent%) | ";
$FLAGS_graph.=" | "._QXZ("NOT INTERESTED")." | $NI_count ($NI_percent%) | ";
$FLAGS_graph.=" | "._QXZ("UNWORKABLE")." | | $UW_count ($UW_percent%) ";
$FLAGS_graph.=" | "._QXZ("SCHEDULED CALLBACKS")." | | $SC_count ($SC_percent%) ";
$FLAGS_graph.=" | "._QXZ("COMPLETED")." | | $COMP_count ($COMP_percent%) ";
$CSV_text4.="\""._QXZ("STATUS FLAGS BREAKDOWN").":\",\"("._QXZ("and % of total leads in the list").")\"\n";
$CSV_text4.="\""._QXZ("Human Answer").":\",\"$HA_count\",\"$HA_percent%\"\n";
$CSV_text4.="\""._QXZ("Sale").":\",\"$SALE_count\",\"$SALE_percent%\"\n";
$CSV_text4.="\""._QXZ("DNC").":\",\"$DNC_count\",\"$DNC_percent%\"\n";
$CSV_text4.="\""._QXZ("Customer Contact").":\",\"$CC_count\",\"$CC_percent%\"\n";
$CSV_text4.="\""._QXZ("Not Interested").":\",\"$NI_count\",\"$NI_percent%\"\n";
$CSV_text4.="\""._QXZ("Unworkable").":\",\"$UW_count\",\"$UW_percent%\"\n\n";
$CSV_text4.="\""._QXZ("Scheduled Callbacks").":\",\"$SC_count\",\"$SC_percent%\"\n\n";
$CSV_text4.="\""._QXZ("Completed").":\",\"$COMP_count\",\"$COMP_percent%\"\n\n";
$CSV_text4.="\""._QXZ("STATUS BREAKDOWN").":\",\"\",\""._QXZ("COUNT")."\"\n";
$stmt="select status,count(*) from ".$vicidial_list_table." where list_id='$LISTIDlists[$i]' group by status order by status;";
$rslt=mysql_to_mysqli($stmt, $link);
if ($DB) {$MAIN.="$stmt\n";}
$liststatussum_to_print = mysqli_num_rows($rslt);
$r=0;
while ($r < $liststatussum_to_print)
{
$row=mysqli_fetch_row($rslt);
$LISTIDstatus[$r] = $row[0];
$LISTIDcounts[$r] = $row[1];
$graph_stats[$r][0]=$row[0];
$graph_stats[$r][1]=$row[1];
if ($row[1]>$max_status) {$max_status=$row[1];}
if ($DB) {$MAIN.="$r|$LISTIDstatus[$r]|$LISTIDcounts[$r]| |$row[0]|$row[1]| \n";}
$r++;
}
$r=0;
while ($r < $liststatussum_to_print)
{
$LIDstatus = $LISTIDstatus[$r];
$LIDstatus_format = sprintf("%6s", $LIDstatus);
$TOTALleads = ($TOTALleads + $LISTIDcounts[$r]);
$LISTID_status_count = sprintf("%10s", $LISTIDcounts[$r]); while(strlen($LISTID_status_count)>10) {$LISTID_status_count = substr("$LISTID_status_count", 0, -1);}
$LISTIDname = sprintf("%-42s", "$LIDstatus_format | $statname_list[$LIDstatus]"); while(strlen($LISTIDname)>42) {$LISTIDname = substr("$LISTIDname", 0, -1);}
$graph_stats[$r][0].=" - $statname_list[$LIDstatus]";
$OUToutput .= " | $LISTIDname | $LISTID_status_count |\n";
$CSV_text4.="\"".trim($LIDstatus_format)."\",\"$statname_list[$LIDstatus]\",\"$LISTID_status_count\"\n";
$r++;
}
$TOTALleads = sprintf("%10s", $TOTALleads);
$OUToutput .= " +--------+-----------------------------------+------------+\n";
$OUToutput .= " | "._QXZ("TOTAL",41,"r").": | $TOTALleads |\n";
$OUToutput .= " +--------------------------------------------+------------+\n";
$CSV_text4.="\""._QXZ("TOTAL").":\",\"\",\"$TOTALleads\"\n\n\n";
# USE THIS FOR COMBINED graphs, use pipe-delimited array elements, dataset_name|index|link_name|graph_override
# You have to hard code the graph name in where it is overridden and mind the data indices. No other way to do it.
$multigraph_text="";
$graph_id++;
$graph_array=array("ALCS_STATUSFLAG$LISTIDlists[$i]data|0|STATUS FLAG BREAKDOWN|intpct|graph_stats2", "ALCS_STATUS$LISTIDlists[$i]data|1|STATUS BREAKDOWN|integer|");
$default_graph="bar"; # Graph that is initally displayed when page loads
include("graph_color_schemas.inc");
$graph_totals_array=array();
$graph_totals_rawdata=array();
for ($q=0; $q"._QXZ("TOTAL")." - ".sec_convert($current_graph_total, 'H')." \n";
$chart_options="options: {tooltips: {callbacks: {label: function(tooltipItem, data) {var value = Math.round(data.datasets[0].data[tooltipItem.index]); return value.toHHMMSS();}}}, legend: { display: false }},";
break;
case "percent":
$graph_totals_array[$q]="";
$chart_options="options: {tooltips: {callbacks: {label: function(tooltipItem, data) {var value = data.datasets[0].data[tooltipItem.index]; return value + '%';}}}, legend: { display: false }},";
break;
default:
$graph_totals_array[$q]=" "._QXZ("TOTAL").": $current_graph_total\n";
$chart_options="options: { legend: { display: false }},";
break;
}
$datasets.=$data;
$datasets.=$graphConstantsA.$graphConstantsB.$graphConstantsC.$graphConstants; # SEE TOP OF SCRIPT
$datasets.="\t\t\t}\n";
$datasets.="\t\t]\n";
$datasets.="\t}\n";
$JS_text.=$labels.$datasets;
# $JS_text.="}\n";
# $JS_text.="prepChart('$default_graph', $graph_id, $q, $dataset_name);\n";
$JS_text.="var main_ctx = document.getElementById(\"CanvasID".$graph_id."_".$q."\");\n";
$JS_text.="var GraphID".$graph_id."_".$q." = new Chart(main_ctx, {type: '$default_graph', $chart_options data: $dataset_name});\n";
}
$graph_count=count($graph_array);
$graph_title="$LISTIDlists[$i] - $LISTIDlist_names[$i] ($LISTIDlist_active[$i])";
include("graphcanvas.inc");
$HEADER.=$HTML_graph_head;
$GRAPH.=$graphCanvas;
# $OUToutput.=$GRAPH;
$i++;
}
if ($report_display_type=="HTML")
{
$MAIN.=$GRAPH;
}
else
{
$MAIN.="$OUToutput";
}
$ENDtime = date("U");
$RUNtime = ($ENDtime - $STARTtime);
$MAIN.="\n"._QXZ("Run Time").": $RUNtime "._QXZ("seconds")."|$db_source\n";
$MAIN.="\n";
$MAIN.=" |