Compare commits
6 Commits
pagination
...
revert-pr-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0852d55837 | ||
|
|
4c38ddf3cd | ||
|
|
e15edeadb5 | ||
|
|
422c7baada | ||
|
|
2a2f8e51b3 | ||
|
|
85b1875a22 |
@@ -228,7 +228,8 @@ export default function CourtesyCarCreateFormComponent({ form, saveLoading }) {
|
||||
{() => {
|
||||
const nextservicekm = form.getFieldValue("nextservicekm");
|
||||
const mileageOver =
|
||||
nextservicekm && nextservicekm <= form.getFieldValue("mileage");
|
||||
nextservicekm <= form.getFieldValue("mileage");
|
||||
|
||||
if (mileageOver)
|
||||
return (
|
||||
<Space direction="vertical" style={{ color: "tomato" }}>
|
||||
|
||||
@@ -65,17 +65,8 @@ export function FormDatePicker({
|
||||
});
|
||||
}
|
||||
|
||||
if (_a.isValid() && onChange) {
|
||||
if (onlyFuture) {
|
||||
if (moment().subtract(1, "day").isBefore(_a)) {
|
||||
onChange(isDateOnly ? _a.format("YYYY-MM-DD") : _a);
|
||||
} else {
|
||||
onChange(isDateOnly ? moment().format("YYYY-MM-DD") : moment());
|
||||
}
|
||||
} else {
|
||||
onChange(isDateOnly ? _a.format("YYYY-MM-DD") : _a);
|
||||
}
|
||||
}
|
||||
if (_a.isValid() && onChange)
|
||||
onChange(isDateOnly ? _a.format("YYYY-MM-DD") : _a);
|
||||
};
|
||||
|
||||
return (
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import React, { forwardRef } from "react";
|
||||
//import DatePicker from "react-datepicker";
|
||||
//import "react-datepicker/src/stylesheets/datepicker.scss";
|
||||
import FormDatePicker from "../form-date-picker/form-date-picker.component";
|
||||
import { TimePicker } from "antd";
|
||||
import moment from "moment";
|
||||
import FormDatePicker from "../form-date-picker/form-date-picker.component";
|
||||
//To be used as a form element only.
|
||||
|
||||
const DateTimePicker = (
|
||||
@@ -26,21 +26,20 @@ const DateTimePicker = (
|
||||
value={value}
|
||||
onBlur={onBlur}
|
||||
onChange={onChange}
|
||||
onlyFuture={onlyFuture}
|
||||
isDateOnly={false}
|
||||
/>
|
||||
|
||||
<TimePicker
|
||||
value={value ? moment(value) : null}
|
||||
{...(onlyFuture && {
|
||||
disabledDate: (d) => moment().isAfter(d),
|
||||
})}
|
||||
onChange={onChange}
|
||||
showSecond={false}
|
||||
minuteStep={15}
|
||||
onBlur={onBlur}
|
||||
format="hh:mm a"
|
||||
{...restProps}
|
||||
value={value ? moment(value) : null}
|
||||
{...(onlyFuture && {
|
||||
disabledDate: (d) => moment().isAfter(d),
|
||||
})}
|
||||
onChange={onChange}
|
||||
showSecond={false}
|
||||
minuteStep={15}
|
||||
onBlur={onBlur}
|
||||
format="hh:mm a"
|
||||
{...restProps}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { GET_ALL_JOBLINES_BY_PK } from "../../graphql/jobs-lines.queries";
|
||||
import { gql } from "@apollo/client";
|
||||
import _ from "lodash";
|
||||
import { GET_ALL_JOBLINES_BY_PK } from "../../graphql/jobs-lines.queries";
|
||||
|
||||
export const GetSupplementDelta = async (client, jobId, newLines) => {
|
||||
const {
|
||||
@@ -50,7 +50,7 @@ export const GetSupplementDelta = async (client, jobId, newLines) => {
|
||||
.reduce((acc, value, idx) => {
|
||||
return acc + generateRemoveQuery(value, idx);
|
||||
}, "");
|
||||
//console.log(insertQueries, updateQueries, removeQueries);
|
||||
console.log(insertQueries, updateQueries, removeQueries);
|
||||
|
||||
if ((insertQueries + updateQueries + removeQueries).trim() === "") {
|
||||
return new Promise((resolve, reject) => {
|
||||
|
||||
@@ -221,14 +221,35 @@ const headerFields = [
|
||||
"loc_phx",
|
||||
"loc_ea",
|
||||
//VEH
|
||||
"impact_1",
|
||||
"impact_2",
|
||||
"dmg_memo",
|
||||
"db_v_code",
|
||||
"plate_no",
|
||||
"plate_st",
|
||||
"v_vin",
|
||||
"v_cond",
|
||||
"v_prod_dt",
|
||||
"v_model_yr",
|
||||
"v_make_desc",
|
||||
"v_model_desc",
|
||||
"v_makecode",
|
||||
"v_makedesc",
|
||||
"v_model",
|
||||
"v_type",
|
||||
"v_bstyle",
|
||||
"v_trimcode",
|
||||
"trim_color",
|
||||
"v_mldgcode",
|
||||
"v_engine",
|
||||
"v_mileage",
|
||||
"v_options",
|
||||
"v_color",
|
||||
"v_tone",
|
||||
"v_stage",
|
||||
"paint_cd1",
|
||||
"paint_cd2",
|
||||
"paint_cd3",
|
||||
"v_memo",
|
||||
|
||||
];
|
||||
|
||||
export default headerFields;
|
||||
|
||||
@@ -29,7 +29,7 @@ export function JobsList({bodyshop,}) {
|
||||
const search = queryString.parse(useLocation().search);
|
||||
const [openSearchResults, setOpenSearchResults] = useState([]);
|
||||
const [searchLoading, setSearchLoading] = useState(false);
|
||||
const {page, selected, sortorder, sortcolumn,statusFilters} = search;
|
||||
const {page, selected, sortorder, sortcolumn} = search;
|
||||
|
||||
const selectedBreakpoint = Object.entries(Grid.useBreakpoint())
|
||||
.filter((screen) => !!screen[1])
|
||||
@@ -39,7 +39,7 @@ export function JobsList({bodyshop,}) {
|
||||
variables: {
|
||||
offset: page ? (page - 1) * pageLimit : 0,
|
||||
limit: pageLimit,
|
||||
statusFilters: statusFilters ? JSON.parse(statusFilters) : bodyshop.md_ro_statuses.active_statuses || ["Open", "Open*"],
|
||||
statuses: bodyshop.md_ro_statuses.active_statuses || ["Open", "Open*"],
|
||||
order: [
|
||||
{
|
||||
[sortcolumn || "ro_number"]:
|
||||
@@ -67,6 +67,9 @@ export function JobsList({bodyshop,}) {
|
||||
const jobs = data?.jobs || [];
|
||||
|
||||
const handleTableChange = (pagination, filters, sorter) => {
|
||||
// TODO: Is this needed?
|
||||
setState({...state, filteredInfo: filters});
|
||||
|
||||
search.page = pagination.current;
|
||||
search.sortcolumn = sorter.column && sorter.column.key;
|
||||
search.sortorder = sorter.order;
|
||||
@@ -202,13 +205,19 @@ export function JobsList({bodyshop,}) {
|
||||
sorter: true,
|
||||
sortOrder:
|
||||
sortcolumn === "status" && sortorder,
|
||||
filters:bodyshop.md_ro_statuses.statuses.map((s) => {
|
||||
return { text: s, value: [s] };
|
||||
}),
|
||||
filters:
|
||||
(jobs &&
|
||||
jobs
|
||||
.map((j) => j.status)
|
||||
.filter(onlyUnique)
|
||||
.map((s) => {
|
||||
return {
|
||||
text: s || "No Status*",
|
||||
value: [s],
|
||||
};
|
||||
})) ||
|
||||
[],
|
||||
onFilter: (value, record) => value.includes(record.status),
|
||||
render: (text, record) => {
|
||||
return record.status || t("general.labels.na");
|
||||
},
|
||||
},
|
||||
{
|
||||
title: t("jobs.fields.vehicle"),
|
||||
@@ -261,20 +270,19 @@ export function JobsList({bodyshop,}) {
|
||||
dataIndex: "ins_co_nm",
|
||||
key: "ins_co_nm",
|
||||
ellipsis: true,
|
||||
// TODO: Restore Filters?
|
||||
// filters:
|
||||
// (jobs &&
|
||||
// jobs
|
||||
// .map((j) => j.ins_co_nm)
|
||||
// .filter(onlyUnique)
|
||||
// .map((s) => {
|
||||
// return {
|
||||
// text: s,
|
||||
// value: [s],
|
||||
// };
|
||||
// })) ||
|
||||
// [],
|
||||
// onFilter: (value, record) => value.includes(record.ins_co_nm),
|
||||
filters:
|
||||
(jobs &&
|
||||
jobs
|
||||
.map((j) => j.ins_co_nm)
|
||||
.filter(onlyUnique)
|
||||
.map((s) => {
|
||||
return {
|
||||
text: s,
|
||||
value: [s],
|
||||
};
|
||||
})) ||
|
||||
[],
|
||||
onFilter: (value, record) => value.includes(record.ins_co_nm),
|
||||
responsive: ["md"],
|
||||
},
|
||||
{
|
||||
@@ -296,24 +304,23 @@ export function JobsList({bodyshop,}) {
|
||||
key: "jobs.labels.estimator",
|
||||
ellipsis: true,
|
||||
responsive: ["xl"],
|
||||
// TODO Restore Filters?
|
||||
// filterSearch: true,
|
||||
// filters:
|
||||
// (jobs &&
|
||||
// jobs
|
||||
// .map((j) => `${j.est_ct_fn || ""} ${j.est_ct_ln || ""}`.trim())
|
||||
// .filter(onlyUnique)
|
||||
// .map((s) => {
|
||||
// return {
|
||||
// text: s || "N/A",
|
||||
// value: [s],
|
||||
// };
|
||||
// })) ||
|
||||
// [],
|
||||
// onFilter: (value, record) =>
|
||||
// value.includes(
|
||||
// `${record.est_ct_fn || ""} ${record.est_ct_ln || ""}`.trim()
|
||||
// ),
|
||||
filterSearch: true,
|
||||
filters:
|
||||
(jobs &&
|
||||
jobs
|
||||
.map((j) => `${j.est_ct_fn || ""} ${j.est_ct_ln || ""}`.trim())
|
||||
.filter(onlyUnique)
|
||||
.map((s) => {
|
||||
return {
|
||||
text: s || "N/A",
|
||||
value: [s],
|
||||
};
|
||||
})) ||
|
||||
[],
|
||||
onFilter: (value, record) =>
|
||||
value.includes(
|
||||
`${record.est_ct_fn || ""} ${record.est_ct_ln || ""}`.trim()
|
||||
),
|
||||
render: (text, record) =>
|
||||
`${record.est_ct_fn || ""} ${record.est_ct_ln || ""}`.trim(),
|
||||
},
|
||||
|
||||
@@ -5,13 +5,13 @@ export const QUERY_ALL_ACTIVE_JOBS_PAGINATED = gql`
|
||||
$offset: Int
|
||||
$limit: Int
|
||||
$order: [jobs_order_by!]
|
||||
$statusFilters: [String!]!,
|
||||
$statuses: [String!]!,
|
||||
$isConverted: Boolean
|
||||
) {
|
||||
jobs(
|
||||
offset: $offset
|
||||
limit: $limit
|
||||
where: { status: { _in: $statusFilters }, converted: { _eq: $isConverted } }
|
||||
where: { status: { _in: $statuses }, converted: { _eq: $isConverted } }
|
||||
order_by: $order
|
||||
) {
|
||||
iouparent
|
||||
@@ -52,7 +52,7 @@ export const QUERY_ALL_ACTIVE_JOBS_PAGINATED = gql`
|
||||
est_ct_fn
|
||||
est_ct_ln
|
||||
}
|
||||
jobs_aggregate(where: { status: { _in: $statusFilters } }) {
|
||||
jobs_aggregate(where: { status: { _in: $statuses } }) {
|
||||
aggregate {
|
||||
count(distinct: true)
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
// Sometimes referred to as PageSize, this variable controls the amount of records
|
||||
// to show on one page during pagination.
|
||||
export const pageLimit = 10;
|
||||
export const pageLimit = 50;
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
alter table "public"."courtesycars" alter column "nextservicekm" set not null;
|
||||
alter table "public"."courtesycars" alter column "nextservicekm" set default '0';
|
||||
@@ -1,2 +0,0 @@
|
||||
ALTER TABLE "public"."courtesycars" ALTER COLUMN "nextservicekm" drop default;
|
||||
alter table "public"."courtesycars" alter column "nextservicekm" drop not null;
|
||||
Reference in New Issue
Block a user