@measurequick/measurequick-report-generator 1.4.25 → 1.4.27
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 +1 -1
- package/report-gen-scripts/acca-certificate.js +2 -2
- package/report-gen-scripts/bluvac-report.js +2 -2
- package/report-gen-scripts/corrective-measures.js +2 -2
- package/report-gen-scripts/cover-page.js +2 -2
- package/report-gen-scripts/energy-star-certificate.js +2 -2
- package/report-gen-scripts/franklin-energy-report.js +2 -2
- package/report-gen-scripts/full-report.js +16 -14
- package/report-gen-scripts/measurement-details-acca.js +2 -2
- package/report-gen-scripts/measurement-details.js +8 -6
- package/report-gen-scripts/photos-report-s3.js +2 -2
- package/report-gen-scripts/photos-report.js +2 -2
- package/report-gen-scripts/ptcs-heat-pump-report.js +2 -2
- package/report-gen-scripts/sign-terms-conditions.js +2 -2
- package/report-gen-scripts/system-info-page.js +2 -2
- package/report-gen-scripts/vitals-cooling-report.js +2 -2
- package/report-gen-scripts/vitals-heating-report.js +2 -2
- package/util.js +60 -0
package/package.json
CHANGED
|
@@ -22,8 +22,8 @@ export async function getReport(payload) {
|
|
|
22
22
|
|
|
23
23
|
// flatten and return as base64
|
|
24
24
|
form.flatten();
|
|
25
|
-
|
|
26
|
-
return { code: 200, pdf:
|
|
25
|
+
const pdfBase64 = await pdfDoc.saveAsBase64({ dataUri: true });
|
|
26
|
+
return { code: 200, pdf: pdfBase64 };
|
|
27
27
|
} catch (error) {
|
|
28
28
|
return { code: 400, error: error };
|
|
29
29
|
}
|
|
@@ -7,8 +7,8 @@ import * as util from '../util.js';
|
|
|
7
7
|
export async function getReport(payload) {
|
|
8
8
|
try {
|
|
9
9
|
const pdfDoc = await PDFDocument.load(util._base64ToArrayBuffer(payload.meta.base64));
|
|
10
|
-
|
|
11
|
-
return { code: 200, pdf:
|
|
10
|
+
const pdfBase64 = await pdfDoc.saveAsBase64({ dataUri: true });
|
|
11
|
+
return { code: 200, pdf: pdfBase64 };
|
|
12
12
|
} catch (error) {
|
|
13
13
|
return { code: 400, error: error };
|
|
14
14
|
}
|
|
@@ -128,8 +128,8 @@ export async function getReport(payload) {
|
|
|
128
128
|
/** END CORRECTIVE ACTIONS **/
|
|
129
129
|
|
|
130
130
|
form.flatten();
|
|
131
|
-
|
|
132
|
-
return { code: 200, pdf:
|
|
131
|
+
const pdfBase64 = await pdfDoc.saveAsBase64({ dataUri: true });
|
|
132
|
+
return { code: 200, pdf: pdfBase64 };
|
|
133
133
|
} catch (error) {
|
|
134
134
|
return { code: 400, error: error };
|
|
135
135
|
}
|
|
@@ -31,8 +31,8 @@ export async function getReport(payload) {
|
|
|
31
31
|
if (companyImage) form.getButton("Company Logo").setImage(companyImage);
|
|
32
32
|
} else if (companyImage) form.getButton("Company Logo Full").setImage(companyImage);
|
|
33
33
|
form.flatten();
|
|
34
|
-
|
|
35
|
-
return { code: 200, pdf:
|
|
34
|
+
const pdfBase64 = await pdfDoc.saveAsBase64({ dataUri: true });
|
|
35
|
+
return { code: 200, pdf: pdfBase64 };
|
|
36
36
|
} catch (error) {
|
|
37
37
|
return { code: 400, error: error };
|
|
38
38
|
}
|
|
@@ -25,8 +25,8 @@ export async function getReport(payload) {
|
|
|
25
25
|
|
|
26
26
|
// flatten and return as base64
|
|
27
27
|
form.flatten();
|
|
28
|
-
|
|
29
|
-
return { code: 200, pdf:
|
|
28
|
+
const pdfBase64 = await pdfDoc.saveAsBase64({ dataUri: true });
|
|
29
|
+
return { code: 200, pdf: pdfBase64 };
|
|
30
30
|
} catch (error) {
|
|
31
31
|
return { code: 400, error: error };
|
|
32
32
|
}
|
|
@@ -21,8 +21,8 @@ export async function getReport(payload) {
|
|
|
21
21
|
|
|
22
22
|
// flatten and return as base64
|
|
23
23
|
form.flatten();
|
|
24
|
-
|
|
25
|
-
return { code: 200, pdf:
|
|
24
|
+
const pdfBase64 = await pdfDoc.saveAsBase64({ dataUri: true });
|
|
25
|
+
return { code: 200, pdf: pdfBase64 };
|
|
26
26
|
} catch (error) {
|
|
27
27
|
return { code: 400, error: error };
|
|
28
28
|
}
|
|
@@ -155,19 +155,21 @@ export async function getReport(payload) {
|
|
|
155
155
|
}
|
|
156
156
|
|
|
157
157
|
/******** CORRECTIVE MEASURES (1-2 PAGES) *********/
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
158
|
+
if (!util.projectIsGoettl(payload.project)){
|
|
159
|
+
try {
|
|
160
|
+
let correctiveMeasuresBase64 = await correctiveMeasures.getReport(payload);
|
|
161
|
+
const correctiveMeasuresDoc = correctiveMeasuresBase64 ? await PDFDocument.load(util._base64ToArrayBuffer(correctiveMeasuresBase64)) : false;
|
|
162
|
+
const [_correctiveMeasuresDoc] = correctiveMeasuresDoc ? await coreDoc.copyPages(correctiveMeasuresDoc, [0]) : false;
|
|
163
|
+
if (correctiveMeasuresDoc.getPages().length > 1) {
|
|
164
|
+
const [_correctiveMeasuresDocPage2] = correctiveMeasuresDoc ? await coreDoc.copyPages(correctiveMeasuresDoc, [1]) : false;
|
|
165
|
+
if (_correctiveMeasuresDoc) coreDoc.insertPage(coreDoc.getPages().length, _correctiveMeasuresDoc);
|
|
166
|
+
if (_correctiveMeasuresDocPage2) coreDoc.insertPage(coreDoc.getPages().length, _correctiveMeasuresDocPage2);
|
|
167
|
+
} else if (_correctiveMeasuresDoc) coreDoc.insertPage(coreDoc.getPages().length, _correctiveMeasuresDoc);
|
|
168
|
+
} catch (error) {
|
|
169
|
+
return { code: 400, error: error };
|
|
170
|
+
}
|
|
169
171
|
}
|
|
170
|
-
|
|
172
|
+
|
|
171
173
|
/******** PHOTOS (X PAGES) *********/
|
|
172
174
|
try {
|
|
173
175
|
let selectedPhotosReport = payload.meta.origin == 'virtuoso' ? photosReportS3 : photosReport;
|
|
@@ -191,6 +193,6 @@ export async function getReport(payload) {
|
|
|
191
193
|
return { code: 400, error: error };
|
|
192
194
|
}
|
|
193
195
|
|
|
194
|
-
|
|
195
|
-
return { code: 200, pdf:
|
|
196
|
+
const pdfBase64 = await coreDoc.saveAsBase64({ dataUri: true });
|
|
197
|
+
return { code: 200, pdf: pdfBase64 };
|
|
196
198
|
}
|
|
@@ -167,8 +167,8 @@ export async function getReport(payload) { // DAVID TODO
|
|
|
167
167
|
pdfDocPg1.insertPage(1, secondPage);
|
|
168
168
|
}
|
|
169
169
|
|
|
170
|
-
|
|
171
|
-
return { code: 200, pdf:
|
|
170
|
+
const pdfBase64 = await pdfDocPg1.saveAsBase64({ dataUri: true });
|
|
171
|
+
return { code: 200, pdf: pdfBase64 };
|
|
172
172
|
} catch (error) {
|
|
173
173
|
return { code: 400, error: error };
|
|
174
174
|
}
|
|
@@ -16,6 +16,8 @@ export async function getReport(payload) {
|
|
|
16
16
|
const formPg1 = pdfDocPg1.getForm();
|
|
17
17
|
const formPg2 = pdfDocPg2.getForm();
|
|
18
18
|
|
|
19
|
+
const isGoettlInstall = util.projectIsGoettl(payload.project);
|
|
20
|
+
|
|
19
21
|
let mapImagePg1, mapImagePg2;
|
|
20
22
|
if (payload.map && typeof payload.map == 'string') {
|
|
21
23
|
if (payload.map.includes("image/jpeg")) {
|
|
@@ -141,10 +143,10 @@ export async function getReport(payload) {
|
|
|
141
143
|
let condDisplay = util.getElectricalData(test, "", embeddedIcons);
|
|
142
144
|
let ahuDisplay = util.getElectricalData(test, "_ahu", embeddedIcons);
|
|
143
145
|
if (measurement) {
|
|
144
|
-
if (measurement.label == "Cond. Volts" && condDisplay.voltageIcon) form.getButton(`Block${blockNum}-Row${rowNum}-Col4`).setImage(condDisplay.voltageIcon);
|
|
145
|
-
else if (measurement.label == "Cond. Amps" && condDisplay.amperageIcon) form.getButton(`Block${blockNum}-Row${rowNum}-Col4`).setImage(condDisplay.amperageIcon);
|
|
146
|
-
else if (measurement.label == "AHU Volts" && ahuDisplay.voltageIcon) form.getButton(`Block${blockNum}-Row${rowNum}-Col4`).setImage(ahuDisplay.voltageIcon);
|
|
147
|
-
else if (measurement.label == "AHU Amps" && ahuDisplay.amperageIcon) form.getButton(`Block${blockNum}-Row${rowNum}-Col4`).setImage(ahuDisplay.amperageIcon);
|
|
146
|
+
if (!isGoettlInstall && measurement.label == "Cond. Volts" && condDisplay.voltageIcon) form.getButton(`Block${blockNum}-Row${rowNum}-Col4`).setImage(condDisplay.voltageIcon);
|
|
147
|
+
else if (!isGoettlInstall && measurement.label == "Cond. Amps" && condDisplay.amperageIcon) form.getButton(`Block${blockNum}-Row${rowNum}-Col4`).setImage(condDisplay.amperageIcon);
|
|
148
|
+
else if (!isGoettlInstall && measurement.label == "AHU Volts" && ahuDisplay.voltageIcon) form.getButton(`Block${blockNum}-Row${rowNum}-Col4`).setImage(ahuDisplay.voltageIcon);
|
|
149
|
+
else if (!isGoettlInstall && measurement.label == "AHU Amps" && ahuDisplay.amperageIcon) form.getButton(`Block${blockNum}-Row${rowNum}-Col4`).setImage(ahuDisplay.amperageIcon);
|
|
148
150
|
let units = measurement.units ? `(${measurement.units})` : "";
|
|
149
151
|
let altLabel = "";
|
|
150
152
|
if (payload.meta.report_mode != 'heating' && blockNum == 1 && (rowNum == 4 || rowNum == 5 || rowNum == 6 || rowNum == 9)) altLabel = "c";
|
|
@@ -192,8 +194,8 @@ export async function getReport(payload) {
|
|
|
192
194
|
pdfDocPg1.insertPage(1, secondPage);
|
|
193
195
|
}
|
|
194
196
|
|
|
195
|
-
|
|
196
|
-
return { code: 200, pdf:
|
|
197
|
+
const pdfBase64 = await pdfDocPg1.saveAsBase64({ dataUri: true });
|
|
198
|
+
return { code: 200, pdf: pdfBase64 };
|
|
197
199
|
} catch (error) {
|
|
198
200
|
return { code: 400, error: error };
|
|
199
201
|
}
|
|
@@ -69,8 +69,8 @@ export async function getReport(payload) {
|
|
|
69
69
|
const [nextPage] = await pdfDoc.copyPages(docs[i], [0]);
|
|
70
70
|
pdfDoc.insertPage(i, nextPage);
|
|
71
71
|
}
|
|
72
|
-
|
|
73
|
-
return { code: 200, pdf:
|
|
72
|
+
const pdfBase64 = await pdfDoc.saveAsBase64({ dataUri: true });
|
|
73
|
+
return { code: 200, pdf: pdfBase64 };
|
|
74
74
|
}
|
|
75
75
|
catch (error) {
|
|
76
76
|
return { code: 400, error: error };
|
|
@@ -133,8 +133,8 @@ export async function getReport(payload) {
|
|
|
133
133
|
const [nextPage] = await pdfDoc.copyPages(docs[i], [0]);
|
|
134
134
|
pdfDoc.insertPage(i, nextPage);
|
|
135
135
|
}
|
|
136
|
-
|
|
137
|
-
return { code: 200, pdf:
|
|
136
|
+
const pdfBase64 = await pdfDoc.saveAsBase64({ dataUri: true });
|
|
137
|
+
return { code: 200, pdf: pdfBase64 };
|
|
138
138
|
}
|
|
139
139
|
else {
|
|
140
140
|
return false;
|
|
@@ -22,8 +22,8 @@ export async function getReport(payload) {
|
|
|
22
22
|
if (imageStripHeat) form.getButton("customImage1").setImage(imageStripHeat);
|
|
23
23
|
if (imageHpThermostat) form.getButton("customImage2").setImage(imageHpThermostat);
|
|
24
24
|
form.flatten();
|
|
25
|
-
|
|
26
|
-
return { code: 200, pdf:
|
|
25
|
+
const pdfBase64 = await pdfDoc.saveAsBase64({ dataUri: true });
|
|
26
|
+
return { code: 200, pdf: pdfBase64 };
|
|
27
27
|
}
|
|
28
28
|
catch (error) {
|
|
29
29
|
return { code: 400, error: error };
|
|
@@ -15,8 +15,8 @@ export async function getReport(payload) {
|
|
|
15
15
|
const form = pdfDoc.getForm();
|
|
16
16
|
form.getButton("SignatureCustomer").setImage(signature);
|
|
17
17
|
form.flatten();
|
|
18
|
-
|
|
19
|
-
return { code: 200, pdf:
|
|
18
|
+
const pdfBase64 = await pdfDoc.saveAsBase64({ dataUri: true });
|
|
19
|
+
return { code: 200, pdf: pdfBase64 };
|
|
20
20
|
} else return false;
|
|
21
21
|
}
|
|
22
22
|
catch (error) {
|
|
@@ -12,8 +12,8 @@ export async function getReport(payload) {
|
|
|
12
12
|
const mqLogo = await pdfDoc.embedPng(mqLogoBytes);
|
|
13
13
|
form.getButton("FullWidthLogo").setImage(mqLogo);
|
|
14
14
|
form.flatten();
|
|
15
|
-
|
|
16
|
-
return { code: 200, pdf:
|
|
15
|
+
const pdfBase64 = await pdfDoc.saveAsBase64({ dataUri: true });
|
|
16
|
+
return { code: 200, pdf: pdfBase64 };
|
|
17
17
|
} catch (error) {
|
|
18
18
|
return { code: 400, error: error };
|
|
19
19
|
}
|
|
@@ -204,8 +204,8 @@ export async function getReport(payload, _test) {
|
|
|
204
204
|
|
|
205
205
|
// flatten and return as base64
|
|
206
206
|
form.flatten();
|
|
207
|
-
|
|
208
|
-
return { code: 200, pdf:
|
|
207
|
+
const pdfBase64 = await pdfDoc.saveAsBase64({ dataUri: true });
|
|
208
|
+
return { code: 200, pdf: pdfBase64 };
|
|
209
209
|
} catch (error) {
|
|
210
210
|
return { code: 400, error: error };
|
|
211
211
|
}
|
|
@@ -231,8 +231,8 @@ export async function getReport(payload, _test) {
|
|
|
231
231
|
|
|
232
232
|
// flatten and return as base64
|
|
233
233
|
form.flatten();
|
|
234
|
-
|
|
235
|
-
return { code: 200, pdf:
|
|
234
|
+
const pdfBase64 = await pdfDoc.saveAsBase64({ dataUri: true });
|
|
235
|
+
return { code: 200, pdf: pdfBase64 };
|
|
236
236
|
} catch (error) {
|
|
237
237
|
return { code: 400, error: error };
|
|
238
238
|
}
|
package/util.js
CHANGED
|
@@ -19,6 +19,66 @@ export function checkCompanyLogo(meta) {
|
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
+
export function projectIsGoettl(project) {
|
|
23
|
+
if (!project) return false;
|
|
24
|
+
let typeValid = (project.specialProjectType &&
|
|
25
|
+
(project.specialProjectType === 'Goettl - Package Heat Pump' ||
|
|
26
|
+
project.specialProjectType === 'Goettl - Heat Pump Horizontal' ||
|
|
27
|
+
project.specialProjectType === 'Goettl - Upflow Split' ||
|
|
28
|
+
project.specialProjectType === 'Package Heat Pumps' ||
|
|
29
|
+
project.specialProjectType === 'Horizontal Split Heat Pumps' ||
|
|
30
|
+
project.specialProjectType === 'Horizontal Hydronic Attic' ||
|
|
31
|
+
project.specialProjectType === 'Ceiling Mount Units' ||
|
|
32
|
+
project.specialProjectType === 'Wall Mounted Units (Heat Pump & Hydronic)' ||
|
|
33
|
+
project.specialProjectType === 'Up Flow Split Heat Pumps' ||
|
|
34
|
+
project.specialProjectType === 'Stand Alone Hydronic Up Flow Garage' ||
|
|
35
|
+
project.specialProjectType === 'Manufactured Home Split Heat Pumps' ||
|
|
36
|
+
project.specialProjectType === 'Manufactured Home Package Units' ||
|
|
37
|
+
this.projectIsGoettlGas(project))) ? true : false;
|
|
38
|
+
let subTypeValid = (project.specialProjectSubType &&
|
|
39
|
+
(project.specialProjectSubType === 'Goettl - Package Heat Pump' ||
|
|
40
|
+
project.specialProjectSubType === 'Goettl - Heat Pump Horizontal' ||
|
|
41
|
+
project.specialProjectSubType === 'Goettl - Upflow Split' ||
|
|
42
|
+
project.specialProjectSubType === 'Package Heat Pumps' ||
|
|
43
|
+
project.specialProjectSubType === 'Horizontal Split Heat Pumps' ||
|
|
44
|
+
project.specialProjectSubType === 'Horizontal Hydronic Attic' ||
|
|
45
|
+
project.specialProjectSubType === 'Ceiling Mount Units' ||
|
|
46
|
+
project.specialProjectSubType === 'Wall Mounted Units (Heat Pump & Hydronic)' ||
|
|
47
|
+
project.specialProjectSubType === 'Up Flow Split Heat Pumps' ||
|
|
48
|
+
project.specialProjectSubType === 'Stand Alone Hydronic Up Flow Garage' ||
|
|
49
|
+
project.specialProjectSubType === 'Manufactured Home Split Heat Pumps' ||
|
|
50
|
+
project.specialProjectSubType === 'Manufactured Home Package Units' ||
|
|
51
|
+
this.projectIsGoettlGas(project))) ? true : false;
|
|
52
|
+
return (typeValid || subTypeValid) ? true : false;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export function projectIsGoettlGas(project) {
|
|
56
|
+
if (!project) return false;
|
|
57
|
+
let typeValid = (project.specialProjectType &&
|
|
58
|
+
(project.specialProjectType === 'Goettl - Gas Package Unit' ||
|
|
59
|
+
project.specialProjectType === 'Goettl - Horizontal Split Gas' ||
|
|
60
|
+
project.specialProjectType === 'Goettl - Upflow Gas Split' ||
|
|
61
|
+
project.specialProjectType === 'Package Gas Units' ||
|
|
62
|
+
project.specialProjectType === 'Horizontal Split Gas Units' ||
|
|
63
|
+
project.specialProjectType === 'Condensing Category 4 Horizontal Furnace Splits' ||
|
|
64
|
+
project.specialProjectType === 'Up Flow Split Gas Units' ||
|
|
65
|
+
project.specialProjectType === 'Condensing Category 4 Up Flow Furnace Splits' ||
|
|
66
|
+
project.specialProjectType === 'Manufactured Home Split Gas Units' ||
|
|
67
|
+
project.specialProjectType === 'Down Flow Manufactured Home Furnaces')) ? true : false;
|
|
68
|
+
let subTypeValid = (project.specialProjectSubType &&
|
|
69
|
+
(project.specialProjectSubType === 'Goettl - Gas Package Unit' ||
|
|
70
|
+
project.specialProjectSubType === 'Goettl - Horizontal Split Gas' ||
|
|
71
|
+
project.specialProjectSubType === 'Goettl - Upflow Gas Split' ||
|
|
72
|
+
project.specialProjectSubType === 'Package Gas Units' ||
|
|
73
|
+
project.specialProjectSubType === 'Horizontal Split Gas Units' ||
|
|
74
|
+
project.specialProjectSubType === 'Condensing Category 4 Horizontal Furnace Splits' ||
|
|
75
|
+
project.specialProjectSubType === 'Up Flow Split Gas Units' ||
|
|
76
|
+
project.specialProjectSubType === 'Condensing Category 4 Up Flow Furnace Splits' ||
|
|
77
|
+
project.specialProjectSubType === 'Manufactured Home Split Gas Units' ||
|
|
78
|
+
project.specialProjectSubType === 'Down Flow Manufactured Home Furnaces')) ? true : false;
|
|
79
|
+
return (typeValid || subTypeValid) ? true : false;
|
|
80
|
+
}
|
|
81
|
+
|
|
22
82
|
export function checkProfilePicture(meta) {
|
|
23
83
|
if (meta.pdf_settings.includeProfilePic) {
|
|
24
84
|
|