Minor bug fixes related to production schedule list.

This commit is contained in:
Patrick Fic
2020-04-27 08:32:31 -07:00
parent 10905b3e6e
commit c9ce58ce3d
8 changed files with 56 additions and 35 deletions

View File

@@ -8719,6 +8719,27 @@
</translation>
</translations>
</concept_node>
<concept_node>
<name>inproduction</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>job</name>
<definition_loaded>false</definition_loaded>

View File

@@ -35,7 +35,7 @@ export function JobsDetailHeaderActions({ job, bodyshop }) {
</Menu.Item>
<Menu.Item
key='addtoproduction'
disabled={!!!job.converted}
disabled={!!!job.converted || !!job.inproduction}
onClick={() => AddToProduction(client, job.id)}>
{t("jobs.actions.addtoproduction")}
</Menu.Item>

View File

@@ -46,7 +46,7 @@ export function JobsDetailHeader({
const tombstoneTitle = (
<div>
<Avatar size="large" alt="Vehicle Image" src={CarImage} />
<Avatar size='large' alt='Vehicle Image' src={CarImage} />
{job.ro_number
? `${t("jobs.fields.ro_number")} ${job.ro_number}`
: `EST-${job.est_number}`}
@@ -57,8 +57,7 @@ export function JobsDetailHeader({
<Menu
onClick={(e) => {
updateJobStatus(e.key);
}}
>
}}>
{bodyshop.md_ro_statuses.statuses.map((item) => (
<Menu.Item key={item}>{item}</Menu.Item>
))}
@@ -66,12 +65,12 @@ export function JobsDetailHeader({
);
const menuExtra = [
<Dropdown overlay={statusmenu} key="changestatus">
<Dropdown overlay={statusmenu} key='changestatus'>
<Button>
{t("jobs.actions.changestatus")} <DownCircleFilled />
</Button>
</Dropdown>,
<Badge key="schedule" count={job.appointments_aggregate.aggregate.count}>
<Badge key='schedule' count={job.appointments_aggregate.aggregate.count}>
<Button
//TODO Enabled logic based on status.
onClick={() => {
@@ -81,14 +80,13 @@ export function JobsDetailHeader({
jobId: job.id,
},
});
}}
>
}}>
{t("jobs.actions.schedule")}
</Button>
</Badge>,
<Button
key="convert"
type="dashed"
key='convert'
type='dashed'
disabled={job.converted}
onClick={() => {
mutationConvertJob({
@@ -100,12 +98,11 @@ export function JobsDetailHeader({
message: t("jobs.successes.converted"),
});
});
}}
>
}}>
{t("jobs.actions.convert")}
</Button>,
<JobsDetailHeaderActions key="actions" job={job} />,
<Button type="primary" key="submit" htmlType="submit">
<JobsDetailHeaderActions key='actions' job={job} />,
<Button type='primary' key='submit' htmlType='submit'>
{t("general.actions.save")}
</Button>,
];
@@ -118,50 +115,48 @@ export function JobsDetailHeader({
title={tombstoneTitle}
//subTitle={tombstoneSubtitle}
tags={
<span key="job-status">
{job.status ? <Tag color="blue">{job.status}</Tag> : null}
<span key='job-status'>
{job.status ? <Tag color='blue'>{job.status}</Tag> : null}
{job.inproduction ? (
<Tag color='#f50'>{t("jobs.labels.inproduction")}</Tag>
) : null}
<OwnerTagPopoverComponent job={job} />
<VehicleTagPopoverComponent job={job} />
<BarcodePopup value={job.id} />
</span>
}
extra={menuExtra}
>
<Descriptions size="small" column={5}>
<Descriptions.Item key="total" label={t("jobs.fields.repairtotal")}>
extra={menuExtra}>
<Descriptions size='small' column={5}>
<Descriptions.Item key='total' label={t("jobs.fields.repairtotal")}>
<CurrencyFormatter>{job.clm_total}</CurrencyFormatter>
</Descriptions.Item>
<Descriptions.Item
key="custowing"
label={t("jobs.fields.customerowing")}
>
key='custowing'
label={t("jobs.fields.customerowing")}>
<CurrencyFormatter>{job.owner_owing}</CurrencyFormatter>
</Descriptions.Item>
<Descriptions.Item
key="scp"
label={t("jobs.fields.specialcoveragepolicy")}
>
key='scp'
label={t("jobs.fields.specialcoveragepolicy")}>
<Checkbox checked={job.special_coverage_policy} />
</Descriptions.Item>
<Descriptions.Item
key="sched_comp"
label={t("jobs.fields.scheduled_completion")}
>
key='sched_comp'
label={t("jobs.fields.scheduled_completion")}>
{job.scheduled_completion ? (
<Moment format="MM/DD/YYYY">{job.scheduled_completion}</Moment>
<Moment format='MM/DD/YYYY'>{job.scheduled_completion}</Moment>
) : null}
</Descriptions.Item>
<Descriptions.Item key="servicecar" label={t("jobs.fields.servicecar")}>
<Descriptions.Item key='servicecar' label={t("jobs.fields.servicecar")}>
{job.cccontracts &&
job.cccontracts.map((item) => (
<Link
key={item.id}
to={`/manage/courtesycars/contracts/${item.id}`}
>
to={`/manage/courtesycars/contracts/${item.id}`}>
<div>{`${item.agreementnumber} - ${item.start} - ${item.scheduledreturn}`}</div>
</Link>
))}

View File

@@ -69,7 +69,7 @@ export default function OwnerTagPopoverComponent({ job }) {
return (
<Popover placement='bottom' content={content}>
<Tag color='red'>
<Tag color='cyan'>
{job.owner
? `${job.ownr_co_nm || ""}${job.ownr_fn || ""} ${job.ownr_ln || ""}`
: t("jobs.errors.noowner")}

View File

@@ -125,6 +125,7 @@ export const GET_JOB_BY_PK = gql`
est_number
ro_number
clm_total
inproduction
vehicleid
plate_no
v_vin
@@ -247,6 +248,7 @@ export const GET_JOB_BY_PK = gql`
date_exported
status
owner_owing
joblines {
id
unq_seq
@@ -350,7 +352,7 @@ export const QUERY_JOB_CARD_DETAILS = gql`
}
documents(limit: 3, order_by: { created_at: desc }) {
id
thumb_url
key
}
}
}

View File

@@ -557,6 +557,7 @@
"existing_jobs": "Existing Jobs",
"hrs_claimed": "Hours Claimed",
"hrs_total": "Hours Total",
"inproduction": "In Production",
"job": "Job Details",
"laborallocations": "Labor Allocations",
"lines": "Estimate Lines",

View File

@@ -557,6 +557,7 @@
"existing_jobs": "Empleos existentes",
"hrs_claimed": "",
"hrs_total": "",
"inproduction": "",
"job": "",
"laborallocations": "",
"lines": "Líneas estimadas",

View File

@@ -557,6 +557,7 @@
"existing_jobs": "Emplois existants",
"hrs_claimed": "",
"hrs_total": "",
"inproduction": "",
"job": "",
"laborallocations": "",
"lines": "Estimer les lignes",