@measurequick/measurequick-report-generator 1.1.0 → 1.1.2
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
package/scripts/mq-standard.js
CHANGED
|
@@ -2,99 +2,115 @@ import { PDFDocument } from 'pdf-lib';
|
|
|
2
2
|
import * as base64 from '../graphics.js';
|
|
3
3
|
import * as pdf from '../templates/base-64/mq-standard.js';
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
/***************************************************
|
|
6
|
+
[Page # || Page Index ]: Purpose
|
|
7
|
+
============================================
|
|
8
|
+
[1 || 0]: Cover Sheet
|
|
9
|
+
[2 || 1]: A/C Vitals Measurements
|
|
10
|
+
[3 || 2]: A/C Vitals Score Breakdown
|
|
11
|
+
[4 || 3]: A/C Vitals Information
|
|
12
|
+
[5 || 4]: Heating Vitals Measurements
|
|
13
|
+
[6 || 5]: Heating Vitals Score Breakdown
|
|
14
|
+
[7 || 6]: Heating Vitals Information
|
|
15
|
+
[8 || 7]: Equipment Information
|
|
16
|
+
[9 || 8]: System Review
|
|
17
|
+
[10 || 9]: 2-Column Measurement Details
|
|
18
|
+
[11 || 10]: 3-Column Measurement Details
|
|
19
|
+
[12 || 11]: 4-Column Measurement Details
|
|
20
|
+
[13 || 12]: Understanding A/C Subsystems
|
|
21
|
+
[14 || 13]: Understanding Heating Subsystems
|
|
22
|
+
[15 || 14]: 2x3 Photo Grid
|
|
23
|
+
[16 || 15]: 2x2 Photo Grid
|
|
24
|
+
[17 || 16]: 2x1 Photo Grid
|
|
25
|
+
***************************************************/
|
|
26
|
+
|
|
27
|
+
export async function generateReport(payload) { console.log(payload);
|
|
28
|
+
|
|
29
|
+
// Initialize pdf-lib
|
|
7
30
|
const pdfDoc = await PDFDocument.load(_base64ToArrayBuffer(pdf.base64));
|
|
8
31
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
//
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
//
|
|
19
|
-
if (
|
|
20
|
-
if (
|
|
21
|
-
if (
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
if (
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
const iconRangeGreen =
|
|
43
|
-
const iconRangeRed =
|
|
44
|
-
const iconFlagBlack =
|
|
45
|
-
const iconFlagGreen =
|
|
46
|
-
const iconFlagRed =
|
|
47
|
-
const iconFlagYellow =
|
|
48
|
-
const iconStability =
|
|
49
|
-
const iconThumbprintGreen = await pdfDoc.embedPng(
|
|
50
|
-
const iconThumbprintRed =
|
|
51
|
-
|
|
52
|
-
//
|
|
32
|
+
// Remove Unnecessary Photo Pages
|
|
33
|
+
if (payload.meta.max_photos_per_page === 2) { pdfDoc.removePage(15); pdfDoc.removePage(14); }
|
|
34
|
+
else if (payload.meta.max_photos_per_page === 4) { pdfDoc.removePage(16); pdfDoc.removePage(14); }
|
|
35
|
+
else if (payload.meta.max_photos_per_page === 6) { pdfDoc.removePage(16); pdfDoc.removePage(15); }
|
|
36
|
+
|
|
37
|
+
// Remove Unnecessary Info Page
|
|
38
|
+
if (payload.meta.report_type === "cooling") pdfDoc.removePage(13);
|
|
39
|
+
else if (payload.meta.report_type === "heating") pdfDoc.removePage(12);
|
|
40
|
+
|
|
41
|
+
// Remove Unnecessary Measurement Pages
|
|
42
|
+
if (payload.meta.number_of_measurement_columns === 2) { pdfDoc.removePage(11); pdfDoc.removePage(10); }
|
|
43
|
+
else if (payload.meta.number_of_measurement_columns === 3) { pdfDoc.removePage(11); pdfDoc.removePage(9); }
|
|
44
|
+
else if (payload.meta.number_of_measurement_columns === 4) { pdfDoc.removePage(10); pdfDoc.removePage(9); }
|
|
45
|
+
|
|
46
|
+
// Remove System Review Page (If Chosen)
|
|
47
|
+
if (!payload.meta.include_system_review) pdfDoc.removePage(8);
|
|
48
|
+
|
|
49
|
+
// Remove Equipment Info Page (If Chosen)
|
|
50
|
+
if (!payload.meta.include_equipment_info) pdfDoc.removePage(7);
|
|
51
|
+
|
|
52
|
+
// Remove Unnecessary Vitals Pages
|
|
53
|
+
if (payload.meta.report_type === "cooling") { pdfDoc.removePage(6); pdfDoc.removePage(5); pdfDoc.removePage(4); }
|
|
54
|
+
else if (payload.meta.report_type === "heating") { pdfDoc.removePage(3); pdfDoc.removePage(2); pdfDoc.removePage(1); }
|
|
55
|
+
|
|
56
|
+
// Remove Cover Sheet (If Chosen)
|
|
57
|
+
if (!payload.meta.include_cover_sheet) pdfDoc.removePage(0);
|
|
58
|
+
|
|
59
|
+
// Fetch & Load Image Resources
|
|
60
|
+
let geolocationMap, profilePicture, companyLogo;
|
|
61
|
+
if (payload.photos.map_image_base64) geolocationMap = await pdfDoc.embedPng(_base64ToArrayBuffer(payload.photos.map_image_base64));
|
|
62
|
+
if (payload.photos.profile_image_base64) profilePicture = await pdfDoc.embedPng(_base64ToArrayBuffer(payload.photos.profile_image_base64));
|
|
63
|
+
if (payload.photos.company_logo_base64) companyLogo = await pdfDoc.embedPng(_base64ToArrayBuffer(payload.photos.company_logo_base64));
|
|
64
|
+
|
|
65
|
+
const iconRangeGreen = await pdfDoc.embedPng(_base64ToArrayBuffer(base64.iconRangeGreen));
|
|
66
|
+
const iconRangeRed = await pdfDoc.embedPng(_base64ToArrayBuffer(base64.iconRangeRed));
|
|
67
|
+
const iconFlagBlack = await pdfDoc.embedPng(_base64ToArrayBuffer(base64.iconFlagBlack));
|
|
68
|
+
const iconFlagGreen = await pdfDoc.embedPng(_base64ToArrayBuffer(base64.iconFlagGreen));
|
|
69
|
+
const iconFlagRed = await pdfDoc.embedPng(_base64ToArrayBuffer(base64.iconFlagRed));
|
|
70
|
+
const iconFlagYellow = await pdfDoc.embedPng(_base64ToArrayBuffer(base64.iconFlagYellow));
|
|
71
|
+
const iconStability = await pdfDoc.embedPng(_base64ToArrayBuffer(base64.iconStability));
|
|
72
|
+
const iconThumbprintGreen = await pdfDoc.embedPng(_base64ToArrayBuffer(base64.iconThumbprintGreen));
|
|
73
|
+
const iconThumbprintRed = await pdfDoc.embedPng(_base64ToArrayBuffer(base64.iconThumbprintRed));
|
|
74
|
+
|
|
75
|
+
// Initialize Form For Population
|
|
53
76
|
const form = pdfDoc.getForm();
|
|
54
77
|
|
|
55
|
-
//
|
|
56
|
-
form.getTextField("Report Title").setText();
|
|
57
|
-
form.getTextField("Technician Name").setText();
|
|
58
|
-
form.getTextField("Date of Service Cover").setText();
|
|
59
|
-
form.getTextField("Time of Service Cover").setText();
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
if (
|
|
78
|
+
// Populate Cover Sheet
|
|
79
|
+
form.getTextField("Report Title").setText(payload.meta.report_title);
|
|
80
|
+
form.getTextField("Technician Name").setText(payload.meta.technician_name);
|
|
81
|
+
form.getTextField("Date of Service Cover").setText(payload.meta.date_of_service);
|
|
82
|
+
form.getTextField("Time of Service Cover").setText(payload.meta.time_of_service);
|
|
83
|
+
if (companyLogo) form.getButton("Company Logo").setImage(companyLogo);
|
|
84
|
+
if (profilePicture) form.getButton("Profile Picture").setImage(profilePicture);
|
|
85
|
+
if (geolocationMap) form.getButton("Photo Equipment").setImage(geolocationMap);
|
|
86
|
+
|
|
87
|
+
// Populate Vitals Measurements
|
|
88
|
+
if (payload.diagnostics) {
|
|
66
89
|
for (let i = 0; i < 9; i++) {
|
|
67
|
-
|
|
68
|
-
if (d) {
|
|
90
|
+
if (payload.diagnostics[i]) {
|
|
69
91
|
let diagnosticIcon = iconFlagBlack;
|
|
70
|
-
if (
|
|
92
|
+
if (payload.diagnostics[i].type === 'stability')
|
|
71
93
|
diagnosticIcon = iconStability;
|
|
72
|
-
else if (
|
|
94
|
+
else if (payload.diagnostics[i].score > 1 && payload.diagnostics[i].score < 10) {
|
|
73
95
|
diagnosticIcon = iconFlagRed;
|
|
74
|
-
|
|
75
|
-
} else if (d.score >= 10 && d.score < 15)
|
|
96
|
+
} else if (payload.diagnostics[i].score >= 10 && payload.diagnostics[i].score < 15)
|
|
76
97
|
diagnosticIcon = iconFlagYellow;
|
|
77
98
|
form.getButton(`ImageDiagnostics${i+1}_af_image`).setImage(diagnosticIcon);
|
|
78
|
-
form.getTextField(`SystemDiagnostics${i+1}`).setText(`${
|
|
79
|
-
form.getTextField(`SystemDiagnostics${i+1}a`).setText(`${
|
|
99
|
+
form.getTextField(`SystemDiagnostics${i+1}`).setText(`${payload.diagnostics[i].title}`);
|
|
100
|
+
form.getTextField(`SystemDiagnostics${i+1}a`).setText(`${payload.diagnostics[i].score}`);
|
|
80
101
|
}
|
|
81
102
|
}
|
|
82
103
|
} else {
|
|
83
104
|
form.getButton("ImageDiagnostics1_af_image").setImage(iconFlagGreen);
|
|
84
105
|
form.getTextField("SystemDiagnostics1").setText("No system-wide issues were detected.");
|
|
85
106
|
}
|
|
86
|
-
if (test.testInfo.score_deduction) {
|
|
87
|
-
scoreDeduction = test.testInfo.score_deduction;
|
|
88
|
-
}
|
|
89
107
|
|
|
90
|
-
let systemScorePercentage = +(100 - +(
|
|
108
|
+
let systemScorePercentage = +(100 - +(payload.meta.score_deduction.toFixed(0)));
|
|
91
109
|
let systemScoreGrade = getGradeFromScore(systemScorePercentage);
|
|
92
110
|
let systemScoreColor = getColorFromGrade(systemScoreGrade);
|
|
93
|
-
|
|
94
|
-
// get text fields
|
|
95
111
|
let textFields = getTextFields(payload);
|
|
96
112
|
|
|
97
|
-
//
|
|
113
|
+
// customer data
|
|
98
114
|
let dateTimePlacement = "Upper";
|
|
99
115
|
let e = "";
|
|
100
116
|
let d = "";
|
|
@@ -123,7 +139,7 @@ export async function generateReport(payload) {
|
|
|
123
139
|
form.getTextField('TimeOfServiceUpper').setText(date.toLocaleTimeString("en-US"));
|
|
124
140
|
}
|
|
125
141
|
|
|
126
|
-
//
|
|
142
|
+
// vitals measurement values
|
|
127
143
|
form.getTextField(`YourSystemScore${systemScoreColor}`).setText(`${systemScorePercentage}% ${systemScoreGrade}`);
|
|
128
144
|
form.getTextField('Superheat').setText(`${textFields.superheat} °${payload.units.temperature}`);
|
|
129
145
|
form.getTextField('Subcooling').setText(`${textFields.subcooling} °${payload.units.temperature}`);
|
|
@@ -132,7 +148,7 @@ export async function generateReport(payload) {
|
|
|
132
148
|
form.getTextField('TotalExternalStaticPressure').setText(`${textFields.tesp} inH2O`);
|
|
133
149
|
form.getTextField('FilterFaceVelocity').setText(`${textFields.fltrFace} FPM`);
|
|
134
150
|
|
|
135
|
-
//
|
|
151
|
+
// Populate Vitals Score Breakdown
|
|
136
152
|
let lossColor = textFields.ageLosses < 3 ? "Green" : "Red";
|
|
137
153
|
form.getTextField(`AgeLosses${lossColor}`).setText(`- ${textFields.ageLosses}`);
|
|
138
154
|
lossColor = textFields.tempSplitLosses < 3 ? "Green" : "Red";
|
|
@@ -145,16 +161,16 @@ export async function generateReport(payload) {
|
|
|
145
161
|
form.getTextField(`RefrigerantChargeIssues${lossColor}`).setText(`- ${textFields.refChargeLosses}`);
|
|
146
162
|
form.getTextField('YourSystemScorePage2').setText(`${systemScorePercentage}% ${systemScoreGrade}`);
|
|
147
163
|
|
|
148
|
-
//
|
|
164
|
+
// target & range icons
|
|
149
165
|
const measureLabels = ["Superheat", "Subcooling", "Condenser", "TempSplit", "Tesp", "FilterFace"];
|
|
150
166
|
const targetKeys = ["superheat", "subcooling", "approach", "temperature_split", "pressure_static_total_external", "velocity_face_filter1"];
|
|
151
167
|
for (let i = 0; i < measureLabels.length; i++) {
|
|
152
168
|
let iconPlacement = "Mid";
|
|
153
169
|
let icon = iconRangeRed;
|
|
154
|
-
let actual = +test.testInfo.data[targetKeys[i]];
|
|
155
|
-
let mid = +test.testInfo.targets[targetKeys[i]];
|
|
156
|
-
let low = +test.testInfo.targets[`${targetKeys[i]}_ideal_low`];
|
|
157
|
-
let high = +test.testInfo.targets[`${targetKeys[i]}_ideal_high`];
|
|
170
|
+
let actual = +payload.test.testInfo.data[targetKeys[i]];
|
|
171
|
+
let mid = +payload.test.testInfo.targets[targetKeys[i]];
|
|
172
|
+
let low = +payload.test.testInfo.targets[`${targetKeys[i]}_ideal_low`];
|
|
173
|
+
let high = +payload.test.testInfo.targets[`${targetKeys[i]}_ideal_high`];
|
|
158
174
|
low = mid - low;
|
|
159
175
|
high = mid + high;
|
|
160
176
|
if (targetKeys[i] == "pressure_static_total_external") high = mid * 1.4;
|
|
@@ -169,64 +185,92 @@ export async function generateReport(payload) {
|
|
|
169
185
|
form.getTextField(`${measureLabels[i]}Target`).setText(targetZone);
|
|
170
186
|
}
|
|
171
187
|
|
|
172
|
-
//
|
|
188
|
+
// pass fail section
|
|
173
189
|
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"];
|
|
174
190
|
for (let i = 1; i <= passFails.length; i++) {
|
|
175
|
-
let meas = test
|
|
191
|
+
let meas = payload.test[passFails[i - 1]];
|
|
176
192
|
let icon = meas == "Pass" || meas == "High" || meas == "Mid" ? iconRangeGreen : iconRangeRed;
|
|
177
193
|
form.getButton(`ImageSubsystem${i}_af_image`).setImage(icon);
|
|
178
194
|
}
|
|
179
195
|
|
|
180
|
-
//
|
|
181
|
-
form.getTextField(`EI Title 1`).setText();
|
|
182
|
-
form.getTextField(`EI Title 2`).setText();
|
|
183
|
-
form.getTextField(`EI Title 3`).setText();
|
|
196
|
+
// Populate Equipment Info Page
|
|
197
|
+
form.getTextField(`EI Title 1`).setText(payload.equipment_information.title1);
|
|
198
|
+
form.getTextField(`EI Title 2`).setText(payload.equipment_information.title2);
|
|
199
|
+
form.getTextField(`EI Title 3`).setText(payload.equipment_information.title3);
|
|
184
200
|
for (let fieldNum = 1; fieldNum <= 41; fieldNum++) {
|
|
185
201
|
form.getTextField(`Equip_Info-Field ${fieldNum}a`).setText();
|
|
186
202
|
form.getTextField(`Equip_Info-Field ${fieldNum}b`).setText();
|
|
187
203
|
}
|
|
188
204
|
|
|
189
|
-
//
|
|
205
|
+
// Populate System Review Page
|
|
190
206
|
for (let catNum = 1; catNum <= 10; catNum++) {
|
|
191
207
|
for (let fieldNum = 1; fieldNum <= 5; fieldNum++) {
|
|
192
|
-
form.getTextField(`SR Title ${catNum}`).setText();
|
|
208
|
+
form.getTextField(`SR Title ${catNum}`).setText(payload.system_review[`title${catNum}`]);
|
|
193
209
|
form.getTextField(`Category ${catNum} Field ${fieldNum}a`).setText();
|
|
194
210
|
form.getTextField(`Category ${catNum} Field ${fieldNum}b`).setText();
|
|
195
211
|
}
|
|
196
212
|
}
|
|
197
213
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
//
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
}
|
|
214
|
+
// Populate Measurement Details Page
|
|
215
|
+
let rowPrinting = 1;
|
|
216
|
+
let cNums = payload.meta.number_of_measurement_columns;
|
|
217
|
+
form.getTextField(`MD${cNums} Title 1`).setText(payload.measurement_details.title1);
|
|
218
|
+
form.getTextField(`MD${cNums} Title 2`).setText(payload.measurement_details.title2);
|
|
219
|
+
if (cNums >= 3) form.getTextField(`MD${cNums} Title 3`).setText(payload.measurement_details.title3);
|
|
220
|
+
if (cNums == 4) form.getTextField(`MD${cNums} Title 4`).setText(payload.measurement_details.title4);
|
|
221
|
+
|
|
222
|
+
// TODO: Add Section Header
|
|
223
|
+
|
|
224
|
+
for (let rowNum = 0; rowNum < payload.measurement_details.outdoor_measurements.length; rowNum++) {
|
|
225
|
+
let measurement = payload.measurement_details.outdoor_measurements[rowNum];
|
|
226
|
+
form.getTextField(`MD${cNums} ${rowPrinting}1`).setText(`${measurement.label} (${measurement.units})`);
|
|
227
|
+
form.getTextField(`MD${cNums} ${rowPrinting}2`).setText(measurement.testInValue);
|
|
228
|
+
if (cNums >= 3) form.getTextField(`MD${cNums} ${rowPrinting}3`).setText(measurement.testOutValue);
|
|
229
|
+
if (cNums == 4) form.getTextField(`MD${cNums} ${rowPrinting}4`).setText(measurement.referenceKey);
|
|
230
|
+
rowPrinting++;
|
|
211
231
|
}
|
|
212
232
|
|
|
233
|
+
// TODO: Add Section Header
|
|
213
234
|
|
|
235
|
+
// TODO: Add Line Break
|
|
214
236
|
|
|
237
|
+
for (let rowNum = 0; rowNum < payload.measurement_details.weather_data.length; rowNum++) {
|
|
238
|
+
let measurement = payload.measurement_details.weather_data[rowNum];
|
|
239
|
+
form.getTextField(`MD${cNums} ${rowPrinting}1`).setText(`${measurement.label} (${measurement.units})`);
|
|
240
|
+
form.getTextField(`MD${cNums} ${rowPrinting}2`).setText(measurement.testInValue);
|
|
241
|
+
if (cNums >= 3) form.getTextField(`MD${cNums} ${rowPrinting}3`).setText(measurement.testOutValue);
|
|
242
|
+
if (cNums == 4) form.getTextField(`MD${cNums} ${rowPrinting}4`).setText(measurement.referenceKey);
|
|
243
|
+
rowPrinting++;
|
|
244
|
+
}
|
|
215
245
|
|
|
246
|
+
// TODO: Add Section Header
|
|
216
247
|
|
|
248
|
+
// TODO: Add Line Break
|
|
217
249
|
|
|
250
|
+
for (let rowNum = 0; rowNum < payload.measurement_details.indoor_measurements.length; rowNum++) {
|
|
251
|
+
let measurement = payload.measurement_details.indoor_measurements[rowNum];
|
|
252
|
+
form.getTextField(`MD${cNums} ${rowPrinting}1`).setText(`${measurement.label} (${measurement.units})`);
|
|
253
|
+
form.getTextField(`MD${cNums} ${rowPrinting}2`).setText(measurement.testInValue);
|
|
254
|
+
if (cNums >= 3) form.getTextField(`MD${cNums} ${rowPrinting}3`).setText(measurement.testOutValue);
|
|
255
|
+
if (cNums == 4) form.getTextField(`MD${cNums} ${rowPrinting}4`).setText(measurement.referenceKey);
|
|
256
|
+
rowPrinting++;
|
|
257
|
+
}
|
|
218
258
|
|
|
259
|
+
// TODO: Duplicate Active Measurement Details Page
|
|
219
260
|
|
|
261
|
+
// TODO: Populate Performance Calculations
|
|
220
262
|
|
|
221
|
-
//
|
|
263
|
+
// Populate Photo Page(s)
|
|
222
264
|
|
|
265
|
+
// TODO: Duplicate Active Photo Page As Needed
|
|
223
266
|
|
|
267
|
+
// Flatten Form, Convert & Return PDF as Base64
|
|
224
268
|
form.flatten();
|
|
225
269
|
const pdfBase64 = await pdfDoc.saveAsBase64({ dataUri: true });
|
|
270
|
+
console.log(pdfBase64);
|
|
226
271
|
return pdfBase64;
|
|
227
272
|
}
|
|
228
273
|
|
|
229
|
-
|
|
230
274
|
function getGradeFromScore(score) {
|
|
231
275
|
let grade = "F";
|
|
232
276
|
if (score == 100) return "A+";
|
|
@@ -252,7 +296,6 @@ function getColorFromGrade(grade) {
|
|
|
252
296
|
}
|
|
253
297
|
|
|
254
298
|
function getTextFields(payload) {
|
|
255
|
-
let test = payload.project.tests[0];
|
|
256
299
|
return {
|
|
257
300
|
"cName": payload.site.customer.first_name && payload.site.customer.last_name ? `${payload.site.customer.first_name} ${payload.site.customer.last_name}` : "",
|
|
258
301
|
"address": payload.site.location.address ? payload.site.location.address : "",
|
|
@@ -260,17 +303,17 @@ function getTextFields(payload) {
|
|
|
260
303
|
"city": payload.site.location.city ? payload.site.location.city : "",
|
|
261
304
|
"state": payload.site.location.state ? `, ${payload.site.location.state}` : "",
|
|
262
305
|
"zip": payload.site.location.zip ? ` ${payload.site.location.zip}` : "",
|
|
263
|
-
"superheat": test.testInfo.data.superheat ? (+test.testInfo.data.superheat).toFixed(1) : "--",
|
|
264
|
-
"subcooling": test.testInfo.data.subcooling ? (+test.testInfo.data.subcooling).toFixed(1) : "--",
|
|
265
|
-
"approach": test.testInfo.data.approach ? (+test.testInfo.data.approach).toFixed(1) : "--",
|
|
266
|
-
"tempSplit": test.testInfo.data.temperature_split ? (+test.testInfo.data.temperature_split).toFixed(1) : "--",
|
|
267
|
-
"tesp": test.testInfo.data.pressure_static_total_external ? (+test.testInfo.data.pressure_static_total_external).toFixed(2) : "--",
|
|
268
|
-
"fltrFace": test.testInfo.data.velocity_face_filter1 ? (+test.testInfo.data.velocity_face_filter1).toFixed(1) : "--",
|
|
269
|
-
"ageLosses": test.testInfo.data.age_loss ? (+test.testInfo.data.age_loss).toFixed(0) : 0,
|
|
270
|
-
"tempSplitLosses": test.testInfo.data.temp_split_loss ? (+test.testInfo.data.temp_split_loss).toFixed(0) : 0,
|
|
271
|
-
"staticLosses": test.testInfo.data.static_loss ? (+test.testInfo.data.static_loss).toFixed(0) : 0,
|
|
272
|
-
"approachLosses": test.testInfo.data.approach_loss ? (+test.testInfo.data.approach_loss).toFixed(0) : 0,
|
|
273
|
-
"refChargeLosses": test.testInfo.data.refrigerant_charge_loss ? (+test.testInfo.data.refrigerant_charge_loss).toFixed(0) : 0
|
|
306
|
+
"superheat": payload.test.testInfo.data.superheat ? (+payload.test.testInfo.data.superheat).toFixed(1) : "--",
|
|
307
|
+
"subcooling": payload.test.testInfo.data.subcooling ? (+payload.test.testInfo.data.subcooling).toFixed(1) : "--",
|
|
308
|
+
"approach": payload.test.testInfo.data.approach ? (+payload.test.testInfo.data.approach).toFixed(1) : "--",
|
|
309
|
+
"tempSplit": payload.test.testInfo.data.temperature_split ? (+payload.test.testInfo.data.temperature_split).toFixed(1) : "--",
|
|
310
|
+
"tesp": payload.test.testInfo.data.pressure_static_total_external ? (+payload.test.testInfo.data.pressure_static_total_external).toFixed(2) : "--",
|
|
311
|
+
"fltrFace": payload.test.testInfo.data.velocity_face_filter1 ? (+payload.test.testInfo.data.velocity_face_filter1).toFixed(1) : "--",
|
|
312
|
+
"ageLosses": payload.test.testInfo.data.age_loss ? (+payload.test.testInfo.data.age_loss).toFixed(0) : 0,
|
|
313
|
+
"tempSplitLosses": payload.test.testInfo.data.temp_split_loss ? (+payload.test.testInfo.data.temp_split_loss).toFixed(0) : 0,
|
|
314
|
+
"staticLosses": payload.test.testInfo.data.static_loss ? (+payload.test.testInfo.data.static_loss).toFixed(0) : 0,
|
|
315
|
+
"approachLosses": payload.test.testInfo.data.approach_loss ? (+payload.test.testInfo.data.approach_loss).toFixed(0) : 0,
|
|
316
|
+
"refChargeLosses": payload.test.testInfo.data.refrigerant_charge_loss ? (+payload.test.testInfo.data.refrigerant_charge_loss).toFixed(0) : 0
|
|
274
317
|
}
|
|
275
318
|
}
|
|
276
319
|
|