Alpha 2 - changes to upgrade 2.

This commit is contained in:
Patrick Fic
2025-03-07 08:27:39 -08:00
parent c3d812603c
commit 40006b6082
10 changed files with 2670 additions and 1283 deletions

View File

@@ -32,82 +32,80 @@ export default function JobsDetailDescriptionMolecule({ loading, job }) {
const ruleSetToApply = WhichRulesetToApply(job.close_date);
return (
<div>
<PageHeader
ghost={false}
title={job.clm_no}
subTitle={job.ins_co_nm}
extra={[
job.requires_reimport && (
<Tooltip
key="reimport"
title="There are different rules that apply for claims submitted in different periods. In order to ensure accurate calculation, you must import this job again to determine which parts are eligible for parts autonomy. This happened because the R4P date was changed between these periods."
>
<Alert
type="warning"
showIcon
message="RPS has detected this job may have inaccurate grouping/targets. Reimport this job for accurate scoring."
/>
</Tooltip>
),
<DeleteJobAtom key="delete" jobId={job.id} />,
<Button key="print" onClick={handlePrint}>
<PrinterFilled />
</Button>
]}
>
<Descriptions column={{ xxl: 5, xl: 4, lg: 3, md: 2, sm: 1, xs: 1 }}>
<Descriptions.Item label="Owner">{`${job.ownr_fn} ${job.ownr_ln}`}</Descriptions.Item>
<Descriptions.Item label="Vehicle">
<VehicleGroupAlertAtom job={job} />
</Descriptions.Item>
<Descriptions.Item label="Claim Total">
<CurrencyFormatterAtom>{job.clm_total}</CurrencyFormatterAtom>
</Descriptions.Item>
<Descriptions.Item label="Group">
<JobGroupMolecule jobId={job.id} group={job.group} job={job} />
</Descriptions.Item>
<Descriptions.Item label="Age">{job.v_age}</Descriptions.Item>
<Descriptions.Item
label={
<Tooltip title="This is the date you will submit for payment from MPI. This should always be the latest date in the case of supplements.">
R4P Date
</Tooltip>
}
<PageHeader
ghost={false}
title={job.clm_no}
subTitle={job.ins_co_nm}
extra={[
job.requires_reimport && (
<Tooltip
key="reimport"
title="There are different rules that apply for claims submitted in different periods. In order to ensure accurate calculation, you must import this job again to determine which parts are eligible for parts autonomy. This happened because the R4P date was changed between these periods."
>
<CloseDateDisplayMolecule job={job} jobId={job.id} close_date={job.close_date} />
</Descriptions.Item>
<Descriptions.Item label="Last Updated">
<Tooltip title={`First Created ${moment(job.created_at).format("MM/DD/YY")}`}>
<TimeAgoFormatter>{job.updated_at}</TimeAgoFormatter>
<Alert
type="warning"
showIcon
message="RPS has detected this job may have inaccurate grouping/targets. Reimport this job for accurate scoring."
/>
</Tooltip>
),
<DeleteJobAtom key="delete" jobId={job.id} />,
<Button key="print" onClick={handlePrint}>
<PrinterFilled />
</Button>
]}
>
<Descriptions column={{ xxl: 5, xl: 4, lg: 3, md: 2, sm: 1, xs: 1 }}>
<Descriptions.Item label="Owner">{`${job.ownr_fn} ${job.ownr_ln}`}</Descriptions.Item>
<Descriptions.Item label="Vehicle">
<VehicleGroupAlertAtom job={job} />
</Descriptions.Item>
<Descriptions.Item label="Claim Total">
<CurrencyFormatterAtom>{job.clm_total}</CurrencyFormatterAtom>
</Descriptions.Item>
<Descriptions.Item label="Group">
<JobGroupMolecule jobId={job.id} group={job.group} job={job} />
</Descriptions.Item>
<Descriptions.Item label="Age">{job.v_age}</Descriptions.Item>
<Descriptions.Item
label={
<Tooltip title="This is the date you will submit for payment from MPI. This should always be the latest date in the case of supplements.">
R4P Date
</Tooltip>
</Descriptions.Item>
<Descriptions.Item label="# RPS Eligible Parts">
{job && job.joblines.filter((i) => !i.ignore && i.db_ref !== "900511").length}
</Descriptions.Item>
<Descriptions.Item label="Loss Date">
{job.loss_date ? dayjs(job.loss_date).format(DateFormat) : "No Loss Date"}
</Descriptions.Item>
<Descriptions.Item label="Mileage">
<Space size="small">
{job.v_mileage}
{ruleSetToApply === "V3" && job.v_mileage < 20000 && (
<Tooltip title="Vehicle is under 20,000 KMs. No expected savings.">
<WarningOutlined style={{ color: "seagreen" }} />
</Tooltip>
)}
</Space>
</Descriptions.Item>
</Descriptions>
}
>
<CloseDateDisplayMolecule job={job} jobId={job.id} close_date={job.close_date} />
</Descriptions.Item>
<Descriptions.Item label="Last Updated">
<Tooltip title={`First Created ${moment(job.created_at).format("MM/DD/YY")}`}>
<TimeAgoFormatter>{job.updated_at}</TimeAgoFormatter>
</Tooltip>
</Descriptions.Item>
<Descriptions.Item label="# RPS Eligible Parts">
{job && job.joblines.filter((i) => !i.ignore && i.db_ref !== "900511").length}
</Descriptions.Item>
<Descriptions.Item label="Loss Date">
{job.loss_date ? dayjs(job.loss_date).format(DateFormat) : "No Loss Date"}
</Descriptions.Item>
<Descriptions.Item label="Mileage">
<Space size="small">
{job.v_mileage}
{ruleSetToApply === "V3" && job.v_mileage < 20000 && (
<Tooltip title="Vehicle is under 20,000 KMs. No expected savings.">
<WarningOutlined style={{ color: "seagreen" }} />
</Tooltip>
)}
</Space>
</Descriptions.Item>
</Descriptions>
{hasQuantityGreaterThan1 && (
<Alert
type="warning"
showIcon
message="At least one estimate line has multiple quantities. MPI best practices for RPS recognition is to create multiple lines rather than increase quantity."
/>
)}
</PageHeader>
</div>
{hasQuantityGreaterThan1 && (
<Alert
type="warning"
showIcon
message="At least one estimate line has multiple quantities. MPI best practices for RPS recognition is to create multiple lines rather than increase quantity."
/>
)}
</PageHeader>
);
}

