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> </translation>
</translations> </translations>
</concept_node> </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> <concept_node>
<name>job</name> <name>job</name>
<definition_loaded>false</definition_loaded> <definition_loaded>false</definition_loaded>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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