 
<?php require_once "ewcfg9.php" ?>
<?php require_once "ewmysql9.php" ?>
<?php require_once "phpfn9.php" ?>
<?php
global $conn;
if (!isset($conn)) $conn = ew_Connect();

/*
// Get data for a single device
$device_data = Get_Single_Device_data(29);
// Here is how you can access the returned data
echo $device_data[0]['machine_id']." : ".$device_data[0]['make']." : ".$device_data[0]['model']."</br>";
*/

/*
//Get data for all devices within an organization
$device_data = Get_Organization_Device_data(113);
// Here is how you can access the returned data
foreach ($device_data as $device) {
	echo $device['machine_id']." : ".$device['make']." : ".$device['model']."</br>";
	
}
*/


Function Get_Organization_Device_data($in_org_id) {
	$is_proposed = 'Y';
	$building_id = -1;
	$floorplan_id = -1;
	$device_listing = Get_Organization_Device_list($in_org_id, $is_proposed, $building_id, $floorplan_id);
	if ($device_listing == NULL) {
		return NULL;
	}
	
	include "phpincludes/date_calc.inc.php";
	foreach ($device_listing as $device_id) {
		$device = Get_Device_Data($device_id, $currDate, $endDate, $fiscalDays, $diffDays, $startingDate, $notReportingDate, $date15daysago);
		$device_data[] = $device;
	}
	return($device_data);
}

Function Get_Organization_Device_data_selected($in_org_id, $in_is_proposed, $in_building_id, $in_floorplan_id) {
	$device_listing = Get_Organization_Device_list($in_org_id, $in_is_proposed, $in_building_id, $in_floorplan_id);
	if ($device_listing == NULL) {
		return NULL;
	}
	include "phpincludes/date_calc.inc.php";
	foreach ($device_listing as $device_id) {
		$device = Get_Device_Data($device_id, $currDate, $endDate, $fiscalDays, $diffDays, $startingDate, $notReportingDate, $date15daysago);
		$device_data[] = $device;
	}
	return($device_data);
}


Function Get_Single_Device_data($in_machine_id) {
	include "phpincludes/date_calc.inc.php";
	$device_data[] = Get_Device_Data($in_machine_id, $currDate, $endDate, $fiscalDays, $diffDays, $startingDate, $notReportingDate, $date15daysago);
	return($device_data);
}

