device_data_inc directly from prod 7/20/2023
";
*/
/*
//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']."";
}
*/
Function Get_Organization_Device_data($in_org_id) {
$is_proposed = 'Y';
$building_id = -1; //-1 = ALL
$floorplan_id = -1; //-1 = ALL
$device_listing = Get_Organization_Device_list($in_org_id, $is_proposed, $building_id, $floorplan_id);
if ($device_listing == NULL) {
return NULL;
}
//error_log("Session date = " . $_SESSION['session_date'] . "\r\n" . json_encode($device_listing) . "\r\n", 3, "device_listing.log");
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.
//echo $rs['machine_id']."->".$rs['meter_timestamp']."
";
$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't 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'; }
/*
if ($in_device_id == 19557) {
echo "in_device_id: ".$in_device_id."
";
echo "rs[org_commencement_date]: ".$rs['org_commencement_date']."
";
exit();
}
*/
//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
// $org_cm_diff = $org_cm_diff + 1; //Add 1 because the start date is included, not just the date difference
/*
if ($rs['serial_number'] == 'JPDAC05915') {
echo "
";
var_dump($rs['commencement_date']);echo " ";
var_dump($org_comm_date);echo " ";
echo "
";
}
*/
//Set the commencment date for the device
//if (!$rs['commencement_date'] || !$rs['commencement_date'] < $org_comm_date) {
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
//$cm_diff = $cm_diff + 1; //Add 1 because the start date is included, not just the date difference
//$sql = "select datediff('".$endDate."','".$cm_date."')";
//$cm_fiscal_days = ew_ExecuteScalar($sql); //Get the number of days between the device commencement date and the ending fiscal 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
//$org_fiscal_days = $org_fiscal_days + 1; //Add 1 because the start date is included, not just the date difference
if ($org_fiscal_days > 365) {
$org_fiscal_days = 365;
}
//if ($rs['machine_id'] == '28562') {
// error_log("\n\$rs['first_meter_timestamp'] = ".$rs['first_meter_timestamp'], 3, "device_data.log");
//}
//$first_diff = 1;
//if ($rs['machine_id'] == '28562') {
// error_log("\r\n\$rs['first_meter_timestamp'] = ".$rs['first_meter_timestamp'], 3, "device_data.log");
// 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);
// $first_diff = $first_diff + 1; // Add 1 because the start date is included, not just the date difference
}
//}
// 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);
//$last_diff = $last_diff + 1; // Add 1 because the start date is included, not just the date difference
}
// 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);
//$last_diff = $last_diff + 1; // Add 1 because the start date is included, not just the date difference
}
if ($last_diff <= 0) {
$last_diff = 1;
}
/*if($last_diff != 242){
echo $last_diff . '-' . $rs['serial_number'] . '';
}*/
// 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'];
//echo "BM:".$rs['black_meter']." CBM:".$rs['commencement_black_meter']." CB:".$consumed_black."
";
}
$consumed_first_black = $rs['black_meter'] - $rs['first_black_meter'];
$consumed_first_black_cpc = $consumed_first_black * $rs['cpc_black'];
/*
if ($rs['serial_number'] == 'MY77T1C04V') {
echo "id:".$rs['machine_id']." Serial Number:".$rs['serial_number']." ".$rs['5_year_id']." : org_cm_diff: ".$org_cm_diff.' cm_diff: '.$cm_diff." cm_fiscal_days: ".$cm_fiscal_days." org_fiscal_days: ".$org_fiscal_days." cm_date:".$cm_date." currDate:".$currDate." endDate".$endDate." org_comm_date: ".$org_comm_date." diffdays: ".$diffDays." Commencement_date: ".$rs['commencement_date']." device_commencement_date: ".date_format($device_commencement_date,'Y-m-d')." comm_date_used: ".$comm_date_used."
";
echo "consume_black:".$rs['commencement_black_meter']." : ".$consumed_black." black_meter:".$rs['black_meter']."
";
}
*/
// if ($rs['machine_id'] == '28562') {
// error_log(serialize($rs), 3, "device_data.log");
// }
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.
//echo "***".$cm_diff;
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['commencement_date'] == NULL || $rs['commencement_date'] < date_format($startingDate,'Y-m-d')) {
//If full year
//Projected
// if ($rs['serial_number'] == 'A4EW011002527') {
//echo "
TEST3:"."
";echo "cb:".$consumed_black." dd:".$diffDays." fd:".$fiscalDays."
";
//}
// $projected_black = $consumed_black / $diffDays * $fiscalDays;
// $projected_black_cpc = $consumed_black_cpc / $diffDays * $fiscalDays;
// $projected_color = $consumed_color / $diffDays * $fiscalDays;
// $projected_color_cpc = $consumed_color_cpc / $diffDays * $fiscalDays;
// $projected_black_year = $consumed_black / $diffDays * $fiscalDays;
// $projected_black_year_cpc = $consumed_black_cpc / $diffDays * $fiscalDays;
// $projected_color_year = $consumed_color / $diffDays * $fiscalDays;
// $projected_color_year_cpc = $consumed_color_cpc / $diffDays * $fiscalDays;
//} else {
//if ($rs['serial_number'] == 'A4EW011002527') {
//echo "
TEST4:"."
";
//}
//if ($rs['serial_number'] == 'A63N011012625') {
// error_log("consumed_black = ".$consumed_black."; cm_diff = ".$cm_diff."; org_fiscal_days = ".$org_fiscal_days.";\n", 3, "device_data.log");
//}
//if ($rs['serial_number'] == 'A63N011012625') {
// error_log("org_commencement_date = ".$rs['org_commencement_date']."; startingDate = ".date_format($startingDate,'Y-m-d')."; last_diff = ".$last_diff."; fiscalDays = ".$fiscalDays.";\n", 3, "device_data.log");
//}
//$daysInService = $last_diff + $daysRemaining - 1;
//if ($daysInService <= 0) {
// $daysInService = 1;
//}
/*
if ($in_device_id == 26029) {
echo "in_device_id: ".$in_device_id."
";
echo "org_commencement_date null? ".($rs['org_commencement_date'] == NULL)."
";
echo "rs[org_commencement_date]: ".$rs['org_commencement_date']."
";
echo "org_commencement_date: ".$org_commencement_date."
";
echo "startingDate: ".date_format($startingDate,'Y-m-d')."
";
echo "startDate: ".$startDate."
";
echo "less than? ".($rs['org_commencement_date'] < date_format($startingDate,'Y-m-d'))."
";
echo "true == 1? ".(true == 1)."
";
echo "true == 0? ".(true == 0)."
";
echo "false == 1? ".(false == 1)."
";
echo "false == 0? ".(false == 0)."
";
exit();
}
*/
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['serial_number'] == 'A63N011012625') {
// error_log("projected_black = ".$projected_black."; projected_black_year = ".$projected_black_year.";\n", 3, "device_data.log");
//}
}
//if ($rs['serial_number'] == 'CSI018819') {
// error_log("\$fiscalDays = ".$fiscalDays, 3, "device_data.log");
//}
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 ($rs['machine_id'] == '25312') {
echo "BB:".$budgeted_black . " CMB:".$rs['commencement_black_meter']. " MB:".$rs['black_meter'] . " PB:".$projected_black . " CB:".$consumed_black." CBC:" . $consumed_black_cpc;
echo " BC:".$budgeted_color . " CMC:".$rs['commencement_color_meter'] . " PC:".$projected_color . " CC:".$consumed_color." CCC:" . $consumed_color_cpc;
echo "
";
}
*/
//If the device is not reporting then use the budgeted amounts for projected and next years black.
// Removed "under contract" criteria on 5/28/2014 //if ( $reporting == "N" && $org_fiscal_days > 0 && $rs['under_contract'] == 'Y') {
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');
//var_dump($rs['closeout_date']);echo " ";var_dump($temp_session_date);echo "
";
//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 year's 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';
}
//echo "building:".$rs['building_name']. " Pres FP ID: ".$rs['present_floorplan_id']." FP ID:".$rs['floorplan_id']." room:".$rs['room_number']." SN:".$rs['present_serial_number']."
";
//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
);
//if ($rs['serial_number'] == 'CSI018819') {
// error_log(serialize($device_data), 3, "device_data.log");
//}
//if ($rs['serial_number'] == 'A63N011012625') {
// error_log(serialize($device_data), 3, "device_data.log");
//}
return $device_data;
//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
}
?>