Merged in rome/release/2024-01-05 (pull request #1138)
Rome/release/2024 01 05
This commit is contained in:
@@ -6,6 +6,7 @@ import { Link } from "react-router-dom";
|
|||||||
import CurrencyFormatter from "../../utils/CurrencyFormatter";
|
import CurrencyFormatter from "../../utils/CurrencyFormatter";
|
||||||
import { TimeFormatter } from "../../utils/DateFormatter";
|
import { TimeFormatter } from "../../utils/DateFormatter";
|
||||||
import PhoneFormatter from "../../utils/PhoneFormatter";
|
import PhoneFormatter from "../../utils/PhoneFormatter";
|
||||||
|
import { onlyUnique } from "../../utils/arrayHelper";
|
||||||
import { alphaSort, dateSort, statusSort } from "../../utils/sorters";
|
import { alphaSort, dateSort, statusSort } from "../../utils/sorters";
|
||||||
import JobAltTransportChange from "../job-at-change/job-at-change.component";
|
import JobAltTransportChange from "../job-at-change/job-at-change.component";
|
||||||
import JobPartsQueueCount from "../job-parts-queue-count/job-parts-queue-count.component";
|
import JobPartsQueueCount from "../job-parts-queue-count/job-parts-queue-count.component";
|
||||||
@@ -573,12 +574,17 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => {
|
|||||||
sortOrder:
|
sortOrder:
|
||||||
state.sortedInfo.columnKey === "estimator" && state.sortedInfo.order,
|
state.sortedInfo.columnKey === "estimator" && state.sortedInfo.order,
|
||||||
filters:
|
filters:
|
||||||
data?.map((s) => {
|
(data &&
|
||||||
return {
|
data
|
||||||
text: `${s.est_ct_fn || ""} ${s.est_ct_ln || ""}`.trim(),
|
.map((j) => `${j.est_ct_fn || ""} ${j.est_ct_ln || ""}`.trim())
|
||||||
value: [`${s.est_ct_fn || ""} ${s.est_ct_ln || ""}`.trim()],
|
.filter(onlyUnique)
|
||||||
};
|
.map((s) => {
|
||||||
}) || [],
|
return {
|
||||||
|
text: s || "N/A",
|
||||||
|
value: [s],
|
||||||
|
};
|
||||||
|
})) ||
|
||||||
|
[],
|
||||||
onFilter: (value, record) =>
|
onFilter: (value, record) =>
|
||||||
value.includes(
|
value.includes(
|
||||||
`${record.est_ct_fn || ""} ${record.est_ct_ln || ""}`.trim()
|
`${record.est_ct_fn || ""} ${record.est_ct_ln || ""}`.trim()
|
||||||
|
|||||||
@@ -2,11 +2,11 @@ import { DeleteFilled } from "@ant-design/icons";
|
|||||||
import { useMutation, useQuery } from "@apollo/client";
|
import { useMutation, useQuery } from "@apollo/client";
|
||||||
import {
|
import {
|
||||||
Button,
|
Button,
|
||||||
Space,
|
|
||||||
Card,
|
Card,
|
||||||
Form,
|
Form,
|
||||||
Input,
|
Input,
|
||||||
InputNumber,
|
InputNumber,
|
||||||
|
Space,
|
||||||
Switch,
|
Switch,
|
||||||
notification,
|
notification,
|
||||||
} from "antd";
|
} from "antd";
|
||||||
@@ -157,6 +157,18 @@ export function ShopEmployeeTeamsFormComponent({ bodyshop }) {
|
|||||||
>
|
>
|
||||||
<Switch />
|
<Switch />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
|
<Form.Item
|
||||||
|
label={t("employee_teams.fields.max_load")}
|
||||||
|
name="max_load"
|
||||||
|
rules={[
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
//message: t("general.validation.required"),
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
>
|
||||||
|
<InputNumber min={0} precision={1} />
|
||||||
|
</Form.Item>
|
||||||
</LayoutFormRow>
|
</LayoutFormRow>
|
||||||
<Form.List name={["employee_team_members"]}>
|
<Form.List name={["employee_team_members"]}>
|
||||||
{(fields, { add, remove, move }) => {
|
{(fields, { add, remove, move }) => {
|
||||||
@@ -199,7 +211,7 @@ export function ShopEmployeeTeamsFormComponent({ bodyshop }) {
|
|||||||
},
|
},
|
||||||
]}
|
]}
|
||||||
>
|
>
|
||||||
<InputNumber min={0} max={100} precision={2}/>
|
<InputNumber min={0} max={100} precision={2} />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
label={t("joblines.fields.lbr_types.LAA")}
|
label={t("joblines.fields.lbr_types.LAA")}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ export const QUERY_TEAMS = gql`
|
|||||||
query QUERY_TEAMS {
|
query QUERY_TEAMS {
|
||||||
employee_teams(order_by: { name: asc }) {
|
employee_teams(order_by: { name: asc }) {
|
||||||
id
|
id
|
||||||
|
max_load
|
||||||
name
|
name
|
||||||
employee_team_members {
|
employee_team_members {
|
||||||
id
|
id
|
||||||
@@ -25,9 +26,9 @@ export const UPDATE_EMPLOYEE_TEAM = gql`
|
|||||||
) {
|
) {
|
||||||
update_employee_team_members_many(updates: $teamMemberUpdates) {
|
update_employee_team_members_many(updates: $teamMemberUpdates) {
|
||||||
returning {
|
returning {
|
||||||
|
employeeid
|
||||||
id
|
id
|
||||||
labor_rates
|
labor_rates
|
||||||
employeeid
|
|
||||||
percentage
|
percentage
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -36,9 +37,9 @@ export const UPDATE_EMPLOYEE_TEAM = gql`
|
|||||||
}
|
}
|
||||||
insert_employee_team_members(objects: $teamMemberInserts) {
|
insert_employee_team_members(objects: $teamMemberInserts) {
|
||||||
returning {
|
returning {
|
||||||
|
employeeid
|
||||||
id
|
id
|
||||||
labor_rates
|
labor_rates
|
||||||
employeeid
|
|
||||||
percentage
|
percentage
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -47,12 +48,14 @@ export const UPDATE_EMPLOYEE_TEAM = gql`
|
|||||||
_set: $employeeTeam
|
_set: $employeeTeam
|
||||||
) {
|
) {
|
||||||
active
|
active
|
||||||
name
|
|
||||||
id
|
id
|
||||||
|
max_load
|
||||||
|
name
|
||||||
employee_team_members {
|
employee_team_members {
|
||||||
percentage
|
employeeid
|
||||||
labor_rates
|
|
||||||
id
|
id
|
||||||
|
labor_rates
|
||||||
|
percentage
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -62,13 +65,14 @@ export const INSERT_EMPLOYEE_TEAM = gql`
|
|||||||
mutation INSERT_EMPLOYEE_TEAM($employeeTeam: employee_teams_insert_input!) {
|
mutation INSERT_EMPLOYEE_TEAM($employeeTeam: employee_teams_insert_input!) {
|
||||||
insert_employee_teams_one(object: $employeeTeam) {
|
insert_employee_teams_one(object: $employeeTeam) {
|
||||||
active
|
active
|
||||||
name
|
|
||||||
id
|
id
|
||||||
|
max_load
|
||||||
|
name
|
||||||
employee_team_members {
|
employee_team_members {
|
||||||
employeeid
|
employeeid
|
||||||
percentage
|
|
||||||
labor_rates
|
|
||||||
id
|
id
|
||||||
|
labor_rates
|
||||||
|
percentage
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -77,14 +81,15 @@ export const INSERT_EMPLOYEE_TEAM = gql`
|
|||||||
export const QUERY_EMPLOYEE_TEAM_BY_ID = gql`
|
export const QUERY_EMPLOYEE_TEAM_BY_ID = gql`
|
||||||
query QUERY_EMPLOYEE_TEAM_BY_ID($id: uuid!) {
|
query QUERY_EMPLOYEE_TEAM_BY_ID($id: uuid!) {
|
||||||
employee_teams_by_pk(id: $id) {
|
employee_teams_by_pk(id: $id) {
|
||||||
id
|
|
||||||
name
|
|
||||||
active
|
active
|
||||||
|
id
|
||||||
|
max_load
|
||||||
|
name
|
||||||
employee_team_members {
|
employee_team_members {
|
||||||
employeeid
|
employeeid
|
||||||
percentage
|
|
||||||
labor_rates
|
|
||||||
id
|
id
|
||||||
|
labor_rates
|
||||||
|
percentage
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -976,6 +976,7 @@
|
|||||||
"fields": {
|
"fields": {
|
||||||
"active": "Active",
|
"active": "Active",
|
||||||
"employeeid": "Employee",
|
"employeeid": "Employee",
|
||||||
|
"max_load": "Max Load",
|
||||||
"name": "Team Name",
|
"name": "Team Name",
|
||||||
"percentage": "Percent"
|
"percentage": "Percent"
|
||||||
}
|
}
|
||||||
@@ -2713,6 +2714,7 @@
|
|||||||
"jobs_reconcile": "Parts/Sublet/Labor Reconciliation",
|
"jobs_reconcile": "Parts/Sublet/Labor Reconciliation",
|
||||||
"jobs_scheduled_completion": "Jobs Scheduled Completion",
|
"jobs_scheduled_completion": "Jobs Scheduled Completion",
|
||||||
"lag_time": "Lag Time",
|
"lag_time": "Lag Time",
|
||||||
|
"load_level": "Load Level",
|
||||||
"lost_sales": "Lost Sales",
|
"lost_sales": "Lost Sales",
|
||||||
"open_orders": "Open Orders by Date",
|
"open_orders": "Open Orders by Date",
|
||||||
"open_orders_csr": "Open Orders by CSR",
|
"open_orders_csr": "Open Orders by CSR",
|
||||||
|
|||||||
@@ -976,6 +976,7 @@
|
|||||||
"fields": {
|
"fields": {
|
||||||
"active": "",
|
"active": "",
|
||||||
"employeeid": "",
|
"employeeid": "",
|
||||||
|
"max_load": "",
|
||||||
"name": "",
|
"name": "",
|
||||||
"percentage": ""
|
"percentage": ""
|
||||||
}
|
}
|
||||||
@@ -2713,6 +2714,7 @@
|
|||||||
"jobs_reconcile": "",
|
"jobs_reconcile": "",
|
||||||
"jobs_scheduled_completion": "",
|
"jobs_scheduled_completion": "",
|
||||||
"lag_time": "",
|
"lag_time": "",
|
||||||
|
"load_level": "",
|
||||||
"lost_sales": "",
|
"lost_sales": "",
|
||||||
"open_orders": "",
|
"open_orders": "",
|
||||||
"open_orders_csr": "",
|
"open_orders_csr": "",
|
||||||
|
|||||||
@@ -976,6 +976,7 @@
|
|||||||
"fields": {
|
"fields": {
|
||||||
"active": "",
|
"active": "",
|
||||||
"employeeid": "",
|
"employeeid": "",
|
||||||
|
"max_load": "",
|
||||||
"name": "",
|
"name": "",
|
||||||
"percentage": ""
|
"percentage": ""
|
||||||
}
|
}
|
||||||
@@ -2713,6 +2714,7 @@
|
|||||||
"jobs_reconcile": "",
|
"jobs_reconcile": "",
|
||||||
"jobs_scheduled_completion": "",
|
"jobs_scheduled_completion": "",
|
||||||
"lag_time": "",
|
"lag_time": "",
|
||||||
|
"load_level": "",
|
||||||
"lost_sales": "",
|
"lost_sales": "",
|
||||||
"open_orders": "",
|
"open_orders": "",
|
||||||
"open_orders_csr": "",
|
"open_orders_csr": "",
|
||||||
|
|||||||
@@ -2179,6 +2179,19 @@ export const TemplateList = (type, context) => {
|
|||||||
},
|
},
|
||||||
group: "customers",
|
group: "customers",
|
||||||
},
|
},
|
||||||
|
load_level: {
|
||||||
|
title: i18n.t("reportcenter.templates.load_level"),
|
||||||
|
subject: i18n.t("reportcenter.templates.load_level"),
|
||||||
|
key: "load_level",
|
||||||
|
//idtype: "vendor",
|
||||||
|
disabled: false,
|
||||||
|
rangeFilter: {
|
||||||
|
object: i18n.t("reportcenter.labels.objects.jobs"),
|
||||||
|
field: i18n.t("jobs.fields.date_open"),
|
||||||
|
},
|
||||||
|
group: "jobs",
|
||||||
|
enhanced_payroll: true,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
: {}),
|
: {}),
|
||||||
...(!type || type === "courtesycarcontract"
|
...(!type || type === "courtesycarcontract"
|
||||||
|
|||||||
@@ -2023,24 +2023,24 @@
|
|||||||
- active:
|
- active:
|
||||||
_eq: true
|
_eq: true
|
||||||
columns:
|
columns:
|
||||||
- labor_rates
|
|
||||||
- percentage
|
|
||||||
- created_at
|
- created_at
|
||||||
- updated_at
|
|
||||||
- employeeid
|
- employeeid
|
||||||
- id
|
- id
|
||||||
|
- labor_rates
|
||||||
|
- percentage
|
||||||
- teamid
|
- teamid
|
||||||
|
- updated_at
|
||||||
select_permissions:
|
select_permissions:
|
||||||
- role: user
|
- role: user
|
||||||
permission:
|
permission:
|
||||||
columns:
|
columns:
|
||||||
- labor_rates
|
|
||||||
- percentage
|
|
||||||
- created_at
|
- created_at
|
||||||
- updated_at
|
|
||||||
- employeeid
|
- employeeid
|
||||||
- id
|
- id
|
||||||
|
- labor_rates
|
||||||
|
- percentage
|
||||||
- teamid
|
- teamid
|
||||||
|
- updated_at
|
||||||
filter:
|
filter:
|
||||||
employee_team:
|
employee_team:
|
||||||
bodyshop:
|
bodyshop:
|
||||||
@@ -2055,13 +2055,13 @@
|
|||||||
- role: user
|
- role: user
|
||||||
permission:
|
permission:
|
||||||
columns:
|
columns:
|
||||||
- labor_rates
|
|
||||||
- percentage
|
|
||||||
- created_at
|
- created_at
|
||||||
- updated_at
|
|
||||||
- employeeid
|
- employeeid
|
||||||
- id
|
- id
|
||||||
|
- labor_rates
|
||||||
|
- percentage
|
||||||
- teamid
|
- teamid
|
||||||
|
- updated_at
|
||||||
filter:
|
filter:
|
||||||
employee_team:
|
employee_team:
|
||||||
bodyshop:
|
bodyshop:
|
||||||
@@ -2123,21 +2123,23 @@
|
|||||||
_eq: true
|
_eq: true
|
||||||
columns:
|
columns:
|
||||||
- active
|
- active
|
||||||
- name
|
|
||||||
- created_at
|
|
||||||
- updated_at
|
|
||||||
- bodyshopid
|
- bodyshopid
|
||||||
|
- created_at
|
||||||
- id
|
- id
|
||||||
|
- max_load
|
||||||
|
- name
|
||||||
|
- updated_at
|
||||||
select_permissions:
|
select_permissions:
|
||||||
- role: user
|
- role: user
|
||||||
permission:
|
permission:
|
||||||
columns:
|
columns:
|
||||||
- active
|
- active
|
||||||
- name
|
|
||||||
- created_at
|
|
||||||
- updated_at
|
|
||||||
- bodyshopid
|
- bodyshopid
|
||||||
|
- created_at
|
||||||
- id
|
- id
|
||||||
|
- max_load
|
||||||
|
- name
|
||||||
|
- updated_at
|
||||||
filter:
|
filter:
|
||||||
bodyshop:
|
bodyshop:
|
||||||
associations:
|
associations:
|
||||||
@@ -2153,6 +2155,7 @@
|
|||||||
columns:
|
columns:
|
||||||
- active
|
- active
|
||||||
- bodyshopid
|
- bodyshopid
|
||||||
|
- max_load
|
||||||
- name
|
- name
|
||||||
- updated_at
|
- updated_at
|
||||||
filter:
|
filter:
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
-- Could not auto-generate a down migration.
|
||||||
|
-- Please write an appropriate down migration for the SQL below:
|
||||||
|
-- alter table "public"."employee_team_members" add column "max_load" numeric
|
||||||
|
-- not null default '10000';
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
alter table "public"."employee_team_members" add column "max_load" numeric
|
||||||
|
not null default '10000';
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
alter table "public"."employee_team_members" alter column "max_load" set default '10000'::numeric;
|
||||||
|
alter table "public"."employee_team_members" alter column "max_load" drop not null;
|
||||||
|
alter table "public"."employee_team_members" add column "max_load" numeric;
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
alter table "public"."employee_team_members" drop column "max_load" cascade;
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
-- Could not auto-generate a down migration.
|
||||||
|
-- Please write an appropriate down migration for the SQL below:
|
||||||
|
-- alter table "public"."employee_teams" add column "max_load" numeric
|
||||||
|
-- not null default '10000';
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
alter table "public"."employee_teams" add column "max_load" numeric
|
||||||
|
not null default '10000';
|
||||||
Reference in New Issue
Block a user