View difference between Paste ID: yL2hJU7U and q3zmTH0Y
SHOW: | | - or go back to the newest paste.
1
<?php
2
3
if (!defined("WHMCS"))
4
	die("This file cannot be accessed directly");
5
	
6
# The title of your report
7
$reportdata["title"] = "Dedicated Server Revenue";
8
9
# The description of your report
10
$reportdata["description"] = "";
11
12
# Header text - this gets displayed above the report table of data
13
$reportdata["headertext"] = "";
14
15
# Report Table of Data Column Headings - should be an array of values
16
$reportdata["tableheadings"] = array("Server Name","Base Cost per Month","Base Profit per Server","Servers","Monthly Earnings");
17
18
# Report Table Values - one of these lines for each row you want in the table
19
# should be an array of values to match the column headings
20
$query = "SELECT
21
  p.id,
22
  p.name
23
FROM tblproducts AS p
24
  LEFT JOIN tblpricing pr
25
    ON (p.id = pr.relid)
26
  LEFT JOIN tblcustomfields c
27
    ON (p.id = c.relid)
28
  LEFT JOIN tblcustomfieldsvalues v
29
    ON (v.fieldid = c.id) 
30
WHERE c.fieldname = 'Cost' AND p.type = 'server' AND pr.type = 'product'
31
GROUP BY p.id";
32
$result=mysql_query($query);
33
$s = array();
34
while ($d = mysql_fetch_array($result)) {
35
	$s[$d[0]]['name'] = $d[1];
36
	$s[$d[0]]['count'] = 0;
37
}
38
39
$query = "SELECT
40
  p.id,
41
  p.name,
42
  pr.monthly,
43
  c.fieldname,
44
  c.fieldoptions,
45
  v.value,
46
  h.amount
47
FROM tblproducts AS p
48
  LEFT JOIN tblpricing pr
49
    ON (p.id = pr.relid)
50
  LEFT JOIN tblcustomfields c
51
    ON (p.id = c.relid)
52
  RIGHT JOIN tblhosting h
53
    ON (h.packageid = p.id)
54
  LEFT JOIN tblcustomfieldsvalues v
55
    ON (v.fieldid = c.id AND v.relid = h.id)
56
WHERE c.fieldname = 'Cost' AND p.type = 'server' AND pr.type = 'product' AND h.domainstatus = 'Active' 
57
GROUP BY h.id, p.id";
58
$result1=mysql_query($query);
59
$c = 0;
60
while ($data = mysql_fetch_array($result1)) {
61
	$cost = ($data[5] > '' ? $data[5] : $data[4]);
62
	$prof = ($data[2] <> $data[6] ? $data[6] - $cost : $data[2] - $cost);
63
	
64
	if($data[2] <> $data[6] || $data[5] > '') $n = $data[0]+$c;
65
	else $n = $data[0];
66
	
67
	$s[$n]['name'] = $data[1].($data[2] <> $data[6] || $data[5] > '' ? ' (Custom)' : '');
68
	$s[$n]['cost'] = $cost;
69
	$s[$n]['profit'] = $prof;
70
	$s[$n]['count'] += 1;
71
	
72
	$c++;
73
}
74
75
foreach($s as $f) {
76
	$totalexpenditure+=($f['cost']*$f['count']);
77
	$totalgrossprofit+=($f['profit']*$f['count']);
78
	$reportdata["tablevalues"][] = array($f['name'],number_format($f['cost'],2),number_format($f['profit'],2),$f['count'],number_format($f['profit']*$f['count'],2));
79
}
80
81
# Report Footer Text - this gets displayed below the report table of data
82
$data["footertext"]="<B>Total Gross Profit:</B> ".number_format($totalgrossprofit,2)."<br><B>Total Expenses:</B> ".number_format($totalexpenditure,2)."<br><b>Total Server's:</b> $c";
83
84
?>