@measurequick/measurequick-report-generator 1.2.65 → 1.2.67

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@measurequick/measurequick-report-generator",
3
- "version": "1.2.65",
3
+ "version": "1.2.67",
4
4
  "description": "Generates PDF documents for various MeasureQuick applications.",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -13,12 +13,28 @@ export async function getReport(payload) { console.log("Corrective Measures - Pa
13
13
  const form = pdfDoc.getForm();
14
14
 
15
15
  let labels = ["iconRangeHigh", "iconRangeLow", "iconRangeNormal", "iconTesto", "iconCalculator", "iconFieldpiece",
16
- "iconUei", "iconSporlanPro", "iconSporlanLegacy", "iconIconnect", "iconImanifold", "iconSensi",
16
+ "iconUei", "iconSporlanPro", "iconSporlanLegacy", "iconIconnect", "iconImanifold", "iconSensi", "iconDg8",
17
17
  "iconBluflame", "iconRedfish510", "iconRedfish510333", "iconRedfish550", "iconDg1000", "iconTrueflow", "iconThumbprintRed", "iconThumbprintGreen", "iconThumbprintYellow", "whiteBox"];
18
18
  for (let label of labels) embeddedIcons[label] = await pdfDoc.embedPng(util._base64ToArrayBuffer(base64[label]));
19
19
  const mqLogoBytes = util._base64ToArrayBuffer(base64.mqLogo);
20
20
  const mqLogo = await pdfDoc.embedPng(mqLogoBytes);
21
21
 
22
+ if (payload.tests.length < 2) {
23
+ const page = pdfDoc.getPages()[0];
24
+ const button = form.createButton('HideSystemScore');
25
+ button.addToPage('', page, {
26
+ x: 581,
27
+ y: 295,
28
+ width: 221,
29
+ height: 135,
30
+ // textColor: rgb(1, 1, 1),
31
+ // backgroundColor: rgb(1, 1, 1),
32
+ // borderColor: rgb(1, 1, 1),
33
+ borderWidth: 0
34
+ });
35
+ button.setImage(embeddedIcons.whiteBox);
36
+ }
37
+
22
38
  // embed company logo and profile picture
23
39
  let profileImage, companyImage;
24
40
  let profileImageType = util.checkProfilePicture(payload.meta);
@@ -49,11 +65,11 @@ export async function getReport(payload) { console.log("Corrective Measures - Pa
49
65
  }
50
66
 
51
67
  let scoreHeader = payload.tests.length > 1 ? "Test In Score" : "Your System Score";
52
- form.getTextField("YourSystemScoreHeader").setText("");
68
+ form.getTextField("YourSystemScoreHeader").setText(scoreHeader);
53
69
  let systemScorePercentage = payload.tests[0].testInfo.data.vitals_score ? +payload.tests[0].testInfo.data.vitals_score.toFixed(0) : 0;
54
70
  let systemScoreGrade = util.getGradeFromScore(systemScorePercentage);
55
71
  let systemScoreColor = util.getColorFromGrade(systemScoreGrade);
56
- if (!payload.tests[0].testInfo.canScoreVitals) {
72
+ if (!payload.tests[0].testInfo.data.vitals_score) {
57
73
  systemScorePercentage = "--";
58
74
  systemScoreGrade = "";
59
75
  } else systemScorePercentage += "%";
@@ -64,12 +80,12 @@ export async function getReport(payload) { console.log("Corrective Measures - Pa
64
80
  systemScorePercentage = payload.tests[1].testInfo.data.vitals_score ? +payload.tests[1].testInfo.data.vitals_score.toFixed(0) : 0;
65
81
  systemScoreGrade = util.getGradeFromScore(systemScorePercentage);
66
82
  systemScoreColor = util.getColorFromGrade(systemScoreGrade);
67
- if (!payload.tests[1].testInfo.canScoreVitals) {
83
+ if (!payload.tests[1].testInfo.data.vitals_score) {
68
84
  systemScorePercentage = "--";
69
85
  systemScoreGrade = "";
70
86
  } else systemScorePercentage += "%";
71
87
  form.getTextField(`YourSystemScore${systemScoreColor}2`).setText(`${systemScorePercentage} ${systemScoreGrade}`);
72
- } else form.getButton("HideSystemScore").setImage(embeddedIcons.whiteBox);
88
+ }
73
89
 
74
90
  form.getTextField(`Block1-Title`).setText(payload.system_data.title1);
75
91
  for (let rowNum = 1; rowNum < 12; rowNum++) {
@@ -18,6 +18,7 @@ export async function getReport(payload) { console.log("Full Report"); console.l
18
18
 
19
19
  const coreDoc = await PDFDocument.create();
20
20
 
21
+ /******** COVER SHEET (1 PAGE) *********/
21
22
  try {
22
23
  let coverPageBase64 = payload.meta.pdf_settings.includeCoverPage ? await coverPage.getReport(payload) : false;
23
24
  const coverPageDoc = coverPageBase64 ? await PDFDocument.load(util._base64ToArrayBuffer(coverPageBase64)) : false;
@@ -25,8 +26,9 @@ export async function getReport(payload) { console.log("Full Report"); console.l
25
26
  if (_coverPageDoc) coreDoc.insertPage(coreDoc.getPages().length, _coverPageDoc);
26
27
  } catch (e) {} // error printed in original pdf script
27
28
 
29
+ /******** TEST IN VITALS (2 PAGES) *********/
28
30
  try {
29
- if (payload.meta.report_mode == "goettl" || payload.tests.length > 1) {
31
+ if (payload.meta.report_mode == "goettl") {
30
32
  if (payload.tests && payload.tests[0] && payload.tests[0].testInfo && payload.tests[0].testInfo) {
31
33
  let vitalsReportBase64 = await vitalsCoolingReport.getReport(payload, payload.tests[0]);
32
34
  const vitalsReportDoc = await PDFDocument.load(util._base64ToArrayBuffer(vitalsReportBase64));
@@ -36,7 +38,7 @@ export async function getReport(payload) { console.log("Full Report"); console.l
36
38
  coreDoc.insertPage(coreDoc.getPages().length, _vitalsReportPg2);
37
39
  }
38
40
  if (payload.tests && payload.tests[1] && payload.tests[1].testInfo && payload.tests[1].testInfo) {
39
- let vitalsReportBase64_ = await vitalsHeatingReport.getReport(payload, payload.tests[1]);
41
+ let vitalsReportBase64_ = payload.meta.report_mode == "goettl" ? await vitalsHeatingReport.getReport(payload, payload.tests[1]) : await vitalsCoolingReport.getReport(payload, payload.tests[1]);
40
42
  const vitalsReportDoc_ = await PDFDocument.load(util._base64ToArrayBuffer(vitalsReportBase64_));
41
43
  const [_vitalsReportPg1_] = await coreDoc.copyPages(vitalsReportDoc_, [0]);
42
44
  const [_vitalsReportPg2_] = await coreDoc.copyPages(vitalsReportDoc_, [1]);
@@ -44,6 +46,7 @@ export async function getReport(payload) { console.log("Full Report"); console.l
44
46
  coreDoc.insertPage(coreDoc.getPages().length, _vitalsReportPg2_);
45
47
  }
46
48
  } else if (payload.tests && payload.tests[0] && payload.tests[0].testInfo && payload.tests[0].testInfo) {
49
+ payload.meta.header = "Test In A/C Vitals";
47
50
  let vitalsReportBase64 = payload.meta.report_mode == "cooling" ? await vitalsCoolingReport.getReport(payload) : await vitalsHeatingReport.getReport(payload);
48
51
  const vitalsReportDoc = await PDFDocument.load(util._base64ToArrayBuffer(vitalsReportBase64));
49
52
  const [_vitalsReportPg1] = await coreDoc.copyPages(vitalsReportDoc, [0]);
@@ -53,17 +56,38 @@ export async function getReport(payload) { console.log("Full Report"); console.l
53
56
  }
54
57
  } catch (e) {} // error printed in original pdf script
55
58
 
59
+ /******** TEST IN MEASUREMENTS (1 PAGE) *********/
56
60
  try {
57
61
  let measurementDetailsBase64 = await measurementDetails.getReport(payload);
58
62
  const measurementDetailsDoc = measurementDetailsBase64 ? await PDFDocument.load(util._base64ToArrayBuffer(measurementDetailsBase64)) : false;
59
63
  const [_measurementDetailsDoc] = measurementDetailsDoc ? await coreDoc.copyPages(measurementDetailsDoc, [0]) : false;
60
64
  if (_measurementDetailsDoc) coreDoc.insertPage(coreDoc.getPages().length, _measurementDetailsDoc);
65
+ } catch (e) {} // error printed in original pdf script
66
+
67
+ /******** TEST OUT VITALS (2 PAGES) *********/
68
+ try {
69
+ if (payload.tests && payload.tests[1] && payload.tests[1].testInfo && payload.tests[1].testInfo) {
70
+ payload.meta.header = "Test Out A/C Vitals";
71
+ let vitalsReportBase64 = payload.meta.report_mode == "cooling" ? await vitalsCoolingReport.getReport(payload) : await vitalsHeatingReport.getReport(payload);
72
+ const vitalsReportDoc = await PDFDocument.load(util._base64ToArrayBuffer(vitalsReportBase64));
73
+ const [_vitalsReportPg1] = await coreDoc.copyPages(vitalsReportDoc, [0]);
74
+ const [_vitalsReportPg2] = await coreDoc.copyPages(vitalsReportDoc, [1]);
75
+ coreDoc.insertPage(coreDoc.getPages().length, _vitalsReportPg1);
76
+ coreDoc.insertPage(coreDoc.getPages().length, _vitalsReportPg2);
77
+ }
78
+ } catch (e) {} // error printed in original pdf script
79
+
80
+ /******** TEST OUT MEASUREMENTS (1 PAGE) *********/
81
+ try {
61
82
  if (payload.tests.length > 1) {
83
+ let measurementDetailsBase64 = await measurementDetails.getReport(payload);
84
+ const measurementDetailsDoc = measurementDetailsBase64 ? await PDFDocument.load(util._base64ToArrayBuffer(measurementDetailsBase64)) : false;
62
85
  const [_measurementDetailsDocPg2] = measurementDetailsDoc ? await coreDoc.copyPages(measurementDetailsDoc, [1]) : false;
63
86
  if (_measurementDetailsDocPg2) coreDoc.insertPage(coreDoc.getPages().length, _measurementDetailsDocPg2);
64
87
  }
65
88
  } catch (e) {} // error printed in original pdf script
66
89
 
90
+ /******** CORRECTIVE MEASURES (1 PAGE) *********/
67
91
  try {
68
92
  let correctiveMeasuresBase64 = await correctiveMeasures.getReport(payload);
69
93
  const correctiveMeasuresDoc = correctiveMeasuresBase64 ? await PDFDocument.load(util._base64ToArrayBuffer(correctiveMeasuresBase64)) : false;
@@ -71,6 +95,7 @@ export async function getReport(payload) { console.log("Full Report"); console.l
71
95
  if (_correctiveMeasuresDoc) coreDoc.insertPage(coreDoc.getPages().length, _correctiveMeasuresDoc);
72
96
  } catch (e) {} // error printed in original pdf script
73
97
 
98
+ /******** PHOTOS (X PAGES) *********/
74
99
  try {
75
100
  let selectedPhotosReport = payload.meta.origin == 'virtuoso' ? photosReportS3 : photosReport;
76
101
  let photosReportBase64 = (payload.meta.pdf_settings.includePhotos && payload.meta.photo_count > 0) ? await selectedPhotosReport.getReport(payload.photos) : false;
@@ -81,6 +106,7 @@ export async function getReport(payload) { console.log("Full Report"); console.l
81
106
  }
82
107
  } catch (e) {} // error printed in original pdf script
83
108
 
109
+ /******** SYSTEM INFO (1 PAGE) *********/
84
110
  try {
85
111
  let systemInfoPageBase64 = await systemInfoPage.getReport(payload);
86
112
  const systemInfoPageDoc = systemInfoPageBase64 ? await PDFDocument.load(util._base64ToArrayBuffer(systemInfoPageBase64)) : false;
@@ -28,7 +28,7 @@ export async function getReport(payload) { console.log("Measurement Details - Pa
28
28
  }
29
29
 
30
30
  let labels = ["iconRangeHigh", "iconRangeLow", "iconRangeNormal", "iconTesto", "iconCalculator", "iconFieldpiece",
31
- "iconUei", "iconSporlanPro", "iconSporlanLegacy", "iconIconnect", "iconImanifold", "iconSensi",
31
+ "iconUei", "iconSporlanPro", "iconSporlanLegacy", "iconIconnect", "iconImanifold", "iconSensi", "iconDg8",
32
32
  "iconBluflame", "iconRedfish510", "iconRedfish510333", "iconRedfish550", "iconDg1000", "iconTrueflow", "iconThumbprintRed", "iconThumbprintGreen", "iconThumbprintYellow"
33
33
  ];
34
34
  for (let label of labels) embeddedIconsTestIn[label] = await pdfDocPg1.embedPng(util._base64ToArrayBuffer(base64[label]));
@@ -119,7 +119,7 @@ export async function getReport(payload) { console.log("Measurement Details - Pa
119
119
  let systemScorePercentage = payload.tests[t].testInfo.data.vitals_score ? +payload.tests[t].testInfo.data.vitals_score.toFixed(0) : 0;
120
120
  let systemScoreGrade = util.getGradeFromScore(systemScorePercentage);
121
121
  let systemScoreColor = util.getColorFromGrade(systemScoreGrade);
122
- if (!payload.tests[0].testInfo.canScoreVitals) {
122
+ if (!payload.tests[0].testInfo.data.vitals_score) {
123
123
  systemScorePercentage = "--";
124
124
  systemScoreGrade = "";
125
125
  } else systemScorePercentage += "%";
@@ -1,15 +1,21 @@
1
1
  import { PDFDocument } from 'pdf-lib';
2
- import * as pdfCooling from '../base-64/understanding-cooling.js';
3
- import * as pdfHeating from '../base-64/understanding-heating.js';
2
+ import * as base64 from '../base-64/icons.js';
3
+ import * as pdfCooling from '../base-64/system-info-cooling.js';
4
+ import * as pdfHeating from '../base-64/system-info-heating.js';
4
5
  import * as util from '../util.js';
5
6
 
6
- export async function getReport(payload) { console.log("Understanding Report");
7
- const pdfDoc = payload.meta.report_mode == "heating" ? await PDFDocument.load(util._base64ToArrayBuffer(pdfHeating.base64)) : await PDFDocument.load(util._base64ToArrayBuffer(pdfCooling.base64));
8
- const form = pdfDoc.getForm();
9
- const mqLogoBytes = util._base64ToArrayBuffer(base64.mqLogo);
10
- const mqLogo = await pdfDoc.embedPng(mqLogoBytes);
11
- form.getButton("FullWidthLogo").setImage(mqLogo);
12
- form.flatten();
13
- const pdfBase64 = await pdfDoc.saveAsBase64({ dataUri: true });
14
- return pdfBase64;
7
+ export async function getReport(payload) { console.log("System Info Page");
8
+ try {
9
+ const pdfDoc = payload.meta.report_mode == "heating" ? await PDFDocument.load(util._base64ToArrayBuffer(pdfHeating.base64)) : await PDFDocument.load(util._base64ToArrayBuffer(pdfCooling.base64));
10
+ const form = pdfDoc.getForm();
11
+ const mqLogoBytes = util._base64ToArrayBuffer(base64.mqLogo);
12
+ const mqLogo = await pdfDoc.embedPng(mqLogoBytes);
13
+ form.getButton("FullWidthLogo").setImage(mqLogo);
14
+ form.flatten();
15
+ const pdfBase64 = await pdfDoc.saveAsBase64({ dataUri: true });
16
+ return pdfBase64;
17
+ } catch (e) {
18
+ console.log(e);
19
+ return false;
20
+ }
15
21
  }
@@ -1,9 +1,9 @@
1
1
  import { PDFDocument } from 'pdf-lib';
2
- import * as pdfCooling from '../base-64/system-info-cooling.js';
3
- import * as pdfHeating from '../base-64/system-info-heating.js';
2
+ import * as pdfCooling from '../base-64/understanding-cooling.js';
3
+ import * as pdfHeating from '../base-64/understanding-heating.js';
4
4
  import * as util from '../util.js';
5
5
 
6
- export async function getReport(payload) { console.log("System Info Page");
6
+ export async function getReport(payload) { console.log("Understanding Page");
7
7
  const pdfDoc = payload.meta.report_mode == "heating" ? await PDFDocument.load(util._base64ToArrayBuffer(pdfHeating.base64)) : await PDFDocument.load(util._base64ToArrayBuffer(pdfCooling.base64));
8
8
  const form = pdfDoc.getForm();
9
9
  const mqLogoBytes = util._base64ToArrayBuffer(base64.mqLogo);
@@ -70,8 +70,11 @@ export async function getReport(payload, _test) { console.log("Vitals Cooling -
70
70
  form.getTextField("SystemDiagnostics1").setText("No system-wide issues were detected.");
71
71
  }
72
72
 
73
+ let header = payload.meta.header ? payload.meta.header : "A/C System Vitals";
74
+ form.getTextField('Header').setText(header);
75
+
73
76
  // get text fields
74
- let textFields = getTextFields(payload);
77
+ let textFields = getTextFields(payload, t);
75
78
 
76
79
  // print company logo and profile picture
77
80
  if (profileImage && companyImage) { // both images are embedded in the document
@@ -118,12 +121,10 @@ export async function getReport(payload, _test) { console.log("Vitals Cooling -
118
121
  form.getTextField('TimeOfServiceUpper').setText(date.toLocaleTimeString("en-US"));
119
122
  }
120
123
 
121
-
122
- console.log();
123
- let systemScorePercentage = payload.tests[0].testInfo.data.vitals_score ? +payload.tests[0].testInfo.data.vitals_score.toFixed(0) : 0;
124
+ let systemScorePercentage = t.data.vitals_score ? +t.data.vitals_score.toFixed(0) : 0;
124
125
  let systemScoreGrade = util.getGradeFromScore(systemScorePercentage);
125
126
  let systemScoreColor = util.getColorFromGrade(systemScoreGrade);
126
- if (!payload.tests[0].testInfo.canScoreVitals && !payload.pdfSettings.alwaysShowVitals) {
127
+ if (!t.data.vitals_score) {
127
128
  systemScorePercentage = "--";
128
129
  systemScoreGrade = "";
129
130
  } else systemScorePercentage += "%";
@@ -162,15 +163,15 @@ export async function getReport(payload, _test) { console.log("Vitals Cooling -
162
163
  for (let i = 0; i < measureLabels.length; i++) {
163
164
  let iconPlacement = "Mid";
164
165
  let icon = iconRangeRed;
165
- let actual = +payload.tests[0].testInfo.data[targetKeys[i]];
166
- let mid = +payload.tests[0].testInfo.targets[targetKeys[i]];
167
- let low = +payload.tests[0].testInfo.targets[`${targetKeys[i]}_ideal_low`];
168
- let high = +payload.tests[0].testInfo.targets[`${targetKeys[i]}_ideal_high`];
166
+ let actual = +t.data[targetKeys[i]];
167
+ let mid = +t.targets[targetKeys[i]];
168
+ let low = +t.targets[`${targetKeys[i]}_ideal_low`];
169
+ let high = +t.targets[`${targetKeys[i]}_ideal_high`];
169
170
  low = mid - low;
170
171
  high = mid + high;
171
172
  if (targetKeys[i] == "pressure_static_total_external") high = mid * 1.4;
172
173
  else if (targetKeys[i] == "velocity_face_filter1") high = 500;
173
- let val = payload.tests[0].testInfo.data[targetKeys[i]];
174
+ let val = t.data[targetKeys[i]];
174
175
  if (actual < low && targetKeys[i] != "velocity_face_filter1") iconPlacement = "Low";
175
176
  else if (actual > high) iconPlacement = "High";
176
177
  else if (val) icon = iconRangeGreen;
@@ -182,11 +183,11 @@ export async function getReport(payload, _test) { console.log("Vitals Cooling -
182
183
  }
183
184
 
184
185
  // print pass fail measures
185
- if (payload.tests[0].testInfo.subsystem_review_complete) {
186
+ if (t.subsystem_review_complete) {
186
187
  let passFails = ["electrical_system_pass_fail", "air_distribution_system_pass_fail", "air_filtration_system_pass_fail", "condensate_drain_system_pass_fail", "refrigerant_charge_pass_fail", "outdoor_equipment_pass_fail", "indoor_equipment_pass_fail", "cooling_capacity_pass_fail", "cooling_electrical_efficiency_pass_fail"];
187
188
  let pfLabels = ["Electrical system", "Air distribution system", "Air filtration system", "Condensate drain system", "Refrigerant charge", "Outdoor equipment", "Indoor equipment", "Cooling capacity", "Cooling electrical efficiency"];
188
189
  for (let i = 1; i <= passFails.length; i++) {
189
- let meas = payload.tests[0].testInfo[passFails[i - 1]];
190
+ let meas = t[passFails[i - 1]];
190
191
  let icon = meas == "Pass" || meas == "High" || meas == "Mid" ? iconRangeGreen : iconRangeRed;
191
192
  console.log(passFails[i - 1] + " || " + meas + " || " + icon);
192
193
  form.getButton(`ImageSubsystem${i}_af_image`).setImage(icon);
@@ -201,8 +202,7 @@ export async function getReport(payload, _test) { console.log("Vitals Cooling -
201
202
  } catch (error) { console.log(error) }
202
203
  }
203
204
 
204
- function getTextFields(payload) {
205
- let test = payload.tests[0].testInfo;
205
+ function getTextFields(payload, test) {
206
206
  return {
207
207
  "cName": payload.site.customer.first_name && payload.site.customer.last_name ? `${payload.site.customer.first_name} ${payload.site.customer.last_name}` : "",
208
208
  "address": payload.site.location.address ? payload.site.location.address : "",
@@ -49,6 +49,9 @@ export async function getReport(payload, _test) { console.log("Vitals Heating -
49
49
  // get form for filling
50
50
  const form = pdfDoc.getForm();
51
51
 
52
+ let header = payload.meta.header ? payload.meta.header : "A/C System Vitals";
53
+ form.getTextField('Header').setText(header);
54
+
52
55
  // get text fields
53
56
  let textFields = getTextFields(payload);
54
57
 
@@ -98,10 +101,10 @@ export async function getReport(payload, _test) { console.log("Vitals Heating -
98
101
  }
99
102
 
100
103
 
101
- let systemScorePercentage = payload.tests[0].testInfo.data.vitals_score ? +payload.tests[0].testInfo.data.vitals_score.toFixed(0) : 0;
104
+ let systemScorePercentage = test.testInfo.data.vitals_score ? +test.testInfo.data.vitals_score.toFixed(0) : 0;
102
105
  let systemScoreGrade = util.getGradeFromScore(systemScorePercentage);
103
106
  let systemScoreColor = util.getColorFromGrade(systemScoreGrade);
104
- if (!payload.tests[0].testInfo.canScoreVitals && !payload.pdfSettings.alwaysShowVitals) {
107
+ if (!test.testInfo.canScoreVitals && !payload.pdfSettings.alwaysShowVitals) {
105
108
  systemScorePercentage = "--";
106
109
  systemScoreGrade = "";
107
110
  } else systemScorePercentage += "%";
@@ -151,7 +154,7 @@ export async function getReport(payload, _test) { console.log("Vitals Heating -
151
154
  high = mid + high;
152
155
  if (targetKeys[i] == "pressure_static_total_external") high = mid * 1.4;
153
156
  else if (targetKeys[i] == "velocity_face_filter1") high = 500;
154
- let val = payload.tests[0].testInfo.data[targetKeys[i]];
157
+ let val = test.testInfo.data[targetKeys[i]];
155
158
  if (actual < low && targetKeys[i] != "velocity_face_filter1") iconPlacement = "Low";
156
159
  else if (actual > high) iconPlacement = "High";
157
160
  else if (val) icon = iconRangeGreen;
@@ -179,7 +182,7 @@ export async function getReport(payload, _test) { console.log("Vitals Heating -
179
182
  form.getButton(`ImageEfficiency${specialCasePlacement}`).setImage(specialCaseIcon);
180
183
 
181
184
  // print pass fail measures
182
- if (payload.tests[0].testInfo.subsystem_review_complete) {
185
+ if (test.testInfo.subsystem_review_complete) {
183
186
  let passFails = ["ambient_co_pass_fail", "control_system_pass_fail", "electrical_system_pass_fail", "air_distribution_system_pass_fail", "air_filtration_system_pass_fail", "condensate_drain_system_pass_fail", "indoor_equipment_pass_fail", "venting_system_pass_fail", "fuel_delivery_system_pass_fail", "make_up_air_system_pass_fail", "heat_exchanger_pass_fail", "safety_system_pass_fail", "heating_operation_pass_fail", "combustion_safety_pass_fail", "combustion_efficiency_pass_fail"];
184
187
  let pfLabels = ["Ambient CO", "Control system (thermostat)", "Electrical system", "Air distribution system", "Air filtration system", "Condensate drain system", "Indoor equipment", "Venting system"];
185
188
  for (let i = 1; i <= passFails.length; i++) {
@@ -198,7 +201,7 @@ export async function getReport(payload, _test) { console.log("Vitals Heating -
198
201
  }
199
202
 
200
203
  function getTextFields(payload) {
201
- let test = payload.tests[0].testInfo;
204
+ let test = test.testInfo;
202
205
  return {
203
206
  "cName": payload.site.customer.first_name && payload.site.customer.last_name ? `${payload.site.customer.first_name} ${payload.site.customer.last_name}` : "",
204
207
  "address": payload.site.location.address ? payload.site.location.address : "",
package/util.js CHANGED
@@ -79,6 +79,7 @@ export function getToolIcon(test, ref, embeddedIcons) {
79
79
  case "TrueFlow": toolIcon = embeddedIcons.iconTrueflow; break;
80
80
  case "Calculator": toolIcon = embeddedIcons.iconCalculator; break;
81
81
  case "DG-1000": toolIcon = embeddedIcons.iconDg1000; break;
82
+ case "DG-8": toolIcon = embeddedIcons.iconDg8; break;
82
83
  }
83
84
  }
84
85
  if (test.source[ref] == "iDVM510" && ref.includes("amperage")) toolIcon = embeddedIcons.iconRedfish510333;