Compare commits

...

4 Commits

Author SHA1 Message Date
Allan Carr
35a566cbe5 IO-3462 Project Mexico Mod
Signed-off-by: Allan Carr <allan@imexsystems.ca>
2025-12-10 09:52:04 -08:00
Dave Richer
d1637d2432 Merged in release/2025-12-05 (pull request #2696)
Release/2025 12 05 into master-AIO - IO-3450 IO-3452 IO-3262 - IO-3456 IO-3262
2025-12-06 01:48:37 +00:00
Allan Carr
1c79628613 Merged in feature/IO-3262-Tech-Console-Job-Clock-Out (pull request #2692)
IO-3262 Correction for v_year in Project Mexico

Approved-by: Dave Richer
2025-12-05 19:00:38 +00:00
Allan Carr
521a7084b7 IO-3262 Correction for v_year in Project Mexico
Signed-off-by: Allan Carr <allan@imexsystems.ca>
2025-12-05 09:48:32 -08:00
2 changed files with 65 additions and 63 deletions

View File

@@ -117,13 +117,14 @@ async function processShopData(shopsToProcess, start, end, skipUpload, ignoreDat
imexshopid: shopid, imexshopid: shopid,
json: JSON.stringify(carfaxObject, null, 2), json: JSON.stringify(carfaxObject, null, 2),
filename: `${shopid}_${moment().format("DDMMYYYY_HHMMss")}.json`, filename: `${shopid}_${moment().format("DDMMYYYY_HHMMss")}.json`,
count: carfaxObject.job.length count: carfaxObject?.job?.length || 0
}; };
if (skipUpload) { if (skipUpload) {
fs.writeFileSync(`./logs/${jsonObj.filename}`, jsonObj.json); fs.writeFileSync(`./logs/${jsonObj.filename}`, jsonObj.json);
uploadToS3(jsonObj, S3_BUCKET_NAME); uploadToS3(jsonObj, S3_BUCKET_NAME);
} else { } else {
if (jsonObj.count > 0) {
await uploadViaSFTP(jsonObj); await uploadViaSFTP(jsonObj);
await sendMexicoBillingEmail({ await sendMexicoBillingEmail({
@@ -148,13 +149,14 @@ async function processShopData(shopsToProcess, start, end, skipUpload, ignoreDat
)}` )}`
}); });
} }
}
allJSONResults.push({ jsonObj.count > 0 && allJSONResults.push({
bodyshopid: bodyshop.id, bodyshopid: bodyshop.id,
imexshopid: shopid, imexshopid: shopid,
count: jsonObj.count, count: jsonObj.count,
filename: jsonObj.filename, filename: jsonObj.filename,
result: jsonObj.result result: jsonObj.result || "No Upload Result Available"
}); });
logger.log("CARFAX-RPS-end-shop-extract", "DEBUG", "api", bodyshop.id, { logger.log("CARFAX-RPS-end-shop-extract", "DEBUG", "api", bodyshop.id, {
@@ -234,11 +236,10 @@ const CreateRepairOrderTag = (job, errorCallback) => {
const ret = { const ret = {
ro_number: crypto.createHash("md5").update(job.id, "utf8").digest("hex"), ro_number: crypto.createHash("md5").update(job.id, "utf8").digest("hex"),
v_vin: job.v_vin || "", v_vin: job.v_vin || "",
v_year: job.v_model_yr v_year: (() => {
? parseInt(job.v_model_yr.match(/\d/g)) const y = parseInt(job.v_model_yr);
? parseInt(job.v_model_yr.match(/\d/g).join(""), 10) return isNaN(y) ? null : y < 100 ? y + (y >= (new Date().getFullYear() + 1) % 100 ? 1900 : 2000) : y;
: "" })(),
: "",
v_make: job.v_makedesc || "", v_make: job.v_makedesc || "",
v_model: job.v_model || "", v_model: job.v_model || "",

View File

@@ -160,13 +160,14 @@ async function processShopData(shopsToProcess, start, end, skipUpload, ignoreDat
imexshopid: shopid, imexshopid: shopid,
json: JSON.stringify(carfaxObject, null, 2), json: JSON.stringify(carfaxObject, null, 2),
filename: `${shopid}_${moment().format("DDMMYYYY_HHMMss")}.json`, filename: `${shopid}_${moment().format("DDMMYYYY_HHMMss")}.json`,
count: carfaxObject.job.length count: carfaxObject?.job?.length || 0
}; };
if (skipUpload) { if (skipUpload) {
fs.writeFileSync(`./logs/${jsonObj.filename}`, jsonObj.json); fs.writeFileSync(`./logs/${jsonObj.filename}`, jsonObj.json);
uploadToS3(jsonObj); uploadToS3(jsonObj);
} else { } else {
if (jsonObj.count > 0) {
await uploadViaSFTP(jsonObj); await uploadViaSFTP(jsonObj);
await sendMexicoBillingEmail({ await sendMexicoBillingEmail({
@@ -195,13 +196,14 @@ async function processShopData(shopsToProcess, start, end, skipUpload, ignoreDat
)}` )}`
}); });
} }
}
allJSONResults.push({ allJSONResults.push({
bodyshopid: bodyshop.id, bodyshopid: bodyshop.id,
imexshopid: shopid, imexshopid: shopid,
count: jsonObj.count, count: jsonObj.count,
filename: jsonObj.filename, filename: jsonObj.filename,
result: jsonObj.result result: jsonObj.result || "No Upload Result Available"
}); });
logger.log("CARFAX-end-shop-extract", "DEBUG", "api", bodyshop.id, { logger.log("CARFAX-end-shop-extract", "DEBUG", "api", bodyshop.id, {
@@ -286,11 +288,10 @@ const CreateRepairOrderTag = (job, errorCallback) => {
const ret = { const ret = {
ro_number: crypto.createHash("md5").update(job.ro_number, "utf8").digest("hex"), ro_number: crypto.createHash("md5").update(job.ro_number, "utf8").digest("hex"),
v_vin: job.v_vin || "", v_vin: job.v_vin || "",
v_year: job.v_model_yr v_year: (() => {
? parseInt(job.v_model_yr.match(/\d/g)) const y = parseInt(job.v_model_yr);
? parseInt(job.v_model_yr.match(/\d/g).join(""), 10) return isNaN(y) ? null : y < 100 ? y + (y >= (new Date().getFullYear() + 1) % 100 ? 1900 : 2000) : y;
: "" })(),
: "",
v_make: job.v_make_desc || "", v_make: job.v_make_desc || "",
v_model: job.v_model_desc || "", v_model: job.v_model_desc || "",