diff --git a/server/data/autohouse.js b/server/data/autohouse.js index f92863395..92851602c 100644 --- a/server/data/autohouse.js +++ b/server/data/autohouse.js @@ -39,7 +39,7 @@ exports.default = async (req, res) => { const { bodyshops } = await client.request(queries.GET_AUTOHOUSE_SHOPS); const specificShopIds = req.body.bodyshopIds; // ['uuid] - const { start, end } = req.body; //YYYY-MM-DD + const { start, end, skipUpload } = req.body; //YYYY-MM-DD const allxmlsToUpload = []; const allErrors = []; try { @@ -107,7 +107,7 @@ exports.default = async (req, res) => { } catch (error) { //Error at the shop level. logger.log("autohouse-error-shop", "ERROR", "api", bodyshop.id, { - error, + ...error, }); allErrors.push({ @@ -125,17 +125,29 @@ exports.default = async (req, res) => { } } - // for (const xmlObj of allxmlsToUpload) { - // fs.writeFileSync(`./logs/${xmlObj.filename}`, xmlObj.xml); - // } + if (skipUpload) { + for (const xmlObj of allxmlsToUpload) { + fs.writeFileSync(`./logs/${xmlObj.filename}`, xmlObj.xml); + } - // res.json(allxmlsToUpload); - // return; + res.json(allxmlsToUpload); + sendServerEmail({ + subject: `Autohouse Report ${moment().format("MM-DD-YY")}`, + text: `Errors: ${allErrors.map((e) => JSON.stringify(e, null, 2))} + Uploaded: ${JSON.stringify( + allxmlsToUpload.map((x) => ({ filename: x.filename, count: x.count })), + null, + 2 + )} + `, + }); + return; + } let sftp = new Client(); sftp.on("error", (errors) => logger.log("autohouse-sftp-error", "ERROR", "api", null, { - errors, + ...errors, }) ); try { @@ -160,7 +172,7 @@ exports.default = async (req, res) => { //***TODO Change filing naming when creating the cron job. IM_ShopInternalName_DDMMYYYY_HHMMSS.xml } catch (error) { logger.log("autohouse-sftp-error", "ERROR", "api", null, { - error, + ...error, }); } finally { sftp.end(); @@ -169,7 +181,7 @@ exports.default = async (req, res) => { subject: `Autohouse Report ${moment().format("MM-DD-YY")}`, text: `Errors: ${allErrors.map((e) => JSON.stringify(e, null, 2))} Uploaded: ${JSON.stringify( - allxmlsToUpload.map((x) => x.filename), + allxmlsToUpload.map((x) => ({ filename: x.filename, count: x.count })), null, 2 )} @@ -185,7 +197,11 @@ const CreateRepairOrderTag = (job, errorCallback) => { //Level 2 if (!job.job_totals) { - errorCallback({ job, error: { toString: () => "No job totals for RO." } }); + errorCallback({ + jobid: jobid, + ro_number: job.ro_number, + error: { toString: () => "No job totals for RO." }, + }); return {}; } @@ -658,7 +674,7 @@ const CreateRepairOrderTag = (job, errorCallback) => { error, }); - errorCallback({ job, error }); + errorCallback({ jobid: jobid, ro_number: job.ro_number, error }); } }; @@ -889,7 +905,9 @@ const GenerateDetailLines = (job, line, statuses) => { OriginalCost: null, OriginalInvoiceNumber: null, PriceEach: line.act_price || 0, - PartNumber: _.escape(line.oem_partno.replace(/[^\x00-\x7F]/g, "")), + PartNumber: line.oem_partno + ? line.oem_partno.replace(/[^\x00-\x7F]/g, "") + : "", ProfitPercent: null, PurchaseOrderNumber: null, Qty: line.part_qty || 0,