Speed print resolution.

This commit is contained in:
Patrick Fic
2021-03-03 10:57:31 -08:00
parent 420afc5152
commit 2588fffad3
7 changed files with 163 additions and 26787 deletions

View File

@@ -1,4 +1,4 @@
<babeledit_project version="1.2" be_version="2.7.1">
<babeledit_project be_version="2.7.1" version="1.2">
<!--
BabelEdit project file
@@ -25424,6 +25424,27 @@
</translation>
</translations>
</concept_node>
<concept_node>
<name>coversheet_portrait</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-MX</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-CA</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>diagnostic_authorization</name>
<definition_loaded>false</definition_loaded>
@@ -25487,6 +25508,27 @@
</translation>
</translations>
</concept_node>
<concept_node>
<name>filing_coverhseet_portrait</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-MX</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-CA</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>final_invoice</name>
<definition_loaded>false</definition_loaded>

26777
client/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1541,9 +1541,11 @@
"appointment_confirmation": "Appointment Confirmation",
"appointment_reminder": "Appointment Reminder",
"casl_authorization": "CASL Authorization",
"coversheet_portrait": "Coversheet Portrait",
"diagnostic_authorization": "Diagnostic Authorization",
"estimate": "Estimate Only",
"estimate_detail": "Estimate Details",
"filing_coverhseet_portrait": "Filing Coversheet (Portrait)",
"final_invoice": "Final Invoice",
"fippa_authorization": "FIPPA Authorization",
"glass_express_checklist": "Glass Express Checklist",

View File

@@ -1541,9 +1541,11 @@
"appointment_confirmation": "",
"appointment_reminder": "",
"casl_authorization": "",
"coversheet_portrait": "",
"diagnostic_authorization": "",
"estimate": "",
"estimate_detail": "",
"filing_coverhseet_portrait": "",
"final_invoice": "",
"fippa_authorization": "",
"glass_express_checklist": "",

View File

@@ -1541,9 +1541,11 @@
"appointment_confirmation": "",
"appointment_reminder": "",
"casl_authorization": "",
"coversheet_portrait": "",
"diagnostic_authorization": "",
"estimate": "",
"estimate_detail": "",
"filing_coverhseet_portrait": "",
"final_invoice": "",
"fippa_authorization": "",
"glass_express_checklist": "",

View File

@@ -2,13 +2,13 @@ import { gql } from "@apollo/client";
import { notification } from "antd";
import axios from "axios";
import jsreport from "jsreport-browser-client-dist";
import _ from "lodash";
import moment from "moment";
import { auth } from "../firebase/firebase.utils";
import { setEmailOptions } from "../redux/email/email.actions";
import { store } from "../redux/store";
import client from "../utils/GraphQLClient";
import { TemplateList } from "./TemplateConstants";
import moment from "moment";
const server = process.env.REACT_APP_REPORTS_SERVER_URL;
jsreport.serverUrl = server;
@@ -61,46 +61,23 @@ export async function RenderTemplates(
) {
//Query assets that match the template name. Must be in format <<templateName>>.query
let templateAndData = [];
console.log("About to await all promises.");
await Promise.all(
templateObjects.map(async (template) => {
console.log("executing for", template);
let { contextData, useShopSpecificTemplate } = await fetchContextData(
template
);
templateAndData.push({
templateObject: template,
contextData,
useShopSpecificTemplate,
});
})
);
console.log("All promises awaited.", templateAndData);
let rootTemplate = templateAndData[0];
const pdfOps = [];
for (var i = 1; i < templateAndData.length; i++) {
pdfOps.push({
template: {
name: templateAndData[i].useShopSpecificTemplate
? `/${bodyshop.imexshopid}/${templateAndData[i].templateObject.name}`
: `/${templateAndData[i].templateObject.name}`,
...(renderAsHtml ? {} : { recipe: "chrome-pdf" }),
},
data: {
...templateAndData[i].contextData,
...templateAndData[i].templateObject.variables,
...templateAndData[i].templateObject.context,
headerpath: `/${bodyshop.imexshopid}/header.html`,
bodyshop: bodyshop,
offset: moment().utcOffset(),
},
type: "append",
mergeWholeDocument: true,
renderForEveryPage: true,
});
}
let proms = [];
templateObjects.forEach((template) => {
proms.push(
(async () => {
let { contextData, useShopSpecificTemplate } = await fetchContextData(
template
);
templateAndData.push({
templateObject: template,
contextData,
useShopSpecificTemplate,
});
})()
);
});
await Promise.all(proms);
let rootTemplate = templateAndData.shift();
let reportRequest = {
template: {
@@ -108,15 +85,30 @@ export async function RenderTemplates(
? `/${bodyshop.imexshopid}/${rootTemplate.templateObject.name}`
: `/${rootTemplate.templateObject.name}`,
...(renderAsHtml ? {} : { recipe: "chrome-pdf" }),
pdfOperations: pdfOps,
pdfOperations: templateAndData.map((template) => {
return {
template: {
name: template.useShopSpecificTemplate
? `/${bodyshop.imexshopid}/${template.templateObject.name}`
: `/${template.templateObject.name}`,
...(renderAsHtml ? {} : { recipe: "chrome-pdf" }),
},
type: "append",
mergeWholeDocument: true,
renderForEveryPage: true,
};
}),
},
data: {
...rootTemplate.contextData,
...rootTemplate.templateObject.variables,
...rootTemplate.templateObject.context,
...extend(
rootTemplate.contextData,
...templateAndData.map((temp) => temp.contextData)
),
// ...rootTemplate.templateObject.variables,
// ...rootTemplate.templateObject.context,
headerpath: `/${bodyshop.imexshopid}/header.html`,
bodyshop: bodyshop,
offset: moment().utcOffset(),
},
};
@@ -230,3 +222,23 @@ const fetchContextData = async (templateObject) => {
// console.log("Unable to write to new window.", error);
// }
// };
function extend(o1, o2, o3) {
var result = {},
obj;
for (var i = 0; i < arguments.length; i++) {
obj = arguments[i];
for (var key in obj) {
if (Object.prototype.toString.call(obj[key]) === "[object Object]") {
if (typeof result[key] === "undefined") {
result[key] = {};
}
result[key] = extend(result[key], obj[key]);
} else {
result[key] = obj[key];
}
}
}
return result;
}

View File

@@ -196,6 +196,23 @@ export const TemplateList = (type, context) => {
key: "parts_list",
disabled: false,
},
coversheet_portrait: {
title: i18n.t("printcenter.jobs.coversheet_portrait"),
description: "All Jobs Notes",
subject: `${i18n.t("printcenter.jobs.coversheet_portrait")} - ${
context && context.job && context.job.ro_number
}`,
key: "coversheet_portrait",
disabled: false,
}, filing_coverhseet_portrait: {
title: i18n.t("printcenter.jobs.filing_coverhseet_portrait"),
description: "All Jobs Notes",
subject: `${i18n.t("printcenter.jobs.filing_coverhseet_portrait")} - ${
context && context.job && context.job.ro_number
}`,
key: "filing_coverhseet_portrait",
disabled: false,
},
}
: {}),
...(!type || type === "job_special"