Вход Регистрация
Файл: whmcs/modules/reports/income_forecast.php
Строк: 152
<?php

if (!defined("WHMCS"))
    die(
"This file cannot be accessed directly");

$months = array('January','February','March','April','May','June','July','August','September','October','November','December');

$reportdata["title"] = "Income Forecast";
$reportdata["description"] = "This report shows the projected income for each month of the year if all active services are renewed within that month";

$reportdata["currencyselections"] = true;

$reportdata["tableheadings"] = array("Month","Monthly","Quarterly","Semi-Annual","Annual","Biennial","Total");

$totals = array();

$result select_query("tblhosting","",array("domainstatus"=>"Active","currency"=>(int)$currencyid),"","","","tblclients ON tblclients.id=tblhosting.userid");
while (
$data mysql_fetch_array($result)) {
    
$recurringamount $data["amount"];
    
$nextduedate $data["nextduedate"];
    
$billingcycle $data["billingcycle"];
    
$nextduedate explode("-",$nextduedate);
    
$year $nextduedate[0];
    
$month $nextduedate[1];
    if (
$billingcycle=="Monthly") {
        
$recurrence 1;
    } elseif (
$billingcycle=="Quarterly") {
        
$recurrence 3;
    } elseif (
$billingcycle=="Semi-Annually") {
        
$recurrence 6;
    } elseif (
$billingcycle=="Annually") {
        
$recurrence 12;
    } elseif (
$billingcycle=="Biennially") {
        
$recurrence 24;
    } else {
        
$recurrence 24;
    }
    
$recurrences 24/$recurrence;
    for (
$i=0;$i<=24;$i+=$recurrence) {
        
$new_time mktime(0,0,0,$month+$i,1,$year);
        
$totals[date("Y",$new_time)][date("m",$new_time)][$recurrence] += $recurringamount;
    }
}

$result select_query("tbldomains","",array("tbldomains.status"=>"Active","currency"=>(int)$currencyid),"","","","tblclients ON tblclients.id=tbldomains.userid");
while (
$data mysql_fetch_array($result)) {
    
$recurringamount $data["recurringamount"];
    
$nextduedate $data["nextduedate"];
    
$regperiod $data["registrationperiod"];
    
$nextduedate explode("-",$nextduedate);
    
$year $nextduedate[0];
    
$month $nextduedate[1];
    if (!
$regperiod$regperiod 1;
    
$recurrence $regperiod*12;
    
$recurrences 24/$recurrence;
    for (
$i=0;$i<=24;$i+=$recurrence) {
        
$new_time mktime(0,0,0,$month+$i,1,$year);
        
$totals[date("Y",$new_time)][date("m",$new_time)][$recurrence] += $recurringamount;
    }
}

for (
$i=0;$i<=24;$i++) {
    
$new_time mktime(0,0,0,date("m")+$i,1,date("Y"));
    
$months_array[date("Y",$new_time)][date("m",$new_time)] = "x";
}

$overallincome 0;

foreach (
$months_array AS $year=>$month) {
    foreach (
$month AS $mon=>$x) {
        
$monthlyincome $totals[$year][$mon][1]+$totals[$year][$mon][3]+$totals[$year][$mon][6]+$totals[$year][$mon][12]+$totals[$year][$mon][24];
        
$overallincome += $monthlyincome;
        
$chartdata['rows'][] = array('c'=>array(array('v'=>$months[$mon-1]." ".$year),array('v'=>$overallincome,'f'=>formatCurrency($overallincome))));
        
$reportdata["tablevalues"][] = array($months[$mon-1]." ".$year,formatCurrency($totals[$year][$mon][1]),formatCurrency($totals[$year][$mon][3]),formatCurrency($totals[$year][$mon][6]),formatCurrency($totals[$year][$mon][12]),formatCurrency($totals[$year][$mon][24]),formatCurrency($monthlyincome));

    }
}

$reportdata["footertext"] = "<p align="center"><b>Total Projected Income: ".formatCurrency($overallincome)."</b></p>";

$chartdata['cols'][] = array('label'=>'Month','type'=>'string');
$chartdata['cols'][] = array('label'=>'Cumulative Income Forecast Total','type'=>'number');

#$args['colors'] = '#80D044,#F9D88C,#CC0000';

$reportdata["headertext"] = $chart->drawChart('Area',$chartdata,$args,'450px');

?>
Онлайн: 0
Реклама