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 { TimeFormatter } from "../../utils/DateFormatter";
|
||||
import PhoneFormatter from "../../utils/PhoneFormatter";
|
||||
import { onlyUnique } from "../../utils/arrayHelper";
|
||||
import { alphaSort, dateSort, statusSort } from "../../utils/sorters";
|
||||
import JobAltTransportChange from "../job-at-change/job-at-change.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:
|
||||
state.sortedInfo.columnKey === "estimator" && state.sortedInfo.order,
|
||||
filters:
|
||||
data?.map((s) => {
|
||||
return {
|
||||
text: `${s.est_ct_fn || ""} ${s.est_ct_ln || ""}`.trim(),
|
||||
value: [`${s.est_ct_fn || ""} ${s.est_ct_ln || ""}`.trim()],
|
||||
};
|
||||
}) || [],
|
||||
(data &&
|
||||
data
|
||||
.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()
|
||||
|
||||
@@ -2,11 +2,11 @@ import { DeleteFilled } from "@ant-design/icons";
|
||||
import { useMutation, useQuery } from "@apollo/client";
|
||||
import {
|
||||
Button,
|
||||
Space,
|
||||
Card,
|
||||
Form,
|
||||
Input,
|
||||
InputNumber,
|
||||
Space,
|
||||
Switch,
|
||||
notification,
|
||||
} from "antd";
|
||||
@@ -157,6 +157,18 @@ export function ShopEmployeeTeamsFormComponent({ bodyshop }) {
|
||||
>
|
||||
<Switch />
|
||||
</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>
|
||||
<Form.List name={["employee_team_members"]}>
|
||||
{(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
|
||||
label={t("joblines.fields.lbr_types.LAA")}
|
||||
|
||||
@@ -4,6 +4,7 @@ export const QUERY_TEAMS = gql`
|
||||
query QUERY_TEAMS {
|
||||
employee_teams(order_by: { name: asc }) {
|
||||
id
|
||||
max_load
|
||||
name
|
||||
employee_team_members {
|
||||
id
|
||||
@@ -25,9 +26,9 @@ export const UPDATE_EMPLOYEE_TEAM = gql`
|
||||
) {
|
||||
update_employee_team_members_many(updates: $teamMemberUpdates) {
|
||||
returning {
|
||||
employeeid
|
||||
id
|
||||
labor_rates
|
||||
employeeid
|
||||
percentage
|
||||
}
|
||||
}
|
||||
@@ -36,9 +37,9 @@ export const UPDATE_EMPLOYEE_TEAM = gql`
|
||||
}
|
||||
insert_employee_team_members(objects: $teamMemberInserts) {
|
||||
returning {
|
||||
employeeid
|
||||
id
|
||||
labor_rates
|
||||
employeeid
|
||||
percentage
|
||||
}
|
||||
}
|
||||
@@ -47,12 +48,14 @@ export const UPDATE_EMPLOYEE_TEAM = gql`
|
||||
_set: $employeeTeam
|
||||
) {
|
||||
active
|
||||
name
|
||||
id
|
||||
max_load
|
||||
name
|
||||
employee_team_members {
|
||||
percentage
|
||||
labor_rates
|
||||
employeeid
|
||||
id
|
||||
labor_rates
|
||||
percentage
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -62,13 +65,14 @@ export const INSERT_EMPLOYEE_TEAM = gql`
|
||||
mutation INSERT_EMPLOYEE_TEAM($employeeTeam: employee_teams_insert_input!) {
|
||||
insert_employee_teams_one(object: $employeeTeam) {
|
||||
active
|
||||
name
|
||||
id
|
||||
max_load
|
||||
name
|
||||
employee_team_members {
|
||||
employeeid
|
||||
percentage
|
||||
labor_rates
|
||||
id
|
||||
labor_rates
|
||||
percentage
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -77,14 +81,15 @@ export const INSERT_EMPLOYEE_TEAM = gql`
|
||||
export const QUERY_EMPLOYEE_TEAM_BY_ID = gql`
|
||||
query QUERY_EMPLOYEE_TEAM_BY_ID($id: uuid!) {
|
||||
employee_teams_by_pk(id: $id) {
|
||||
id
|
||||
name
|
||||
active
|
||||
id
|
||||
max_load
|
||||
name
|
||||
employee_team_members {
|
||||
employeeid
|
||||
percentage
|
||||
labor_rates
|
||||
id
|
||||
labor_rates
|
||||
percentage
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -976,6 +976,7 @@
|
||||
"fields": {
|
||||
"active": "Active",
|
||||
"employeeid": "Employee",
|
||||
"max_load": "Max Load",
|
||||
"name": "Team Name",
|
||||
"percentage": "Percent"
|
||||
}
|
||||
@@ -2713,6 +2714,7 @@
|
||||
"jobs_reconcile": "Parts/Sublet/Labor Reconciliation",
|
||||
"jobs_scheduled_completion": "Jobs Scheduled Completion",
|
||||
"lag_time": "Lag Time",
|
||||
"load_level": "Load Level",
|
||||
"lost_sales": "Lost Sales",
|
||||
"open_orders": "Open Orders by Date",
|
||||
"open_orders_csr": "Open Orders by CSR",
|
||||
|
||||
@@ -976,6 +976,7 @@
|
||||
"fields": {
|
||||
"active": "",
|
||||
"employeeid": "",
|
||||
"max_load": "",
|
||||
"name": "",
|
||||
"percentage": ""
|
||||
}
|
||||
@@ -2713,6 +2714,7 @@
|
||||
"jobs_reconcile": "",
|
||||
"jobs_scheduled_completion": "",
|
||||
"lag_time": "",
|
||||
"load_level": "",
|
||||
"lost_sales": "",
|
||||
"open_orders": "",
|
||||
"open_orders_csr": "",
|
||||
|
||||
@@ -976,6 +976,7 @@
|
||||
"fields": {
|
||||
"active": "",
|
||||
"employeeid": "",
|
||||
"max_load": "",
|
||||
"name": "",
|
||||
"percentage": ""
|
||||
}
|
||||
@@ -2713,6 +2714,7 @@
|
||||
"jobs_reconcile": "",
|
||||
"jobs_scheduled_completion": "",
|
||||
"lag_time": "",
|
||||
"load_level": "",
|
||||
"lost_sales": "",
|
||||
"open_orders": "",
|
||||
"open_orders_csr": "",
|
||||
|
||||
@@ -2179,6 +2179,19 @@ export const TemplateList = (type, context) => {
|
||||
},
|
||||
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"
|
||||
|
||||
@@ -2023,24 +2023,24 @@
|
||||
- active:
|
||||
_eq: true
|
||||
columns:
|
||||
- labor_rates
|
||||
- percentage
|
||||
- created_at
|
||||
- updated_at
|
||||
- employeeid
|
||||
- id
|
||||
- labor_rates
|
||||
- percentage
|
||||
- teamid
|
||||
- updated_at
|
||||
select_permissions:
|
||||
- role: user
|
||||
permission:
|
||||
columns:
|
||||
- labor_rates
|
||||
- percentage
|
||||
- created_at
|
||||
- updated_at
|
||||
- employeeid
|
||||
- id
|
||||
- labor_rates
|
||||
- percentage
|
||||
- teamid
|
||||
- updated_at
|
||||
filter:
|
||||
employee_team:
|
||||
bodyshop:
|
||||
@@ -2055,13 +2055,13 @@
|
||||
- role: user
|
||||
permission:
|
||||
columns:
|
||||
- labor_rates
|
||||
- percentage
|
||||
- created_at
|
||||
- updated_at
|
||||
- employeeid
|
||||
- id
|
||||
- labor_rates
|
||||
- percentage
|
||||
- teamid
|
||||
- updated_at
|
||||
filter:
|
||||
employee_team:
|
||||
bodyshop:
|
||||
@@ -2123,21 +2123,23 @@
|
||||
_eq: true
|
||||
columns:
|
||||
- active
|
||||
- name
|
||||
- created_at
|
||||
- updated_at
|
||||
- bodyshopid
|
||||
- created_at
|
||||
- id
|
||||
- max_load
|
||||
- name
|
||||
- updated_at
|
||||
select_permissions:
|
||||
- role: user
|
||||
permission:
|
||||
columns:
|
||||
- active
|
||||
- name
|
||||
- created_at
|
||||
- updated_at
|
||||
- bodyshopid
|
||||
- created_at
|
||||
- id
|
||||
- max_load
|
||||
- name
|
||||
- updated_at
|
||||
filter:
|
||||
bodyshop:
|
||||
associations:
|
||||
@@ -2153,6 +2155,7 @@
|
||||
columns:
|
||||
- active
|
||||
- bodyshopid
|
||||
- max_load
|
||||
- name
|
||||
- updated_at
|
||||
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