IO-1286 Resolve supplementing issues.

This commit is contained in:
Patrick Fic
2021-08-05 09:10:09 -07:00
parent a5fe54164e
commit 69c13dd052

View File

@@ -75,7 +75,7 @@ export function JobsAvailableContainer({
const client = useApolloClient(); const client = useApolloClient();
const estDataLazyLoad = useLazyQuery(QUERY_AVAILABLE_NEW_JOBS_EST_DATA_BY_PK); const estDataLazyLoad = useLazyQuery(QUERY_AVAILABLE_NEW_JOBS_EST_DATA_BY_PK);
const [loadEstData, estData] = estDataLazyLoad; const [loadEstData, estDataRaw] = estDataLazyLoad;
const importOptionsState = useState({ overrideHeaders: false }); const importOptionsState = useState({ overrideHeaders: false });
const importOptions = importOptionsState[0]; const importOptions = importOptionsState[0];
@@ -88,11 +88,13 @@ export function JobsAvailableContainer({
setOwnerModalVisible(false); setOwnerModalVisible(false);
setInsertLoading(true); setInsertLoading(true);
const estData = replaceEmpty(estDataRaw.data.available_jobs_by_pk);
if ( if (
!( !(
estData.data &&
estData.data.available_jobs_by_pk && estData &&
estData.data.available_jobs_by_pk.est_data estData.est_data
) )
) { ) {
//We don't have the right data. Error! //We don't have the right data. Error!
@@ -106,28 +108,28 @@ export function JobsAvailableContainer({
const newTotals = ( const newTotals = (
await Axios.post("/job/totals", { await Axios.post("/job/totals", {
job: { job: {
...estData.data.available_jobs_by_pk.est_data, ...estData.est_data,
joblines: estData.data.available_jobs_by_pk.est_data.joblines.data, joblines: estData.est_data.joblines.data,
}, },
}) })
).data; ).data;
let existingVehicles; let existingVehicles;
if ( if (
estData.data.available_jobs_by_pk.est_data.vehicle && estData.est_data.vehicle &&
estData.data.available_jobs_by_pk.est_data.vin estData.est_data.vin
) { ) {
//There's vehicle data, need to double check the VIN. //There's vehicle data, need to double check the VIN.
existingVehicles = await client.query({ existingVehicles = await client.query({
query: SEARCH_VEHICLE_BY_VIN, query: SEARCH_VEHICLE_BY_VIN,
variables: { variables: {
vin: estData.data.available_jobs_by_pk.est_data.vehicle.data.v_vin, vin: estData.est_data.vehicle.data.v_vin,
}, },
}); });
} }
const newJob = { const newJob = {
...estData.data.available_jobs_by_pk.est_data, ...estData.est_data,
clm_total: Dinero(newTotals.totals.total_repairs).toFormat("0.00"), clm_total: Dinero(newTotals.totals.total_repairs).toFormat("0.00"),
owner_owing: Dinero(newTotals.totals.custPayable.total).toFormat("0.00"), owner_owing: Dinero(newTotals.totals.custPayable.total).toFormat("0.00"),
job_totals: newTotals, job_totals: newTotals,
@@ -172,7 +174,7 @@ export function JobsAvailableContainer({
}); });
deleteJob({ deleteJob({
variables: { id: estData.data.available_jobs_by_pk.id }, variables: { id: estData.id },
}).then((r) => { }).then((r) => {
refetch(); refetch();
setInsertLoading(false); setInsertLoading(false);
@@ -194,12 +196,12 @@ export function JobsAvailableContainer({
setJobModalVisible(false); setJobModalVisible(false);
setInsertLoading(true); setInsertLoading(true);
const estData = replaceEmpty(estDataRaw.data.available_jobs_by_pk);
if ( if (
!( !(
estData.data &&
estData.data.available_jobs_by_pk && estData &&
estData.data.available_jobs_by_pk.est_data estData.est_data
) )
) { ) {
//We don't have the right data. Error! //We don't have the right data. Error!
@@ -209,7 +211,7 @@ export function JobsAvailableContainer({
}); });
} else { } else {
//create upsert job //create upsert job
let supp = _.cloneDeep(estData.data.available_jobs_by_pk.est_data); let supp = _.cloneDeep(estData.est_data);
delete supp.owner; delete supp.owner;
delete supp.vehicle; delete supp.vehicle;
@@ -220,7 +222,7 @@ export function JobsAvailableContainer({
let suppDelta = await GetSupplementDelta( let suppDelta = await GetSupplementDelta(
client, client,
selectedJob, selectedJob,
estData.data.available_jobs_by_pk.est_data.joblines.data estData.est_data.joblines.data
); );
delete supp.joblines; delete supp.joblines;
@@ -279,7 +281,7 @@ export function JobsAvailableContainer({
//Job has been inserted. Clean up the available jobs record. //Job has been inserted. Clean up the available jobs record.
deleteJob({ deleteJob({
variables: { id: estData.data.available_jobs_by_pk.id }, variables: { id: estData.id },
}).then((r) => { }).then((r) => {
refetch(); refetch();
setInsertLoading(false); setInsertLoading(false);
@@ -305,13 +307,13 @@ export function JobsAvailableContainer({
}; };
const owner = const owner =
estData.data && estDataRaw.data &&
estData.data.available_jobs_by_pk && estDataRaw.data.available_jobs_by_pk &&
estData.data.available_jobs_by_pk.est_data && estDataRaw.data.available_jobs_by_pk.est_data &&
estData.data.available_jobs_by_pk.est_data.owner && estDataRaw.data.available_jobs_by_pk.est_data.owner &&
estData.data.available_jobs_by_pk.est_data.owner.data && estDataRaw.data.available_jobs_by_pk.est_data.owner.data &&
!estData.data.available_jobs_by_pk.issupplement !estDataRaw.data.available_jobs_by_pk.issupplement
? estData.data.available_jobs_by_pk.est_data.owner.data ? estDataRaw.data.available_jobs_by_pk.est_data.owner.data
: null; : null;
const onOwnerModalCancel = () => { const onOwnerModalCancel = () => {
@@ -349,8 +351,8 @@ export function JobsAvailableContainer({
message={t("jobs.labels.creating_new_job")} message={t("jobs.labels.creating_new_job")}
> >
<OwnerFindModalContainer <OwnerFindModalContainer
loading={estData.loading} loading={estDataRaw.loading}
error={estData.error} error={estDataRaw.error}
owner={owner} owner={owner}
selectedOwner={selectedOwner} selectedOwner={selectedOwner}
setSelectedOwner={setSelectedOwner} setSelectedOwner={setSelectedOwner}
@@ -359,8 +361,8 @@ export function JobsAvailableContainer({
onCancel={onOwnerModalCancel} onCancel={onOwnerModalCancel}
/> />
<JobsFindModalContainer <JobsFindModalContainer
loading={estData.loading} loading={estDataRaw.loading}
error={estData.error} error={estDataRaw.error}
selectedJob={selectedJob} selectedJob={selectedJob}
setSelectedJob={setSelectedJob} setSelectedJob={setSelectedJob}
importOptionsState={importOptionsState} importOptionsState={importOptionsState}
@@ -390,3 +392,12 @@ export default connect(
mapStateToProps, mapStateToProps,
mapDispatchToProps mapDispatchToProps
)(JobsAvailableContainer); )(JobsAvailableContainer);
function replaceEmpty(someObj, replaceValue = null) {
const replacer = (key, value) => (value === "" ? replaceValue : value);
//^ because you seem to want to replace (strings) "null" or "undefined" too
console.log(someObj)
const temp = JSON.stringify(someObj, replacer);
console.log(`temp`, temp);
return JSON.parse(temp);
}