IO-884 Add special coverage policy indicators.

This commit is contained in:
Patrick Fic
2021-04-12 15:22:01 -07:00
parent fbb170491b
commit c216295e66
8 changed files with 86 additions and 11 deletions

View File

@@ -21670,6 +21670,27 @@
</translation>
</translations>
</concept_node>
<concept_node>
<name>specialcoveragepolicy</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>
<name>state_tax_amt</name>
<definition_loaded>false</definition_loaded>

View File

@@ -1,6 +1,20 @@
import { DeleteFilled, FilterFilled, SyncOutlined } from "@ant-design/icons";
import {
DeleteFilled,
FilterFilled,
SyncOutlined,
WarningFilled,
} from "@ant-design/icons";
import { useMutation } from "@apollo/client";
import { Button, Dropdown, Input, Menu, PageHeader, Space, Table } from "antd";
import {
Button,
Dropdown,
Input,
Menu,
PageHeader,
Space,
Table,
Tag,
} from "antd";
import React, { useState } from "react";
import { useTranslation } from "react-i18next";
import { connect } from "react-redux";
@@ -318,6 +332,15 @@ export function JobLinesComponent({
<Button onClick={() => refetch()}>
<SyncOutlined />
</Button>
{job.special_coverage_policy && (
<Tag color="tomato">
<Space>
<WarningFilled />
<span>{t("jobs.labels.specialcoveragepolicy")}</span>
</Space>
</Tag>
)}
<Button
disabled={
(job && !job.converted) ||
@@ -329,6 +352,7 @@ export function JobLinesComponent({
actions: { refetch: refetch },
context: {
jobId: job.id,
job: job,
linesToOrder: selectedLines,
},
});
@@ -354,7 +378,6 @@ export function JobLinesComponent({
<Dropdown overlay={markMenu} trigger={["click"]}>
<Button>{t("jobs.actions.mark")}</Button>
</Dropdown>
<Button
disabled={jobRO}
onClick={() => {
@@ -366,7 +389,6 @@ export function JobLinesComponent({
>
{t("joblines.actions.new")}
</Button>
<Input.Search
placeholder={t("general.labels.search")}
onChange={(e) => {

View File

@@ -1,4 +1,5 @@
import { Card, Col, Row, Tag } from "antd";
import { Card, Col, Row, Space, Tag } from "antd";
import { WarningFilled } from "@ant-design/icons";
import React, { useMemo } from "react";
import { useTranslation } from "react-i18next";
import { connect } from "react-redux";
@@ -85,6 +86,14 @@ export function JobsDetailHeader({ job, bodyshop, disabled }) {
<ProductionListColumnProductionNote record={job} />
</DataLabel>
)}
{job.special_coverage_policy && (
<Tag color="tomato">
<Space>
<WarningFilled />
<span>{t("jobs.labels.specialcoveragepolicy")}</span>
</Space>
</Tag>
)}
</div>
</Card>
</Col>

View File

@@ -1,5 +1,14 @@
import { DeleteFilled } from "@ant-design/icons";
import { Form, Input, InputNumber, Radio, Typography } from "antd";
import { DeleteFilled, WarningFilled } from "@ant-design/icons";
import {
Divider,
Form,
Input,
InputNumber,
Radio,
Space,
Tag,
Typography,
} from "antd";
import React from "react";
import { useTranslation } from "react-i18next";
import FormDatePicker from "../form-date-picker/form-date-picker.component";
@@ -13,6 +22,7 @@ export default function PartsOrderModalComponent({
sendTypeState,
isReturn,
preferredMake,
job,
}) {
const [sendType, setSendType] = sendTypeState;
@@ -23,7 +33,7 @@ export default function PartsOrderModalComponent({
<Form.Item name="returnfrombill" style={{ display: "none" }}>
<Input />
</Form.Item>
<LayoutFormRow>
<LayoutFormRow noDivider>
<Form.Item
name="vendorid"
label={t("vendors.fields.name")}
@@ -52,10 +62,18 @@ export default function PartsOrderModalComponent({
>
<FormDatePicker />
</Form.Item>
{job && job.special_coverage_policy && (
<Tag color="tomato">
<Space>
<WarningFilled />
<span>{t("jobs.labels.specialcoveragepolicy")}</span>
</Space>
</Tag>
)}
</LayoutFormRow>
<Typography.Title level={4}>
<Divider orientation="left">
{t("parts_orders.labels.inthisorder")}
</Typography.Title>
</Divider>
<Form.List name={["parts_order_lines", "data"]}>
{(fields, { add, remove, move }) => {
return (
@@ -63,7 +81,7 @@ export default function PartsOrderModalComponent({
{fields.map((field, index) => (
<Form.Item required={false} key={field.key}>
<div style={{ display: "flex", alignItems: "center" }}>
<LayoutFormRow style={{ flex: 1 }}>
<LayoutFormRow noDivider>
<Form.Item
label={t("parts_orders.fields.line_desc")}
key={`${index}line_desc`}

View File

@@ -56,6 +56,7 @@ export function PartsOrderModalContainer({
vendorId,
returnFromBill,
invoiceNumber,
job,
} = context;
const { refetch } = actions;
@@ -256,6 +257,7 @@ export function PartsOrderModalContainer({
sendTypeState={sendTypeState}
isReturn={isReturn}
preferredMake={data && data.jobs[0] && data.jobs[0].v_make_desc}
job={job}
/>
)}
</Form>

View File

@@ -1290,6 +1290,7 @@
"sale_parts": "Sales - Parts & Sublet",
"sales": "Sales",
"scheduledinchange": "The scheduled in is based off the latest appointment. To change this date, please schedule or reschedule the job. ",
"specialcoveragepolicy": "Special Coverage Policy Applies",
"state_tax_amt": "State/Provincial Taxes",
"subletstotal": "Sublets Total",
"subtotal": "Subtotal",

View File

@@ -1290,6 +1290,7 @@
"sale_parts": "",
"sales": "",
"scheduledinchange": "",
"specialcoveragepolicy": "",
"state_tax_amt": "",
"subletstotal": "",
"subtotal": "",

View File

@@ -1290,6 +1290,7 @@
"sale_parts": "",
"sales": "",
"scheduledinchange": "",
"specialcoveragepolicy": "",
"state_tax_amt": "",
"subletstotal": "",
"subtotal": "",