Add task name to queries.
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
<babeledit_project be_version="2.7.1" version="1.2">
|
<babeledit_project version="1.2" be_version="2.7.1">
|
||||||
<!--
|
<!--
|
||||||
|
|
||||||
BabelEdit project file
|
BabelEdit project file
|
||||||
@@ -46546,27 +46546,6 @@
|
|||||||
</translation>
|
</translation>
|
||||||
</translations>
|
</translations>
|
||||||
</concept_node>
|
</concept_node>
|
||||||
<concept_node>
|
|
||||||
<name>parent_task</name>
|
|
||||||
<definition_loaded>false</definition_loaded>
|
|
||||||
<description></description>
|
|
||||||
<comment></comment>
|
|
||||||
<default_text></default_text>
|
|
||||||
<translations>
|
|
||||||
<translation>
|
|
||||||
<language>en-US</language>
|
|
||||||
<approved>false</approved>
|
|
||||||
</translation>
|
|
||||||
<translation>
|
|
||||||
<language>es-MX</language>
|
|
||||||
<approved>false</approved>
|
|
||||||
</translation>
|
|
||||||
<translation>
|
|
||||||
<language>fr-CA</language>
|
|
||||||
<approved>false</approved>
|
|
||||||
</translation>
|
|
||||||
</translations>
|
|
||||||
</concept_node>
|
|
||||||
<concept_node>
|
<concept_node>
|
||||||
<name>productivehrs</name>
|
<name>productivehrs</name>
|
||||||
<definition_loaded>false</definition_loaded>
|
<definition_loaded>false</definition_loaded>
|
||||||
@@ -46609,6 +46588,27 @@
|
|||||||
</translation>
|
</translation>
|
||||||
</translations>
|
</translations>
|
||||||
</concept_node>
|
</concept_node>
|
||||||
|
<concept_node>
|
||||||
|
<name>task_name</name>
|
||||||
|
<definition_loaded>false</definition_loaded>
|
||||||
|
<description></description>
|
||||||
|
<comment></comment>
|
||||||
|
<default_text></default_text>
|
||||||
|
<translations>
|
||||||
|
<translation>
|
||||||
|
<language>en-US</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>es-MX</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>fr-CA</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
</translations>
|
||||||
|
</concept_node>
|
||||||
</children>
|
</children>
|
||||||
</folder_node>
|
</folder_node>
|
||||||
<folder_node>
|
<folder_node>
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { Button, Card, Col, Row, Space, Table, Typography } from "antd";
|
import { Button, Card, Col, Row, Space, Table, Typography } from "antd";
|
||||||
|
import { SyncOutlined } from '@ant-design/icons'
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import _ from "lodash";
|
import _ from "lodash";
|
||||||
import React, { useEffect, useMemo, useState } from "react";
|
import React, { useEffect, useMemo, useState } from "react";
|
||||||
@@ -241,7 +242,7 @@ export function PayrollLaborAllocationsTable({
|
|||||||
refetch();
|
refetch();
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
(TODO: Add Label) Calculate Labor
|
<SyncOutlined/>
|
||||||
</Button>
|
</Button>
|
||||||
</Space>
|
</Space>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { EditFilled } from "@ant-design/icons";
|
import { EditFilled, SyncOutlined } from "@ant-design/icons";
|
||||||
import { Button, Card, Checkbox, Space, Table } from "antd";
|
import { Button, Card, Checkbox, Space, Table } from "antd";
|
||||||
import moment from "moment";
|
import moment from "moment";
|
||||||
import React, { useMemo, useState } from "react";
|
import React, { useMemo, useState } from "react";
|
||||||
@@ -132,21 +132,26 @@ export function TimeTicketList({
|
|||||||
}) || [],
|
}) || [],
|
||||||
onFilter: (value, record) => value.includes(record.cost_center),
|
onFilter: (value, record) => value.includes(record.cost_center),
|
||||||
},
|
},
|
||||||
{
|
...(jobId
|
||||||
title: t("jobs.fields.ro_number"),
|
? []
|
||||||
dataIndex: "ro_number",
|
: [
|
||||||
key: "ro_number",
|
{
|
||||||
sorter: (a, b) =>
|
title: t("jobs.fields.ro_number"),
|
||||||
alphaSort(a.job && a.job.ro_number, b.job && b.job.ro_number),
|
dataIndex: "ro_number",
|
||||||
sortOrder:
|
key: "ro_number",
|
||||||
state.sortedInfo.columnKey === "ro_number" && state.sortedInfo.order,
|
sorter: (a, b) =>
|
||||||
render: (text, record) =>
|
alphaSort(a.job && a.job.ro_number, b.job && b.job.ro_number),
|
||||||
record.job && (
|
sortOrder:
|
||||||
<Link to={"/manage/jobs/" + record.job.id}>
|
state.sortedInfo.columnKey === "ro_number" &&
|
||||||
{record.job.ro_number || "N/A"}
|
state.sortedInfo.order,
|
||||||
</Link>
|
render: (text, record) =>
|
||||||
),
|
record.job && (
|
||||||
},
|
<Link to={"/manage/jobs/" + record.job.id}>
|
||||||
|
{record.job.ro_number || "N/A"}
|
||||||
|
</Link>
|
||||||
|
),
|
||||||
|
},
|
||||||
|
]),
|
||||||
{
|
{
|
||||||
title: t("timetickets.fields.productivehrs"),
|
title: t("timetickets.fields.productivehrs"),
|
||||||
dataIndex: "productivehrs",
|
dataIndex: "productivehrs",
|
||||||
@@ -156,14 +161,20 @@ export function TimeTicketList({
|
|||||||
state.sortedInfo.columnKey === "productivehrs" &&
|
state.sortedInfo.columnKey === "productivehrs" &&
|
||||||
state.sortedInfo.order,
|
state.sortedInfo.order,
|
||||||
},
|
},
|
||||||
{
|
...(Enhanced_Payroll.treatment === "on"
|
||||||
title: t("timetickets.fields.actualhrs"),
|
? []
|
||||||
dataIndex: "actualhrs",
|
: [
|
||||||
key: "actualhrs",
|
{
|
||||||
sorter: (a, b) => a.actualhrs - b.actualhrs,
|
title: t("timetickets.fields.actualhrs"),
|
||||||
sortOrder:
|
dataIndex: "actualhrs",
|
||||||
state.sortedInfo.columnKey === "actualhrs" && state.sortedInfo.order,
|
key: "actualhrs",
|
||||||
},
|
sorter: (a, b) => a.actualhrs - b.actualhrs,
|
||||||
|
sortOrder:
|
||||||
|
state.sortedInfo.columnKey === "actualhrs" &&
|
||||||
|
state.sortedInfo.order,
|
||||||
|
},
|
||||||
|
]),
|
||||||
|
|
||||||
{
|
{
|
||||||
title: t("timetickets.fields.memo"),
|
title: t("timetickets.fields.memo"),
|
||||||
dataIndex: "memo",
|
dataIndex: "memo",
|
||||||
@@ -177,52 +188,57 @@ export function TimeTicketList({
|
|||||||
...(Enhanced_Payroll.treatment === "on"
|
...(Enhanced_Payroll.treatment === "on"
|
||||||
? [
|
? [
|
||||||
{
|
{
|
||||||
title: t("timetickets.fields.parent_task"),
|
title: t("timetickets.fields.task_name"),
|
||||||
dataIndex: "parent_task",
|
dataIndex: "task_name",
|
||||||
key: "parent_task",
|
key: "task_name",
|
||||||
sorter: (a, b) => alphaSort(a.parent_task, b.parent_task),
|
sorter: (a, b) => alphaSort(a.task_name, b.task_name),
|
||||||
sortOrder:
|
sortOrder:
|
||||||
state.sortedInfo.columnKey === "parent_task" &&
|
state.sortedInfo.columnKey === "task_name" &&
|
||||||
state.sortedInfo.order,
|
state.sortedInfo.order,
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
: []),
|
: []),
|
||||||
{
|
...(Enhanced_Payroll.treatment === "on"
|
||||||
title: t("timetickets.fields.clockon"),
|
? []
|
||||||
dataIndex: "clockon",
|
: [
|
||||||
key: "clockon",
|
{
|
||||||
|
title: t("timetickets.fields.clockon"),
|
||||||
|
dataIndex: "clockon",
|
||||||
|
key: "clockon",
|
||||||
|
|
||||||
render: (text, record) => (
|
render: (text, record) => (
|
||||||
<DateTimeFormatter>{record.clockon}</DateTimeFormatter>
|
<DateTimeFormatter>{record.clockon}</DateTimeFormatter>
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: t("timetickets.fields.clockoff"),
|
title: t("timetickets.fields.clockoff"),
|
||||||
dataIndex: "clockoff",
|
dataIndex: "clockoff",
|
||||||
key: "clockoff",
|
key: "clockoff",
|
||||||
|
|
||||||
|
render: (text, record) => (
|
||||||
|
<DateTimeFormatter>{record.clockoff}</DateTimeFormatter>
|
||||||
|
),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: t("timetickets.fields.clockhours"),
|
||||||
|
dataIndex: "clockhours",
|
||||||
|
key: "clockhours",
|
||||||
|
render: (text, record) => {
|
||||||
|
if (record.clockoff && record.clockon)
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
{moment(record.clockoff)
|
||||||
|
.diff(moment(record.clockon), "hours", true)
|
||||||
|
.toFixed(2)}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]),
|
||||||
|
|
||||||
render: (text, record) => (
|
|
||||||
<DateTimeFormatter>{record.clockoff}</DateTimeFormatter>
|
|
||||||
),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: t("timetickets.fields.clockhours"),
|
|
||||||
dataIndex: "clockhours",
|
|
||||||
key: "clockhours",
|
|
||||||
render: (text, record) => {
|
|
||||||
if (record.clockoff && record.clockon)
|
|
||||||
return (
|
|
||||||
<div>
|
|
||||||
{moment(record.clockoff)
|
|
||||||
.diff(moment(record.clockon), "hours", true)
|
|
||||||
.toFixed(2)}
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
else {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
// {
|
// {
|
||||||
// title: "Pay",
|
// title: "Pay",
|
||||||
// dataIndex: "pay",
|
// dataIndex: "pay",
|
||||||
@@ -295,6 +311,7 @@ export function TimeTicketList({
|
|||||||
<Space wrap>
|
<Space wrap>
|
||||||
{jobId && bodyshop.md_tasks_presets.enable_tasks && (
|
{jobId && bodyshop.md_tasks_presets.enable_tasks && (
|
||||||
<Button
|
<Button
|
||||||
|
disabled={disabled}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setTimeTicketTaskContext({
|
setTimeTicketTaskContext({
|
||||||
actions: { refetch: refetch },
|
actions: { refetch: refetch },
|
||||||
@@ -316,6 +333,13 @@ export function TimeTicketList({
|
|||||||
</TimeTicketEnterButton>
|
</TimeTicketEnterButton>
|
||||||
))}
|
))}
|
||||||
{extra}
|
{extra}
|
||||||
|
<Button
|
||||||
|
onClick={async () => {
|
||||||
|
refetch();
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<SyncOutlined />
|
||||||
|
</Button>
|
||||||
</Space>
|
</Space>
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -52,10 +52,7 @@ export function TimeTicketTaskModalComponent({
|
|||||||
},
|
},
|
||||||
]}
|
]}
|
||||||
>
|
>
|
||||||
<JobSearchSelectComponent
|
<JobSearchSelectComponent convertedOnly={true} notExported={true} />
|
||||||
convertedOnly={!bodyshop.tt_allow_post_to_invoiced}
|
|
||||||
notExported={!bodyshop.tt_allow_post_to_invoiced}
|
|
||||||
/>
|
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Space wrap>
|
<Space wrap>
|
||||||
<Form.Item name="task" label={t("timetickets.labels.task")}>
|
<Form.Item name="task" label={t("timetickets.labels.task")}>
|
||||||
|
|||||||
@@ -68,6 +68,7 @@ export const GET_LINE_TICKET_BY_PK = gql`
|
|||||||
rate
|
rate
|
||||||
committed_at
|
committed_at
|
||||||
commited_by
|
commited_by
|
||||||
|
task_name
|
||||||
employee {
|
employee {
|
||||||
id
|
id
|
||||||
first_name
|
first_name
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ export const QUERY_TIME_TICKETS_IN_RANGE = gql`
|
|||||||
flat_rate
|
flat_rate
|
||||||
commited_by
|
commited_by
|
||||||
committed_at
|
committed_at
|
||||||
|
task_name
|
||||||
job {
|
job {
|
||||||
id
|
id
|
||||||
ro_number
|
ro_number
|
||||||
|
|||||||
@@ -2760,9 +2760,9 @@
|
|||||||
"employee_team": "Employee Team",
|
"employee_team": "Employee Team",
|
||||||
"flat_rate": "Flat Rate?",
|
"flat_rate": "Flat Rate?",
|
||||||
"memo": "Memo",
|
"memo": "Memo",
|
||||||
"parent_task": "Task",
|
|
||||||
"productivehrs": "Productive Hours",
|
"productivehrs": "Productive Hours",
|
||||||
"ro_number": "Job to Post Against"
|
"ro_number": "Job to Post Against",
|
||||||
|
"task_name": "Task"
|
||||||
},
|
},
|
||||||
"labels": {
|
"labels": {
|
||||||
"alreadyclockedon": "You are already clocked in to the following job(s):",
|
"alreadyclockedon": "You are already clocked in to the following job(s):",
|
||||||
|
|||||||
@@ -2760,9 +2760,9 @@
|
|||||||
"employee_team": "",
|
"employee_team": "",
|
||||||
"flat_rate": "",
|
"flat_rate": "",
|
||||||
"memo": "",
|
"memo": "",
|
||||||
"parent_task": "",
|
|
||||||
"productivehrs": "",
|
"productivehrs": "",
|
||||||
"ro_number": ""
|
"ro_number": "",
|
||||||
|
"task_name": ""
|
||||||
},
|
},
|
||||||
"labels": {
|
"labels": {
|
||||||
"alreadyclockedon": "",
|
"alreadyclockedon": "",
|
||||||
|
|||||||
@@ -2760,9 +2760,9 @@
|
|||||||
"employee_team": "",
|
"employee_team": "",
|
||||||
"flat_rate": "",
|
"flat_rate": "",
|
||||||
"memo": "",
|
"memo": "",
|
||||||
"parent_task": "",
|
|
||||||
"productivehrs": "",
|
"productivehrs": "",
|
||||||
"ro_number": ""
|
"ro_number": "",
|
||||||
|
"task_name": ""
|
||||||
},
|
},
|
||||||
"labels": {
|
"labels": {
|
||||||
"alreadyclockedon": "",
|
"alreadyclockedon": "",
|
||||||
|
|||||||
Reference in New Issue
Block a user