@@ -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.
|
||||
@@ -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
2486
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -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",
|
||||
|
||||
@@ -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":
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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>
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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 },
|
||||
|
||||
Reference in New Issue
Block a user