Merged in release/2021-12-03 (pull request #282)

release/2021-12-03

Approved-by: Patrick Fic
This commit is contained in:
Patrick Fic
2021-12-01 21:38:21 +00:00
15 changed files with 968 additions and 756 deletions

File diff suppressed because one or more lines are too long

View File

@@ -1,4 +1,4 @@
<babeledit_project version="1.2" be_version="2.7.1"> <babeledit_project be_version="2.7.1" version="1.2">
<!-- <!--
BabelEdit project file BabelEdit project file
@@ -7994,6 +7994,27 @@
<folder_node> <folder_node>
<name>cdk</name> <name>cdk</name>
<children> <children>
<concept_node>
<name>controllist</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> <concept_node>
<name>payers</name> <name>payers</name>
<definition_loaded>false</definition_loaded> <definition_loaded>false</definition_loaded>
@@ -8038,6 +8059,27 @@
</translation> </translation>
</translations> </translations>
</concept_node> </concept_node>
<concept_node>
<name>pbs_serialnumber</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> <concept_node>
<name>title</name> <name>title</name>
<definition_loaded>false</definition_loaded> <definition_loaded>false</definition_loaded>

View File

@@ -34,7 +34,7 @@ export const tracker = new Tracker({
// trackerAssist({ confirmText: "Technical support is about to assist you." }) // trackerAssist({ confirmText: "Technical support is about to assist you." })
// ); // check the list of available options below // ); // check the list of available options below
export const recordGraphQL = tracker.use(trackerGraphQL()); export const recordGraphQL = tracker.use(trackerGraphQL());
tracker.start(); //tracker.start();
if (process.env.NODE_ENV === "production") LogRocket.init("gvfvfw/bodyshopapp"); if (process.env.NODE_ENV === "production") LogRocket.init("gvfvfw/bodyshopapp");
export const factory = SplitSdk({ export const factory = SplitSdk({

View File

@@ -34,10 +34,7 @@ export function DmsCustomerSelector({ bodyshop }) {
setVisible(true); setVisible(true);
setDmsType("pbs"); setDmsType("pbs");
setcustomerList(customerList); setcustomerList(customerList);
console.log(
"🚀 ~ file: dms-customer-selector.component.jsx ~ line 37 ~ socket.on ~ customerList",
customerList
);
}); });
const onUseSelected = () => { const onUseSelected = () => {
@@ -49,7 +46,7 @@ export function DmsCustomerSelector({ bodyshop }) {
const onUseGeneric = () => { const onUseGeneric = () => {
setVisible(false); setVisible(false);
socket.emit( socket.emit(
"cdk-selected-customer", `${dmsType}selected-customer`,
bodyshop.cdk_configuration.generic_customer_number bodyshop.cdk_configuration.generic_customer_number
); );
setSelectedCustomer(null); setSelectedCustomer(null);
@@ -57,7 +54,7 @@ export function DmsCustomerSelector({ bodyshop }) {
const onCreateNew = () => { const onCreateNew = () => {
setVisible(false); setVisible(false);
socket.emit("cdk-selected-customer", null); socket.emit(`${dmsType}-selected-customer`, null);
setSelectedCustomer(null); setSelectedCustomer(null);
}; };
@@ -102,12 +99,6 @@ export function DmsCustomerSelector({ bodyshop }) {
dataIndex: "ContactId", dataIndex: "ContactId",
key: "ContactId", key: "ContactId",
}, },
{
title: t("jobs.fields.dms.vinowner"),
dataIndex: "vinOwner",
key: "vinOwner",
render: (text, record) => <Checkbox disabled checked={record.vinOwner} />,
},
{ {
title: t("jobs.fields.dms.name1"), title: t("jobs.fields.dms.name1"),
key: "name1", key: "name1",
@@ -127,6 +118,7 @@ export function DmsCustomerSelector({ bodyshop }) {
if (!visible) return null; if (!visible) return null;
return ( return (
<Col span={24}> <Col span={24}>
{dmsType}
<Table <Table
title={() => ( title={() => (
<div> <div>

View File

@@ -1,14 +1,16 @@
import { DeleteFilled } from "@ant-design/icons"; import { DeleteFilled, DownOutlined } from "@ant-design/icons";
import { import {
Button, Button,
Card, Card,
Divider, Divider,
Dropdown,
Form, Form,
Input, Input,
InputNumber, InputNumber,
Select, Select,
Space, Space,
Statistic, Statistic,
Menu,
Typography, Typography,
} from "antd"; } from "antd";
import Dinero from "dinero.js"; import Dinero from "dinero.js";
@@ -252,6 +254,42 @@ export function DmsPostForm({ bodyshop, socket, job }) {
}} }}
</Form.Item> </Form.Item>
<Dropdown
overlay={
<Menu>
{bodyshop.cdk_configuration.controllist &&
bodyshop.cdk_configuration.controllist.map(
(key, idx) => (
<Menu.Item
key={idx}
onClick={() => {
form.setFieldsValue({
payers: form
.getFieldValue("payers")
.map((row, mapIndex) => {
if (index !== mapIndex) return row;
return {
...row,
controlnumber: key.controlnumber,
};
}),
});
}}
>
{key.name}
</Menu.Item>
)
)}
</Menu>
}
>
<a href=" #" onClick={(e) => e.preventDefault()}>
{t("bodyshop.labels.dms.cdk.controllist")}{" "}
<DownOutlined />
</a>
</Dropdown>
<DeleteFilled <DeleteFilled
onClick={() => { onClick={() => {
remove(field.name); remove(field.name);

View File

@@ -100,7 +100,7 @@ export function JobsAvailableContainer({
} }
//IO-539 Check for Parts Rate on PAL for SGI use case. //IO-539 Check for Parts Rate on PAL for SGI use case.
await CheckTaxRates(estData.est_data, bodyshop); await CheckTaxRates(estData.est_data, bodyshop);
console.log(estData);
const newTotals = ( const newTotals = (
await Axios.post("/job/totals", { await Axios.post("/job/totals", {
job: { job: {

View File

@@ -472,7 +472,7 @@ export default function ShopInfoGeneral({ form }) {
label={t("bodyshop.fields.md_email_cc", { template: "parts_order" })} label={t("bodyshop.fields.md_email_cc", { template: "parts_order" })}
rules={[ rules={[
{ {
required: true,
//message: t("general.validation.required"), //message: t("general.validation.required"),
type: "array", type: "array",
}, },
@@ -492,7 +492,7 @@ export default function ShopInfoGeneral({ form }) {
label={t("bodyshop.fields.md_ded_notes")} label={t("bodyshop.fields.md_ded_notes")}
rules={[ rules={[
{ {
required: true,
//message: t("general.validation.required"), //message: t("general.validation.required"),
type: "array", type: "array",
}, },

View File

@@ -73,7 +73,7 @@ export function ShopInfoResponsibilityCenterComponent({ bodyshop, form }) {
return ( return (
<div> <div>
{bodyshop.cdk_dealerid && ( {(bodyshop.cdk_dealerid || bodyshop.pbs_serialnumber)&& (
<> <>
<DataLabel label={t("bodyshop.labels.dms.cdk_dealerid")}> <DataLabel label={t("bodyshop.labels.dms.cdk_dealerid")}>
{form.getFieldValue("cdk_dealerid")} {form.getFieldValue("cdk_dealerid")}
@@ -201,6 +201,63 @@ export function ShopInfoResponsibilityCenterComponent({ bodyshop, form }) {
}} }}
</Form.List> </Form.List>
</LayoutFormRow> </LayoutFormRow>
<LayoutFormRow header={t("bodyshop.labels.dms.cdk.controllist")}>
<Form.List name={["cdk_configuration", "controllist"]}>
{(fields, { add, remove }) => {
return (
<div>
{fields.map((field, index) => (
<Form.Item key={field.key}>
<LayoutFormRow noDivider>
<Form.Item
label={t("jobs.fields.dms.payer.name")}
key={`${index}name`}
name={[field.name, "name"]}
rules={[
{
required: true,
},
]}
>
<Input />
</Form.Item>
<Form.Item
label={t("jobs.fields.dms.payer.controlnumber")}
key={`${index}controlnumber`}
name={[field.name, "controlnumber"]}
rules={[
{
required: true,
},
]}
>
<Input />
</Form.Item>
<DeleteFilled
onClick={() => {
remove(field.name);
}}
/>
</LayoutFormRow>
</Form.Item>
))}
<Form.Item>
<Button
type="dashed"
onClick={() => {
add();
}}
style={{ width: "100%" }}
>
{t("general.actions.add")}
</Button>
</Form.Item>
</div>
);
}}
</Form.List>
</LayoutFormRow>
</> </>
)} )}
@@ -293,7 +350,7 @@ export function ShopInfoResponsibilityCenterComponent({ bodyshop, form }) {
<Input onBlur={handleBlur} /> <Input onBlur={handleBlur} />
</Form.Item> */} </Form.Item> */}
{bodyshop.cdk_dealerid && ( {(bodyshop.cdk_dealerid || bodyshop.pbs_serialnumber) && (
<Form.Item <Form.Item
label={t("bodyshop.fields.dms.dms_acctnumber")} label={t("bodyshop.fields.dms.dms_acctnumber")}
key={`${index}dms_acctnumber`} key={`${index}dms_acctnumber`}
@@ -307,7 +364,7 @@ export function ShopInfoResponsibilityCenterComponent({ bodyshop, form }) {
<Input onBlur={handleBlur} /> <Input onBlur={handleBlur} />
</Form.Item> </Form.Item>
)} )}
{bodyshop.cdk_dealerid && ( {(bodyshop.cdk_dealerid || bodyshop.pbs_serialnumber) && (
<Form.Item <Form.Item
label={t("bodyshop.fields.dms.dms_wip_acctnumber")} label={t("bodyshop.fields.dms.dms_wip_acctnumber")}
key={`${index}dms_wip_acctnumber`} key={`${index}dms_wip_acctnumber`}
@@ -430,7 +487,7 @@ export function ShopInfoResponsibilityCenterComponent({ bodyshop, form }) {
> >
<Input onBlur={handleBlur} /> <Input onBlur={handleBlur} />
</Form.Item> </Form.Item>
{bodyshop.cdk_dealerid && ( {(bodyshop.cdk_dealerid || bodyshop.pbs_serialnumber) && (
<Form.Item <Form.Item
label={t("bodyshop.fields.dms.dms_acctnumber")} label={t("bodyshop.fields.dms.dms_acctnumber")}
key={`${index}dms_acctnumber`} key={`${index}dms_acctnumber`}
@@ -470,7 +527,7 @@ export function ShopInfoResponsibilityCenterComponent({ bodyshop, form }) {
</LayoutFormRow> </LayoutFormRow>
<SelectorDiv> <SelectorDiv>
{bodyshop.cdk_dealerid && ( {(bodyshop.cdk_dealerid || bodyshop.pbs_serialnumber) && (
<> <>
<Form.List name={["md_responsibility_centers", "dms_defaults"]}> <Form.List name={["md_responsibility_centers", "dms_defaults"]}>
{(fields, { add, remove }) => { {(fields, { add, remove }) => {
@@ -3921,7 +3978,7 @@ export function ShopInfoResponsibilityCenterComponent({ bodyshop, form }) {
> >
<Input /> <Input />
</Form.Item> </Form.Item>
{bodyshop.cdk_dealerid && ( {(bodyshop.cdk_dealerid || bodyshop.pbs_serialnumber) && (
<Form.Item <Form.Item
label={t("bodyshop.fields.dms.dms_acctnumber")} label={t("bodyshop.fields.dms.dms_acctnumber")}
rules={[ rules={[
@@ -4019,7 +4076,7 @@ export function ShopInfoResponsibilityCenterComponent({ bodyshop, form }) {
> >
<Input /> <Input />
</Form.Item> </Form.Item>
{bodyshop.cdk_dealerid && ( {(bodyshop.cdk_dealerid || bodyshop.pbs_serialnumber) && (
<Form.Item <Form.Item
label={t("bodyshop.fields.dms.dms_acctnumber")} label={t("bodyshop.fields.dms.dms_acctnumber")}
rules={[ rules={[
@@ -4117,7 +4174,7 @@ export function ShopInfoResponsibilityCenterComponent({ bodyshop, form }) {
> >
<Input /> <Input />
</Form.Item> </Form.Item>
{bodyshop.cdk_dealerid && ( {(bodyshop.cdk_dealerid || bodyshop.pbs_serialnumber) && (
<Form.Item <Form.Item
label={t("bodyshop.fields.dms.dms_acctnumber")} label={t("bodyshop.fields.dms.dms_acctnumber")}
rules={[ rules={[

View File

@@ -496,9 +496,11 @@
"deliverchecklist": "Delivery Checklist", "deliverchecklist": "Delivery Checklist",
"dms": { "dms": {
"cdk": { "cdk": {
"controllist": "Control Number List",
"payers": "CDK Payers" "payers": "CDK Payers"
}, },
"cdk_dealerid": "CDK Dealer ID", "cdk_dealerid": "CDK Dealer ID",
"pbs_serialnumber": "PBS Serial Number",
"title": "DMS" "title": "DMS"
}, },
"emaillater": "Email Later", "emaillater": "Email Later",

View File

@@ -496,9 +496,11 @@
"deliverchecklist": "", "deliverchecklist": "",
"dms": { "dms": {
"cdk": { "cdk": {
"controllist": "",
"payers": "" "payers": ""
}, },
"cdk_dealerid": "", "cdk_dealerid": "",
"pbs_serialnumber": "",
"title": "" "title": ""
}, },
"emaillater": "", "emaillater": "",

View File

@@ -496,9 +496,11 @@
"deliverchecklist": "", "deliverchecklist": "",
"dms": { "dms": {
"cdk": { "cdk": {
"controllist": "",
"payers": "" "payers": ""
}, },
"cdk_dealerid": "", "cdk_dealerid": "",
"pbs_serialnumber": "",
"title": "" "title": ""
}, },
"emaillater": "", "emaillater": "",

View File

@@ -85,7 +85,7 @@ exports.PbsSelectedCustomer = async function PbsSelectedCustomer(
CdkBase.createLogEvent(socket, "DEBUG", `Inserting account data.`); CdkBase.createLogEvent(socket, "DEBUG", `Inserting account data.`);
await InsertAccountPostingData(socket); await InsertAccountPostingData(socket);
CdkBase.createLogEvent(socket, "DEBUG", `Marking job as exported.`); CdkBase.createLogEvent(socket, "DEBUG", `Marking job as exported.`);
// await MarkJobExported(socket, socket.JobData.id); await MarkJobExported(socket, socket.JobData.id);
socket.emit("export-success", socket.JobData.id); socket.emit("export-success", socket.JobData.id);
} catch (error) { } catch (error) {

View File

@@ -192,7 +192,7 @@ exports.default = async function (socket, jobid) {
// ); // );
taxAllocations.state.sale = taxAllocations.state.sale.add( taxAllocations.state.sale = taxAllocations.state.sale.add(
Dinero({ amount: (ca_bc_pvrt || 0) * 100 }) Dinero({ amount: Math.round((ca_bc_pvrt || 0) * 100) })
); );
} }

File diff suppressed because it is too large Load Diff

View File

@@ -1254,6 +1254,7 @@ exports.GET_CDK_ALLOCATIONS = `query QUERY_JOB_CLOSE_DETAILS($id: uuid!) {
actual_delivery actual_delivery
scheduled_in scheduled_in
actual_in actual_in
ca_bc_pvrt
timetickets { timetickets {
id id
actualhrs actualhrs