diff --git a/client/src/App/App.styles.scss b/client/src/App/App.styles.scss index 3c627e2bf..362e2a58c 100644 --- a/client/src/App/App.styles.scss +++ b/client/src/App/App.styles.scss @@ -8,3 +8,17 @@ flex: 1; } } + +.imex-flex-row { + display: flex; + justify-content: flex-start; + flex-wrap: wrap; + + &__grow { + flex: 1; + } + + &__margin { + margin: 0.2rem 0.2rem; + } +} diff --git a/client/src/components/barcode-popup/barcode-popup.component.jsx b/client/src/components/barcode-popup/barcode-popup.component.jsx index 7daceb4dc..6e990ce9f 100644 --- a/client/src/components/barcode-popup/barcode-popup.component.jsx +++ b/client/src/components/barcode-popup/barcode-popup.component.jsx @@ -2,7 +2,7 @@ import { Tag, Popover } from "antd"; import React from "react"; import Barcode from "react-barcode"; import { useTranslation } from "react-i18next"; -export default function BarcodePopupComponent({ value }) { +export default function BarcodePopupComponent({ value, children }) { const { t } = useTranslation(); return (
@@ -10,12 +10,11 @@ export default function BarcodePopupComponent({ value }) { content={ - } - > - {t("general.labels.barcode")} + }> + {children ? children : {t("general.labels.barcode")}}
); diff --git a/client/src/components/header/header.component.jsx b/client/src/components/header/header.component.jsx index 70eef0aff..cc15848af 100644 --- a/client/src/components/header/header.component.jsx +++ b/client/src/components/header/header.component.jsx @@ -266,7 +266,7 @@ function Header({ {currentUser.displayName || t("general.labels.unknown")} }> - signOutStart()}> + signOutStart()}> {t("user.actions.signout")} diff --git a/client/src/components/invoices-list-table/invoices-list-table.component.jsx b/client/src/components/invoices-list-table/invoices-list-table.component.jsx index 83b349288..b32ea460b 100644 --- a/client/src/components/invoices-list-table/invoices-list-table.component.jsx +++ b/client/src/components/invoices-list-table/invoices-list-table.component.jsx @@ -1,5 +1,5 @@ import { SyncOutlined } from "@ant-design/icons"; -import { Button, Checkbox, Descriptions, Table } from "antd"; +import { Button, Checkbox, Descriptions, Table, Input, Typography } from "antd"; import React, { useState } from "react"; import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; @@ -12,22 +12,29 @@ import { alphaSort } from "../../utils/sorters"; const mapDispatchToProps = (dispatch) => ({ setPartsOrderContext: (context) => dispatch(setModalContext({ context: context, modal: "partsOrder" })), + setInvoiceEnterContext: (context) => + dispatch(setModalContext({ context: context, modal: "invoiceEnter" })), + setReconciliationContext: (context) => + dispatch(setModalContext({ context: context, modal: "reconciliation" })), }); export function InvoicesListTableComponent({ job, loading, - invoices, + invoicesQuery, selectedInvoice, handleOnRowClick, - refetch, setPartsOrderContext, + setInvoiceEnterContext, + setReconciliationContext, }) { const { t } = useTranslation(); const [state, setState] = useState({ sortedInfo: {}, }); + const invoices = invoicesQuery.data ? invoicesQuery.data.invoices : []; + const { refetch } = invoicesQuery; const columns = [ { title: t("invoices.fields.vendorname"), @@ -51,7 +58,6 @@ export function InvoicesListTableComponent({ title: t("invoices.fields.date"), dataIndex: "date", key: "date", - sorter: (a, b) => a.date - b.date, sortOrder: state.sortedInfo.columnKey === "date" && state.sortedInfo.order, @@ -61,7 +67,6 @@ export function InvoicesListTableComponent({ title: t("invoices.fields.total"), dataIndex: "total", key: "total", - sorter: (a, b) => a.total - b.total, sortOrder: state.sortedInfo.columnKey === "total" && state.sortedInfo.order, @@ -212,27 +217,25 @@ export function InvoicesListTableComponent({ return (
- + {`${t("invoices.fields.invoice_number")} ${ + record.invoice_number + }`} + - {record.federal_tax_rate || ""} + {`${record.federal_tax_rate}%` || ""} - {record.state_tax_rate || ""} + {`${record.state_tax_rate}%` || ""} - {record.local_tax_rate || ""} - - - + {`${record.local_tax_rate}%` || ""} ({ ...item }))} + columns={columns} rowKey='id' dataSource={record.invoicelines} /> @@ -245,12 +248,45 @@ export function InvoicesListTableComponent({ loading={loading} size='small' title={() => ( -
+
+ + {" "} +
+ { + e.preventDefault(); + }} + /> +
)} + scroll={{ x: "50%", y: "40rem" }} expandedRowRender={rowExpander} pagination={{ position: "top", defaultPageSize: 25 }} columns={columns} diff --git a/client/src/components/job-detail-cards/job-detail-cards.component.jsx b/client/src/components/job-detail-cards/job-detail-cards.component.jsx index b00f73d94..eb401d1ac 100644 --- a/client/src/components/job-detail-cards/job-detail-cards.component.jsx +++ b/client/src/components/job-detail-cards/job-detail-cards.component.jsx @@ -2,7 +2,7 @@ import { EditFilled, FileImageFilled, PrinterFilled, - ShoppingFilled, + ShoppingFilled } from "@ant-design/icons"; import { useQuery } from "@apollo/react-hooks"; import { Button, PageHeader, Tag } from "antd"; diff --git a/client/src/components/job-invoices-total/job-invoices-total.component.jsx b/client/src/components/job-invoices-total/job-invoices-total.component.jsx index b280dffd9..3476031db 100644 --- a/client/src/components/job-invoices-total/job-invoices-total.component.jsx +++ b/client/src/components/job-invoices-total/job-invoices-total.component.jsx @@ -1,12 +1,17 @@ -import React from "react"; -import LoadingSkeleton from "../loading-skeleton/loading-skeleton.component"; -import { Statistic, Descriptions } from "antd"; -import { useTranslation } from "react-i18next"; +import { Statistic } from "antd"; import Dinero from "dinero.js"; - +import React from "react"; +import { useTranslation } from "react-i18next"; +import AlertComponent from "../alert/alert.component"; +import LoadingSkeleton from "../loading-skeleton/loading-skeleton.component"; +import "./job-invoices-total.styles.scss"; export default function JobInvoiceTotals({ loading, invoices, jobTotals }) { const { t } = useTranslation(); if (loading) return ; + if (!!!jobTotals) + return ( + + ); const totals = JSON.parse(jobTotals); let invoiceTotals = Dinero({ amount: 0 }); @@ -24,44 +29,26 @@ export default function JobInvoiceTotals({ loading, invoices, jobTotals }) { const discrepancy = Dinero(totals.parts.parts.total).subtract(invoiceTotals); return ( -
- - - - - - - - - - - - - - +
+ + + +
); } diff --git a/client/src/components/job-invoices-total/job-invoices-total.styles.scss b/client/src/components/job-invoices-total/job-invoices-total.styles.scss new file mode 100644 index 000000000..d777e83da --- /dev/null +++ b/client/src/components/job-invoices-total/job-invoices-total.styles.scss @@ -0,0 +1,7 @@ +.job-invoices-totals-container { + margin: 0rem 2rem; + display: flex; + flex-direction: column; + justify-content: space-evenly; + flex-wrap: wrap; +} diff --git a/client/src/components/job-totals-table/job-totals-table.component.jsx b/client/src/components/job-totals-table/job-totals-table.component.jsx index ba262560d..bde7fbf45 100644 --- a/client/src/components/job-totals-table/job-totals-table.component.jsx +++ b/client/src/components/job-totals-table/job-totals-table.component.jsx @@ -1,12 +1,12 @@ -import { Col, Descriptions, Row, Statistic } from "antd"; +import { Statistic } from "antd"; import React, { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; import { selectBodyshop } from "../../redux/user/user.selectors"; import LoadingSkeleton from "../loading-skeleton/loading-skeleton.component"; -import { CalculateJob } from "./job-totals.utility"; import "./job-totals-table.styles.scss"; +import { CalculateJob } from "./job-totals.utility"; const mapStateToProps = createStructuredSelector({ //currentUser: selectCurrentUser diff --git a/client/src/components/jobs-detail-financial/jobs-detail-financial.component.jsx b/client/src/components/jobs-detail-financial/jobs-detail-financial.component.jsx index 6027a644c..39777ba71 100644 --- a/client/src/components/jobs-detail-financial/jobs-detail-financial.component.jsx +++ b/client/src/components/jobs-detail-financial/jobs-detail-financial.component.jsx @@ -1,9 +1,9 @@ -import { Col, Divider, Form, Input, InputNumber, Row } from "antd"; +import { Col, Form, Input, Row } from "antd"; import React from "react"; import { useTranslation } from "react-i18next"; +import CurrencyInput from "../form-items-formatted/currency-form-item.component"; import JobTotalsTable from "../job-totals-table/job-totals-table.component"; import FormRow from "../layout-form-row/layout-form-row.component"; -import CurrencyInput from "../form-items-formatted/currency-form-item.component"; export default function JobsDetailFinancials({ job }) { const { t } = useTranslation(); diff --git a/client/src/components/jobs-detail-header-actions/jobs-detail-header-actions.component.jsx b/client/src/components/jobs-detail-header-actions/jobs-detail-header-actions.component.jsx index d6623b366..fb875a8e7 100644 --- a/client/src/components/jobs-detail-header-actions/jobs-detail-header-actions.component.jsx +++ b/client/src/components/jobs-detail-header-actions/jobs-detail-header-actions.component.jsx @@ -6,18 +6,19 @@ import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; import { Link, useHistory } from "react-router-dom"; import { createStructuredSelector } from "reselect"; +import { setModalContext } from "../../redux/modals/modals.actions"; import { selectBodyshop } from "../../redux/user/user.selectors"; import AddToProduction from "./jobs-detail-header-actions.addtoproduction.util"; -import DuplicateJob from "./jobs-detail-header-actions.duplicate.util"; -import { setModalContext } from "../../redux/modals/modals.actions"; import JobsDetaiLheaderCsi from "./jobs-detail-header-actions.csi.component"; +import DuplicateJob from "./jobs-detail-header-actions.duplicate.util"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop, }); const mapDispatchToProps = (dispatch) => ({ - //setUserLanguage: language => dispatch(setUserLanguage(language)) + setScheduleContext: (context) => + dispatch(setModalContext({ context: context, modal: "schedule" })), setInvoiceEnterContext: (context) => dispatch(setModalContext({ context: context, modal: "invoiceEnter" })), }); @@ -26,35 +27,47 @@ export function JobsDetailHeaderActions({ job, bodyshop, refetch, + setScheduleContext, setInvoiceEnterContext, }) { const { t } = useTranslation(); const client = useApolloClient(); const history = useHistory(); const statusmenu = ( - - + + { + setScheduleContext({ + actions: { refetch: refetch }, + context: { + jobId: job.id, + job: job, + }, + }); + }}> + {t("jobs.actions.schedule")} + + + + }}> {t("menus.jobsactions.newcccontract")} AddToProduction(client, job.id, refetch)} - > + onClick={() => AddToProduction(client, job.id, refetch)}> {t("jobs.actions.addtoproduction")} - + e.stopPropagation()} onConfirm={() => DuplicateJob( @@ -66,13 +79,12 @@ export function JobsDetailHeaderActions({ } ) } - getPopupContainer={(trigger) => trigger.parentNode} - > + getPopupContainer={(trigger) => trigger.parentNode}> {t("menus.jobsactions.duplicate")} { setInvoiceEnterContext({ actions: { refetch: refetch }, @@ -80,16 +92,14 @@ export function JobsDetailHeaderActions({ job: job, }, }); - }} - > + }}> {t("jobs.actions.postInvoices")} - + + }}> {t("menus.jobsactions.closejob")} @@ -97,7 +107,11 @@ export function JobsDetailHeaderActions({ ); return ( - + diff --git a/client/src/components/jobs-detail-header/jobs-detail-header.component.jsx b/client/src/components/jobs-detail-header/jobs-detail-header.component.jsx index c7c6408f3..4bc40e2b0 100644 --- a/client/src/components/jobs-detail-header/jobs-detail-header.component.jsx +++ b/client/src/components/jobs-detail-header/jobs-detail-header.component.jsx @@ -1,7 +1,5 @@ import { DownCircleFilled, PrinterFilled } from "@ant-design/icons"; import { - Avatar, - Badge, Button, Checkbox, Descriptions, @@ -9,7 +7,7 @@ import { Menu, notification, PageHeader, - Tag, + Tag } from "antd"; import React from "react"; import { useTranslation } from "react-i18next"; @@ -17,20 +15,19 @@ import Moment from "react-moment"; import { connect } from "react-redux"; import { Link } from "react-router-dom"; import { createStructuredSelector } from "reselect"; -import CarImage from "../../assets/car.svg"; +import { setModalContext } from "../../redux/modals/modals.actions"; import { selectBodyshop } from "../../redux/user/user.selectors"; import CurrencyFormatter from "../../utils/CurrencyFormatter"; -import BarcodePopup from "../barcode-popup/barcode-popup.component"; +import JobsDetailHeaderActions from "../jobs-detail-header-actions/jobs-detail-header-actions.component"; import OwnerTagPopoverComponent from "../owner-tag-popover/owner-tag-popover.component"; import VehicleTagPopoverComponent from "../vehicle-tag-popover/vehicle-tag-popover.component"; -import JobsDetailHeaderActions from "../jobs-detail-header-actions/jobs-detail-header-actions.component"; -import { setModalContext } from "../../redux/modals/modals.actions"; +import "./jobs-detail-header.styles.scss"; + const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop, }); + const mapDispatchToProps = (dispatch) => ({ - setScheduleContext: (context) => - dispatch(setModalContext({ context: context, modal: "schedule" })), setPrintCenterContext: (context) => dispatch(setModalContext({ context: context, modal: "printCenter" })), }); @@ -46,143 +43,124 @@ export function JobsDetailHeader({ }) { const { t } = useTranslation(); - const tombstoneTitle = ( -
- - {job.ro_number - ? `${t("jobs.fields.ro_number")} ${job.ro_number}` - : `EST-${job.est_number}`} -
- ); - const statusmenu = ( { updateJobStatus(e.key); - }} - > + }}> {bodyshop.md_ro_statuses.statuses.map((item) => ( {item} ))} ); - const menuExtra = [ - - - , - , - + const menuExtra = ( +
+ + + + - , - , - , - , - ]; + }}> + {t("jobs.actions.convert")} + + + +
+ ); return ( - {job.status ? {job.status} : null} - {job.inproduction ? ( - {t("jobs.labels.inproduction")} - ) : null} - - - - + title={ + job.ro_number + ? `${t("jobs.fields.ro_number")} ${job.ro_number}` + : `${t("jobs.fields.est_number")} ${job.est_number}` } - extra={menuExtra} - > - - + subTitle={job.status} + tags={[ + , + , + + {t("jobs.labels.inproduction")} + , + ]} + extra={menuExtra}> + + {job.clm_total} + key='custowing' + label={t("jobs.fields.customerowing")}> {job.owner_owing} + key='scp' + label={t("jobs.fields.specialcoveragepolicy")}> + key='sched_comp' + label={t("jobs.fields.scheduled_completion")}> {job.scheduled_completion ? ( - {job.scheduled_completion} + {job.scheduled_completion} ) : null} - + {job.cccontracts && job.cccontracts.map((item) => ( + to={`/manage/courtesycars/contracts/${item.id}`}>
{`${item.agreementnumber} - ${item.start} - ${item.scheduledreturn}`}
))} diff --git a/client/src/components/jobs-detail-header/jobs-detail-header.styles.scss b/client/src/components/jobs-detail-header/jobs-detail-header.styles.scss new file mode 100644 index 000000000..a32de8846 --- /dev/null +++ b/client/src/components/jobs-detail-header/jobs-detail-header.styles.scss @@ -0,0 +1,8 @@ +.jobs-title-container { + display: block; +} + +.jobs-subtitle-tags { + display: flex; + flex-wrap: wrap; +} diff --git a/client/src/components/jobs-detail-pli/jobs-detail-pli.component.jsx b/client/src/components/jobs-detail-pli/jobs-detail-pli.component.jsx index 6f858b65c..03ff41680 100644 --- a/client/src/components/jobs-detail-pli/jobs-detail-pli.component.jsx +++ b/client/src/components/jobs-detail-pli/jobs-detail-pli.component.jsx @@ -1,76 +1,57 @@ -import { Button } from "antd"; +import { Col, Row } from "antd"; import React from "react"; -import { connect } from "react-redux"; -import { setModalContext } from "../../redux/modals/modals.actions"; import AlertComponent from "../alert/alert.component"; import InvoicesListTableComponent from "../invoices-list-table/invoices-list-table.component"; import JobInvoicesTotalsComponent from "../job-invoices-total/job-invoices-total.component"; -import { useTranslation } from "react-i18next"; -import PartsOrderModalContainer from "../parts-order-modal/parts-order-modal.container"; +import PartsOrderModal from "../parts-order-modal/parts-order-modal.container"; +const tableCol = { + xs: { + span: 24, + }, + md: { + span: 20, + }, +}; -const mapDispatchToProps = (dispatch) => ({ - setInvoiceEnterContext: (context) => - dispatch(setModalContext({ context: context, modal: "invoiceEnter" })), - setReconciliationContext: (context) => - dispatch(setModalContext({ context: context, modal: "reconciliation" })), -}); +const totalsCol = { + xs: { + span: 24, + }, + md: { + span: 4, + }, +}; -export function JobsDetailPliComponent({ - setInvoiceEnterContext, - setReconciliationContext, +export default function JobsDetailPliComponent({ job, invoicesQuery, handleOnRowClick, selectedInvoice, }) { - const { t } = useTranslation(); return (
- - - - + {invoicesQuery.error ? ( ) : null} - - - - + +
+ + + + + + ); } - -export default connect(null, mapDispatchToProps)(JobsDetailPliComponent); diff --git a/client/src/components/jobs-detail-pli/jobs-detail-pli.container.jsx b/client/src/components/jobs-detail-pli/jobs-detail-pli.container.jsx index 9a36680a8..a4b1f191b 100644 --- a/client/src/components/jobs-detail-pli/jobs-detail-pli.container.jsx +++ b/client/src/components/jobs-detail-pli/jobs-detail-pli.container.jsx @@ -1,9 +1,9 @@ -import React from "react"; import { useQuery } from "@apollo/react-hooks"; -import JobsDetailPliComponent from "./jobs-detail-pli.component"; -import { QUERY_INVOICES_BY_JOBID } from "../../graphql/invoices.queries"; -import { useHistory, useLocation } from "react-router-dom"; import queryString from "query-string"; +import React from "react"; +import { useHistory, useLocation } from "react-router-dom"; +import { QUERY_INVOICES_BY_JOBID } from "../../graphql/invoices.queries"; +import JobsDetailPliComponent from "./jobs-detail-pli.component"; export default function JobsDetailPliContainer({ job }) { const invoicesQuery = useQuery(QUERY_INVOICES_BY_JOBID, { diff --git a/client/src/components/owner-tag-popover/owner-tag-popover.component.jsx b/client/src/components/owner-tag-popover/owner-tag-popover.component.jsx index ff3137a9b..f6784744f 100644 --- a/client/src/components/owner-tag-popover/owner-tag-popover.component.jsx +++ b/client/src/components/owner-tag-popover/owner-tag-popover.component.jsx @@ -13,19 +13,16 @@ export default function OwnerTagPopoverComponent({ job }) { title={t("owners.labels.fromclaim")} size='small' column={1}> - {`${job.ownr_fn || - ""} ${job.ownr_ln || ""} ${job.ownr_co_nm || - ""}`} + {`${ + job.ownr_fn || "" + } ${job.ownr_ln || ""} ${job.ownr_co_nm || ""}`} {job.ownr_ph1 || ""} - {`${job.ownr_addr1 || ""} ${job.ownr_addr2 || - ""} ${job.ownr_city || ""} ${job.ownr_st || - ""} ${job.ownr_zip || ""} ${job.ownr_ctry || - ""} ${job.ownr_city || ""}`} + {`${job.ownr_addr1 || ""} ${job.ownr_addr2 || ""} ${ + job.ownr_city || "" + } ${job.ownr_st || ""} ${job.ownr_zip || ""}`} {job.ownr_ea || ""} @@ -40,17 +37,20 @@ export default function OwnerTagPopoverComponent({ job }) { title={t("owners.labels.fromowner")} size='small' column={1}> - {`${job - .owner.ownr_fn || ""} ${job.owner.ownr_ln || ""} ${job.owner - .ownr_co_nm || ""}`} + {`${ + job.owner.ownr_fn || "" + } ${job.owner.ownr_ln || ""} ${ + job.owner.ownr_co_nm || "" + }`} {job.owner.ownr_ph1 || ""} - {`${job.owner.ownr_addr1 || ""} ${job.owner.ownr_addr2 || - ""} ${job.owner.ownr_city || ""} ${job.owner.ownr_st || - ""} ${job.owner.ownr_zip || ""} ${job.owner.ownr_ctry || - ""} ${job.owner.ownr_city || ""}`} + {`${job.owner.ownr_addr1 || ""} ${job.owner.ownr_addr2 || ""} ${ + job.owner.ownr_city || "" + } ${job.owner.ownr_st || ""} ${job.owner.ownr_zip || ""} ${ + job.owner.ownr_ctry || "" + } `} {job.owner.ownr_ea || ""} diff --git a/client/src/components/vehicle-tag-popover/vehicle-tag-popover.component.jsx b/client/src/components/vehicle-tag-popover/vehicle-tag-popover.component.jsx index a16482022..7fe210bfd 100644 --- a/client/src/components/vehicle-tag-popover/vehicle-tag-popover.component.jsx +++ b/client/src/components/vehicle-tag-popover/vehicle-tag-popover.component.jsx @@ -11,22 +11,21 @@ export default function VehicleTagPopoverComponent({ job }) { - + size='small' + column={1}> + {`${job.v_model_yr || t("general.labels.na")} ${job.v_make_desc || t("general.labels.na")} ${job.v_model_desc || t("general.labels.na")}`} - + {`${job.plate_no || t("general.labels.na")}`} - + {`${job.plate_st || t("general.labels.na")}`} - + {`${job.v_vin || t("general.labels.na")}`} @@ -34,22 +33,21 @@ export default function VehicleTagPopoverComponent({ job }) { - + size='small' + column={1}> + {`${job.vehicle.v_model_yr || t("general.labels.na")} ${job.vehicle.v_make_desc || t("general.labels.na")} ${job.vehicle.v_model_desc || t("general.labels.na")}`} - + {`${job.vehicle.plate_no || t("general.labels.na")}`} - + {`${job.vehicle.plate_st || t("general.labels.na")}`} - + {`${job.vehicle.v_vin || t("general.labels.na")}`} @@ -62,23 +60,21 @@ export default function VehicleTagPopoverComponent({ job }) { ); return ( - - + + {job.vehicleid ? ( - {`${job.v_model_yr || t("general.labels.na")} - ${job.v_make_desc || t("general.labels.na")} - ${job.v_model_desc || t("general.labels.na")} | - ${job.plate_no || t("general.labels.na")} | - ${job.v_vin || t("general.labels.na")}`} + {`${job.v_model_yr || ""} + ${job.v_make_desc || ""} + ${job.v_model_desc || ""} | + ${job.plate_no || ""}`} ) : ( - {`${job.v_model_yr || t("general.labels.na")} - ${job.v_make_desc || t("general.labels.na")} - ${job.v_model_desc || t("general.labels.na")} | - ${job.plate_no || t("general.labels.na")} | - ${job.v_vin || t("general.labels.na")}`} + {`${job.v_model_yr || ""} + ${job.v_make_desc || ""} + ${job.v_model_desc || ""} | + ${job.plate_no || ""}`} )} diff --git a/client/src/graphql/jobs.queries.js b/client/src/graphql/jobs.queries.js index d3a24ff53..d07ad8e1b 100644 --- a/client/src/graphql/jobs.queries.js +++ b/client/src/graphql/jobs.queries.js @@ -249,7 +249,6 @@ export const GET_JOB_BY_PK = gql` date_exported status owner_owing - joblines { id unq_seq @@ -277,11 +276,6 @@ export const GET_JOB_BY_PK = gql` scheduledreturn agreementnumber } - appointments_aggregate { - aggregate { - count - } - } cieca_ttl } } diff --git a/client/src/translations/en_us/common.json b/client/src/translations/en_us/common.json index 940ea6216..7b147c8fa 100644 --- a/client/src/translations/en_us/common.json +++ b/client/src/translations/en_us/common.json @@ -573,7 +573,7 @@ "est_ct_fn": "Appraiser First Name", "est_ct_ln": "Appraiser Last Name", "est_ea": "Appraiser Email", - "est_number": "Estimate Number", + "est_number": "Estimate #", "est_ph1": "Appraiser Phone #", "federal_tax_payable": "Federal Tax Payable", "ins_addr1": "Insurance Co. Address",