rendered paste body $save_filename = $this->temp_dir . 'reports_' . $id . '.pdf';
$local_path = $_SERVER['DOCUMENT_ROOT'].$this->webroot.'app/webroot/img/' . $this->Session->read('layout') . '/';
$this->set('save_filename', $save_filename);
$this->set('preview', false);
$this->layout = 'pdf';
$this->render();
$files = array($save_filename);
$spec_sheets = array();
$certificates = array();
//Grab certificates and PDFs (save to temporary location)
foreach ($system['Unit'] as $unit) {
//Determine unit type
if (!empty($unit['WaterHeater'])) {
$spec_sheet = $local_path . $unit['WaterHeater']['pdf'] . ".pdf";
if (!empty($unit['WaterHeater']['pdf']) && !in_array($spec_sheet, $spec_sheets)) $spec_sheets[] = $spec_sheet;
}else if (!empty($unit['Accessory'])) {
$spec_sheet = $local_path . $unit['Accessory']['pdf'] . ".pdf";
if (!empty($unit['Accessory']['pdf']) && !in_array($spec_sheet, $spec_sheets)) $spec_sheets[] = $spec_sheet;
}else if (!empty($unit['Parcel'])) {
if ($unit['Parcel']['cooler_id'] > 0) {
$spec_sheet = $local_path . $unit['Parcel']['Cooler']['pdf'] . ".pdf";
if (!empty($unit['Parcel']['Cooler']['pdf']) && !in_array($spec_sheet, $spec_sheets)) $spec_sheets[] = $spec_sheet;
}
if ($unit['Parcel']['heater_id'] > 0) {
$spec_sheet = $local_path . $unit['Parcel']['Heater']['pdf'] . ".pdf";
if (!empty($unit['Parcel']['Heater']['pdf']) && !in_array($spec_sheet, $spec_sheets)) $spec_sheets[] = $spec_sheet;
}
if ($unit['Parcel']['backup_heater_id'] > 0) {
$spec_sheet = $local_path . $unit['Parcel']['BackupHeater']['pdf'] . ".pdf";
if (!empty($unit['Parcel']['BackupHeater']['pdf']) && !in_array($spec_sheet, $spec_sheets)) $spec_sheets[] = $spec_sheet;
}
}
//If this is a parcel, get the ARI or GAMA certificate (or both)
if ($unit['program'] == 'parcels') {
if ($unit['Parcel']['cooler_id'] > 0 && $unit['Parcel']['heater_id'] > 0 && $unit['Parcel']['backup_heater_id'] > 0) {
//Heat pump with a furnace (dual fuel), get ARI and GAMA certificates
$certificates["certificate_" . $id . "_" . $unit['Parcel']['reference_number']] = "http://www.aridirectory.org/ari/pdf/reports/certification_printout.php?table=hp&search_screen=hp&refno=" . $unit['Parcel']['reference_number'];
$certificates["certificate_" . $id . "_" . $unit['Parcel']['BackupHeater']['gama_id']] = "http://gamapower.org/pdf/reports/furn_certification_printout.php?search_screen=furnaces&model_id=" . $unit['Parcel']['BackupHeater']['gama_id'];
}else if ($unit['Parcel']['cooler_id'] > 0 && $unit['Parcel']['heater_id'] > 0 && $unit['Parcel']['backup_heater_id'] == 0) {
//Could be a straight-cool or a heat pump
if ($unit['Parcel']['Heater']['gama_id'] != 0) {
//Straight-cool, get ARI and GAMA certificates
$certificates["certificate_" . $id . "_" . $unit['Parcel']['reference_number']] = "http://www.aridirectory.org/ari/pdf/reports/certification_printout.php?table=ac&search_screen=ac&refno=" . $unit['Parcel']['reference_number'];
$certificates["certificate_" . $id . "_" . $unit['Parcel']['Heater']['gama_id']] = "http://gamapower.org/pdf/reports/furn_certification_printout.php?search_screen=furnaces&model_id=" . $unit['Parcel']['Heater']['gama_id'];
}else{
//Could be a water-brine-air-heat-pump or air-source heat pump
if ($unit['Parcel']['Heater']['program'] == 'water_brine_air_heat_pump') {
//Water-brine-air-heat-pump, get ARI certificate
$url = "http://www.aridirectory.org/ari/pdf/reports/certification_printout.php?table=wbahp&search_screen=wbahp&refno=" . $unit_id;
}else{
//Air-source heat pump, get ARI certificate
$certificates["certificate_" . $id . "_" . $unit['Parcel']['reference_number']] = "http://www.aridirectory.org/ari/pdf/reports/certification_printout.php?table=hp&search_screen=hp&refno=" . $unit['Parcel']['reference_number'];
}
}
}else if ($unit['Parcel']['cooler_id'] > 0 && $unit['Parcel']['heater_id'] == 0 && $unit['Parcel']['backup_heater_id'] == 0) {
//Air conditioner
$certificates["certificate_" . $id . "_" . $unit['Parcel']['reference_number']] = "http://www.aridirectory.org/ari/pdf/reports/certification_printout.php?table=ac&search_screen=ac&refno=" . $unit['Parcel']['reference_number'];
}else if ($unit['Parcel']['cooler_id'] == 0 && $unit['Parcel']['heater_id'] > 0 && $unit['Parcel']['backup_heater_id'] == 0) {
//Furnace
$certificates["certificate_" . $id . "_" . $unit['Parcel']['Heater']['gama_id']] = "http://gamapower.org/pdf/reports/furn_certification_printout.php?search_screen=furnaces&model_id=" . $unit['Parcel']['Heater']['gama_id'];
}else{
//Hey, we aren't grabbing ULE certificates now? And what about mix-matches?
}
}
}
//Download all certificates
foreach ($certificates as $filename => $url) {
$save_filename = $this->temp_dir . $filename . ".pdf";
$curl = curl_init($url);
$proposal_fp = fopen($save_filename, 'w');
curl_setopt($curl, CURLOPT_FILE, $proposal_fp);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_exec($curl);
curl_close($curl);
fclose($proposal_fp);
$files[] = $save_filename;
}
//Merge with PDFTK
$result_file = "proposal_" . $id . ".pdf";
$line = '/usr/local/bin/pdftk';
foreach ($files as $filename) {
$line .= " " . $filename;
}
foreach ($spec_sheets as $filename) {
$line .= " " . $filename;
}
$line .= " output " . $this->temp_dir.$result_file . " dont_ask";
exec($line);
//Cleanup
foreach ($files as $filename) {
@unlink($filename);
}
//Serve
header("Content-type: application/pdf");
header('Content-Length: ' . filesize($this->temp_dir.$result_file));
header('Content-Disposition: attachment; filename="proposal.pdf"');
readfile($this->temp_dir.$result_file);
//Delete served file
@unlink($this->temp_dir.$result_file);