IO-233 WS Updates and templat eadditions
This commit is contained in:
@@ -29001,6 +29001,27 @@
|
||||
</translation>
|
||||
</translations>
|
||||
</concept_node>
|
||||
<concept_node>
|
||||
<name>courtesy_car_impound</name>
|
||||
<definition_loaded>false</definition_loaded>
|
||||
<description></description>
|
||||
<comment></comment>
|
||||
<default_text></default_text>
|
||||
<translations>
|
||||
<translation>
|
||||
<language>en-US</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>es-MX</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>fr-CA</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
</translations>
|
||||
</concept_node>
|
||||
<concept_node>
|
||||
<name>courtesy_car_terms</name>
|
||||
<definition_loaded>false</definition_loaded>
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
import { Button, Dropdown, Menu } from "antd";
|
||||
import React, { useState } from "react";
|
||||
import { TemplateList } from "../../utils/TemplateConstants";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { GenerateDocument } from "../../utils/RenderTemplate";
|
||||
|
||||
const ProdTemplates = TemplateList("production");
|
||||
|
||||
export default function ProductionListPrint() {
|
||||
const { t } = useTranslation();
|
||||
const [loading, setLoading] = useState(false);
|
||||
return (
|
||||
<Dropdown
|
||||
trigger="click"
|
||||
overlay={
|
||||
<Menu>
|
||||
{Object.keys(ProdTemplates).map((key) => (
|
||||
<Menu.Item
|
||||
key={key}
|
||||
onClick={async () => {
|
||||
setLoading(true);
|
||||
await GenerateDocument(
|
||||
{
|
||||
name: ProdTemplates[key].key,
|
||||
// variables: { id: contract.id },
|
||||
},
|
||||
{},
|
||||
"p"
|
||||
);
|
||||
setLoading(false);
|
||||
}}
|
||||
>
|
||||
{ProdTemplates[key].title}
|
||||
</Menu.Item>
|
||||
))}
|
||||
</Menu>
|
||||
}
|
||||
>
|
||||
<Button loading={loading}>{t("general.labels.print")}</Button>
|
||||
</Dropdown>
|
||||
);
|
||||
}
|
||||
@@ -13,6 +13,7 @@ import ProductionListColumnsAdd from "../production-list-columns/production-list
|
||||
import ProductionListColumns from "../production-list-columns/production-list-columns.data";
|
||||
import ProductionListDetail from "../production-list-detail/production-list-detail.component";
|
||||
import ProductionListSaveConfigButton from "../production-list-save-config-button/production-list-save-config-button.component";
|
||||
import ProductionListPrint from "./production-list-print.component";
|
||||
import ProductionListTableViewSelect from "./production-list-table-view-select.component";
|
||||
import ResizeableTitle from "./production-list-table.resizeable.component";
|
||||
|
||||
@@ -88,14 +89,16 @@ export function ProductionListTable({
|
||||
setColumns(columns.filter((i) => i.key !== key));
|
||||
};
|
||||
|
||||
const handleResize = (index) => (e, { size }) => {
|
||||
const nextColumns = [...columns];
|
||||
nextColumns[index] = {
|
||||
...nextColumns[index],
|
||||
width: size.width,
|
||||
const handleResize =
|
||||
(index) =>
|
||||
(e, { size }) => {
|
||||
const nextColumns = [...columns];
|
||||
nextColumns[index] = {
|
||||
...nextColumns[index],
|
||||
width: size.width,
|
||||
};
|
||||
setColumns(nextColumns);
|
||||
};
|
||||
setColumns(nextColumns);
|
||||
};
|
||||
|
||||
const headerItem = (col) => (
|
||||
<Dropdown
|
||||
@@ -178,6 +181,7 @@ export function ProductionListTable({
|
||||
placeholder={t("general.labels.search")}
|
||||
value={searchText}
|
||||
/>
|
||||
<ProductionListPrint />
|
||||
</Space>
|
||||
}
|
||||
/>
|
||||
|
||||
@@ -110,6 +110,23 @@ export function ContractDetailPage({
|
||||
"printcenter.courtesycarcontract.courtesy_car_terms"
|
||||
)}
|
||||
</Menu.Item>
|
||||
<Menu.Item
|
||||
onClick={() =>
|
||||
GenerateDocument(
|
||||
{
|
||||
name: TemplateList("courtesycarcontract")
|
||||
.courtesy_car_impound.key,
|
||||
variables: { id: contract.id },
|
||||
},
|
||||
{},
|
||||
"p"
|
||||
)
|
||||
}
|
||||
>
|
||||
{t(
|
||||
"printcenter.courtesycarcontract.courtesy_car_impound"
|
||||
)}
|
||||
</Menu.Item>
|
||||
</Menu>
|
||||
}
|
||||
>
|
||||
|
||||
@@ -21,7 +21,7 @@ const mapDispatchToProps = (dispatch) => ({
|
||||
setSelectedHeader: (key) => dispatch(setSelectedHeader(key)),
|
||||
});
|
||||
|
||||
export default connect(mapStateToProps, mapDispatchToProps)(CdkContainer);
|
||||
export default connect(mapStateToProps, mapDispatchToProps)(DmsContainer);
|
||||
|
||||
export const socket = SocketIO(
|
||||
process.env.NODE_ENV === "production"
|
||||
@@ -29,7 +29,6 @@ export const socket = SocketIO(
|
||||
: window.location.origin,
|
||||
{
|
||||
path: "/ws",
|
||||
// transports: ["websocket"],
|
||||
auth: async (callback) => {
|
||||
const token = auth.currentUser && (await auth.currentUser.getIdToken());
|
||||
callback({ token });
|
||||
@@ -37,16 +36,17 @@ export const socket = SocketIO(
|
||||
}
|
||||
);
|
||||
|
||||
export function CdkContainer({ bodyshop, setBreadcrumbs, setSelectedHeader }) {
|
||||
export function DmsContainer({ bodyshop, setBreadcrumbs, setSelectedHeader }) {
|
||||
const { t } = useTranslation();
|
||||
const [logs, setLogs] = useState([]);
|
||||
|
||||
useEffect(() => {
|
||||
document.title = t("titles.cdk");
|
||||
setSelectedHeader("cdk");
|
||||
document.title = t("titles.dms");
|
||||
setSelectedHeader("dms");
|
||||
setBreadcrumbs([
|
||||
{
|
||||
link: "/manage/cdk",
|
||||
label: t("titles.bc.cdk"),
|
||||
link: "/manage/dms",
|
||||
label: t("titles.bc.dms"),
|
||||
},
|
||||
]);
|
||||
}, [t, setBreadcrumbs, setSelectedHeader]);
|
||||
@@ -63,7 +63,6 @@ export function CdkContainer({ bodyshop, setBreadcrumbs, setSelectedHeader }) {
|
||||
});
|
||||
|
||||
socket.connect();
|
||||
|
||||
socket.emit("set-log-level", "TRACE");
|
||||
|
||||
return () => {
|
||||
@@ -74,11 +73,16 @@ export function CdkContainer({ bodyshop, setBreadcrumbs, setSelectedHeader }) {
|
||||
|
||||
if (!bodyshop.cdk_dealerid) return <Result status="404" />;
|
||||
|
||||
const dmsType = determineDmsType(bodyshop);
|
||||
|
||||
return (
|
||||
<div>
|
||||
<Button
|
||||
onClick={() => {
|
||||
socket.emit("export-job", "752a4f5f-22ab-414b-b182-98d4e62227ef");
|
||||
socket.emit(
|
||||
`${dmsType}-export-job`,
|
||||
"752a4f5f-22ab-414b-b182-98d4e62227ef"
|
||||
);
|
||||
}}
|
||||
>
|
||||
Export
|
||||
@@ -126,3 +130,10 @@ function LogLevelHierarchy(level) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
const determineDmsType = (bodyshop) => {
|
||||
if (bodyshop.cdk_dealerid) return "cdk";
|
||||
else {
|
||||
return "pbs";
|
||||
}
|
||||
};
|
||||
@@ -159,7 +159,7 @@ const EmailTest = lazy(() =>
|
||||
import("../../components/email-test/email-test-component")
|
||||
);
|
||||
const Dashboard = lazy(() => import("../dashboard/dashboard.container"));
|
||||
const Cdk = lazy(() => import("../cdk/cdk.container"));
|
||||
const Dms = lazy(() => import("../dms/dms.container"));
|
||||
|
||||
const { Content, Footer } = Layout;
|
||||
|
||||
@@ -368,7 +368,7 @@ export function Manage({ match, conflict, bodyshop }) {
|
||||
<Route exact path={`${match.path}/help`} component={Help} />
|
||||
<Route exact path={`${match.path}/emailtest`} component={EmailTest} />
|
||||
<Route exact path={`${match.path}/dashboard`} component={Dashboard} />
|
||||
<Route exact path={`${match.path}/cdk`} component={Cdk} />
|
||||
<Route exact path={`${match.path}/dms`} component={Dms} />
|
||||
</Suspense>
|
||||
);
|
||||
|
||||
|
||||
@@ -1736,6 +1736,7 @@
|
||||
},
|
||||
"courtesycarcontract": {
|
||||
"courtesy_car_contract": "Courtesy Car Contract",
|
||||
"courtesy_car_impound": "Impound Charges",
|
||||
"courtesy_car_terms": "Courtesy Car Terms"
|
||||
},
|
||||
"errors": {
|
||||
|
||||
@@ -1736,6 +1736,7 @@
|
||||
},
|
||||
"courtesycarcontract": {
|
||||
"courtesy_car_contract": "",
|
||||
"courtesy_car_impound": "",
|
||||
"courtesy_car_terms": ""
|
||||
},
|
||||
"errors": {
|
||||
|
||||
@@ -1736,6 +1736,7 @@
|
||||
},
|
||||
"courtesycarcontract": {
|
||||
"courtesy_car_contract": "",
|
||||
"courtesy_car_impound": "",
|
||||
"courtesy_car_terms": ""
|
||||
},
|
||||
"errors": {
|
||||
|
||||
@@ -326,7 +326,7 @@ export const TemplateList = (type, context) => {
|
||||
key: "parts_label_single",
|
||||
subject: i18n.t("printcenter.jobs.parts_label_single"),
|
||||
disabled: false,
|
||||
group: "post",
|
||||
group: "ro",
|
||||
},
|
||||
}
|
||||
: {}),
|
||||
@@ -1061,6 +1061,88 @@ export const TemplateList = (type, context) => {
|
||||
field: i18n.t("jobs.fields.date_open"),
|
||||
},
|
||||
},
|
||||
}
|
||||
: {}),
|
||||
...(!type || type === "courtesycarcontract"
|
||||
? {
|
||||
courtesy_car_contract: {
|
||||
title: i18n.t(
|
||||
"printcenter.courtesycarcontract.courtesy_car_contract"
|
||||
),
|
||||
description: "Est Detail",
|
||||
subject: i18n.t(
|
||||
"printcenter.courtesycarcontract.courtesy_car_contract"
|
||||
),
|
||||
key: "courtesy_car_contract",
|
||||
disabled: false,
|
||||
},
|
||||
courtesy_car_terms: {
|
||||
title: i18n.t("printcenter.courtesycarcontract.courtesy_car_terms"),
|
||||
description: "Est Detail",
|
||||
subject: i18n.t(
|
||||
"printcenter.courtesycarcontract.courtesy_car_terms"
|
||||
),
|
||||
key: "courtesy_car_terms",
|
||||
disabled: false,
|
||||
},
|
||||
courtesy_car_impound: {
|
||||
title: i18n.t(
|
||||
"printcenter.courtesycarcontract.courtesy_car_impound"
|
||||
),
|
||||
description: "Est Detail",
|
||||
subject: i18n.t(
|
||||
"printcenter.courtesycarcontract.courtesy_car_impound"
|
||||
),
|
||||
key: "courtesy_car_impound",
|
||||
disabled: false,
|
||||
},
|
||||
}
|
||||
: {}),
|
||||
...(!type || type === "bill"
|
||||
? {
|
||||
inhouse_invoice: {
|
||||
title: i18n.t("printcenter.bills.inhouse_invoice"),
|
||||
description: "Est Detail",
|
||||
subject: i18n.t("printcenter.bills.inhouse_invoice"),
|
||||
key: "inhouse_invoice",
|
||||
disabled: false,
|
||||
},
|
||||
}
|
||||
: {}),
|
||||
...(!type || type === "timeticket"
|
||||
? {
|
||||
// timetickets: {
|
||||
// title: i18n.t("printcenter.timetickets.timetickets"),
|
||||
// description: "Est Detail",
|
||||
// subject: `${i18n.t("printcenter.timetickets.timetickets")} - ${
|
||||
// context && context.job && context.job.ro_number
|
||||
// }`,
|
||||
// key: "timetickets",
|
||||
// disabled: false,
|
||||
// },
|
||||
}
|
||||
: {}),
|
||||
...(!type || type === "vendor"
|
||||
? {
|
||||
purchases_by_vendor_detailed: {
|
||||
title: i18n.t("printcenter.vendors.purchases_by_vendor_detailed"),
|
||||
description: "Est Detail",
|
||||
subject: i18n.t("printcenter.vendors.purchases_by_vendor_detailed"),
|
||||
key: "purchases_by_vendor_detailed",
|
||||
disabled: false,
|
||||
},
|
||||
purchases_by_vendor_summary: {
|
||||
title: i18n.t("printcenter.vendors.purchases_by_vendor_summary"),
|
||||
description: "Est Detail",
|
||||
subject: i18n.t("printcenter.vendors.purchases_by_vendor_summary"),
|
||||
key: "purchases_by_vendor_summary",
|
||||
disabled: false,
|
||||
},
|
||||
}
|
||||
: {}),
|
||||
|
||||
...(!type || type === "production"
|
||||
? {
|
||||
production_by_last_name: {
|
||||
title: i18n.t("reportcenter.templates.production_by_last_name"),
|
||||
description: "",
|
||||
@@ -1113,72 +1195,6 @@ export const TemplateList = (type, context) => {
|
||||
},
|
||||
}
|
||||
: {}),
|
||||
...(!type || type === "courtesycarcontract"
|
||||
? {
|
||||
courtesy_car_contract: {
|
||||
title: i18n.t(
|
||||
"printcenter.courtesycarcontract.courtesy_car_contract"
|
||||
),
|
||||
description: "Est Detail",
|
||||
subject: i18n.t(
|
||||
"printcenter.courtesycarcontract.courtesy_car_contract"
|
||||
),
|
||||
key: "courtesy_car_contract",
|
||||
disabled: false,
|
||||
},
|
||||
courtesy_car_terms: {
|
||||
title: i18n.t("printcenter.courtesycarcontract.courtesy_car_terms"),
|
||||
description: "Est Detail",
|
||||
subject: i18n.t(
|
||||
"printcenter.courtesycarcontract.courtesy_car_terms"
|
||||
),
|
||||
key: "courtesy_car_terms",
|
||||
disabled: false,
|
||||
},
|
||||
}
|
||||
: {}),
|
||||
...(!type || type === "bill"
|
||||
? {
|
||||
inhouse_invoice: {
|
||||
title: i18n.t("printcenter.bills.inhouse_invoice"),
|
||||
description: "Est Detail",
|
||||
subject: i18n.t("printcenter.bills.inhouse_invoice"),
|
||||
key: "inhouse_invoice",
|
||||
disabled: false,
|
||||
},
|
||||
}
|
||||
: {}),
|
||||
...(!type || type === "timeticket"
|
||||
? {
|
||||
// timetickets: {
|
||||
// title: i18n.t("printcenter.timetickets.timetickets"),
|
||||
// description: "Est Detail",
|
||||
// subject: `${i18n.t("printcenter.timetickets.timetickets")} - ${
|
||||
// context && context.job && context.job.ro_number
|
||||
// }`,
|
||||
// key: "timetickets",
|
||||
// disabled: false,
|
||||
// },
|
||||
}
|
||||
: {}),
|
||||
...(!type || type === "vendor"
|
||||
? {
|
||||
purchases_by_vendor_detailed: {
|
||||
title: i18n.t("printcenter.vendors.purchases_by_vendor_detailed"),
|
||||
description: "Est Detail",
|
||||
subject: i18n.t("printcenter.vendors.purchases_by_vendor_detailed"),
|
||||
key: "purchases_by_vendor_detailed",
|
||||
disabled: false,
|
||||
},
|
||||
purchases_by_vendor_summary: {
|
||||
title: i18n.t("printcenter.vendors.purchases_by_vendor_summary"),
|
||||
description: "Est Detail",
|
||||
subject: i18n.t("printcenter.vendors.purchases_by_vendor_summary"),
|
||||
key: "purchases_by_vendor_summary",
|
||||
disabled: false,
|
||||
},
|
||||
}
|
||||
: {}),
|
||||
...(!type || type === "special"
|
||||
? {
|
||||
ca_bc_etf_table: {
|
||||
|
||||
@@ -168,4 +168,4 @@ server.listen(port, (error) => {
|
||||
console.log(`[${process.env.NODE_ENV}] Server running on port ${port}`);
|
||||
});
|
||||
exports.io = io;
|
||||
require("./server/cdk/cdk");
|
||||
require("./server/web-sockets/web-socket");
|
||||
|
||||
@@ -8,7 +8,7 @@ require("dotenv").config({
|
||||
const GraphQLClient = require("graphql-request").GraphQLClient;
|
||||
const soap = require("soap");
|
||||
const queries = require("../graphql-client/queries");
|
||||
const CdkBase = require("./cdk");
|
||||
const CdkBase = require("../web-sockets/web-socket");
|
||||
const CdkWsdl = require("./cdk-wsdl").default;
|
||||
|
||||
const IMEX_CDK_USER = process.env.IMEX_CDK_USER,
|
||||
|
||||
@@ -9,7 +9,7 @@ require("dotenv").config({
|
||||
|
||||
const { io } = require("../../server");
|
||||
const { admin } = require("../firebase/firebase-handler");
|
||||
const CdkJobExport = require("./cdk-job-export").default;
|
||||
const CdkJobExport = require("../cdk/cdk-job-export").default;
|
||||
const { isArray } = require("lodash");
|
||||
|
||||
io.use(function (socket, next) {
|
||||
@@ -43,7 +43,7 @@ io.on("connection", (socket) => {
|
||||
createLogEvent(socket, "DEBUG", `Updated log level to ${level}`);
|
||||
});
|
||||
|
||||
socket.on("export-job", (jobid) => {
|
||||
socket.on("cdk-export-job", (jobid) => {
|
||||
CdkJobExport(socket, jobid);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user