View File

@@ -1,6 +1,6 @@
import { Button, Col, Collapse, Result, Row, Space } from "antd";
import React from "react";
import * as Sentry from "@sentry/electron";
import * as Sentry from "@sentry/electron/renderer";
class ErrorBoundary extends React.Component {
constructor() {

View File

@@ -8,11 +8,11 @@ import App from "./App/App";
import "./index.css";
import { persistor, store } from "./redux/store";
import * as Sentry from "@sentry/electron";
import * as Sentry from "@sentry/electron/renderer";
Sentry.init({
dsn: "https://9840e0f304124299e379d9347e12d2e6@o492140.ingest.sentry.io/4505728058523648",
integrations: [new Sentry.BrowserTracing()],
//integrations: [new Sentry.BrowserTracing()],
tracesSampleRate: 1.0,
// Set `tracePropagationTargets` to control for which URLs distributed tracing should be enabled
tracePropagationTargets: ["localhost", "https://db.rps.imex.online"],

View File

@@ -1,7 +1,7 @@
import { message } from "antd";
import dayjs from "../../util/day.js";
//import LogRocket from "logrocket";
import * as Sentry from "@sentry/electron";
import * as Sentry from "@sentry/electron/renderer";
import { sendPasswordResetEmail, signInWithEmailAndPassword, signOut } from "firebase/auth";
import { all, call, delay, put, takeLatest } from "redux-saga/effects";
import { auth, getCurrentUser, updateCurrentUser } from "../../firebase/firebase.utils";