#!/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(); ?>