mirror of
				https://github.com/librenms/librenms.git
				synced 2024-10-07 16:52:45 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			170 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			170 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| $pagetitle[] = 'Bandwidth Graphs';
 | |
| 
 | |
| // $bill_data          = dbFetchRow("SELECT * FROM bills WHERE bill_id = ?", array($bill_id));
 | |
| // $today              = str_replace("-", "", dbFetchCell("SELECT CURDATE()"));
 | |
| // $tomorrow           = str_replace("-", "", dbFetchCell("SELECT DATE_ADD(CURDATE(), INTERVAL 1 DAY)"));
 | |
| // $last_month         = str_replace("-", "", dbFetchCell("SELECT DATE_SUB(CURDATE(), INTERVAL 1 MONTH)"));
 | |
| // $rightnow           = $today . date(His);
 | |
| // $before             = $yesterday . date(His);
 | |
| // $lastmonth          = $last_month . date(His);
 | |
| // $dayofmonth         = $bill_data['bill_day'];
 | |
| // $day_data           = getDates($dayofmonth);
 | |
| // $datefrom           = $day_data['0'];
 | |
| // $dateto             = $day_data['1'];
 | |
| // $lastfrom           = $day_data['2'];
 | |
| // $lastto             = $day_data['3'];
 | |
| // print_r($bill_data);
 | |
| $total_data = $bill_data['total_data'];
 | |
| $in_data    = $bill_data['total_data_in'];
 | |
| $out_data   = $bill_data['total_data_out'];
 | |
| 
 | |
| $fromtext       = dbFetchCell("SELECT DATE_FORMAT($datefrom, '".$config['dateformat']['mysql']['date']."')");
 | |
| $totext         = dbFetchCell("SELECT DATE_FORMAT($dateto, '".$config['dateformat']['mysql']['date']."')");
 | |
| $unixfrom       = dbFetchCell("SELECT UNIX_TIMESTAMP('$datefrom')");
 | |
| $unixto         = dbFetchCell("SELECT UNIX_TIMESTAMP('$dateto')");
 | |
| $unix_prev_from = dbFetchCell("SELECT UNIX_TIMESTAMP('$lastfrom')");
 | |
| $unix_prev_to   = dbFetchCell("SELECT UNIX_TIMESTAMP('$lastto')");
 | |
| $lastmonth      = dbFetchCell('SELECT UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 MONTH))');
 | |
| $yesterday      = dbFetchCell('SELECT UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 DAY))');
 | |
| $rightnow       = date(U);
 | |
| 
 | |
| echo '<h3>Billed Ports</h3>';
 | |
| 
 | |
| foreach ($ports as $port) {
 | |
|     echo generate_port_link($port).' on '.generate_device_link($port).'<br />';
 | |
| }
 | |
| 
 | |
| $cur_days   = date('d', (strtotime('now') - strtotime($datefrom)));
 | |
| $total_days = date('d', (strtotime($dateto) - strtotime($datefrom)));
 | |
| 
 | |
| $total['data'] = format_bytes_billing($bill_data['total_data']);
 | |
| if ($bill_data['bill_type'] == 'quota') {
 | |
|     $total['allow'] = format_bytes_billing($bill_data['bill_quota']);
 | |
| }
 | |
| else {
 | |
|     $total['allow'] = '-';
 | |
| }
 | |
| 
 | |
| $total['ave'] = format_bytes_billing(($bill_data['total_data'] / $cur_days));
 | |
| $total['est'] = format_bytes_billing(($bill_data['total_data'] / $cur_days * $total_days));
 | |
| $total['per'] = round(($bill_data['total_data'] / $bill_data['bill_quota'] * 100), 2);
 | |
| $total['bg']  = get_percentage_colours($total['per']);
 | |
| 
 | |
| $in['data']  = format_bytes_billing($bill_data['total_data_in']);
 | |
| $in['allow'] = $total['allow'];
 | |
| $in['ave']   = format_bytes_billing(($bill_data['total_data_in'] / $cur_days));
 | |
| $in['est']   = format_bytes_billing(($bill_data['total_data_in'] / $cur_days * $total_days));
 | |
| $in['per']   = round(($bill_data['total_data_in'] / $bill_data['total_data'] * 100), 2);
 | |
| $in['bg']    = get_percentage_colours($in['per']);
 | |
| 
 | |
| $out['data']  = format_bytes_billing($bill_data['total_data_out']);
 | |
| $out['allow'] = $total['allow'];
 | |
| $out['ave']   = format_bytes_billing(($bill_data['total_data_out'] / $cur_days));
 | |
| $out['est']   = format_bytes_billing(($bill_data['total_data_out'] / $cur_days * $total_days));
 | |
| $out['per']   = round(($bill_data['total_data_out'] / $bill_data['total_data'] * 100), 2);
 | |
| $out['bg']    = get_percentage_colours($out['per']);
 | |
| 
 | |
| $ousage['over']  = ($bill_data['total_data'] - ($bill_data['bill_quota']));
 | |
| $ousage['over']  = (($ousage['over'] < 0) ? '0' : $ousage['over']);
 | |
| $ousage['data']  = format_number($ousage['over'], $config['billing']['base']);
 | |
| $ousage['allow'] = $total['allow'];
 | |
| $ousage['ave']   = format_bytes_billing(($ousage['over'] / $cur_days));
 | |
| $ousage['est']   = format_bytes_billing(($ousage['over'] / $cur_days * $total_days));
 | |
| $ousage['per']   = round((($bill_data['total_data'] / $bill_data['bill_quota'] * 100) - 100), 2);
 | |
