Remove redux diff slowing down logger. Adjusted report column sizings.

This commit is contained in:
Patrick Fic
2025-07-04 09:35:55 -07:00
parent 17033cc874
commit 106cc23c53
14 changed files with 836 additions and 24 deletions

View File

@@ -193,5 +193,10 @@
"title": "Release Notes for 1.4.0",
"date": "06/17/2025",
"notes": "New Features: \r\n* Added a scenario manager to scorecards to dynamically remove and add jobs to see impacts without adjusting dates.\r\n* Added ability to print a job. \r\n\r\nImprovements:\r\n* Added dark mode for app.\r\n* Added variance dollars to the scorecard.\r\n* Adjusted layout of job details to more prominently display savings information."
},
"1.4.1": {
"title": "Release Notes for 1.4.1",
"date": "07/04/2025",
"notes": "Improvements:\r\n* Increased performance of scenario manager.\r\n* Report lines will now display better on smaller screens."
}
}

View File

@@ -0,0 +1,584 @@
{
"__typename": "jobs",
"ownr_fn": "",
"ownr_ln": "Customer",
"ownr_addr1": null,
"ownr_city": null,
"ownr_ph1": null,
"v_vin": "1G------",
"v_model_yr": "16",
"v_model": "Envoy",
"v_makedesc": "GMC",
"id": "6408d399-2a65-40cd-a4ea-1d416f865ad3",
"ins_co_nm": "MPI",
"clm_no": "73417632-01",
"clm_total": 7380.49,
"ro_number": null,
"updated_at": "2025-05-09T15:58:28.795165+00:00",
"group": "Group 12",
"group_verified": false,
"v_age": 19,
"v_type": "SUV",
"loss_date": "2024-11-22",
"close_date": null,
"requires_reimport": false,
"created_at": "2025-04-24T23:36:11.4287+00:00",
"v_mileage": 157269,
"db_date": "1/26/2025",
"policy_no": null,
"ded_amt": null,
"claim_no": null,
"est_ct_ln": null,
"est_ct_fn": null,
"rf_addr1": null,
"rf_city": null,
"rf_zip": "R0G 1Z0",
"rf_ph1": "2043792253",
"loss_type": null,
"impact_1": null,
"impact_2": null,
"v_prod_dt": null,
"v_color": null,
"dmg_memo": null,
"ins_co_name": null,
"plate_st": null,
"plate_no": null,
"g_ttl_amt": "4000.99",
"ttl_t_amt_pat": "500.99",
"sending_entity_id": "87330f61-412b-4251-baaa-d026565b23c5",
"sending_entity_clientid": "",
"sending_entity_accept_terms_of_use": true,
"profileid": "",
"association_switch": "ATAM",
"supp_amt": "5000",
"create_dt": "5/21/2025",
"loss_desc": "Collision",
"v_stage": "3",
"g_bett_amt": "49.44",
"supp_no": "0",
"ca": [
{
"ttl_typecd": "LAB",
"t_amt": "100",
"t_hrs": "0.0",
"nt_hrs": "0.0"
},
{
"ttl_typecd": "LAR",
"t_amt": "75",
"t_hrs": "0.0",
"nt_hrs": "0.0"
},
{
"ttl_typecd": "LAF",
"t_amt": "200",
"t_hrs": "0.0",
"nt_hrs": "0.0"
},
{
"ttl_typecd": "LAM",
"t_amt": "150",
"t_hrs": "0.0",
"nt_hrs": "0.0"
},
{
"ttl_typecd": "PAT",
"t_amt": "500",
"nt_amt": "500"
},
{
"ttl_typecd": "TOT",
"t_amt": "3500"
}
],
"rates": [
{
"lbr_desc": "LABOR-BODY",
"lbr_rate": "1.23"
},
{
"lbr_desc": "LABOR-BODY_S",
"lbr_rate": "2.34"
},
{
"lbr_desc": "LABOR-REFINISH",
"lbr_rate": "2.34"
},
{
"lbr_desc": "LABOR-FRAME",
"lbr_rate": "2.34"
},
{
"lbr_desc": "LABOR-MECHANICAL",
"lbr_rate": "2.34"
},
{
"lbr_desc": "LABOR-GLASS",
"lbr_rate": "2.34"
},
{
"lbr_desc": "PDR",
"lbr_rate": "2.34"
},
{
"mat_type": "MAPA",
"cal_prethr": "69.45"
},
{
"mat_type": "MASH",
"cal_prethr": "7.81"
}
],
"joblines": [
{
"__typename": "joblines",
"LINE_NO": 1,
"LINE_IND": "",
"DB_REF": "201089",
"LINE_DESC": "Frt Bumper Cover Assy",
"PART_TYPE": "PAE",
"PART_DESCJ": "FALSE",
"GLASS_FLAG": "FALSE",
"OEM_PARTNO": "PAN",
"PRICE_INC": "FALSE",
"ALT_PART_I": "FALSE",
"TAX_PART": "FALSE",
"DB_PRICE": "0.00",
"ACT_PRICE": "0.00",
"PRICE_J": "FALSE",
"CERT_PART": "FALSE",
"PART_QTY": "1",
"ALT_CO_ID": "",
"ALT_PARTNO": "",
"MOD_LBR_TY": "LAB",
"DB_HRS": "2.8",
"MOD_LB_HRS": "1.8",
"LBR_INC": "FALSE",
"LBR_OP": "OP5",
"LBR_OP_J": "FALSE",
"LBR_HRS_J": "FALSE",
"LBR_TYP_J": "FALSE",
"PAINT_TONE": "0",
"LBR_TAX": "TRUE",
"LBR_AMT": "159.17",
"MISC_AMT": "0.00",
"MISC_TAX": "TRUE"
},
{
"__typename": "joblines",
"LINE_NO": 2,
"LINE_IND": "S1",
"DB_REF": "201385",
"LINE_DESC": "R Fender Wheel Opening Mldg",
"PART_TYPE": "",
"PART_DESCJ": "FALSE",
"GLASS_FLAG": "FALSE",
"OEM_PARTNO": "",
"PRICE_INC": "FALSE",
"ALT_PART_I": "FALSE",
"TAX_PART": "FALSE",
"ACT_PRICE": "0.00",
"DB_PRICE": "0.00",
"PRICE_J": "FALSE",
"CERT_PART": "FALSE",
"PART_QTY": "1",
"ALT_CO_ID": "",
"ALT_PARTNO": "",
"MOD_LBR_TY": "LAB",
"DB_HRS": ".4",
"MOD_LB_HRS": "0",
"LBR_INC": "TRUE",
"LBR_OP": "OP2",
"LBR_OP_J": "FALSE",
"LBR_HRS_J": "FALSE",
"LBR_TYP_J": "FALSE",
"PAINT_TONE": "0",
"LBR_TAX": "TRUE",
"LBR_AMT": "0.00",
"MISC_AMT": "0.00",
"MISC_TAX": "TRUE"
},
{
"__typename": "joblines",
"LINE_NO": 3,
"LINE_IND": "E",
"DB_REF": "200599",
"LINE_DESC": "Frt Bumper Cover",
"PART_TYPE": "PAA",
"PART_DESCJ": "FALSE",
"GLASS_FLAG": "FALSE",
"OEM_PARTNO": "04711-3A0-A00ZZ",
"PRICE_INC": "FALSE",
"ALT_PART_I": "FALSE",
"TAX_PART": "FALSE",
"DB_PRICE": "450.68",
"ACT_PRICE": "320.97",
"PRICE_J": "FALSE",
"CERT_PART": "FALSE",
"PART_QTY": "1",
"ALT_CO_ID": "TRUE",
"ALT_PARTNO": "HO1014109",
"MOD_LBR_TY": "LAB",
"DB_HRS": "2.8",
"MOD_LB_HRS": "0",
"LBR_INC": "TRUE",
"LBR_OP": "OP11",
"LBR_OP_J": "FALSE",
"LBR_HRS_J": "FALSE",
"LBR_TYP_J": "FALSE",
"PAINT_TONE": "0",
"LBR_TAX": "TRUE",
"LBR_AMT": "0.00",
"MISC_AMT": "0.00",
"MISC_TAX": "TRUE"
},
{
"__typename": "joblines",
"LINE_NO": 4,
"LINE_IND": "E",
"DB_REF": "900501",
"LINE_DESC": "OEM MATCHED AM/ Part# 04711-3A0-A00ZZ",
"PART_TYPE": "",
"PART_DESCJ": "TRUE",
"GLASS_FLAG": "FALSE",
"OEM_PARTNO": "",
"PRICE_INC": "FALSE",
"ALT_PART_I": "FALSE",
"TAX_PART": "FALSE",
"DB_PRICE": "0.00",
"ACT_PRICE": "0.00",
"PRICE_J": "FALSE",
"CERT_PART": "FALSE",
"PART_QTY": "1",
"ALT_CO_ID": "TRUE",
"ALT_PARTNO": "HO1014109",
"MOD_LBR_TY": "",
"DB_HRS": "0.0",
"MOD_LB_HRS": "0.0",
"LBR_INC": "FALSE",
"LBR_OP": "OP0",
"LBR_OP_J": "FALSE",
"LBR_HRS_J": "FALSE",
"LBR_TYP_J": "FALSE",
"PAINT_TONE": "0",
"LBR_TAX": "TRUE",
"LBR_AMT": "0.00",
"MISC_AMT": "0.00",
"MISC_TAX": "TRUE"
},
{
"__typename": "joblines",
"LINE_NO": 5,
"LINE_IND": "E",
"DB_REF": "200001",
"LINE_DESC": "Frt Bumper Cover",
"PART_TYPE": "",
"PART_DESCJ": "TRUE",
"GLASS_FLAG": "FALSE",
"OEM_PARTNO": "",
"PRICE_INC": "FALSE",
"ALT_PART_I": "FALSE",
"TAX_PART": "FALSE",
"DB_PRICE": "0.00",
"ACT_PRICE": "0.00",
"PRICE_J": "FALSE",
"CERT_PART": "FALSE",
"PART_QTY": "1",
"ALT_CO_ID": "",
"ALT_PARTNO": "",
"MOD_LBR_TY": "LAR",
"DB_HRS": "2.5",
"MOD_LB_HRS": "2.5",
"LBR_INC": "FALSE",
"LBR_OP": "OP6",
"LBR_OP_J": "FALSE",
"LBR_HRS_J": "FALSE",
"LBR_TYP_J": "FALSE",
"PAINT_TONE": "0",
"LBR_TAX": "TRUE",
"LBR_AMT": "0.00",
"MISC_AMT": "0.00",
"MISC_TAX": "TRUE"
},
{
"__typename": "joblines",
"LINE_NO": 6,
"LINE_IND": "E",
"DB_REF": "201386",
"LINE_DESC": "L Fender Wheel Opening Mldg",
"PART_TYPE": "",
"PART_DESCJ": "FALSE",
"GLASS_FLAG": "FALSE",
"OEM_PARTNO": "",
"PRICE_INC": "FALSE",
"ALT_PART_I": "FALSE",
"TAX_PART": "FALSE",
"DB_PRICE": "0.00",
"ACT_PRICE": "0.00",
"PRICE_J": "FALSE",
"CERT_PART": "FALSE",
"PART_QTY": "1",
"ALT_CO_ID": "",
"ALT_PARTNO": "",
"MOD_LBR_TY": "LAB",
"DB_HRS": "0.4",
"MOD_LB_HRS": "0.4",
"LBR_INC": "FALSE",
"LBR_OP": "OP2",
"LBR_OP_J": "FALSE",
"LBR_HRS_J": "FALSE",
"LBR_TYP_J": "FALSE",
"PAINT_TONE": "0",
"LBR_TAX": "TRUE",
"LBR_AMT": "0.00",
"MISC_AMT": "0.00",
"MISC_TAX": "TRUE"
},
{
"__typename": "joblines",
"LINE_NO": 7,
"LINE_IND": "E",
"DB_REF": "200746",
"LINE_DESC": "Frt Bumper Mounting Bracket",
"PART_TYPE": "PAN",
"PART_DESCJ": "FALSE",
"GLASS_FLAG": "FALSE",
"OEM_PARTNO": "71172-3A0-A00",
"PRICE_INC": "FALSE",
"ALT_PART_I": "FALSE",
"TAX_PART": "TRUE",
"DB_PRICE": "3.46",
"ACT_PRICE": "3.46",
"PRICE_J": "FALSE",
"CERT_PART": "FALSE",
"PART_QTY": "1",
"ALT_CO_ID": "",
"ALT_PARTNO": "",
"MOD_LBR_TY": "LAB",
"DB_HRS": "0.0",
"MOD_LB_HRS": "0.1",
"LBR_INC": "FALSE",
"LBR_OP": "OP11",
"LBR_OP_J": "FALSE",
"LBR_HRS_J": "TRUE",
"LBR_TYP_J": "FALSE",
"PAINT_TONE": "0",
"LBR_TAX": "TRUE",
"LBR_AMT": "0.00",
"MISC_AMT": "0.00",
"MISC_TAX": "TRUE"
},
{
"__typename": "joblines",
"LINE_NO": 8,
"LINE_IND": "E",
"DB_REF": "201314",
"LINE_DESC": "R Frt Door Shell (Steel/Hss)",
"PART_TYPE": "PAE",
"PART_DESCJ": "FALSE",
"GLASS_FLAG": "FALSE",
"OEM_PARTNO": "71172-3A0-A00",
"PRICE_INC": "FALSE",
"ALT_PART_I": "FALSE",
"TAX_PART": "TRUE",
"DB_PRICE": "1528.35",
"ACT_PRICE": "0.00",
"PRICE_J": "FALSE",
"CERT_PART": "FALSE",
"PART_QTY": "1",
"ALT_CO_ID": "",
"ALT_PARTNO": "",
"MOD_LBR_TY": "LAB",
"DB_HRS": "0.0",
"MOD_LB_HRS": "4.5",
"LBR_INC": "FALSE",
"LBR_OP": "OP9",
"LBR_OP_J": "FALSE",
"LBR_HRS_J": "TRUE",
"LBR_TYP_J": "FALSE",
"PAINT_TONE": "0",
"LBR_TAX": "TRUE",
"LBR_AMT": "0.00",
"MISC_AMT": "0.00",
"MISC_TAX": "TRUE"
},
{
"__typename": "joblines",
"LINE_NO": 9,
"LINE_IND": "E",
"DB_REF": "936009",
"LINE_DESC": "Estimate Charge",
"PART_TYPE": "",
"PART_DESCJ": "TRUE",
"GLASS_FLAG": "FALSE",
"OEM_PARTNO": "71172-3A0-A00",
"PRICE_INC": "FALSE",
"ALT_PART_I": "FALSE",
"TAX_PART": "TRUE",
"DB_PRICE": "0.00",
"ACT_PRICE": "15.00",
"PRICE_J": "TRUE",
"CERT_PART": "FALSE",
"PART_QTY": "1",
"ALT_CO_ID": "",
"ALT_PARTNO": "",
"MOD_LBR_TY": "",
"DB_HRS": "0.0",
"MOD_LB_HRS": "0.0",
"LBR_INC": "FALSE",
"LBR_OP": "OP13",
"LBR_OP_J": "FALSE",
"LBR_HRS_J": "FALSE",
"LBR_TYP_J": "FALSE",
"PAINT_TONE": "0",
"LBR_TAX": "FALSE",
"LBR_AMT": "0.00",
"MISC_AMT": "0.00",
"MISC_TAX": "FALSE"
},
{
"__typename": "joblines",
"LINE_NO": 10,
"LINE_IND": "E",
"DB_REF": "933014",
"LINE_DESC": "Three Stage",
"PART_TYPE": "",
"PART_DESCJ": "FALSE",
"GLASS_FLAG": "FALSE",
"OEM_PARTNO": "71172-3A0-A00",
"PRICE_INC": "FALSE",
"ALT_PART_I": "FALSE",
"TAX_PART": "TRUE",
"DB_PRICE": "0.00",
"ACT_PRICE": "0.00",
"PRICE_J": "TRUE",
"CERT_PART": "FALSE",
"PART_QTY": "1",
"ALT_CO_ID": "",
"ALT_PARTNO": "",
"MOD_LBR_TY": "LAR",
"DB_HRS": "0.0",
"MOD_LB_HRS": "5.7",
"LBR_INC": "FALSE",
"LBR_OP": "OP14",
"LBR_OP_J": "FALSE",
"LBR_HRS_J": "FALSE",
"LBR_TYP_J": "FALSE",
"PAINT_TONE": "0",
"LBR_TAX": "FALSE",
"LBR_AMT": "0.00",
"MISC_AMT": "0.00",
"MISC_TAX": "FALSE"
},
{
"__typename": "joblines",
"LINE_NO": 11,
"LINE_IND": "E",
"DB_REF": "933062",
"LINE_DESC": "Calibrate Forward Facing Radar",
"PART_TYPE": "",
"PART_DESCJ": "FALSE",
"GLASS_FLAG": "FALSE",
"OEM_PARTNO": "",
"PRICE_INC": "FALSE",
"ALT_PART_I": "FALSE",
"TAX_PART": "TRUE",
"DB_PRICE": "0.00",
"ACT_PRICE": "165.00",
"PRICE_J": "TRUE",
"CERT_PART": "FALSE",
"PART_QTY": "1",
"ALT_CO_ID": "",
"ALT_PARTNO": "",
"MOD_LBR_TY": "LAM",
"DB_HRS": "0.0",
"MOD_LB_HRS": "0.0",
"LBR_INC": "FALSE",
"LBR_OP": "OP14",
"LBR_OP_J": "FALSE",
"LBR_HRS_J": "FALSE",
"LBR_TYP_J": "FALSE",
"PAINT_TONE": "0",
"LBR_TAX": "TRUE",
"LBR_AMT": "0.00",
"MISC_AMT": "0.00",
"MISC_TAX": "TRUE"
},
{
"__typename": "joblines",
"LINE_NO": 12,
"LINE_IND": "E",
"DB_REF": "933018",
"LINE_DESC": "Mask For Overspray",
"PART_TYPE": "",
"PART_DESCJ": "FALSE",
"GLASS_FLAG": "FALSE",
"OEM_PARTNO": "",
"PRICE_INC": "FALSE",
"ALT_PART_I": "FALSE",
"TAX_PART": "TRUE",
"DB_PRICE": "0.00",
"ACT_PRICE": "0.00",
"PRICE_J": "TRUE",
"CERT_PART": "FALSE",
"PART_QTY": "1",
"ALT_CO_ID": "",
"ALT_PARTNO": "",
"MOD_LBR_TY": "LAR",
"DB_HRS": "0.0",
"MOD_LB_HRS": "0.6",
"LBR_INC": "FALSE",
"LBR_OP": "OP14",
"LBR_OP_J": "FALSE",
"LBR_HRS_J": "FALSE",
"LBR_TYP_J": "FALSE",
"PAINT_TONE": "0",
"LBR_TAX": "TRUE",
"LBR_AMT": "0.00",
"MISC_AMT": "0.00",
"MISC_TAX": "TRUE"
},
{
"__typename": "joblines",
"LINE_NO": 13,
"LINE_IND": "S1",
"DB_REF": "900500",
"LINE_DESC": "Closed System Top-Up - R1234YF",
"PART_TYPE": "PAA",
"PART_DESCJ": "TRUE",
"GLASS_FLAG": "FALSE",
"OEM_PARTNO": "",
"PRICE_INC": "FALSE",
"ALT_PART_I": "FALSE",
"TAX_PART": "TRUE",
"DB_PRICE": "0.00",
"ACT_PRICE": "17.55",
"PRICE_J": "TRUE",
"CERT_PART": "FALSE",
"PART_QTY": "1",
"ALT_CO_ID": "",
"ALT_PARTNO": "** QUAL REPL PART",
"MOD_LBR_TY": "LAM",
"DB_HRS": "0.0",
"MOD_LB_HRS": "0.0",
"LBR_INC": "FALSE",
"LBR_OP": "OP11",
"LBR_OP_J": "TRUE",
"LBR_HRS_J": "TRUE",
"LBR_TYP_J": "TRUE",
"PAINT_TONE": "0",
"LBR_TAX": "TRUE",
"LBR_AMT": "0.00",
"MISC_AMT": "0.00",
"MISC_TAX": "TRUE"
}
]
}

