Merged in rome/release/2024-01-05 (pull request #1138)

Rome/release/2024 01 05
This commit is contained in:
Patrick Fic
2024-01-06 00:56:31 +00:00
14 changed files with 96 additions and 35 deletions

View File

@@ -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()

View File

@@ -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")}

View File

@@ -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
} }
} }
} }

View File

@@ -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",

View File

@@ -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": "",

View File

@@ -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": "",

View File

@@ -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"

View File

@@ -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:

View File

@@ -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';

View File

@@ -0,0 +1,2 @@
alter table "public"."employee_team_members" add column "max_load" numeric
not null default '10000';

View File

@@ -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;

View File

@@ -0,0 +1 @@
alter table "public"."employee_team_members" drop column "max_load" cascade;

View File

@@ -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';

View File

@@ -0,0 +1,2 @@
alter table "public"."employee_teams" add column "max_load" numeric
not null default '10000';