Merged in v1.0.11 (pull request #14)

V1.0.11
This commit is contained in:
Patrick Fic
2020-11-24 18:41:06 +00:00
9 changed files with 1259 additions and 1326 deletions

View File

@@ -1,3 +1,4 @@
Bug Fixes:
- Resolved an issue where N/A prices were being incorrectly included.
- Resolved a bug where clicking yes during update would not install the update.
- Added remanufactured as a part type dislpay instead of 'PAM'.
- Resolve an issue where group would occasionally not be preserved when changed.
- Added 'Reman' as a displayed part type.

View File

@@ -8,5 +8,10 @@
"title": "Release Notes for 1.0.10",
"date": "11/19/2020",
"notes": "Bug Fixes: \n- Resolved an issue where N/A prices were being incorrectly included.\n- Resolved a bug where clicking yes during update would not install the update."
},
"1.0.11": {
"title": "Release Notes for 1.0.11",
"date": "11/24/2020",
"notes": "Bug Fixes: \n- Added remanufactured as a part type dislpay instead of 'PAM'.\n- Resolve an issue where group would occasionally not be preserved when changed.\n- Added 'Reman' as a displayed part type."
}
}

2486
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -3,12 +3,12 @@
"productName": "ImEX RPS",
"author": "ImEX Systems Inc. <support@thinkimex.com>",
"description": "ImEX RPS",
"version": "1.0.10",
"version": "1.0.11",
"main": "electron/main.js",
"homepage": "./",
"dependencies": {
"@apollo/client": "^3.2.4",
"antd": "^4.7.3",
"antd": "^4.8.4",
"apollo-link-logger": "^2.0.0",
"chokidar": "^3.4.2",
"dbffile": "^1.4.3",
@@ -71,7 +71,7 @@
},
"devDependencies": {
"concurrently": "^5.3.0",
"electron": "^10.1.5",
"electron": "^10.1.6",
"electron-builder": "^22.9.1",
"electron-devtools-installer": "^3.1.1",
"enzyme": "^3.11.0",

View File

@@ -10,7 +10,8 @@ const converter = (part_type) => {
return "OEMP";
case "PAL":
return "LKQ";
case "PAM":
return "REMAN";
case "PAC":
return "A/M (PAC)";
case "PAR":

View File

@@ -0,0 +1,47 @@
import { AlertFilled } from "@ant-design/icons";
import { Tooltip } from "antd";
import React from "react";
const models = [
"equinox",
"expedition",
"pickup",
"tucson",
"terrain",
"sorento",
"sienna",
"grandcaravan",
"grand caravan",
"journey",
"nv200",
"rav4",
];
export default function VehicleGroupAlertAtom({ job, showGroup = false }) {
const shouldWarn = models.includes(job.v_model.toLowerCase());
const vehicleText = `${job.v_model_yr} ${job.v_makedesc} ${job.v_model} (${
job.v_type
})${
showGroup
? `- ${job.group} @ ${
job.v_age === 1 ? `${job.v_age} year` : `${job.v_age} years`
}`
: ""
}
`;
if (shouldWarn)
return (
<Tooltip title="This vehicle might be in the wrong group. Please confirm the group manually and update it if it is incorrect.">
<div style={{ display: "flex", alignItems: "center" }}>
<span>{vehicleText}</span>
<AlertFilled
style={{ color: "tomato", marginLeft: ".3rem" }}
className="blink_me"
/>
</div>
</Tooltip>
);
return vehicleText;
}

View File

@@ -6,6 +6,7 @@ import TimeAgoFormatter from "../../atoms/time-ago-formatter/time-ago-formatter.
import CloseDateDisplayMolecule from "../close-date-display/close-date-display.molecule";
import JobGroupMolecule from "../job-group/job-group.molecule";
import DeleteJobAtom from "../../atoms/delete-job/delete-job.atom";
import VehicleGroupAlertAtom from "../../atoms/vehicle-group-alert/vehicle-group-alert.atom";
export default function JobsDetailDescriptionMolecule({ loading, job }) {
if (loading) return <Skeleton active />;
@@ -28,7 +29,9 @@ export default function JobsDetailDescriptionMolecule({ loading, job }) {
>
<Descriptions column={{ xxl: 5, xl: 4, lg: 3, md: 3, sm: 2, xs: 1 }}>
<Descriptions.Item label="Owner">{`${job.ownr_fn} ${job.ownr_ln}`}</Descriptions.Item>
<Descriptions.Item label="Vehicle">{`${job.v_model_yr} ${job.v_makedesc} ${job.v_model} (${job.v_type})`}</Descriptions.Item>
<Descriptions.Item label="Vehicle">
<VehicleGroupAlertAtom job={job} />
</Descriptions.Item>
<Descriptions.Item label="Claim Total">
<CurrencyFormatterAtom>{job.clm_total}</CurrencyFormatterAtom>
</Descriptions.Item>

View File

@@ -1,18 +1,18 @@
import { Input, Table } from "antd";
import moment from "moment";
import React, { useState } from "react";
import { connect } from "react-redux";
import { Link } from "react-router-dom";
import { createStructuredSelector } from "reselect";
import ipcTypes from "../../../ipc.types";
import { setSelectedJobId } from "../../../redux/application/application.actions";
import {
selectReportData,
selectReportLoading,
selectScorecard,
selectScorecard
} from "../../../redux/reporting/reporting.selectors";
import { alphaSort } from "../../../util/sorters";
import moment from "moment";
import VehicleGroupAlertAtom from "../../atoms/vehicle-group-alert/vehicle-group-alert.atom";
const { ipcRenderer } = window;
@@ -76,12 +76,9 @@ export function ReportingJobsListMolecule({
title: "Vehicle",
dataIndex: "vehicle",
key: "vehicle",
render: (text, record) =>
`${record.v_model_yr} ${record.v_makedesc} ${record.v_model} (${
record.v_type
}) - ${record.group} @ ${
record.v_age === 1 ? `${record.v_age} year` : `${record.v_age} years`
}`,
render: (text, record) => (
<VehicleGroupAlertAtom job={record} showGroup />
),
},
{
title: "Database Price Sum",

View File

@@ -16,13 +16,6 @@ export async function UpsertEstimate(job) {
const shopId = store.getState().user.bodyshop.id;
logger.info("Beginning Upserting job from Renderer.");
const parsedYr = parseInt(job.v_model_yr);
logger.info(
"Job Loss Date",
job.loss_date,
"Parsed Year",
moment(job.loss_date).year() -
(parsedYr >= 0 ? 2000 + parsedYr : 1900 + parsedYr)
);
job = {
...job,
@@ -46,14 +39,16 @@ export async function UpsertEstimate(job) {
job.joblines.data
);
logger.info("Attemping to update job record.");
logger.info("Attemping to update job lines.");
await client.mutate({
mutation: gql`
${suppDelta}
`,
});
delete job.joblines;
delete job.group; //Added to preserve group already set in the system RPS-49.
logger.info("Attemping to update job.");
await client.mutate({
mutation: UPDATE_JOB,
variables: { jobId: existingJobs.data.jobs[0].id, job: job },