#!/usr/local/bin/php
<?php
/*
*
* (c) 2013 Christopher Olsen <cwolsen@uBixTechnologies.com>
*
* $Id: dialer_reset_stats_cron.php 2049 2015-03-13 20:10:20Z reddawg $
*
*/
include("/usr/web/sites/manage.ubixtechnologies.net/include/cron_config.php");
$cron_name = "dialer_reset_stats_cron";
$data['cron']->init($cron_name);
$r_date = date("Y-m-d", strtotime("yesterday"));
$bTime = time();
$query = "SELECT aid, press1_group, press1_cpm, dialer_group, dialer_cpm, press1_prepay, dialer_prepay, broadcast_daily_total, predictive_daily_total FROM accounts";
$uResult = $data['ubix_db']->query($query);
$broadcast_cost_data = Array();
$dialer_cost_data = Array();
while ($uData = $uResult->fetch_assoc()) {
$query = "UPDATE accounts SET press1_prepay = " . ($uData['press1_prepay'] - $uData['broadcast_daily_total']) . ", broadcast_daily_total = 0, dialer_prepay = " . ($uData['dialer_prepay'] - $uData['predictive_daily_total']) . ", predictive_daily_total = 0 WHERE aid = " . $uData['aid'];
$data['ubix_db']->query($query);
if (strlen($uData['press1_group']) >= 3)
$broadcast_cost_data[$uData['press1_group']] = $uData['press1_cpm']/60;
if (strlen($uData['dialer_group']) >= 3)
$dialer_cost_data[$uData['dialer_group']] = $uData['dialer_cpm']/60;
}
$uResult->free();
/* Broadcast Campaigns */
$query = "SELECT * FROM vicidial_campaigns";
$bResult = $data['as-dialer-002']->query($query);
$data['cron']->log("Rows: " . $bResult->num_rows . "\n");
while ($bData = $bResult->fetch_assoc()) {
$query = "SELECT status, SUM(length_in_sec) AS total_time, COUNT(*) AS total_calls FROM vicidial_log WHERE call_date >= '" . $r_date . " 00:00:00' AND call_date <= '" . $r_date . " 23:59:59' AND campaign_id = '" . $bData['campaign_id'] . "' GROUP BY status ORDER BY status DESC";
$result = $data['as-dialer-002']->query($query);
$opt_in = 0;
$opt_out = 0;
$total_calls = 0;
$total_time = 0;
if ($result->num_rows > 0) {
while ($qData = $result->fetch_assoc()) {
if ($qData['status'] == "SVYEXT")
$opt_in = $qData['total_calls'];
else if ($qData['status'] == "DNC")
$opt_out = $qData['total_calls'];
$total_calls += $qData['total_calls'];
$total_time += $qData['total_time'];
}
$result->free();
$total_cost = $total_time * $broadcast_cost_data[$bData['user_group']];
$query = "INSERT INTO dialer_stats (campaign_id, campaign_name, user_group, date, calls, opt_in, opt_out, spent, type) ";
$query .= "VALUES('" . $bData['campaign_id'] . "', '" . $bData['campaign_name'] . "', '" . $bData['user_group'] . "', " . strtotime($r_date) . ", " . $total_calls . ", " . $opt_in . ", " . $opt_out . ", $total_cost, 0)";
$data['cron']->log("BC:[$query]\n");
$data['ubix_db']->query($query);
}
}
$bResult->free();
$query = "UPDATE vicidial_campaigns SET daily_total = 0, daily_notification = 0";
$data['as-dialer-002']->query($query);
/* Dialer Campaigns as-dialer-003 */
$query = "SELECT * FROM vicidial_campaigns";
$pResult = $data['as-dialer-003']->query($query);
$data['cron']->log("Rows: " . $pResult->num_rows . "\n");
while ($pData = $pResult->fetch_assoc()) {
$query = "SELECT status, SUM(length_in_sec) AS total_time, COUNT(*) AS total_calls FROM vicidial_log WHERE call_date >= '" . $r_date . " 00:00:00' AND call_date <= '" . $r_date . " 23:59:59' AND campaign_id = '" . $pData['campaign_id'] . "' GROUP BY status ORDER BY status DESC";
$result = $data['as-dialer-003']->query($query);
$opt_in = 0;
$opt_out = 0;
$total_calls = 0;
$total_time = 0;
if ($result->num_rows > 0) {
while ($qData = $result->fetch_assoc()) {
if ($qData['status'] == "DNC")
$opt_out = $qData['total_calls'];
else if ($qData['status'] != "NA" || $qData['status'] != "DROP")
$opt_in += $qData['total_calls'];
$total_calls += $qData['total_calls'];
$total_time += $qData['total_time'];
}
$result->free();
$total_cost = $total_time * $dialer_cost_data[$pData['user_group']];
$query = "INSERT INTO dialer_stats (campaign_id, campaign_name, user_group, date, calls, opt_in, opt_out, spent, type) ";
$query .= "VALUES('" . $pData['campaign_id'] . "','" . $pData['campaign_name'] . "','" . $pData['user_group'] . "'," . strtotime($r_date) . "," . $total_calls . "," . $opt_in . "," . $opt_out . ",$total_cost,1)";
$data['cron']->log("PC[$query]\n");
$data['ubix_db']->query($query);
}
}
$pResult->free();
$query = "UPDATE vicidial_campaigns SET daily_total = 0, daily_notification = 0";
$data['as-dialer-003']->query($query);
/* End as-dialer-003 */
/* as-dialer-004 */
/*
$query = "SELECT * FROM vicidial_campaigns";
$pResult = $data['as-dialer-004']->query($query);
$data['cron']->log("Rows: " . $pResult->num_rows . "\n");
while ($pData = $pResult->fetch_assoc()) {
$query = "SELECT status, SUM(length_in_sec) AS total_time, COUNT(*) AS total_calls FROM vicidial_log WHERE call_date >= '" . $r_date . " 00:00:00' AND call_date <= '" . $r_date . " 23:59:59' AND campaign_id = '" . $pData['campaign_id'] . "' GROUP BY status ORDER BY status DESC";
$result = $data['as-dialer-004']->query($query);
$opt_in = 0;
$opt_out = 0;
$total_calls = 0;
$total_time = 0;
if ($result->num_rows > 0) {
while ($qData = $result->fetch_assoc()) {
if ($qData['status'] == "DNC")
$opt_out = $qData['total_calls'];
else if ($qData['status'] != "NA" || $qData['status'] != "DROP")
$opt_in += $qData['total_calls'];
$total_calls += $qData['total_calls'];
$total_time += $qData['total_time'];
}
$result->free();
$total_cost = $total_time * $dialer_cost_data[$pData['user_group']];
$query = "INSERT INTO dialer_stats (campaign_id, campaign_name, user_group, date, calls, opt_in, opt_out, spent, type) ";
$query .= "VALUES('" . $pData['campaign_id'] . "','" . $pData['campaign_name'] . "','" . $pData['user_group'] . "'," . strtotime($r_date) . "," . $total_calls . "," . $opt_in . "," . $opt_out . ",$total_cost,1)";
$data['cron']->log("PC[$query]\n");
$data['ubix_db']->query($query);
}
}
$pResult->free();
$query = "UPDATE vicidial_campaigns SET daily_total = 0, daily_notification = 0";
$data['as-dialer-004']->query($query);
*/
/* End: as-voip-004 Stats */
$query = "UPDATE system_var SET value = '" . $bTime . "' WHERE name = 'dialer_reset_stats_cron_last_run'";
$data['ubix_db']->query($query);
$data['cron']->log("Adjust System Var: [$query]\n");
$data['cron']->finish();
?>