Invert job dupe logic IO-701

This commit is contained in:
Patrick Fic
2021-02-25 11:32:07 -08:00
parent a4efedf3b5
commit d8ab9105a7
2 changed files with 59 additions and 81 deletions

View File

@@ -1,10 +1,12 @@
import Axios from "axios";
import _ from "lodash"; import _ from "lodash";
import { logImEXEvent } from "../../firebase/firebase.utils"; import { logImEXEvent } from "../../firebase/firebase.utils";
import { import {
INSERT_NEW_JOB, INSERT_NEW_JOB,
QUERY_ALL_JOB_FIELDS, QUERY_ALL_JOB_FIELDS,
} from "../../graphql/jobs.queries"; } from "../../graphql/jobs.queries";
export default function DuplicateJob(
export default async function DuplicateJob(
apolloClient, apolloClient,
jobId, jobId,
config, config,
@@ -15,72 +17,48 @@ export default function DuplicateJob(
const { defaultOpenStatus } = config; const { defaultOpenStatus } = config;
//get a list of all fields on the job //get a list of all fields on the job
apolloClient const res = await apolloClient.query({
.query({ query: QUERY_ALL_JOB_FIELDS, variables: { id: jobId } }) query: QUERY_ALL_JOB_FIELDS,
.then((res) => { variables: { id: jobId },
});
console.log("res", res);
const { jobs_by_pk: existingJob } = res.data; const { jobs_by_pk: existingJob } = res.data;
const newJob = _.cloneDeep(existingJob); const newJob = {
delete newJob.__typename; date_estimated: new Date(),
delete newJob.id; shopid: existingJob.shopid,
newJob.date_estimated = new Date(); status: defaultOpenStatus,
newJob.status = defaultOpenStatus; ownerid: existingJob.ownerid,
delete newJob.ins_co_id; ownr_fn: existingJob.ownr_fn,
delete newJob.ins_co_nm; ownr_ln: existingJob.ownr_ln,
delete newJob.ins_addr1; ownr_co_nm: existingJob.ownr_co_nm,
delete newJob.ins_addr2; ownr_addr1: existingJob.ownr_addr1,
delete newJob.ins_city; ownr_addr2: existingJob.ownr_addr2,
delete newJob.ins_st; ownr_st: existingJob.ownr_st,
delete newJob.ins_zip; ownr_zip: existingJob.ownr_zip,
delete newJob.ins_ctry; ownr_ctry: existingJob.ownr_ctry,
delete newJob.ins_ph1;
delete newJob.ins_ph2;
delete newJob.ins_ct_ln;
delete newJob.ins_ct_fn;
delete newJob.ins_ct_ph;
delete newJob.ins_ea;
delete newJob.policy_memo;
delete newJob.clm_no;
delete newJob.ro_number;
delete newJob.date_estimated;
delete newJob.date_scheduled;
delete newJob.date_invoiced;
delete newJob.date_exported; ownr_ph1: existingJob.ownr_ph1,
delete newJob.date_delivered; vehicleid: existingJob.vehicleid,
delete newJob.scheduled_completion; v_vin: existingJob.v_vin,
delete newJob.actual_completion; v_make_desc: existingJob.v_make_desc,
delete newJob.clm_total; v_model_desc: existingJob.v_model_desc,
delete newJob.owner_owing; v_model_yr: existingJob.v_model_yr,
delete newJob.converted; };
delete newJob.loss_type;
delete newJob.production_vars;
delete newJob.intakechecklist;
delete newJob.invoice_allocation;
delete newJob.kanbanparent;
delete newJob.employee_body;
delete newJob.employee_refinish;
delete newJob.employee_prep;
delete newJob.deliverchecklist;
delete newJob.lbr_adjustments;
delete newJob.alt_transport;
delete newJob.ded_amt;
delete newJob.ded_status;
delete newJob.asgn_date;
delete newJob.policy_no;
delete newJob.alt_transport;
delete newJob.alt_transport;
delete newJob.alt_transport;
delete newJob.alt_transport;
delete newJob.alt_transport;
delete newJob.alt_transport;
const _tempLines = newJob.joblines; const _tempLines = _.cloneDeep(existingJob.joblines);
_tempLines.forEach((line) => { _tempLines.forEach((line) => {
delete line.id; delete line.id;
delete line.__typename; delete line.__typename;
line.manual_line = true; line.manual_line = true;
}); });
newJob.joblines = keepJobLines ? _tempLines : [];
newJob.job_totals = (
await Axios.post("/job/totals", {
job: newJob,
})
).data;
delete newJob.joblines; delete newJob.joblines;
newJob.joblines = keepJobLines ? { data: _tempLines } : null; newJob.joblines = keepJobLines ? { data: _tempLines } : null;
@@ -94,7 +72,6 @@ export default function DuplicateJob(
if (completionCallback) if (completionCallback)
completionCallback(res2.data.insert_jobs.returning[0].id); completionCallback(res2.data.insert_jobs.returning[0].id);
}); });
});
//insert the new job. call the callback with the returned ID when done. //insert the new job. call the callback with the returned ID when done.

View File

@@ -263,9 +263,10 @@ function CalculateTaxesTotals(job, otherTotals) {
Dinero({ amount: Math.round((val.act_price || 0) * 100) }) Dinero({ amount: Math.round((val.act_price || 0) * 100) })
.multiply(val.part_qty || 1) .multiply(val.part_qty || 1)
.percentage( .percentage(
(job.parts_tax_rates && ((job.parts_tax_rates &&
job.parts_tax_rates[val.part_type] && job.parts_tax_rates[val.part_type] &&
job.parts_tax_rates[val.part_type].prt_tax_rt) * 100 job.parts_tax_rates[val.part_type].prt_tax_rt) ||
0) * 100
) )
); );
} }