Newer
Older
ubFramework / Portal / cron / dialer / dialer_reset_stats_cron.php
@Christopher W. Olsen Christopher W. Olsen on 10 Dec 2017 6 KB Cleaning Up Making It A Sub Module
#!/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();
  
?>