From 6a9030b65368503e97a4b21d5f83aa36ab22bf60 Mon Sep 17 00:00:00 2001 From: Allan Carr Date: Tue, 25 Jun 2024 11:57:38 -0700 Subject: [PATCH] IO-2520 Kaizen Data Pump Add in Repair Line Details, Time Ticket Details, Void Date Signed-off-by: Allan Carr --- server/data/kaizen.js | 42 +++++++++++++++++++++++++++++++- server/graphql-client/queries.js | 22 +++++++++++------ 2 files changed, 56 insertions(+), 8 deletions(-) diff --git a/server/data/kaizen.js b/server/data/kaizen.js index 6e2e26edb..e0f82b58a 100644 --- a/server/data/kaizen.js +++ b/server/data/kaizen.js @@ -211,6 +211,8 @@ const CreateRepairOrderTag = (job, errorCallback) => { } const repairCosts = CreateCosts(job); + const jobline = CreateJobLines(job.joblines); + const timeticket = CreateTimeTickets(job.timetickets); try { const ret = { @@ -276,8 +278,11 @@ const CreateRepairOrderTag = (job, errorCallback) => { DateInvoiced: (job.date_invoiced && moment(job.date_invoiced).tz(job.bodyshop.timezone).format(DateFormat)) || "", DateExported: - (job.date_exported && moment(job.date_exported).tz(job.bodyshop.timezone).format(DateFormat)) || "" + (job.date_exported && moment(job.date_exported).tz(job.bodyshop.timezone).format(DateFormat)) || "", + DateVoid: (job.date_void && moment(job.date_void).tz(job.bodyshop.timezone).format(DateFormat)) || "" }, + JobLineDetails: { jobline }, + TimeTicketDetails: { timeticket }, Sales: { Labour: { Aluminum: Dinero(job.job_totals.rates.laa.total).toFormat(DineroFormat), @@ -625,3 +630,38 @@ const CreateCosts = (job) => { }, 0) }; }; + +const CreateJobLines = (joblines) => { + const repairLines = []; + joblines.forEach((jobline) => { + repairLines.push({ + line_description: jobline.line_desc, + oem_part_no: jobline.oem_partno, + alt_part_no: jobline.alt_partno, + op_code_desc: jobline.op_code_desc, + part_type: jobline.part_type, + part_qty: jobline.part_qty, + part_price: jobline.act_price, + labor_type: jobline.mod_lbr_ty, + labor_hours: jobline.mod_lb_hrs + }); + }); + return repairLines; +}; + +const CreateTimeTickets = (timetickets) => { + const timeTickets = []; + timetickets.forEach((ticket) => { + timeTickets.push({ + date: ticket.date, + employee: ticket.employee.employee_number + .trim() + .concat(" - ", ticket.employee.first_name.trim(), " ", ticket.employee.last_name.trim()) + .trim(), + productive_hrs: ticket.productivehrs, + actual_hrs: ticket.actualhrs, + cost_center: ticket.cost_center + }); + }); + return timeTickets; +}; diff --git a/server/graphql-client/queries.js b/server/graphql-client/queries.js index cd707bc0f..4e63fff7e 100644 --- a/server/graphql-client/queries.js +++ b/server/graphql-client/queries.js @@ -1113,7 +1113,7 @@ exports.KAIZEN_QUERY = `query KAIZEN_EXPORT($start: timestamptz, $bodyshopid: uu use_paint_scale_data timezone } - jobs(where: {_and: [{updated_at: {_gt: $start}}, {updated_at: {_lte: $end}}, {shopid: {_eq: $bodyshopid}}]}) { + jobs(where: {_and: [{updated_at: {_gt: $start}}, {updated_at: {_lte: $end}}, {converted: {_eq: true}}, {shopid: {_eq: $bodyshopid}}]}) { actual_completion actual_delivery actual_in @@ -1138,6 +1138,7 @@ exports.KAIZEN_QUERY = `query KAIZEN_EXPORT($start: timestamptz, $bodyshopid: uu date_invoiced date_open date_repairstarted + date_void employee_body_rel { first_name last_name @@ -1168,6 +1169,7 @@ exports.KAIZEN_QUERY = `query KAIZEN_EXPORT($start: timestamptz, $bodyshopid: uu ins_co_nm joblines(where: {removed: {_eq: false}}) { act_price + alt_partno billlines(order_by: {bill: {date: desc_nulls_last}} limit: 1) { actual_cost actual_price @@ -1188,6 +1190,8 @@ exports.KAIZEN_QUERY = `query KAIZEN_EXPORT($start: timestamptz, $bodyshopid: uu line_no mod_lb_hrs mod_lbr_ty + oem_partno + op_code_desc parts_order_lines(order_by: {parts_order: {order_date: desc_nulls_last}} limit: 1){ parts_order{ id @@ -1200,7 +1204,6 @@ exports.KAIZEN_QUERY = `query KAIZEN_EXPORT($start: timestamptz, $bodyshopid: uu profitcenter_labor prt_dsmk_m prt_dsmk_p - oem_partno status } job_totals @@ -1251,12 +1254,18 @@ exports.KAIZEN_QUERY = `query KAIZEN_EXPORT($start: timestamptz, $bodyshopid: uu scheduled_in status timetickets { - id - rate - cost_center actualhrs - productivehrs + cost_center + date + employee { + employee_number + first_name + last_name + } flat_rate + id + productivehrs + rate } tlos_ind v_color @@ -2481,7 +2490,6 @@ query QUERY_TASK_BY_ID($id: uuid!) { `; - exports.GET_JOBS_BY_PKS = `query GET_JOBS_BY_PKS($ids: [uuid!]!) { jobs(where: {id: {_in: $ids}}) { id