Function Get_Organization_Device_list($in_org_id, $in_is_proposed, $in_building_id, $in_floorplan_id) {
	try {
		$dbh = new PDO("mysql:host=".EW_CONN_HOST.";dbname=".EW_CONN_DB, EW_CONN_USER, EW_CONN_PASS);
	} catch(PDOException $e) {
		die("Unable to connect to database.");
	}
	$start_year_2013 = strtotime('07/01/2012');	$end_year_2013 = strtotime('06/30/2013');
	$start_year_2014 = strtotime('07/01/2013');	$end_year_2014 = strtotime('06/30/2014');
	$start_year_2015 = strtotime('07/01/2014');	$end_year_2015 = strtotime('06/30/2015');
	$start_year_2016 = strtotime('07/01/2015');	$end_year_2016 = strtotime('06/30/2016');
	$start_year_2017 = strtotime('07/01/2016');	$end_year_2017 = strtotime('06/30/2017');
	$start_year_2018 = strtotime('07/01/2017');	$end_year_2018 = strtotime('06/30/2018');
	$start_year_2019 = strtotime('07/01/2018');	$end_year_2019 = strtotime('06/30/2019');
	$start_year_2020 = strtotime('07/01/2019');	$end_year_2020 = strtotime('06/30/2020');
	$start_year_2021 = strtotime('07/01/2020');	$end_year_2021 = strtotime('06/30/2021');
	$current_date = strtotime($_SESSION['session_date']);
	switch(true) {
	case ($current_date >= $start_year_2022 && $current_date <= $end_year_2022):
		$table_year = 'Y2022_';
		break;
	case ($current_date >= $start_year_2021 && $current_date <= $end_year_2021):
		$table_year = 'Y2021_';
		break;
	case ($current_date >= $start_year_2020 && $current_date <= $end_year_2020):
		$table_year = 'Y2020_';
		break;
	case ($current_date >= $start_year_2019 && $current_date <= $end_year_2019):
		$table_year = 'Y2019_';
		break;
	case ($current_date >= $start_year_2018 && $current_date <= $end_year_2018):
		$table_year = 'Y2018_';
		break;
	case ($current_date >= $start_year_2017 && $current_date <= $end_year_2017):
		$table_year = 'Y2017_';	
		break;
	case ($current_date >= $start_year_2016 && $current_date <= $end_year_2016):
		$table_year = 'Y2016_';	
		break;
	case ($current_date >= $start_year_2015 && $current_date <= $end_year_2015):
		$table_year = 'Y2015_';	
		break;
	case ($current_date >= $start_year_2014 && $current_date <= $end_year_2014):
		$table_year = 'Y2014_';	
		break;
	case ($current_date >= $start_year_2013 && $current_date <= $end_year_2013):
		$table_year = 'Y2013_';	
		break;
	default:
		$table_year = '';
	}
	
	
	$sql = "SELECT 
				fpm.id as machine_id, fpm.is_proposed,
				bd.id as build_id, 
				fp.id as floorplan_id
			FROM ".$table_year."organization org  
			LEFT OUTER JOIN ".$table_year."buildings bd ON org.id = bd.org_id
			LEFT OUTER JOIN ".$table_year."floorplans fp ON bd.id = fp.building_id
			LEFT OUTER JOIN ".$table_year."floorplan_machines fpm ON fp.id = fpm.floorplan_id
			where org.id = :org_id
			order by bd.building_name, fpm.5_year_id";

	$sqlprep = $dbh->prepare($sql);
	$ar_val = array('org_id'=>$in_org_id);
	if($sqlprep->execute($ar_val)) 
	{
		while($row = $sqlprep->fetch()) 
		{ 
			if (
				($in_is_proposed == $row['is_proposed']  	|| $in_is_proposed == 'Both') &&
				($in_building_id == $row['build_id']     	|| $in_building_id == -1) &&
				($in_floorplan_id == $row['floorplan_id'] 	|| $in_floorplan_id == -1)
			   )
			{
				$machine_ID_array[] = $row['machine_id'];
			}
		}
	}
	$dbh = null;  //Disconnect
	return $machine_ID_array;
}


