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 0c98968bc..41b2123fb 100644 --- a/client/src/graphql/bodyshop.queries.js +++ b/client/src/graphql/bodyshop.queries.js @@ -96,6 +96,8 @@ export const QUERY_BODYSHOP = gql` cdk_configuration md_estimators md_ded_notes + pbs_configuration + pbs_serialnumber employees { id active @@ -188,6 +190,8 @@ export const UPDATE_SHOP = gql` cdk_configuration md_estimators md_ded_notes + pbs_configuration + pbs_serialnumber employees { id first_name 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.`);