Compare commits
1 Commits
feature/IO
...
feature/IO
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
706c70c509 |
@@ -4,7 +4,7 @@ import {
|
||||
PauseCircleOutlined,
|
||||
WarningFilled,
|
||||
} from "@ant-design/icons";
|
||||
import { Card, Col, Row, Space, Tag, Tooltip } from "antd";
|
||||
import { Card, Col, Divider, Row, Space, Tag, Tooltip } from "antd";
|
||||
import React, { useState } from "react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { connect } from "react-redux";
|
||||
@@ -62,6 +62,13 @@ export function JobsDetailHeader({ job, bodyshop, disabled }) {
|
||||
${job.v_make_desc || ""}
|
||||
${job.v_model_desc || ""}`.trim();
|
||||
|
||||
const bodyHrs = job.joblines
|
||||
.filter((j) => j.mod_lbr_ty !== "LAR")
|
||||
.reduce((acc, val) => acc + val.mod_lb_hrs, 0);
|
||||
const refinishHrs = job.joblines
|
||||
.filter((line) => line.mod_lbr_ty === "LAR")
|
||||
.reduce((acc, val) => acc + val.mod_lb_hrs, 0);
|
||||
|
||||
const ownerTitle = OwnerNameDisplayFunction(job).trim();
|
||||
|
||||
return (
|
||||
@@ -299,6 +306,11 @@ export function JobsDetailHeader({ job, bodyshop, disabled }) {
|
||||
>
|
||||
<div>
|
||||
<JobEmployeeAssignments job={job} />
|
||||
<Divider style={{ margin: ".5rem" }} />
|
||||
<DataLabel label={t("jobs.labels.labor_hrs")}>
|
||||
{bodyHrs.toFixed(1)} / {refinishHrs.toFixed(1)} /{" "}
|
||||
{(bodyHrs + refinishHrs).toFixed(1)}
|
||||
</DataLabel>
|
||||
</div>
|
||||
</Card>
|
||||
</Col>
|
||||
|
||||
@@ -1823,6 +1823,7 @@
|
||||
"job": "Job Details",
|
||||
"jobcosting": "Job Costing",
|
||||
"jobtotals": "Job Totals",
|
||||
"labor_hrs": "B/P/T Hrs",
|
||||
"labor_rates_subtotal": "Labor Rates Subtotal",
|
||||
"laborallocations": "Labor Allocations",
|
||||
"labortotals": "Labor Totals",
|
||||
@@ -2417,7 +2418,6 @@
|
||||
"invoice_total_payable": "Invoice (Total Payable)",
|
||||
"iou_form": "IOU Form",
|
||||
"job_costing_ro": "Job Costing",
|
||||
"job_lifecycle_ro": "Job Lifecycle",
|
||||
"job_notes": "Job Notes",
|
||||
"key_tag": "Key Tag",
|
||||
"labels": {
|
||||
@@ -2676,8 +2676,6 @@
|
||||
"job_costing_ro_date_summary": "Job Costing by RO - Summary",
|
||||
"job_costing_ro_estimator": "Job Costing by Estimator",
|
||||
"job_costing_ro_ins_co": "Job Costing by RO Source",
|
||||
"job_lifecycle_date_detail": "Job Lifecycle by Date - Detail",
|
||||
"job_lifecycle_date_summary": "Job Lifecycle by Date - Summary",
|
||||
"jobs_completed_not_invoiced": "Jobs Completed not Invoiced",
|
||||
"jobs_invoiced_not_exported": "Jobs Invoiced not Exported",
|
||||
"jobs_reconcile": "Parts/Sublet/Labor Reconciliation",
|
||||
|
||||
@@ -1823,6 +1823,7 @@
|
||||
"job": "",
|
||||
"jobcosting": "",
|
||||
"jobtotals": "",
|
||||
"labor_hrs": "",
|
||||
"labor_rates_subtotal": "",
|
||||
"laborallocations": "",
|
||||
"labortotals": "",
|
||||
@@ -2417,7 +2418,6 @@
|
||||
"invoice_total_payable": "",
|
||||
"iou_form": "",
|
||||
"job_costing_ro": "",
|
||||
"job_lifecycle_ro": "",
|
||||
"job_notes": "",
|
||||
"key_tag": "",
|
||||
"labels": {
|
||||
@@ -2676,8 +2676,6 @@
|
||||
"job_costing_ro_date_summary": "",
|
||||
"job_costing_ro_estimator": "",
|
||||
"job_costing_ro_ins_co": "",
|
||||
"job_lifecycle_date_detail": "",
|
||||
"job_lifecycle_date_summary": "",
|
||||
"jobs_completed_not_invoiced": "",
|
||||
"jobs_invoiced_not_exported": "",
|
||||
"jobs_reconcile": "",
|
||||
|
||||
@@ -1823,6 +1823,7 @@
|
||||
"job": "",
|
||||
"jobcosting": "",
|
||||
"jobtotals": "",
|
||||
"labor_hrs": "",
|
||||
"labor_rates_subtotal": "",
|
||||
"laborallocations": "",
|
||||
"labortotals": "",
|
||||
@@ -2417,7 +2418,6 @@
|
||||
"invoice_total_payable": "",
|
||||
"iou_form": "",
|
||||
"job_costing_ro": "",
|
||||
"job_lifecycle_ro": "",
|
||||
"job_notes": "",
|
||||
"key_tag": "",
|
||||
"labels": {
|
||||
@@ -2676,8 +2676,6 @@
|
||||
"job_costing_ro_date_summary": "",
|
||||
"job_costing_ro_estimator": "",
|
||||
"job_costing_ro_ins_co": "",
|
||||
"job_lifecycle_date_detail": "",
|
||||
"job_lifecycle_date_summary": "",
|
||||
"jobs_completed_not_invoiced": "",
|
||||
"jobs_invoiced_not_exported": "",
|
||||
"jobs_reconcile": "",
|
||||
|
||||
@@ -514,14 +514,6 @@ export const TemplateList = (type, context) => {
|
||||
group: "financial",
|
||||
dms: true,
|
||||
},
|
||||
job_lifecycle_ro: {
|
||||
title: i18n.t("printcenter.jobs.job_lifecycle_ro"),
|
||||
description: "",
|
||||
subject: i18n.t("printcenter.jobs.job_lifecycle_ro"),
|
||||
key: "job_lifecycle_ro",
|
||||
disabled: false,
|
||||
group: "post",
|
||||
},
|
||||
}
|
||||
: {}),
|
||||
...(!type || type === "job_special"
|
||||
@@ -2056,30 +2048,6 @@ export const TemplateList = (type, context) => {
|
||||
datedisable: true,
|
||||
group: "customers",
|
||||
},
|
||||
job_lifecycle_date_detail: {
|
||||
title: i18n.t("reportcenter.templates.job_lifecycle_date_detail"),
|
||||
subject: i18n.t("reportcenter.templates.job_lifecycle_date_detail"),
|
||||
key: "job_lifecycle_date_detail",
|
||||
//idtype: "vendor",
|
||||
disabled: false,
|
||||
rangeFilter: {
|
||||
object: i18n.t("reportcenter.labels.objects.jobs"),
|
||||
field: i18n.t("jobs.fields.date_invoiced"),
|
||||
},
|
||||
group: "jobs",
|
||||
},
|
||||
job_lifecycle_date_summary: {
|
||||
title: i18n.t("reportcenter.templates.job_lifecycle_date_summary"),
|
||||
subject: i18n.t("reportcenter.templates.job_lifecycle_date_summary"),
|
||||
key: "job_lifecycle_date_summary",
|
||||
//idtype: "vendor",
|
||||
disabled: false,
|
||||
rangeFilter: {
|
||||
object: i18n.t("reportcenter.labels.objects.jobs"),
|
||||
field: i18n.t("jobs.fields.date_invoiced"),
|
||||
},
|
||||
group: "jobs",
|
||||
},
|
||||
}
|
||||
: {}),
|
||||
...(!type || type === "courtesycarcontract"
|
||||
|
||||
Reference in New Issue
Block a user