Function Get_Device_Data($in_device_id, $currDate, $endDate, $fiscalDays, $diffDays, $startingDate, $notReportingDate, $date15daysago) {
	if ($in_device_id == NULL) {
		return NULL;
	}
	include "phpincludes/date_calc.inc.php";
	// Open connection
	global $conn;
	if (!isset($conn)) $conn = ew_Connect();
	
	if ($_SESSION['session_fiscal_year']) {
		$table_year = $_SESSION['session_fiscal_year'];	
	} else {
		$table_year = '';	
	}
	$session_datetime = new DateTime($_SESSION['session_date']);
	$session_datetime->add(new DateInterval("PT23H59M59S"));

	$rs = ew_ExecuteRow("
			SELECT 	fpm.id as machine_id, fpm.fmaudit_id, fpm.model_id, fpm.floorplan_id, fpm.room_number, fpm.5_year_id, fpm.cpc_black, fpm.cpc_color, 
					fpm.commencement_date, fpm.commencement_black_meter, fpm.commencement_color_meter, fpm.x_position as x_pos, fpm.y_position as y_pos,
					fpm.budgeted_blk as budgeted_black, fpm.budgeted_color, fpm.serial_number, fpm.ip_address, fpm.vendor_device_id, fpm.under_contract,
					fpm.is_proposed, fpm.present_floorplan_id, fpm.present_room_number, fpm.local_connection, fpm.present_local_connection,
					fpm.present_serial_number, fpm.savedname, fpm.save_name_id, fpm.new_vendor_device_id,
					fpm.present_x_position as present_x_pos, fpm.present_y_position as present_y_pos,
					fpm.closeout_date,
					ma.make, ma.model, ma.is_color, coalesce(ma.machine_image,'MissingDeviceImage.png') as machine_image, ma.features,
					ma_pr.make as present_make, ma_pr.model as present_model, ma_pr.is_color as present_is_color, 
					coalesce(ma_pr.machine_image,'MissingDeviceImage.png') as present_machine_image, ma_pr.features as present_features,
					fp.id as floorplan_id, fp.building_id, fp.floor_number,
					bd.id as build_id, bd.building_name,
					org.id as org_id, org.org_name, org.org_type_id, org.commencement_date as org_commencement_date, DisplayMeterData, MeterDataFeed, org_message,
					org.cs_pres_black_rate, org.cs_pres_color_rate, cs_prop_black_w_service, cs_prop_black_wo_service, 	cs_prop_color_w_service, cs_prop_color_wo_service,
					coalesce(mt.icon_type,'Unknown') as icon_type, coalesce(mt.type_name,'Unknown') as type_name, mt.type as machine_type, mt.CoveredType,
					coalesce(mt_pr.icon_type,'Unknown') as present_icon_type, coalesce(mt_pr.type_name,'Unknown') as present_type_name,
					me.black_meter, me.color_meter, me.date_timestamp as meter_timestamp,
					me_first.black_meter as first_black_meter, me_first.color_meter as first_color_meter, me_first.date_timestamp as first_meter_timestamp,
					ms.toner, ms.service_needed,
					dp.dept_name,
					orgcs.org_id as orgcs_id,
					orgcs.org_present_black_rate, orgcs.org_present_color_rate, orgcs.org_proposed_black_without_service, orgcs.org_proposed_color_with_service,
					orgcs.org_proposed_black_with_service, orgcs.org_proposed_color_without_service,
					fpmc.fmc_costSavingsWithoutService, fpmc.fmc_costSavingsWithService
			FROM ".$table_year."floorplan_machines fpm
			LEFT OUTER JOIN ".$table_year."machines ma       on fpm.model_id = ma.id
			LEFT OUTER JOIN ".$table_year."machines ma_pr    on fpm.present_model_id = ma_pr.id
			LEFT OUTER JOIN ".$table_year."floorplans fp     on fpm.floorplan_id = fp.id
			LEFT OUTER JOIN ".$table_year."buildings bd      on fp.building_id = bd.id
			LEFT OUTER JOIN ".$table_year."organization org  on bd.org_id = org.id
			LEFT OUTER JOIN ".$table_year."machine_types mt  on ma.model_type = mt.id
			LEFT OUTER JOIN ".$table_year."machine_types mt_pr on ma_pr.model_type = mt_pr.id
			LEFT OUTER JOIN ".$table_year."meter me          on fpm.id = me.machine_id AND me.date_timestamp = (SELECT max(i.date_timestamp) FROM ".$table_year."meter i WHERE i.machine_id = fpm.id and black_meter > 0 and date_timestamp < '".date_format($session_datetime,'Y/m/d H:i:s')."' and date_timestamp > '".date_format($startingDate,'Y/m/d H:i:s')."')
			LEFT OUTER JOIN ".$table_year."meter me_first    on fpm.id = me_first.machine_id AND me_first.date_timestamp = (SELECT min(k.date_timestamp) FROM ".$table_year."meter k WHERE k.machine_id = fpm.id and k.black_meter > 0 and k.date_timestamp < '".date_format($session_datetime,'Y/m/d H:i:s')."' and k.date_timestamp >= '".date_format($startingDate,'Y/m/d H:i:s')."')
			LEFT OUTER JOIN ".$table_year."machine_status ms on fpm.id = ms.machine_id AND ms.date_timestamp = (select max(j.date_timestamp) from ".$table_year."machine_status j where j.machine_id = fpm.id and date_timestamp < '".date_format($session_datetime,'Y/m/d H:i:s')."' and date_timestamp > '".date_format($startingDate,'Y/m/d H:i:s')."')
			LEFT OUTER JOIN ".$table_year."department dp     on fpm.dept_id = dp.id
			LEFT OUTER JOIN ".$table_year."org_service_rates orgcs on org.id = orgcs.org_id
			LEFT OUTER JOIN floorplan_machines_calculations fpmc on fpm.id = fpmc.fmc_id
			where fpm.id = ". $in_device_id);
	// Get the first meter read that is at least 15 days old.  This will be used to determine if the device has not been used in the last 15 days.
		
	$rs15 = ew_ExecuteRow("
			SELECT 	fpm.id as machine_id,
					me.black_meter, me.color_meter, me.date_timestamp as meter_timestamp
			FROM ".$table_year."floorplan_machines fpm
			LEFT OUTER JOIN ".$table_year."meter me on fpm.id = me.machine_id AND me.date_timestamp = (SELECT max( i.date_timestamp )
																										FROM ".$table_year."meter i
																										WHERE i.machine_id = fpm.id
																										and i.date_timestamp <= '".date_format($date15daysago,'Y-m-d')."' )
			where fpm.id = ". $in_device_id);
			
	// If the current meter read equals the meter read from 15 days ago then there hasn not been any usage.
	if ($rs15['black_meter'] == $rs['black_meter']) 
		{ $no_black_usage = 'Y'; }
	else
		{ $no_black_usage = 'N'; }
	if ($rs['is_color'] == 1 && $rs15['color_meter'] == $rs['color_meter']) 
		{ $no_color_usage = 'Y'; }
	else
		{ $no_color_usage = 'N'; }



	
	//Set the org commencment date.  
	if ($rs['org_commencement_date'] == NULL || $rs['org_commencement_date'] < date_format($startingDate,'Y-m-d')) {
		$org_commencement_date = $startDate;
	} else {
		$org_commencement_date = $rs['org_commencement_date'];
	}	
	
	
	$org_comm_date_temp = new DateTime($org_commencement_date);
	$org_comm_date = date_format($org_comm_date_temp,'Y-m-d');
	$sql = "select datediff('".$currDate."','".$org_comm_date."')";
	$org_cm_diff = ew_ExecuteScalar($sql); //Get the number of days between the organization commencement date and the current date

	
	//Set the commencment date for the device
	
	if (!$rs['commencement_date'] || $rs['commencement_date'] < $org_comm_date) {
		$device_commencement_date = new DateTime($org_commencement_date);
		$comm_date_used = "org_commencement_date_1";
	} else {
		$device_commencement_date = new DateTime($rs['commencement_date']);
		$comm_date_used = "device_commencement_date";
		if ($device_commencement_date < $org_commencement_date) {
			$device_commencement_date = $org_commencement_date;
			$comm_date_used = "org_commencement_date_2";
		}
	}

	$cm_date = date_format($device_commencement_date,'Y-m-d');
	$sql = "select datediff('".$currDate."','".$cm_date."')";
	$cm_diff = ew_ExecuteScalar($sql); //Get the number of days between the device commencement date and the current date
	
	$sql = "select datediff('".$endDate."','".$org_comm_date."')";
	$org_fiscal_days = ew_ExecuteScalar($sql); //Get the number of days between the organization commencement date and the ending fiscal date
	
	if ($org_fiscal_days > 365) { 
		$org_fiscal_days = 365; 
	}



	// Get the number of days between the first meter read date and the current date
	if ($rs['first_meter_timestamp'] == NULL) {
		$first_diff = 1;
	} else {
		$first_meter_date = date('Y-m-d', strtotime($rs['first_meter_timestamp']));
		$last_meter_date = date('Y-m-d', strtotime($rs['meter_timestamp']));
		$sql = "select datediff('".$last_meter_date."','".$first_meter_date."')";
		$first_diff = ew_ExecuteScalar($sql);
		
	}

	// Get the number of days between the first meter read date and the last meter read date
	if ($rs['meter_timestamp'] == NULL) {
		$last_diff = 1;
	} else {
		$last_meter_date = date('Y-m-d', strtotime($rs['meter_timestamp']));
		$sql = "select datediff('".$last_meter_date."','".$first_meter_date."')";
		$last_diff = ew_ExecuteScalar($sql);		
	}
	// Get the number of days between the last meter read date and the commencement date
	if ($rs['meter_timestamp'] == NULL) {
		$last_diff = 1;
	} else {
		$last_meter_date = date('Y-m-d', strtotime($rs['meter_timestamp']));
		$sql = "select datediff('".$last_meter_date."','".$cm_date."')";
		$last_diff = ew_ExecuteScalar($sql);		
	}
	if ($last_diff <= 0) {
		$last_diff = 1;
	}
	
	

	// Calculated fields
	if ($rs['commencement_black_meter'] == NULL) {
		$consumed_black     =  $rs['black_meter'];
		$consumed_black_cpc =  $rs['black_meter'] * $rs['cpc_black'];
	} else {
		$consumed_black     = $rs['black_meter'] - $rs['commencement_black_meter'];
		$consumed_black_cpc = ($rs['black_meter'] - $rs['commencement_black_meter']) * $rs['cpc_black'];		
	}
	$consumed_first_black = $rs['black_meter'] - $rs['first_black_meter'];
	$consumed_first_black_cpc = $consumed_first_black * $rs['cpc_black'];


	if ($cm_diff > 0) {
		$consumed_black_estimated =  $consumed_black / $cm_diff * $org_cm_diff;
		$consumed_black_estimated_cpc =  $consumed_black_cpc / $cm_diff * $org_cm_diff;
	} else {
		$consumed_black_estimated =  $consumed_black;
		$consumed_black_estimated_cpc =  $consumed_black_cpc;
	}

	if ($rs['commencement_color_meter'] == NULL) {
		$consumed_color     =  $rs['color_meter'];
		$consumed_color_cpc =  $rs['color_meter'] * $rs['cpc_color'];
	} else {
		$consumed_color     = $rs['color_meter'] - $rs['commencement_color_meter'];
		$consumed_color_cpc = ($rs['color_meter'] - $rs['commencement_color_meter']) * $rs['cpc_color'];
	}
	$consumed_first_color = $rs['color_meter'] - $rs['first_color_meter'];;
	$consumed_first_color_cpc = $consumed_first_color * $rs['cpc_color'];

	if ($cm_diff > 0) {
		$consumed_color_estimated =  $consumed_color / $cm_diff * $org_cm_diff;
		$consumed_color_estimated_cpc =  $consumed_color_cpc / $cm_diff * $org_cm_diff;
	} else {
		$consumed_color_estimated =  $consumed_color;
		$consumed_color_estimated_cpc =  $consumed_color_cpc;
	}
	
	//Budgeted
	if ($rs['org_commencement_date'] == NULL || $rs['org_commencement_date'] < date_format($startingDate,'Y-m-d')) {
		$budgeted_black     = $rs['budgeted_black'];
		$budgeted_black_cpc = $rs['budgeted_black'] * $rs['cpc_black'];
		$budgeted_color     = $rs['budgeted_color'];
		$budgeted_color_cpc = $rs['budgeted_color'] * $rs['cpc_color'];
	} else {
		$budgeted_black     = ($rs['budgeted_black'] / $fiscalDays) * $org_fiscal_days;
		$budgeted_black_cpc = ($rs['budgeted_black'] / $fiscalDays) * $org_fiscal_days * $rs['cpc_black'];
		$budgeted_color     = ($rs['budgeted_color'] / $fiscalDays) * $org_fiscal_days;
		$budgeted_color_cpc = ($rs['budgeted_color'] / $fiscalDays) * $org_fiscal_days * $rs['cpc_color'];
		
	}
	
	//Computer projected amounts.  Use commencement date if it exists.
	
	if ($cm_diff <= 0) {
		$projected_black     = 0;
		$projected_black_cpc = 0;
		$projected_color     = 0;
		$projected_color_cpc = 0;
		$projected_black_year 		= 0;
		$projected_black_year_cpc 	= 0;
		$projected_color_year 		= 0;
		$projected_color_year_cpc 	= 0;
	} else {
		
		


			if ($rs['org_commencement_date'] == NULL || $rs['org_commencement_date'] < date_format($startingDate,'Y-m-d')) {
				$projected_black     = $consumed_black                / $last_diff * 345;
				$projected_black_cpc = $consumed_black_estimated_cpc  / $last_diff * 345;
				$projected_color     = $consumed_color                / $last_diff * 345;
				$projected_color_cpc = $consumed_color_estimated_cpc  / $last_diff * 345;
				$projected_black_year 		= $projected_black;
				$projected_black_year_cpc 	= $projected_black_cpc * 1.035;
				$projected_color_year 		= $projected_color;
				$projected_color_year_cpc 	= $projected_color_cpc * 1.035;
				$projected_source = "first"; 
			} else {
				$projected_black     = $consumed_black      / $cm_diff * min($org_fiscal_days, 345);
				$projected_black_cpc = $consumed_black_cpc  / $cm_diff * min($org_fiscal_days, 345);
				$projected_color     = $consumed_color      / $cm_diff * min($org_fiscal_days, 345);
				$projected_color_cpc = $consumed_color_cpc  / $cm_diff * min($org_fiscal_days, 345);
				$projected_black_year 		= $consumed_black      / $cm_diff * min($org_fiscal_days, 345);
				$projected_black_year_cpc 	= $consumed_black_cpc  / $cm_diff * min($org_fiscal_days, 345) * 1.035;
				$projected_color_year 		= $consumed_color      / $cm_diff * min($org_fiscal_days, 345);
				$projected_color_year_cpc 	= $consumed_color_cpc  / $cm_diff * min($org_fiscal_days, 345) * 1.035;
				$projected_source = "second";
			}
		

	}

	
	if ( ($rs['meter_timestamp'] == null) || ($rs['meter_timestamp'] < date_format($notReportingDate,'Y-m-d')) ) 
			{ $reporting = "N"; } 
		else 
			{ $reporting = "Y"; }
	if ($rs['toner'] == 1) 
			{ $toner_alert = "Y"; } 
		else 
			{ $toner_alert = "N"; }
	if ($rs['service_needed'] == 1)
			{ $service_needed = "Y"; } 
		else 
			{ $service_needed = "N"; }
	
	$local_connection = $rs['local_connection'];
	// If "USB" is specified in the IP Address then set local connection to "Y"
	if ($rs['ip_address'] > '') {
		if (stristr($rs['ip_address'], 'usb') !== FALSE) {
			$local_connection = 'Y';
		}
	}
	
	
	//If the device is not reporting then use the budgeted amounts for projected and next years black.
	 
	if ( $reporting == "N" && $org_fiscal_days > 0) {
		if ( $budgeted_black > 0) {
			//If the projected black for the year is < the budgeted black for the year then use the budgeted black year amount instead of projected black.
			if ($projected_black_year < ($budgeted_black / $org_fiscal_days * $fiscalDays)) {
				$projected_black = $budgeted_black;
				$projected_black_cpc = $budgeted_black_cpc;
				$projected_black_year 		= $projected_black;
				$projected_black_year_cpc 	= $projected_black_cpc * 1.035;
			}
		}
		if ( $budgeted_color > 0) {
			//If the projected color for the year is < the budgeted color for the year then use the budgeted color year amount instead of projected color.
			if ($projected_color_year < ($budgeted_color / $org_fiscal_days * $fiscalDays)) {
				$projected_color = $budgeted_color;
				$projected_color_cpc = $budgeted_color_cpc;
				$projected_color_year 		= $projected_color;
				$projected_color_year_cpc 	= $projected_color_cpc * 1.035;
			}
		}
	}
	$temp_session_date = date_format($session_datetime,'Y-m-d');
	
	//If the closeout date for a device has passed then this device is no longer in use.  
	//Set the projected amounts to match the consumed amounts because the device will not add to print total.  Set the projected next years volume to zero.
	if ($rs['closeout_date'] && $rs['closeout_date'] < $temp_session_date) {
		$projected_black = $consumed_black_estimated;
		$projected_black_cpc = $consumed_black_estimated_cpc;
		$projected_color = $consumed_color_estimated;
		$projected_color_cpc = $consumed_color_estimated_cpc;
		$projected_black_year = $projected_black_year_cpc = $projected_color_year = $projected_color_year_cpc = 0;
		$closed_out = 'Y';
	} else {
		$closed_out = 'N';
	}

	
	//If any amount is less than 0 then set the amount to 0. 
	if ($consumed_black < 0) {$consumed_black = 0;}
	if ($consumed_black_cpc < 0) {$consumed_black_cpc = 0;}
	if ($consumed_color < 0) {$consumed_color = 0;}
	if ($consumed_color_cpc < 0) {$consumed_color_cpc = 0;}
	if ($projected_black < 0) {$projected_black = 0;}
	if ($projected_black_cpc < 0) {$projected_black_cpc = 0;}
	if ($projected_color < 0) {$projected_color = 0;}
	if ($projected_color_cpc < 0) {$projected_color_cpc = 0;}
	if ($consumed_black_estimated < 0) {$consumed_black_estimated = 0;}
	if ($consumed_black_estimated_cpc < 0) {$consumed_black_estimated_cpc = 0;}
	if ($consumed_color_estimated < 0) {$consumed_color_estimated = 0;}
	if ($consumed_color_estimated_cpc < 0) {$consumed_color_estimated_cpc = 0;}
	
	if ($projected_black_year < 0) {$projected_black_year = 0;}
	if ($projected_black_year_cpc < 0) {$projected_black_year_cpc = 0;}
	if ($projected_color_year < 0) {$projected_color_year = 0;}
	if ($projected_color_year_cpc < 0) {$projected_color_year_cpc = 0;}
	
	/* A new flag was added "DisplayMeterData" that when turned off will suppress all meter data from being displayed. */
	If ($rs['DisplayMeterData'] <> "Y") {
		$consumed_black = $consumed_black_cpc = $consumed_color = $consumed_color_cpc  = 0;
		$projected_black = $projected_black_cpc = $projected_color = $projected_color_cpc = 0;
		$consumed_black_estimated = $consumed_black_estimated_cpc = $consumed_color_estimated = $consumed_color_estimated_cpc = 0;
		$projected_black_year = $projected_black_year_cpc = $projected_color_year = $projected_color_year_cpc = 0;
		$reporting = $toner_alert = $service_needed = $no_black_usage = $no_color_usage = $local_connection = 'N';
	}
	
	if ($rs['cpc_black'] < 0) {$rs['cpc_black'] = 0;}
	if ($rs['cpc_color'] < 0) {$rs['cpc_color'] = 0;}
	
	$overUnderBudget = round($device['projected_black_cpc']) + round($device['projected_color_cpc']) - round($device['budgeted_black_cpc']) - $device['budgeted_color_cpc'];

	$device_data = array(
					// Floorplan_machines table
					'machine_id' =>$rs['machine_id'],			'fmaudit_id' =>$rs['fmaudit_id'],			'model_id' =>$rs['model_id'],				'floorplan_id' =>$rs['floorplan_id'],
					'room_number' =>$rs['room_number'],			'5_year_id' =>$rs['5_year_id'],				'cpc_black' =>$rs['cpc_black'],				'cpc_color' =>$rs['cpc_color'],
					'serial_number' =>$rs['serial_number'],		'ip_address' =>$rs['ip_address'],			'vendor_device_id' =>$rs['vendor_device_id'], 'present_serial_number' =>$rs['present_serial_number'],					'new_vendor_device_id' =>$rs['new_vendor_device_id'],
					'budgeted_black_year' =>$rs['budgeted_black'],	'budgeted_color_year' =>$rs['budgeted_color'],	'under_contract' =>$rs['under_contract'],
					'commencement_date' =>$rs['commencement_date'],		'commencement_black_meter' =>$rs['commencement_black_meter'],					'commencement_color_meter' =>$rs['commencement_color_meter'],				 
					'savedname' =>$rs['savedname'],				'save_name_id' =>$rs['save_name_id'],
					'is_proposed' =>$rs['is_proposed'],			'present_floorplan_id' =>$rs['present_floorplan_id'],									'present_room_number' =>$rs['present_room_number'],
					'x_pos' =>$rs['x_pos'],						'y_pos' =>$rs['y_pos'],						'present_local_connection' =>$rs['present_local_connection'],
					'present_x_pos' =>$rs['present_x_pos'],		'present_y_pos' =>$rs['present_y_pos'],		'closeout_date' => $rs['closeout_date'],
					// Machines Table
					'make' =>$rs['make'],						'model' =>$rs['model'],						'is_color' =>$rs['is_color'],				'machine_image' =>$rs['machine_image'],
					'features' =>$rs['features'],
					'present_make' =>$rs['present_make'],		'present_model' =>$rs['present_model'],		'present_is_color' =>$rs['present_is_color'], 'present_machine_image' =>$rs['present_machine_image'],
					'present_features' =>$rs['present_features'],
					// Floorplans table
					'floorplan_id' =>$rs['floorplan_id'],		'building_id' =>$rs['building_id'],			'floor_number' =>$rs['floor_number'],
					// Buildings Table
					'building_name' =>$rs['building_name'],
					// Organizations table
					'org_id' =>$rs['org_id'],					'org_name' =>$rs['org_name'],				'org_type_id' =>$rs['org_type_id'],			'org_commencement_date' =>$org_commencement_date,
					'org_commencement_date_actual' =>$rs['org_commencement_date'],							'org_message' =>$rs['org_message'],			'MeterDataFeed' =>$rs['MeterDataFeed'],
					// Meter table
					'black_meter' =>$rs['black_meter'],			'color_meter' =>$rs['color_meter'],			'meter_timestamp' =>$rs['meter_timestamp'],
					// Machine type table
					'icon_type' =>$rs['icon_type'],				'type_name' =>$rs['type_name'],				'machine_type' =>$rs['machine_type'],		'CoveredType' =>$rs['CoveredType'],
					// Machine type table (for present type ID)
					'present_icon_type' =>$rs['present_icon_type'],											'present_type_name' =>$rs['present_type_name'],
					// Machine_Status table
					'toner' =>$rs['toner'],						'service_needed' =>$rs['service_needed'],
					// Department
					'dept_name' =>$rs['dept_name'],
					// Calculated fields
					'consumed_black' =>$consumed_black,			'consumed_black_cpc' =>$consumed_black_cpc,	'consumed_color' =>$consumed_color,			'consumed_color_cpc' =>$consumed_color_cpc,
					'consumed_first_black' =>$consumed_first_black,			'consumed_first_black_cpc' =>$consumed_first_black_cpc,	'consumed_first_color' =>$consumed_first_color,			'consumed_first_color_cpc' =>$consumed_first_color_cpc,

					'first_black_meter' => $rs['first_black_meter'],
					'org_cm_diff' => $org_cm_diff,
					'cm_diff' => $cm_diff, 'first_diff' => $first_diff, 'last_diff' => $last_diff, 'days_in_service' => $daysInService,
					'not_reporting_date' => $notReportingDate,
					'startingDate' => date_format($startingDate,'Y-m-d'), 'projectedSource' => $projected_source,
					
					'first_meter_date' => $first_meter_date, 'last_meter_date' => $last_meter_date, 'device_commencement_date' => $cm_date,
					'budgeted_black' =>$budgeted_black,			'budgeted_black_cpc' =>$budgeted_black_cpc,	'budgeted_color' =>$budgeted_color,			'budgeted_color_cpc' =>$budgeted_color_cpc,
					'projected_black' =>$projected_black,		'projected_black_cpc' =>$projected_black_cpc,'projected_color' =>$projected_color,		'projected_color_cpc' =>$projected_color_cpc,
					'reporting' =>$reporting,					'toner_alert' =>$toner_alert,				'service_needed' =>$service_needed,			'no_black_usage' =>$no_black_usage,
					'no_color_usage' =>$no_color_usage,			'consumed_black_estimated' =>$consumed_black_estimated,		'consumed_black_estimated_cpc' =>$consumed_black_estimated_cpc,
					'consumed_color_estimated' =>$consumed_color_estimated,									'consumed_color_estimated_cpc' =>$consumed_color_estimated_cpc,
					'local_connection' =>$local_connection,		'projected_black_year' =>$projected_black_year,	'projected_black_year_cpc' =>$projected_black_year_cpc,
					'projected_color_year' => $projected_color_year		,'projected_color_year_cpc' => $projected_color_year_cpc,						'closed_out' =>$closed_out,
					//Field for cost savings
					'org_present_black_rate' => $rs['org_present_black_rate'],								'org_present_color_rate' => $rs['org_present_color_rate'],
					'org_proposed_black_without_service' => $rs['org_proposed_black_without_service'],		'org_proposed_color_with_service' => $rs['org_proposed_color_with_service'],
					'org_proposed_black_with_service' => $rs['org_proposed_black_with_service'],			'org_proposed_color_without_service' => $rs['org_proposed_color_without_service'],
					'fmc_costSavingsWithService' => $rs['fmc_costSavingsWithService'],						'fmc_costSavingsWithoutService' => $rs['fmc_costSavingsWithoutService'],
					'test_fiscalDays' => $fiscalDays, 'test_org_fiscal_days' => $org_fiscal_days, 'test_budgeted_blk' => $rs['budgeted_black'],
					'overUnderBudget' => $overUnderBudget
					);



	return $device_data;
	
}
?>