View File

@@ -0,0 +1,50 @@
const path = require("path");
const fs = require("fs");
const { store } = require("../electron-store");
const log = require("electron-log");
const fsPromises = fs.promises;
const { DecodeEstimate } = require("../decoder/decoder");
const axios = require("axios");
const TestJson = require("./A.json");
const { BrowserWindow } = require("electron");
async function ScrubEstimate({ job }) {
//These need to be removed.
const basicAuthUser = "Imex";
const basicAuthpassword = "Patrick";
const estimateScrubberUrl = "https://insurtechtoolkit.com/api/sendems";
const fileName = `RPSTest-${job.id}-${Date.now()}`;
console.log("*** ~ ScrubEstimate ~ job:", job);
//Build the JSON Form Data
const formData = new FormData();
const jsonString = JSON.stringify(job);
formData.append("file", new Blob([jsonString], { type: "application/json" }), `${fileName}.json`);
console.log("*** ~ ScrubEstimate ~ formData.getHeaders();:", formData);
const result = await axios.post(estimateScrubberUrl, formData, {
auth: {
username: basicAuthUser,
password: basicAuthpassword
},
headers: formData.getHeaders ? formData.getHeaders() : {}
});
console.log("*** ~ handleScrub ~ result:", result.data);
const resultPDFUrl = `https://www.insurtechtoolkit.com/analysis/${fileName}.pdf`;
console.log("*** ~ handleScrub ~ resultPDFUrl:", resultPDFUrl);
const pdfWindow = new BrowserWindow({
webPreferences: {
plugins: true, // Enable PDF viewing
},
});
pdfWindow.loadURL(resultPDFUrl);
pdfWindow.focus();
return resultPDFUrl
}
exports.ScrubEstimate = ScrubEstimate

View File

@@ -4,6 +4,7 @@ const { default: ipcTypes } = require("../src/ipc.types.commonjs");
const { store } = require("./electron-store");
const log = require("electron-log");
const { ImportJobWithCloseDate } = require("./decoder/decoder");
const { ScrubEstimate } = require("./estimate-scrubber/estimate-scrubber");
//Import Ipc Handlers
require("./file-watcher/file-watcher-ipc");
@@ -68,3 +69,8 @@ ipcMain.on(ipcTypes.app.toMain.log.error, (event, ...obj) => {
ipcMain.on(ipcTypes.app.toMain.getAppVersion, (event, obj) => {
event.sender.send(ipcTypes.app.toRenderer.appVersion, app.getVersion());
});
ipcMain.handle(ipcTypes.app.toMain.scrubEstimate, (event, { job }) => {
return ScrubEstimate({ job })
});

View File

@@ -42,6 +42,9 @@ contextBridge.exposeInMainWorld("ipcRenderer", {
);
// }
},
invoke: (channel, data) => {
return ipcRenderer.invoke(channel, data);
},
removeAllListeners: (...channels) => {
// let validChannels = ["fromMain"];
// if (validChannels.includes(channel)) {