Отчет по траффику
Integral
es@konstanta.ru
authorUrl
2009
c
license
1.0
Отчет по траффику
report_traffic.php
==== PHP ====
registerEvent( 'onPrepareContent', 'plgReport_TR_Modify' );
function plgReport_TR_Modify(&$row, &$params, $page=0){
$pos_report = strpos($row->text, '{traffic_period_report}');
if ($pos_report!==false) {
$row->text = preg_replace('/{traffic_period_report}/', '', $row->text);
include ("./urfa/URFAConfig.php");
$db_connect=mysql_connect($db_urfa_host,$db_urfa_user,$db_urfa_password) or die ("Connect failed");
mysql_select_db($db_urfa_base,$db_connect);
//************************************************************************************************************************
// Функция выбора даты
@$btn=$_POST['btn'];
//echo $btn;
function addopt ($str, $val, $select)
{
if ($select)
{
$ret='';
} else
{
$ret='';
}
return $ret;
}
//$btn=$_POST['btn'];
if (isset($btn))
{
$d1=$_POST['daystart'];
$d2=$_POST['dayend'];
$m1=$_POST['monthstart'];
$m2=$_POST['monthend'];
$y1=$_POST['yearstart'];
$y2=$_POST['yearend'];
$torder=$_POST['torder'];
// $sorttype=$_POST['sorttype'];
} else
{
$y1=$y2=date("Y");
$m1=date("m");
$d1=mktime(0, 0, 0, $m1, 1, $y1);
$d1=date("d",$d1);
$m2=$m1;
$d2=date("d");
$torder="1";
$sorttype="asc";
}
// Выбор даты начала
$form_select_sdate = "";
$form_select_sdate = " ';
// Конец выбора даты окончания
$data_1=mktime(0, 0, 0, $m1, $d1, $y1);
$data_2=mktime(23, 59, 59, $m2, $d2, $y2);
$raznica=$data_2-$data_1;
// Конец - Функция выбора даты
//************************************************************************************************************************
// Запросы к базе на выбор траффика
$result_sql = "";
if ($btn == "1")
{
if ($torder == "1")
{
$q = '
SELECT
discount_transactions_iptraffic_all.account_id,
Sum(discount_transactions_iptraffic_all.bytes) AS bytes,
Sum(discount_transactions_iptraffic_all.discount) AS discount,
t_class.t_class_name,
discount_transactions_iptraffic_all.base_cost
FROM
discount_transactions_iptraffic_all
LEFT OUTER JOIN t_class ON (t_class.id = discount_transactions_iptraffic_all.t_class)
WHERE
discount_transactions_iptraffic_all.account_id = '.$_SESSION['URFA']['basic_account'].' AND
discount_transactions_iptraffic_all.discount_date >= '.$data_1.' AND
discount_transactions_iptraffic_all.discount_date <= '.$data_2.'
GROUP BY
discount_transactions_iptraffic_all.account_id,
t_class.t_class_name,
discount_transactions_iptraffic_all.base_cost
';
//echo $q1;
$result=mysql_query ($q);
$result_sql .= "
Дата начала
Дата окончания
Тип траффика
Цена за 1Мб
Траффик(Мб)
Сумма
";
while ($row1 = mysql_fetch_assoc($result))
{
if (isset($row1['bytes']))
{
$traff = round($row1['bytes']/1024/1024, 3);
$traff = str_replace("." , "," , $traff);
}else
{
$traff = " ";
}
$summa = round($row1['discount'], 2);
$startdate = $d1."/".$m1."/".$y1;
$enddate = $d2."/".$m2."/".$y2;
if (!isset($traff)) { $traff = 0; }
$result_sql .= "
".$startdate."
".$enddate."
".$row1['t_class_name']."
".$row1['base_cost']."
".$traff."
".$summa."
";
}
$result_sql .= "
";
}elseif ($torder == "2")
//********************************************************
{
if ($raznica <= "2678400" )
{
$all_summa=0;
$q = '
SELECT
discount_transactions_iptraffic_all.account_id AS aid,
Sum(discount_transactions_iptraffic_all.bytes) AS bytes,
discount_transactions_iptraffic_all.discount_date_day AS day,
discount_transactions_iptraffic_all.base_cost,
SUM(discount_transactions_iptraffic_all.discount) AS discount,
t_class.t_class_name
FROM
discount_transactions_iptraffic_all
LEFT OUTER JOIN t_class ON (t_class.id = discount_transactions_iptraffic_all.t_class)
WHERE
discount_transactions_iptraffic_all.account_id = '.$_SESSION['URFA']['basic_account'].' AND
discount_transactions_iptraffic_all.discount_date >= '.$data_1.' AND
discount_transactions_iptraffic_all.discount_date <= '.$data_2.'
GROUP BY
discount_transactions_iptraffic_all.account_id,
discount_transactions_iptraffic_all.discount_date_day,
discount_transactions_iptraffic_all.base_cost,
t_class.t_class_name
ORDER BY
day ASC';
$result=mysql_query ($q);
$result_sql .= "
Дата
Тип траффика
Цена за 1Мб
Траффик(Мб)
Сумма
";
while ($row1 = mysql_fetch_assoc($result))
{
if (isset($row1['bytes']))
{
$traff = round($row1['bytes']/1024/1024, 4);
$traff = str_replace("." , "," , $traff);
$all_summa = $all_summa + $row1['discount'];
}else
{
$traff = " ";
}
$data=date ("d/m/Y", $row1['day']);
$summa = round($row1['discount'], 2);
$result_sql .= "
".$data."
".$row1['t_class_name']."
".$row1['base_cost']."
".$traff."
".$summa."
";
}
$all_summa = round($all_summa, 2);
$result_sql .= "
Итого
".$all_summa."
";
$result_sql .= "
";
}else{ $result_sql = "Выберите период с разницой не более 1 месяца."; }
//********************************************************
}elseif ($torder == "3")
{
// Сортировка по часам ***********************************
if ($raznica <= "86400" )
{
$all_summa=0;
$q = 'SELECT
discount_transactions_iptraffic_all.account_id AS aid,
Sum(discount_transactions_iptraffic_all.bytes) AS bytes,
discount_transactions_iptraffic_all.discount_date_hour AS hours,
t_class.t_class_name,
discount_transactions_iptraffic_all.base_cost,
Sum(discount_transactions_iptraffic_all.discount) AS discount
FROM
discount_transactions_iptraffic_all
LEFT OUTER JOIN t_class on t_class.id=discount_transactions_iptraffic_all.t_class
WHERE
discount_transactions_iptraffic_all.account_id = '.$_SESSION['URFA']['basic_account'].' AND
t_class.is_deleted = 0 AND
discount_transactions_iptraffic_all.discount_date >= '.$data_1.' AND
discount_transactions_iptraffic_all.discount_date <= '.$data_2.'
GROUP BY
discount_transactions_iptraffic_all.discount_date_hour,
discount_transactions_iptraffic_all.account_id,
t_class.t_class_name,
discount_transactions_iptraffic_all.base_cost
ORDER BY
hours ASC';
$result=mysql_query ($q);
$result_sql .="
Дата
Тип трафика
Цена за 1Мб
Трафик(Мб)
Сумма
";
while ($row1 = mysql_fetch_assoc($result))
{
if (isset($row1['bytes']))
{
$traff = round($row1['bytes']/1024/1024, 4);
$traff = str_replace("." , "," , $traff);
$all_summa = $all_summa + $row1['discount'];
}else
{
$traff = " ";
}
$summa = round($row1['discount'], 2);
$data=date("d/m/Y - H:i:s", $row1['hours']);
$result_sql .= "
".$data."
".$row1['t_class_name']."
".$row1['base_cost']."
".$traff."
".$summa."
";
}
$all_summa = round($all_summa, 2);
$result_sql .= "
Итого
".$all_summa."
";
$result_sql .= "
";
}else{ $result_sql = "Выберите период с разницой не более одних суток "; }
//********************************************************
}elseif ($torder == "4")
{
// Сортировка по месяцам
echo "По месяцам";
}
}
//***********************************************************************************************************************
$row->text = preg_replace('/{traffic_period_form}/', $form_select_sdate.$form_select_edate, $row->text);
$row->text = preg_replace('/{traffic_period_report_table}/', $result_sql, $row->text);
}
}
?>
==== SQL ====
==== HTML ====
{traffic_period_report}
{traffic_period_form}
{traffic_period_report_table}
==== Пример ====