| $ousage['per']   = (($ousage['per'] < 0) ? '0' : $ousage['per']);
 | |
| $ousage['bg']    = get_percentage_colours($ousage['per']);
 | |
| 
 | |
| 
 | |
| function showPercent($per) {
 | |
|     $background       = get_percentage_colours($per);
 | |
|     $right_background = $background['right'];
 | |
|     $left_background  = $background['left'];
 | |
|     $res              = print_percentage_bar(350, 20, $per, null, 'ffffff', $left_background, $per.'%', 'ffffff', $right_background);
 | |
|     return $res;
 | |
| 
 | |
| }//end showPercent()
 | |
| 
 | |
| 
 | |
| echo '<h3>Bill Summary</h3>';
 | |
| echo '<h4>Quota Bill (Billing Period from '.$fromtext.' to '.$totext.')</h4>';
 | |
| echo '<table class="table">';
 | |
| echo '  <tr style="font-weight: bold;">';
 | |
| echo '    <td width="125">Bandwidth</td>';
 | |
| echo '    <td width="10"></td>';
 | |
| echo '    <td width="100">Used</td>';
 | |
| echo '    <td width="100">Allowed</td>';
 | |
| echo '    <td width="100">Average</td>';
 | |
| echo '    <td width="100">Estimated</td>';
 | |
| echo '    <td width="360"></td>';
 | |
| echo '  </tr>';
 | |
| echo '  <tr style="background: '.$list_colour_b.';">';
 | |
| echo '    <td>Transferred</td>';
 | |
| echo '    <td>:</td>';
 | |
| echo '    <td>'.$total['data'].'</td>';
 | |
| echo '    <td>'.$total['allow'].'</td>';
 | |
| echo '    <td>'.$total['ave'].'</td>';
 | |
| echo '    <td>'.$total['est'].'</td>';
 | |
| echo '    <td width="360">'.showPercent($total['per']).'</td>';
 | |
| echo '  </tr>';
 | |
| 
 | |
| echo '  <tr style="background: '.$list_colour_a.';">';
 | |
| echo '    <td>Inbound</td>';
 | |
| echo '    <td>:</td>';
 | |
| echo '    <td>'.$in['data'].'</td>';
 | |
| echo '    <td>'.$in['allow'].'</td>';
 | |
| echo '    <td>'.$in['ave'].'</td>';
 | |
| echo '    <td>'.$in['est'].'</td>';
 | |
| echo '    <td>'.showPercent($in['per']).'</td>';
 | |
| echo '  </tr>';
 | |
| echo '  <tr style="background: '.$list_colour_b.';">';
 | |
| echo '    <td>Outbound</td>';
 | |
| echo '    <td>:</td>';
 | |
| echo '    <td>'.$out['data'].'</td>';
 | |
| echo '    <td>'.$out['allow'].'</td>';
 | |
| echo '    <td>'.$out['ave'].'</td>';
 | |
| echo '    <td>'.$out['est'].'</td>';
 | |
| echo '    <td>'.showPercent($out['per']).'</td>';
 | |
| echo '  </tr>';
 | |
| if ($ousage['over'] > 0 && $bill_data['bill_type'] == 'quota') {
 | |
|     echo '  <tr style="background: '.$list_colour_a.';">';
 | |
|     echo '    <td>Already overusage</td>';
 | |
|     echo '    <td>:</td>';
 | |
|     echo '    <td><span style="color: #'.$total['bg']['left'].'; font-weight: bold;">'.$ousage['data'].'</span></td>';
 | |
|     echo '    <td>'.$ousage['allow'].'</td>';
 | |
|     echo '    <td>'.$ousage['ave'].'</td>';
 | |
|     echo '    <td>'.$ousage['est'].'</td>';
 | |
|     echo '    <td>'.showPercent($ousage['per']).'</td>';
 | |
| }
 | |
| 
 | |
| echo '</table>';
 | |
| 
 | |
| $bi  = "<img src='bandwidth-graph.php?bill_id=".$bill_id.'&bill_code='.$_GET['bill_code'];
 | |
| $bi .= '&from='.$unixfrom.'&to='.$unixto;
 | |
| $bi .= '&type=day&imgbill=1';
 | |
| $bi .= '&x=1190&y=250';
 | |
| $bi .= "$type'>";
 | |
| 
 | |
| $li  = "<img src='bandwidth-graph.php?bill_id=".$bill_id.'&bill_code='.$_GET['bill_code'];
 | |
| $li .= '&from='.$unix_prev_from.'&to='.$unix_prev_to;
 | |
| $li .= '&type=day';
 | |
| $li .= '&x=1190&y=250';
 | |
| $li .= "$type'>";
 | |
| 
 | |
| $di  = "<img src='bandwidth-graph.php?bill_id=".$bill_id.'&bill_code='.$_GET['bill_code'];
 | |
| $di .= '&from='.$config['time']['day'].'&to='.$config['time']['now'];
 | |
| $di .= '&type=hour';
 | |
| $di .= '&x=1190&y=250';
 | |
| $di .= "$type'>";
 | |
| 
 | |
| $mi  = "<img src='bandwidth-graph.php?bill_id=".$bill_id.'&bill_code='.$_GET['bill_code'];
 | |
| $mi .= '&from='.$lastmonth.'&to='.$rightnow;
 | |
| $mi .= '&&type=day';
 | |
| $mi .= '&x=1190&y=250';
 | |
| $mi .= "$type'>";
 | |
| 
 | |
| echo "<h3>Billing Period View</h3>$bi";
 | |
| echo "<h3>Rolling 24 Hour View</h3>$di";
 | |
| echo "<h3>Rolling Monthly View</h3>$mi";
 |