From c4e59c1a5ecf22989c9887e82543beefbaf27a01 Mon Sep 17 00:00:00 2001 From: Patrick Fic <> Date: Wed, 13 Oct 2021 11:45:24 -0700 Subject: [PATCH] IO-117 Begin PBS Structure. --- ...accounting-receivables-table.component.jsx | 2 +- .../jobs-close-export-button.component.jsx | 2 +- ...p-info.responsibilitycenters.component.jsx | 8 +++++ client/src/graphql/bodyshop.queries.js | 4 +++ hasura/metadata/tables.yaml | 2 ++ .../down.sql | 4 +++ .../up.sql | 2 ++ .../down.sql | 4 +++ .../up.sql | 2 ++ server/accounting/pbs/pbs-constants.js | 21 +++++++++++ server/accounting/pbs/pbs-job-export.js | 35 +++++++++++++++++++ server/web-sockets/web-socket.js | 9 +++++ 12 files changed, 93 insertions(+), 2 deletions(-) create mode 100644 hasura/migrations/1634096078510_alter_table_public_bodyshops_add_column_pbs_configuration/down.sql create mode 100644 hasura/migrations/1634096078510_alter_table_public_bodyshops_add_column_pbs_configuration/up.sql create mode 100644 hasura/migrations/1634096850340_alter_table_public_bodyshops_add_column_pbs_serialnumber/down.sql create mode 100644 hasura/migrations/1634096850340_alter_table_public_bodyshops_add_column_pbs_serialnumber/up.sql create mode 100644 server/accounting/pbs/pbs-constants.js create mode 100644 server/accounting/pbs/pbs-job-export.js diff --git a/client/src/components/accounting-receivables-table/accounting-receivables-table.component.jsx b/client/src/components/accounting-receivables-table/accounting-receivables-table.component.jsx index ea9e5517b..8029816e5 100644 --- a/client/src/components/accounting-receivables-table/accounting-receivables-table.component.jsx +++ b/client/src/components/accounting-receivables-table/accounting-receivables-table.component.jsx @@ -199,7 +199,7 @@ export function AccountingReceivablesTableComponent({ - {!bodyshop.cdk_dealerid && ( + {!bodyshop.cdk_dealerid && !bodyshop.pbs_serialnumber && ( { //Check if it's a CDK setup. - if (bodyshop.cdk_dealerid) { + if (bodyshop.cdk_dealerid || bodyshop.pbs_serialnumber) { history.push(`/manage/dms?jobId=${jobId}`); return; } diff --git a/client/src/components/shop-info/shop-info.responsibilitycenters.component.jsx b/client/src/components/shop-info/shop-info.responsibilitycenters.component.jsx index e81133237..2e182f742 100644 --- a/client/src/components/shop-info/shop-info.responsibilitycenters.component.jsx +++ b/client/src/components/shop-info/shop-info.responsibilitycenters.component.jsx @@ -203,6 +203,14 @@ export function ShopInfoResponsibilityCenterComponent({ bodyshop, form }) { )} + + {bodyshop.pbs_serialnumber && ( + <> + + {form.getFieldValue("pbs_serialnumber")} + + + )} {(fields, { add, remove }) => { diff --git a/client/src/graphql/bodyshop.queries.js b/client/src/graphql/bodyshop.queries.js index b1e783bf4..b035c1f3c 100644 --- a/client/src/graphql/bodyshop.queries.js +++ b/client/src/graphql/bodyshop.queries.js @@ -94,6 +94,8 @@ export const QUERY_BODYSHOP = gql` attach_pdf_to_email tt_allow_post_to_invoiced cdk_configuration + pbs_configuration + pbs_serialnumber employees { id active @@ -184,6 +186,8 @@ export const UPDATE_SHOP = gql` attach_pdf_to_email tt_allow_post_to_invoiced cdk_configuration + pbs_configuration + pbs_serialnumber employees { id first_name diff --git a/hasura/metadata/tables.yaml b/hasura/metadata/tables.yaml index b78ca5908..0d107ccac 100644 --- a/hasura/metadata/tables.yaml +++ b/hasura/metadata/tables.yaml @@ -838,6 +838,8 @@ - md_responsibility_centers - md_ro_statuses - messagingservicesid + - pbs_configuration + - pbs_serialnumber - phone - prodtargethrs - production_config diff --git a/hasura/migrations/1634096078510_alter_table_public_bodyshops_add_column_pbs_configuration/down.sql b/hasura/migrations/1634096078510_alter_table_public_bodyshops_add_column_pbs_configuration/down.sql new file mode 100644 index 000000000..5f2a4840b --- /dev/null +++ b/hasura/migrations/1634096078510_alter_table_public_bodyshops_add_column_pbs_configuration/down.sql @@ -0,0 +1,4 @@ +-- Could not auto-generate a down migration. +-- Please write an appropriate down migration for the SQL below: +-- alter table "public"."bodyshops" add column "pbs_configuration" jsonb +-- null default jsonb_build_object(); diff --git a/hasura/migrations/1634096078510_alter_table_public_bodyshops_add_column_pbs_configuration/up.sql b/hasura/migrations/1634096078510_alter_table_public_bodyshops_add_column_pbs_configuration/up.sql new file mode 100644 index 000000000..cd9c022da --- /dev/null +++ b/hasura/migrations/1634096078510_alter_table_public_bodyshops_add_column_pbs_configuration/up.sql @@ -0,0 +1,2 @@ +alter table "public"."bodyshops" add column "pbs_configuration" jsonb + null default jsonb_build_object(); diff --git a/hasura/migrations/1634096850340_alter_table_public_bodyshops_add_column_pbs_serialnumber/down.sql b/hasura/migrations/1634096850340_alter_table_public_bodyshops_add_column_pbs_serialnumber/down.sql new file mode 100644 index 000000000..2f216ea94 --- /dev/null +++ b/hasura/migrations/1634096850340_alter_table_public_bodyshops_add_column_pbs_serialnumber/down.sql @@ -0,0 +1,4 @@ +-- Could not auto-generate a down migration. +-- Please write an appropriate down migration for the SQL below: +-- alter table "public"."bodyshops" add column "pbs_serialnumber" text +-- null; diff --git a/hasura/migrations/1634096850340_alter_table_public_bodyshops_add_column_pbs_serialnumber/up.sql b/hasura/migrations/1634096850340_alter_table_public_bodyshops_add_column_pbs_serialnumber/up.sql new file mode 100644 index 000000000..d7511a289 --- /dev/null +++ b/hasura/migrations/1634096850340_alter_table_public_bodyshops_add_column_pbs_serialnumber/up.sql @@ -0,0 +1,2 @@ +alter table "public"."bodyshops" add column "pbs_serialnumber" text + null; diff --git a/server/accounting/pbs/pbs-constants.js b/server/accounting/pbs/pbs-constants.js new file mode 100644 index 000000000..ea6ef45df --- /dev/null +++ b/server/accounting/pbs/pbs-constants.js @@ -0,0 +1,21 @@ +const path = require("path"); +require("dotenv").config({ + path: path.resolve( + process.cwd(), + `.env.${process.env.NODE_ENV || "development"}` + ), +}); +const CdkBase = require("../web-sockets/web-socket"); + +const IMEX_PBS_USER = process.env.IMEX_PBS_USER, + IMEX_PBS_PASSWORD = process.env.IMEX_PBS_PASSWORD; +const PBS_CREDENTIALS = { + password: IMEX_PBS_PASSWORD, + username: IMEX_PBS_USER, +}; + +exports.PBS_CREDENTIALS = PBS_CREDENTIALS; +// const cdkDomain = +// process.env.NODE_ENV === "production" +// ? "https://3pa.dmotorworks.com" +// : "https://uat-3pa.dmotorworks.com"; diff --git a/server/accounting/pbs/pbs-job-export.js b/server/accounting/pbs/pbs-job-export.js new file mode 100644 index 000000000..d6aa7ade8 --- /dev/null +++ b/server/accounting/pbs/pbs-job-export.js @@ -0,0 +1,35 @@ +const path = require("path"); +require("dotenv").config({ + path: path.resolve( + process.cwd(), + `.env.${process.env.NODE_ENV || "development"}` + ), +}); +const GraphQLClient = require("graphql-request").GraphQLClient; +const soap = require("soap"); +const queries = require("../../graphql-client/queries"); +const CdkBase = require("../../web-sockets/web-socket"); + +//const { CDK_CREDENTIALS, CheckCdkResponseForError } = require("./cdk-wsdl"); +//const CalcualteAllocations = require("./cdk-calculate-allocations").default; + +const moment = require("moment"); + +exports.default = async function (socket, jobid) { + socket.logEvents = []; + socket.recordid = jobid; + + try { + CdkBase.createLogEvent( + socket, + "DEBUG", + `Received Job export request for id ${jobid}` + ); + } catch (error) { + CdkBase.createLogEvent( + socket, + "ERROR", + `Error encountered in PbsJobExport. ${error}` + ); + } +}; diff --git a/server/web-sockets/web-socket.js b/server/web-sockets/web-socket.js index 4f4df2219..3be2cfe81 100644 --- a/server/web-sockets/web-socket.js +++ b/server/web-sockets/web-socket.js @@ -17,6 +17,7 @@ const CdkCalculateAllocations = require("../cdk/cdk-calculate-allocations").default; const { isArray } = require("lodash"); const logger = require("../utils/logger"); +const PbsExportJob = require("../accounting/pbs/pbs-job-export"); io.use(function (socket, next) { try { @@ -57,6 +58,7 @@ io.on("connection", (socket) => { }); }); + ///CDK socket.on("cdk-export-job", (jobid) => { CdkJobExport(socket, jobid); }); @@ -94,6 +96,13 @@ io.on("connection", (socket) => { callback(allocations); }); + //END CDK + + //PBS + socket.on("pbs-export-job", (jobid) => { + PbsExportJob(socket, jobid); + }); + //End PBS socket.on("disconnect", () => { createLogEvent(socket, "DEBUG", `User disconnected.`);