Added ownr_co_nm to owner display fields. BOD-256
This commit is contained in:
@@ -1,4 +1,3 @@
|
|||||||
import { Grid } from "antd";
|
|
||||||
import "antd/dist/antd.css";
|
import "antd/dist/antd.css";
|
||||||
import React, { lazy, Suspense, useEffect } from "react";
|
import React, { lazy, Suspense, useEffect } from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
@@ -40,7 +39,7 @@ export function App({ checkUserSession, currentUser }) {
|
|||||||
checkUserSession();
|
checkUserSession();
|
||||||
}, [checkUserSession]);
|
}, [checkUserSession]);
|
||||||
|
|
||||||
const b = Grid.useBreakpoint();
|
//const b = Grid.useBreakpoint();
|
||||||
// console.log("Breakpoints:", b);
|
// console.log("Breakpoints:", b);
|
||||||
|
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
|||||||
@@ -61,11 +61,13 @@ export default function AccountingPayablesTableComponent({
|
|||||||
render: (text, record) => {
|
render: (text, record) => {
|
||||||
return record.job.owner ? (
|
return record.job.owner ? (
|
||||||
<Link to={"/manage/owners/" + record.job.owner.id}>
|
<Link to={"/manage/owners/" + record.job.owner.id}>
|
||||||
{`${record.job.ownr_fn || ""} ${record.job.ownr_ln || ""}`}
|
{`${record.job.ownr_fn || ""} ${record.job.ownr_ln || ""} ${
|
||||||
|
record.job.ownr_co_nm
|
||||||
|
}`}
|
||||||
</Link>
|
</Link>
|
||||||
) : (
|
) : (
|
||||||
<span>{`${record.job.ownr_fn || ""} ${
|
<span>{`${record.job.ownr_fn || ""} ${record.job.ownr_ln || ""} ${
|
||||||
record.job.ownr_ln || ""
|
record.job.ownr_co_nm
|
||||||
}`}</span>
|
}`}</span>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
@@ -168,10 +170,10 @@ export default function AccountingPayablesTableComponent({
|
|||||||
);
|
);
|
||||||
}}
|
}}
|
||||||
dataSource={dataSource}
|
dataSource={dataSource}
|
||||||
size='small'
|
size="small"
|
||||||
pagination={{ position: "top", pageSize: 50 }}
|
pagination={{ position: "top", pageSize: 50 }}
|
||||||
columns={columns}
|
columns={columns}
|
||||||
rowKey='id'
|
rowKey="id"
|
||||||
onChange={handleTableChange}
|
onChange={handleTableChange}
|
||||||
rowSelection={{
|
rowSelection={{
|
||||||
onSelectAll: (selected, selectedRows) =>
|
onSelectAll: (selected, selectedRows) =>
|
||||||
|
|||||||
@@ -63,10 +63,14 @@ export default function AccountingReceivablesTableComponent({ loading, jobs }) {
|
|||||||
render: (text, record) => {
|
render: (text, record) => {
|
||||||
return record.owner ? (
|
return record.owner ? (
|
||||||
<Link to={"/manage/owners/" + record.owner.id}>
|
<Link to={"/manage/owners/" + record.owner.id}>
|
||||||
{`${record.ownr_fn || ""} ${record.ownr_ln || ""}`}
|
{`${record.ownr_fn || ""} ${record.ownr_ln || ""} ${
|
||||||
|
record.ownr_co_nm || ""
|
||||||
|
}`}
|
||||||
</Link>
|
</Link>
|
||||||
) : (
|
) : (
|
||||||
<span>{`${record.ownr_fn || ""} ${record.ownr_ln || ""}`}</span>
|
<span>{`${record.ownr_fn || ""} ${record.ownr_ln || ""} ${
|
||||||
|
record.ownr_co_nm || ""
|
||||||
|
}`}</span>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -31,12 +31,13 @@ export default function ChatTagRoComponent({
|
|||||||
onSearch={handleSearchQuery}
|
onSearch={handleSearchQuery}
|
||||||
onSelect={handleInsertTag}
|
onSelect={handleInsertTag}
|
||||||
placeholder={t("general.labels.search")}
|
placeholder={t("general.labels.search")}
|
||||||
onKeyDown={handleKeyDown}>
|
onKeyDown={handleKeyDown}
|
||||||
|
>
|
||||||
{roOptions.map((item, idx) => (
|
{roOptions.map((item, idx) => (
|
||||||
<AutoComplete.Option key={item.id || idx}>
|
<AutoComplete.Option key={item.id || idx}>
|
||||||
{` ${item.ro_number || ""} | ${item.ownr_fn || ""} ${
|
{` ${item.ro_number || ""} | ${item.ownr_fn || ""} ${
|
||||||
item.ownr_ln || ""
|
item.ownr_ln || ""
|
||||||
}`}
|
} ${item.ownr_co_nm || ""}`}
|
||||||
</AutoComplete.Option>
|
</AutoComplete.Option>
|
||||||
))}
|
))}
|
||||||
</AutoComplete>
|
</AutoComplete>
|
||||||
|
|||||||
@@ -7,12 +7,12 @@ export default function ContractsJobsComponent({
|
|||||||
loading,
|
loading,
|
||||||
data,
|
data,
|
||||||
selectedJob,
|
selectedJob,
|
||||||
handleSelect
|
handleSelect,
|
||||||
}) {
|
}) {
|
||||||
const [state, setState] = useState({
|
const [state, setState] = useState({
|
||||||
sortedInfo: {},
|
sortedInfo: {},
|
||||||
filteredInfo: { text: "" },
|
filteredInfo: { text: "" },
|
||||||
search: ""
|
search: "",
|
||||||
});
|
});
|
||||||
|
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
@@ -35,7 +35,7 @@ export default function ContractsJobsComponent({
|
|||||||
<span>
|
<span>
|
||||||
{record.ro_number ? record.ro_number : "EST-" + record.est_number}
|
{record.ro_number ? record.ro_number : "EST-" + record.est_number}
|
||||||
</span>
|
</span>
|
||||||
)
|
),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: t("jobs.fields.owner"),
|
title: t("jobs.fields.owner"),
|
||||||
@@ -49,12 +49,14 @@ export default function ContractsJobsComponent({
|
|||||||
render: (text, record) => {
|
render: (text, record) => {
|
||||||
return record.owner ? (
|
return record.owner ? (
|
||||||
<span>
|
<span>
|
||||||
{record.ownr_fn} {record.ownr_ln}
|
{record.ownr_fn} {record.ownr_ln} {record.ownr_co_nm || ""}
|
||||||
</span>
|
</span>
|
||||||
) : (
|
) : (
|
||||||
<span>{`${record.ownr_fn} ${record.ownr_ln}`}</span>
|
<span>{`${record.ownr_fn} ${record.ownr_ln} ${
|
||||||
|
record.ownr_co_nm || ""
|
||||||
|
}`}</span>
|
||||||
);
|
);
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: t("jobs.fields.status"),
|
title: t("jobs.fields.status"),
|
||||||
@@ -67,7 +69,7 @@ export default function ContractsJobsComponent({
|
|||||||
state.sortedInfo.columnKey === "status" && state.sortedInfo.order,
|
state.sortedInfo.columnKey === "status" && state.sortedInfo.order,
|
||||||
render: (text, record) => {
|
render: (text, record) => {
|
||||||
return record.status || t("general.labels.na");
|
return record.status || t("general.labels.na");
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
@@ -79,13 +81,14 @@ export default function ContractsJobsComponent({
|
|||||||
render: (text, record) => {
|
render: (text, record) => {
|
||||||
return record.vehicleid ? (
|
return record.vehicleid ? (
|
||||||
<span>
|
<span>
|
||||||
{`${record.v_model_yr || ""} ${record.v_make_desc ||
|
{`${record.v_model_yr || ""} ${record.v_make_desc || ""} ${
|
||||||
""} ${record.v_model_desc || ""}`}
|
record.v_model_desc || ""
|
||||||
|
}`}
|
||||||
</span>
|
</span>
|
||||||
) : (
|
) : (
|
||||||
t("jobs.errors.novehicle")
|
t("jobs.errors.novehicle")
|
||||||
);
|
);
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: t("vehicles.fields.plate_no"),
|
title: t("vehicles.fields.plate_no"),
|
||||||
@@ -102,7 +105,7 @@ export default function ContractsJobsComponent({
|
|||||||
) : (
|
) : (
|
||||||
t("general.labels.unknown")
|
t("general.labels.unknown")
|
||||||
);
|
);
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: t("jobs.fields.clm_no"),
|
title: t("jobs.fields.clm_no"),
|
||||||
@@ -119,8 +122,8 @@ export default function ContractsJobsComponent({
|
|||||||
) : (
|
) : (
|
||||||
t("general.labels.unknown")
|
t("general.labels.unknown")
|
||||||
);
|
);
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
const handleTableChange = (pagination, filters, sorter) => {
|
const handleTableChange = (pagination, filters, sorter) => {
|
||||||
@@ -131,7 +134,7 @@ export default function ContractsJobsComponent({
|
|||||||
state.search === ""
|
state.search === ""
|
||||||
? data
|
? data
|
||||||
: data.filter(
|
: data.filter(
|
||||||
j =>
|
(j) =>
|
||||||
(j.est_number || "")
|
(j.est_number || "")
|
||||||
.toString()
|
.toString()
|
||||||
.toLowerCase()
|
.toLowerCase()
|
||||||
@@ -140,6 +143,9 @@ export default function ContractsJobsComponent({
|
|||||||
.toString()
|
.toString()
|
||||||
.toLowerCase()
|
.toLowerCase()
|
||||||
.includes(state.search.toLowerCase()) ||
|
.includes(state.search.toLowerCase()) ||
|
||||||
|
(j.ownr_co_nm || "")
|
||||||
|
.toLowerCase()
|
||||||
|
.includes(state.search.toLowerCase()) ||
|
||||||
(j.ownr_fn || "")
|
(j.ownr_fn || "")
|
||||||
.toLowerCase()
|
.toLowerCase()
|
||||||
.includes(state.search.toLowerCase()) ||
|
.includes(state.search.toLowerCase()) ||
|
||||||
@@ -160,7 +166,6 @@ export default function ContractsJobsComponent({
|
|||||||
.includes(state.search.toLowerCase())
|
.includes(state.search.toLowerCase())
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Table
|
<Table
|
||||||
loading={loading}
|
loading={loading}
|
||||||
@@ -168,19 +173,19 @@ export default function ContractsJobsComponent({
|
|||||||
<Input.Search
|
<Input.Search
|
||||||
placeholder={t("general.labels.search")}
|
placeholder={t("general.labels.search")}
|
||||||
value={state.search}
|
value={state.search}
|
||||||
onChange={e => setState({ ...state, search: e.target.value })}
|
onChange={(e) => setState({ ...state, search: e.target.value })}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
size="small"
|
size="small"
|
||||||
pagination={{ position: "top" }}
|
pagination={{ position: "top" }}
|
||||||
columns={columns.map(item => ({ ...item }))}
|
columns={columns.map((item) => ({ ...item }))}
|
||||||
rowKey="id"
|
rowKey="id"
|
||||||
dataSource={filteredData}
|
dataSource={filteredData}
|
||||||
onChange={handleTableChange}
|
onChange={handleTableChange}
|
||||||
rowSelection={{
|
rowSelection={{
|
||||||
onSelect: handleSelect,
|
onSelect: handleSelect,
|
||||||
type: "radio",
|
type: "radio",
|
||||||
selectedRowKeys: [selectedJob]
|
selectedRowKeys: [selectedJob],
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -60,11 +60,13 @@ export default function CsiResponseListPaginated({
|
|||||||
render: (text, record) => {
|
render: (text, record) => {
|
||||||
return record.owner ? (
|
return record.owner ? (
|
||||||
<Link to={"/manage/owners/" + record.owner.id}>
|
<Link to={"/manage/owners/" + record.owner.id}>
|
||||||
{`${record.job.ownr_fn || ""} ${record.job.ownr_ln || ""}`}
|
{`${record.job.ownr_fn || ""} ${record.job.ownr_ln || ""} ${
|
||||||
|
record.job.ownr_co_nm
|
||||||
|
}`}
|
||||||
</Link>
|
</Link>
|
||||||
) : (
|
) : (
|
||||||
<span>{`${record.job.ownr_fn || ""} ${
|
<span>{`${record.job.ownr_fn || ""} ${record.job.ownr_ln || ""} ${
|
||||||
record.job.ownr_ln || ""
|
record.job.ownr_co_nm
|
||||||
}`}</span>
|
}`}</span>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -36,9 +36,11 @@ const JobSearchSelect = (
|
|||||||
<Option key={o.id} value={o.id}>
|
<Option key={o.id} value={o.id}>
|
||||||
{`${o.ro_number ? o.ro_number : o.est_number} | ${
|
{`${o.ro_number ? o.ro_number : o.est_number} | ${
|
||||||
o.ownr_ln || ""
|
o.ownr_ln || ""
|
||||||
} ${o.ownr_fn || ""} | ${o.v_model_yr || ""} ${
|
} ${o.ownr_fn || ""} ${
|
||||||
o.v_make_desc || ""
|
o.ownr_co_nm ? ` ${o.ownr_co_num}` : ""
|
||||||
} ${o.v_model_desc || ""}`}
|
}| ${o.v_model_yr || ""} ${o.v_make_desc || ""} ${
|
||||||
|
o.v_model_desc || ""
|
||||||
|
}`}
|
||||||
</Option>
|
</Option>
|
||||||
))
|
))
|
||||||
: null}
|
: null}
|
||||||
|
|||||||
@@ -36,6 +36,15 @@ export default function JobsCreateOwnerInfoSearchComponent({
|
|||||||
tableState.sortedInfo.columnKey === "ownr_fn" &&
|
tableState.sortedInfo.columnKey === "ownr_fn" &&
|
||||||
tableState.sortedInfo.order,
|
tableState.sortedInfo.order,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: t("owners.fields.ownr_co_nm"),
|
||||||
|
dataIndex: "ownr_co_nm",
|
||||||
|
key: "ownr_co_nm",
|
||||||
|
sorter: (a, b) => alphaSort(a.ownr_co_nm, b.ownr_co_nm),
|
||||||
|
sortOrder:
|
||||||
|
tableState.sortedInfo.columnKey === "ownr_co_nm" &&
|
||||||
|
tableState.sortedInfo.order,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: t("owners.fields.ownr_addr1"),
|
title: t("owners.fields.ownr_addr1"),
|
||||||
dataIndex: "ownr_addr1",
|
dataIndex: "ownr_addr1",
|
||||||
@@ -86,9 +95,9 @@ export default function JobsCreateOwnerInfoSearchComponent({
|
|||||||
loading={loading}
|
loading={loading}
|
||||||
title={() => {
|
title={() => {
|
||||||
return (
|
return (
|
||||||
<div className='imex-table-header'>
|
<div className="imex-table-header">
|
||||||
<Input.Search
|
<Input.Search
|
||||||
className='imex-table-header__search'
|
className="imex-table-header__search"
|
||||||
placeholder={t("general.labels.search")}
|
placeholder={t("general.labels.search")}
|
||||||
onSearch={(value) => {
|
onSearch={(value) => {
|
||||||
setState({
|
setState({
|
||||||
@@ -101,11 +110,11 @@ export default function JobsCreateOwnerInfoSearchComponent({
|
|||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}}
|
}}
|
||||||
size='small'
|
size="small"
|
||||||
scroll={{ x: true }}
|
scroll={{ x: true }}
|
||||||
pagination={{ position: "top" }}
|
pagination={{ position: "top" }}
|
||||||
columns={columns}
|
columns={columns}
|
||||||
rowKey='id'
|
rowKey="id"
|
||||||
dataSource={owners}
|
dataSource={owners}
|
||||||
onChange={handleTableChange}
|
onChange={handleTableChange}
|
||||||
rowSelection={{
|
rowSelection={{
|
||||||
|
|||||||
@@ -1,21 +1,16 @@
|
|||||||
import { Col, Divider, Form, Row, Select } from "antd";
|
import { Form, Select } from "antd";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { connect } from "react-redux";
|
import { connect } from "react-redux";
|
||||||
import { createStructuredSelector } from "reselect";
|
import { createStructuredSelector } from "reselect";
|
||||||
import { selectBodyshop } from "../../redux/user/user.selectors";
|
import { selectBodyshop } from "../../redux/user/user.selectors";
|
||||||
import CurrencyFormatter from "../../utils/CurrencyFormatter";
|
|
||||||
import { DateTimeFormatter } from "../../utils/DateFormatter";
|
|
||||||
import CurrencyInput from "../form-items-formatted/currency-form-item.component";
|
import CurrencyInput from "../form-items-formatted/currency-form-item.component";
|
||||||
import JobTotalsTable from "../job-totals-table/job-totals-table.component";
|
|
||||||
import FormRow from "../layout-form-row/layout-form-row.component";
|
import FormRow from "../layout-form-row/layout-form-row.component";
|
||||||
|
|
||||||
const mapStateToProps = createStructuredSelector({
|
const mapStateToProps = createStructuredSelector({
|
||||||
bodyshop: selectBodyshop,
|
bodyshop: selectBodyshop,
|
||||||
});
|
});
|
||||||
|
|
||||||
const stripeTestEnv = process.env.REACT_APP_STRIPE_PUBLIC_KEY; //.includes("test");
|
|
||||||
|
|
||||||
export function JobsDetailRates({ job, bodyshop }) {
|
export function JobsDetailRates({ job, bodyshop }) {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { Col, Divider, Form, Row, Select, Typography } from "antd";
|
import { Divider, Typography } from "antd";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { connect } from "react-redux";
|
import { connect } from "react-redux";
|
||||||
@@ -6,9 +6,7 @@ import { createStructuredSelector } from "reselect";
|
|||||||
import { selectBodyshop } from "../../redux/user/user.selectors";
|
import { selectBodyshop } from "../../redux/user/user.selectors";
|
||||||
import CurrencyFormatter from "../../utils/CurrencyFormatter";
|
import CurrencyFormatter from "../../utils/CurrencyFormatter";
|
||||||
import { DateTimeFormatter } from "../../utils/DateFormatter";
|
import { DateTimeFormatter } from "../../utils/DateFormatter";
|
||||||
import CurrencyInput from "../form-items-formatted/currency-form-item.component";
|
|
||||||
import JobTotalsTable from "../job-totals-table/job-totals-table.component";
|
import JobTotalsTable from "../job-totals-table/job-totals-table.component";
|
||||||
import FormRow from "../layout-form-row/layout-form-row.component";
|
|
||||||
|
|
||||||
const mapStateToProps = createStructuredSelector({
|
const mapStateToProps = createStructuredSelector({
|
||||||
bodyshop: selectBodyshop,
|
bodyshop: selectBodyshop,
|
||||||
@@ -19,11 +17,6 @@ const stripeTestEnv = process.env.REACT_APP_STRIPE_PUBLIC_KEY; //.includes("test
|
|||||||
export function JobsDetailTotals({ job, bodyshop }) {
|
export function JobsDetailTotals({ job, bodyshop }) {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
|
||||||
const colSpan = {
|
|
||||||
sm: { span: 24 },
|
|
||||||
lg: { span: 12 },
|
|
||||||
};
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<Typography.Title level={4}>
|
<Typography.Title level={4}>
|
||||||
|
|||||||
@@ -43,11 +43,15 @@ export default function JobsFindModalComponent({
|
|||||||
render: (text, record) => {
|
render: (text, record) => {
|
||||||
return record.owner ? (
|
return record.owner ? (
|
||||||
<Link to={"/manage/owners/" + record.owner.id}>
|
<Link to={"/manage/owners/" + record.owner.id}>
|
||||||
{record.ownr_fn} {record.ownr_ln}
|
{`${record.ownr_fn || ""} ${record.ownr_ln || ""} ${
|
||||||
|
record.ownr_co_nm || ""
|
||||||
|
}`}
|
||||||
</Link>
|
</Link>
|
||||||
) : (
|
) : (
|
||||||
// t("jobs.errors.noowner")
|
// t("jobs.errors.noowner")
|
||||||
<span>{`${record.ownr_fn} ${record.ownr_ln}`}</span>
|
<span>{`${record.ownr_fn || ""} ${record.ownr_ln || ""} ${
|
||||||
|
record.ownr_co_nm || ""
|
||||||
|
}`}</span>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -143,7 +147,8 @@ export default function JobsFindModalComponent({
|
|||||||
<Button
|
<Button
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
jobsListRefetch();
|
jobsListRefetch();
|
||||||
}}>
|
}}
|
||||||
|
>
|
||||||
<SyncOutlined />
|
<SyncOutlined />
|
||||||
</Button>
|
</Button>
|
||||||
<Input
|
<Input
|
||||||
@@ -154,10 +159,10 @@ export default function JobsFindModalComponent({
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
size='small'
|
size="small"
|
||||||
pagination={{ position: "bottom" }}
|
pagination={{ position: "bottom" }}
|
||||||
columns={columns.map((item) => ({ ...item }))}
|
columns={columns.map((item) => ({ ...item }))}
|
||||||
rowKey='id'
|
rowKey="id"
|
||||||
loading={jobsListLoading}
|
loading={jobsListLoading}
|
||||||
dataSource={jobsList}
|
dataSource={jobsList}
|
||||||
rowSelection={{
|
rowSelection={{
|
||||||
@@ -183,7 +188,8 @@ export default function JobsFindModalComponent({
|
|||||||
...importOptions,
|
...importOptions,
|
||||||
overrideHeaders: e.target.checked,
|
overrideHeaders: e.target.checked,
|
||||||
})
|
})
|
||||||
}>
|
}
|
||||||
|
>
|
||||||
{t("jobs.labels.override_header")}
|
{t("jobs.labels.override_header")}
|
||||||
</Checkbox>
|
</Checkbox>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -55,10 +55,14 @@ export default function JobsList({ refetch, loading, jobs, total }) {
|
|||||||
render: (text, record) => {
|
render: (text, record) => {
|
||||||
return record.owner ? (
|
return record.owner ? (
|
||||||
<Link to={"/manage/owners/" + record.owner.id}>
|
<Link to={"/manage/owners/" + record.owner.id}>
|
||||||
{`${record.ownr_fn || ""} ${record.ownr_ln || ""}`}
|
{`${record.ownr_fn || ""} ${record.ownr_ln || ""} ${
|
||||||
|
record.ownr_co_nm || ""
|
||||||
|
}`}
|
||||||
</Link>
|
</Link>
|
||||||
) : (
|
) : (
|
||||||
<span>{`${record.ownr_fn || ""} ${record.ownr_ln || ""}`}</span>
|
<span>{`${record.ownr_fn || ""} ${record.ownr_ln || ""} ${
|
||||||
|
record.ownr_co_nm || ""
|
||||||
|
}`}</span>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -176,7 +180,7 @@ export default function JobsList({ refetch, loading, jobs, total }) {
|
|||||||
<div>
|
<div>
|
||||||
<Table
|
<Table
|
||||||
loading={loading}
|
loading={loading}
|
||||||
size='small'
|
size="small"
|
||||||
scroll={{ x: true }}
|
scroll={{ x: true }}
|
||||||
pagination={{
|
pagination={{
|
||||||
position: "top",
|
position: "top",
|
||||||
@@ -185,17 +189,17 @@ export default function JobsList({ refetch, loading, jobs, total }) {
|
|||||||
total: total,
|
total: total,
|
||||||
}}
|
}}
|
||||||
columns={columns}
|
columns={columns}
|
||||||
rowKey='id'
|
rowKey="id"
|
||||||
dataSource={jobs}
|
dataSource={jobs}
|
||||||
onChange={handleTableChange}
|
onChange={handleTableChange}
|
||||||
title={() => {
|
title={() => {
|
||||||
return (
|
return (
|
||||||
<div className='imex-table-header'>
|
<div className="imex-table-header">
|
||||||
<Button onClick={() => refetch()}>
|
<Button onClick={() => refetch()}>
|
||||||
<SyncOutlined />
|
<SyncOutlined />
|
||||||
</Button>
|
</Button>
|
||||||
<Input.Search
|
<Input.Search
|
||||||
className='imex-table-header__search'
|
className="imex-table-header__search"
|
||||||
placeholder={t("general.labels.search")}
|
placeholder={t("general.labels.search")}
|
||||||
onSearch={(value) => {
|
onSearch={(value) => {
|
||||||
search.search = value;
|
search.search = value;
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ export function JobsList({ bodyshop }) {
|
|||||||
const history = useHistory();
|
const history = useHistory();
|
||||||
const [searchText, setSearchText] = useState("");
|
const [searchText, setSearchText] = useState("");
|
||||||
|
|
||||||
if (error) return <AlertComponent message={error.message} type='error' />;
|
if (error) return <AlertComponent message={error.message} type="error" />;
|
||||||
|
|
||||||
const jobs = data
|
const jobs = data
|
||||||
? searchText === ""
|
? searchText === ""
|
||||||
@@ -50,6 +50,9 @@ export function JobsList({ bodyshop }) {
|
|||||||
.toString()
|
.toString()
|
||||||
.toLowerCase()
|
.toLowerCase()
|
||||||
.includes(searchText.toLowerCase()) ||
|
.includes(searchText.toLowerCase()) ||
|
||||||
|
(j.ownr_co_nm || "")
|
||||||
|
.toLowerCase()
|
||||||
|
.includes(searchText.toLowerCase()) ||
|
||||||
(j.ownr_fn || "")
|
(j.ownr_fn || "")
|
||||||
.toLowerCase()
|
.toLowerCase()
|
||||||
.includes(searchText.toLowerCase()) ||
|
.includes(searchText.toLowerCase()) ||
|
||||||
@@ -122,10 +125,14 @@ export function JobsList({ bodyshop }) {
|
|||||||
render: (text, record) => {
|
render: (text, record) => {
|
||||||
return record.owner ? (
|
return record.owner ? (
|
||||||
<Link to={"/manage/owners/" + record.owner.id}>
|
<Link to={"/manage/owners/" + record.owner.id}>
|
||||||
{`${record.ownr_fn || ""} ${record.ownr_ln || ""}`}
|
{`${record.ownr_fn || ""} ${record.ownr_ln || ""} ${
|
||||||
|
record.ownr_co_nm || ""
|
||||||
|
}`}
|
||||||
</Link>
|
</Link>
|
||||||
) : (
|
) : (
|
||||||
<span>{`${record.ownr_fn || ""} ${record.ownr_ln || ""}`}</span>
|
<span>{`${record.ownr_fn || ""} ${record.ownr_ln || ""} ${
|
||||||
|
record.ownr_co_nm || ""
|
||||||
|
}`}</span>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -242,21 +249,21 @@ export function JobsList({ bodyshop }) {
|
|||||||
return (
|
return (
|
||||||
<Table
|
<Table
|
||||||
loading={loading}
|
loading={loading}
|
||||||
size='small'
|
size="small"
|
||||||
pagination={false}
|
pagination={false}
|
||||||
columns={columns}
|
columns={columns}
|
||||||
rowKey='id'
|
rowKey="id"
|
||||||
dataSource={jobs}
|
dataSource={jobs}
|
||||||
style={{ height: "100%" }}
|
style={{ height: "100%" }}
|
||||||
scroll={{ x: true }}
|
scroll={{ x: true }}
|
||||||
title={() => {
|
title={() => {
|
||||||
return (
|
return (
|
||||||
<div className='imex-table-header'>
|
<div className="imex-table-header">
|
||||||
<Button onClick={() => refetch()}>
|
<Button onClick={() => refetch()}>
|
||||||
<SyncOutlined />
|
<SyncOutlined />
|
||||||
</Button>
|
</Button>
|
||||||
<Input.Search
|
<Input.Search
|
||||||
className='imex-table-header__search'
|
className="imex-table-header__search"
|
||||||
placeholder={t("general.labels.search")}
|
placeholder={t("general.labels.search")}
|
||||||
onChange={(e) => {
|
onChange={(e) => {
|
||||||
setSearchText(e.target.value);
|
setSearchText(e.target.value);
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ export default function OwnerFindModalComponent({
|
|||||||
selectedOwner,
|
selectedOwner,
|
||||||
setSelectedOwner,
|
setSelectedOwner,
|
||||||
ownersListLoading,
|
ownersListLoading,
|
||||||
ownersList
|
ownersList,
|
||||||
}) {
|
}) {
|
||||||
//setSelectedOwner is used to set the record id of the owner to use for adding the job.
|
//setSelectedOwner is used to set the record id of the owner to use for adding the job.
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
@@ -16,27 +16,32 @@ export default function OwnerFindModalComponent({
|
|||||||
{
|
{
|
||||||
title: t("owners.fields.ownr_ln"),
|
title: t("owners.fields.ownr_ln"),
|
||||||
dataIndex: "ownr_ln",
|
dataIndex: "ownr_ln",
|
||||||
key: "ownr_ln"
|
key: "ownr_ln",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: t("owners.fields.ownr_fn"),
|
title: t("owners.fields.ownr_fn"),
|
||||||
dataIndex: "ownr_fn",
|
dataIndex: "ownr_fn",
|
||||||
key: "ownr_fn"
|
key: "ownr_fn",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: t("owners.fields.ownr_co_nm"),
|
||||||
|
dataIndex: "ownr_co_nm",
|
||||||
|
key: "ownr_co_nm",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: t("owners.fields.ownr_addr1"),
|
title: t("owners.fields.ownr_addr1"),
|
||||||
dataIndex: "ownr_addr1",
|
dataIndex: "ownr_addr1",
|
||||||
key: "ownr_addr1"
|
key: "ownr_addr1",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: t("owners.fields.ownr_city"),
|
title: t("owners.fields.ownr_city"),
|
||||||
dataIndex: "ownr_city",
|
dataIndex: "ownr_city",
|
||||||
key: "ownr_city"
|
key: "ownr_city",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: t("owners.fields.ownr_ea"),
|
title: t("owners.fields.ownr_ea"),
|
||||||
dataIndex: "ownr_ea",
|
dataIndex: "ownr_ea",
|
||||||
key: "ownr_ea"
|
key: "ownr_ea",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: t("owners.fields.ownr_ph1"),
|
title: t("owners.fields.ownr_ph1"),
|
||||||
@@ -44,11 +49,11 @@ export default function OwnerFindModalComponent({
|
|||||||
key: "ownr_ph1",
|
key: "ownr_ph1",
|
||||||
render: (text, record) => (
|
render: (text, record) => (
|
||||||
<PhoneFormatter>{record.ownr_ph1}</PhoneFormatter>
|
<PhoneFormatter>{record.ownr_ph1}</PhoneFormatter>
|
||||||
)
|
),
|
||||||
}
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
const handleOnRowClick = record => {
|
const handleOnRowClick = (record) => {
|
||||||
if (record) {
|
if (record) {
|
||||||
if (record.id) {
|
if (record.id) {
|
||||||
setSelectedOwner(record.id);
|
setSelectedOwner(record.id);
|
||||||
@@ -64,22 +69,22 @@ export default function OwnerFindModalComponent({
|
|||||||
title={() => t("owners.labels.existing_owners")}
|
title={() => t("owners.labels.existing_owners")}
|
||||||
size="small"
|
size="small"
|
||||||
pagination={{ position: "bottom" }}
|
pagination={{ position: "bottom" }}
|
||||||
columns={columns.map(item => ({ ...item }))}
|
columns={columns.map((item) => ({ ...item }))}
|
||||||
rowKey="id"
|
rowKey="id"
|
||||||
loading={ownersListLoading}
|
loading={ownersListLoading}
|
||||||
dataSource={ownersList}
|
dataSource={ownersList}
|
||||||
rowSelection={{
|
rowSelection={{
|
||||||
onSelect: props => {
|
onSelect: (props) => {
|
||||||
setSelectedOwner(props.id);
|
setSelectedOwner(props.id);
|
||||||
},
|
},
|
||||||
type: "radio",
|
type: "radio",
|
||||||
selectedRowKeys: [selectedOwner]
|
selectedRowKeys: [selectedOwner],
|
||||||
}}
|
}}
|
||||||
onRow={(record, rowIndex) => {
|
onRow={(record, rowIndex) => {
|
||||||
return {
|
return {
|
||||||
onClick: event => {
|
onClick: (event) => {
|
||||||
handleOnRowClick(record);
|
handleOnRowClick(record);
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -33,7 +33,9 @@ export default function OwnersListComponent({
|
|||||||
key: "name",
|
key: "name",
|
||||||
render: (text, record) => (
|
render: (text, record) => (
|
||||||
<Link to={"/manage/owners/" + record.id}>
|
<Link to={"/manage/owners/" + record.id}>
|
||||||
{`${record.ownr_fn} ${record.ownr_ln}`}
|
{`${record.ownr_fn || ""} ${record.ownr_ln || ""} ${
|
||||||
|
record.ownr_co_nm || ""
|
||||||
|
}`}
|
||||||
</Link>
|
</Link>
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -56,11 +56,13 @@ export default function PaymentsListPaginated({
|
|||||||
render: (text, record) => {
|
render: (text, record) => {
|
||||||
return record.job.owner ? (
|
return record.job.owner ? (
|
||||||
<Link to={"/manage/owners/" + record.job.owner.id}>
|
<Link to={"/manage/owners/" + record.job.owner.id}>
|
||||||
{`${record.job.ownr_fn || ""} ${record.job.ownr_ln || ""}`}
|
{`${record.job.ownr_fn || ""} ${record.job.ownr_ln || ""} ${
|
||||||
|
record.job.ownr_co_nm
|
||||||
|
}`}
|
||||||
</Link>
|
</Link>
|
||||||
) : (
|
) : (
|
||||||
<span>{`${record.job.ownr_fn || ""} ${
|
<span>{`${record.job.ownr_fn || ""} ${record.job.ownr_ln || ""} ${
|
||||||
record.job.ownr_ln || ""
|
record.job.ownr_co_nm
|
||||||
}`}</span>
|
}`}</span>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -92,6 +92,7 @@ const CheckSearch = (search, job) => {
|
|||||||
.toLowerCase()
|
.toLowerCase()
|
||||||
.includes(search.toLowerCase()) ||
|
.includes(search.toLowerCase()) ||
|
||||||
(job.ownr_fn || "").toLowerCase().includes(search.toLowerCase()) ||
|
(job.ownr_fn || "").toLowerCase().includes(search.toLowerCase()) ||
|
||||||
|
(job.ownr_co_nm || "").toLowerCase().includes(search.toLowerCase()) ||
|
||||||
(job.ownr_ln || "").toLowerCase().includes(search.toLowerCase()) ||
|
(job.ownr_ln || "").toLowerCase().includes(search.toLowerCase()) ||
|
||||||
(job.status || "").toLowerCase().includes(search.toLowerCase()) ||
|
(job.status || "").toLowerCase().includes(search.toLowerCase()) ||
|
||||||
(job.v_make_desc || "").toLowerCase().includes(search.toLowerCase()) ||
|
(job.v_make_desc || "").toLowerCase().includes(search.toLowerCase()) ||
|
||||||
|
|||||||
@@ -24,10 +24,10 @@ export function ProductionListSaveConfigButton({
|
|||||||
const [updateShop] = useMutation(UPDATE_SHOP);
|
const [updateShop] = useMutation(UPDATE_SHOP);
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
|
||||||
const handleSaveConfig = () => {
|
const handleSaveConfig = async () => {
|
||||||
logImEXEvent("production_save_config");
|
logImEXEvent("production_save_config");
|
||||||
|
|
||||||
updateShop({
|
await updateShop({
|
||||||
variables: {
|
variables: {
|
||||||
id: bodyshop.id,
|
id: bodyshop.id,
|
||||||
shop: {
|
shop: {
|
||||||
@@ -39,8 +39,6 @@ export function ProductionListSaveConfigButton({
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}).then((response) => {
|
|
||||||
const shopDetails = response.data.update_bodyshops.returning[0];
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -89,6 +89,9 @@ export function ProductionListTable({
|
|||||||
.toString()
|
.toString()
|
||||||
.toLowerCase()
|
.toLowerCase()
|
||||||
.includes(searchText.toLowerCase()) ||
|
.includes(searchText.toLowerCase()) ||
|
||||||
|
(j.ownr_co_nm || "")
|
||||||
|
.toLowerCase()
|
||||||
|
.includes(searchText.toLowerCase()) ||
|
||||||
(j.ownr_fn || "")
|
(j.ownr_fn || "")
|
||||||
.toLowerCase()
|
.toLowerCase()
|
||||||
.includes(searchText.toLowerCase()) ||
|
.includes(searchText.toLowerCase()) ||
|
||||||
|
|||||||
@@ -108,7 +108,7 @@ export function ScheduleEventComponent({
|
|||||||
<div>
|
<div>
|
||||||
<strong>{`${(event.job && event.job.ownr_fn) || ""} ${
|
<strong>{`${(event.job && event.job.ownr_fn) || ""} ${
|
||||||
(event.job && event.job.ownr_ln) || ""
|
(event.job && event.job.ownr_ln) || ""
|
||||||
}`}</strong>
|
} ${(event.job && event.job.ownr_co_nm) || ""}`}</strong>
|
||||||
<div style={{ margin: 4 }}>
|
<div style={{ margin: 4 }}>
|
||||||
{`${(event.job && event.job.v_model_yr) || ""} ${
|
{`${(event.job && event.job.v_model_yr) || ""} ${
|
||||||
(event.job && event.job.v_make_desc) || ""
|
(event.job && event.job.v_make_desc) || ""
|
||||||
|
|||||||
@@ -34,7 +34,9 @@ export function VehicleDetailJobsComponent({ vehicle, bodyshop }) {
|
|||||||
key: "owner",
|
key: "owner",
|
||||||
render: (text, record) => (
|
render: (text, record) => (
|
||||||
<Link to={`/manage/owners/${record.owner.id}`}>
|
<Link to={`/manage/owners/${record.owner.id}`}>
|
||||||
{`${record.ownr_fn} ${record.ownr_ln}`}
|
{`${record.ownr_fn || ""} ${record.ownr_ln || ""} ${
|
||||||
|
record.ownr_co_nm || ""
|
||||||
|
}`}
|
||||||
</Link>
|
</Link>
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
@@ -72,7 +74,7 @@ export function VehicleDetailJobsComponent({ vehicle, bodyshop }) {
|
|||||||
)}
|
)}
|
||||||
pagination={{ position: "bottom" }}
|
pagination={{ position: "bottom" }}
|
||||||
columns={columns}
|
columns={columns}
|
||||||
rowKey='id'
|
rowKey="id"
|
||||||
scroll={{ x: true }}
|
scroll={{ x: true }}
|
||||||
dataSource={vehicle.jobs}
|
dataSource={vehicle.jobs}
|
||||||
rowSelection={{
|
rowSelection={{
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ export default function CsiContainerPage() {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<Typography.Title>{t("csi.labels.title")}</Typography.Title>
|
<Typography.Title>{t("csi.labels.title")}</Typography.Title>
|
||||||
<strong>{`Hi ${job.ownr_fn || ""}!`}</strong>
|
<strong>{`Hi ${job.ownr_co_nm || job.ownr_fn || ""}!`}</strong>
|
||||||
<Typography.Paragraph>
|
<Typography.Paragraph>
|
||||||
{`At ${
|
{`At ${
|
||||||
bodyshop.shopname || ""
|
bodyshop.shopname || ""
|
||||||
|
|||||||
Reference in New Issue
Block a user