Merged in feature/IO-2264-schedule-filter (pull request #806)

Feature/IO-2264 schedule filter

Approved-by: Patrick Fic
This commit is contained in:
John Allen Delos Reyes
2023-05-25 17:44:11 +00:00
committed by Patrick Fic
3 changed files with 55 additions and 13 deletions

View File

@@ -39,8 +39,32 @@ export function ScheduleCalendarComponent({ data, refetch, bodyshop }) {
employeevacation: true, employeevacation: true,
ins_co_nm: null, ins_co_nm: null,
}); });
const [estimatorsFilter, setEstimatiorsFilter] = useLocalStorage(
"estimators",
[]
);
const estimators = useMemo(
() =>
data
.filter((d) => d.__typename === "appointments")
.map((app) => `${app.job.est_ct_fn} ${app.job.est_ct_ln}`),
[data]
);
const filteredData = useMemo(() => { const filteredData = useMemo(() => {
return data.filter( return data
.filter((d) => {
if (d.__typename === "appointments") {
if (estimatorsFilter.length === 0) return true;
return !!estimatorsFilter.find(
(e) => e !== `${d.job.est_ct_fn} ${d.job.est_ct_ln}`
);
}
return true;
})
.filter(
(d) => (d) =>
(d.block || (d.block ||
(filter.intake && d.isintake) || (filter.intake && d.isintake) ||
@@ -52,7 +76,7 @@ export function ScheduleCalendarComponent({ data, refetch, bodyshop }) {
? filter.ins_co_nm.includes(d.job?.ins_co_nm) ? filter.ins_co_nm.includes(d.job?.ins_co_nm)
: true) : true)
); );
}, [data, filter]); }, [data, filter, estimatorsFilter]);
return ( return (
<Row gutter={[16, 16]}> <Row gutter={[16, 16]}>
@@ -63,6 +87,21 @@ export function ScheduleCalendarComponent({ data, refetch, bodyshop }) {
extra={ extra={
<Space wrap> <Space wrap>
<ScheduleAtsSummary appointments={filteredData} /> <ScheduleAtsSummary appointments={filteredData} />
<Select
style={{ minWidth: "15rem" }}
mode="multiple"
placeholder={t("schedule.labels.estimators")}
allowClear
onClear={() => setEstimatiorsFilter([])}
value={[...estimatorsFilter]}
onChange={(e) => {
setEstimatiorsFilter(e);
}}
options={estimators.map((e) => ({
label: e,
value: e,
}))}
/>
<Select <Select
style={{ minWidth: "15rem" }} style={{ minWidth: "15rem" }}
mode="multiple" mode="multiple"

View File

@@ -57,6 +57,8 @@ export const QUERY_ALL_ACTIVE_APPOINTMENTS = gql`
v_model_yr v_model_yr
v_make_desc v_make_desc
v_model_desc v_model_desc
est_ct_fn
est_ct_ln
labhrs: joblines_aggregate( labhrs: joblines_aggregate(
where: { mod_lbr_ty: { _neq: "LAR" }, removed: { _eq: false } } where: { mod_lbr_ty: { _neq: "LAR" }, removed: { _eq: false } }
) { ) {

View File

@@ -2624,6 +2624,7 @@
"atssummary": "ATS Summary", "atssummary": "ATS Summary",
"employeevacation": "Employee Vacations", "employeevacation": "Employee Vacations",
"ins_co_nm_filter": "Filter by Insurance Company", "ins_co_nm_filter": "Filter by Insurance Company",
"estimators": "Filter by Writer/Customer Rep.",
"intake": "Intake Events", "intake": "Intake Events",
"manual": "Manual Events", "manual": "Manual Events",
"manualevent": "Add Manual Event" "manualevent": "Add Manual Event"