import Icon, { BarsOutlined, CalendarFilled, DollarCircleOutlined, FileImageFilled, ToolFilled, } from "@ant-design/icons"; import { Form, notification, Tabs } from "antd"; import moment from "moment"; import queryString from "query-string"; import React, { lazy, Suspense } from "react"; import { useTranslation } from "react-i18next"; import { FaHardHat, FaHistory, FaInfo, FaRegStickyNote, FaShieldAlt, } from "react-icons/fa"; import { connect } from "react-redux"; import { useHistory, useLocation } from "react-router-dom"; import { createStructuredSelector } from "reselect"; import { CalculateJob } from "../../components/job-totals-table/job-totals.utility"; import LoadingSpinner from "../../components/loading-spinner/loading-spinner.component"; import { selectBodyshop } from "../../redux/user/user.selectors"; const JobsLinesContainer = lazy(() => import("../../components/job-detail-lines/job-lines.container") ); const JobsDetailClaims = lazy(() => import("../../components/jobs-detail-claims/jobs-detail-claims.component") ); const JobsDetailDatesComponent = lazy(() => import("../../components/jobs-detail-dates/jobs-detail-dates.component") ); const JobsDetailFinancials = lazy(() => import( "../../components/jobs-detail-financial/jobs-detail-financial.component" ) ); const JobsDetailHeader = lazy(() => import("../../components/jobs-detail-header/jobs-detail-header.component") ); const JobsDetailInsurance = lazy(() => import( "../../components/jobs-detail-insurance/jobs-detail-insurance.component" ) ); const JobsDocumentsGalleryContainer = lazy(() => import( "../../components/jobs-documents-gallery/jobs-documents-gallery.container" ) ); const JobNotesContainer = lazy(() => import("../../components/jobs-notes/jobs-notes.container") ); const ScheduleJobModalContainer = lazy(() => import("../../components/schedule-job-modal/schedule-job-modal.container") ); const JobLineUpsertModalContainer = lazy(() => import( "../../components/job-lines-upsert-modal/job-lines-upsert-modal.container" ) ); const JobsDetailPliContainer = lazy(() => import("../../components/jobs-detail-pli/jobs-detail-pli.container") ); const JobsDetailAuditContainer = lazy(() => import("../../components/audit-trail-list/audit-trail-list.container") ); const JobsDetailLaborContainer = lazy(() => import("../../components/jobs-detail-labor/jobs-detail-labor.container") ); const JobReconciliationModal = lazy(() => import( "../../components/job-reconciliation-modal/job-reconciliation.modal.container" ) ); const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop, }); export function JobsDetailPage({ job, mutationUpdateJob, mutationConvertJob, handleSubmit, refetch, updateJobStatus, bodyshop, }) { const { t } = useTranslation(); const [form] = Form.useForm(); const history = useHistory(); const search = queryString.parse(useLocation().search); const formItemLayout = { labelCol: { xs: { span: 12 }, sm: { span: 5 }, }, wrapperCol: { xs: { span: 24 }, sm: { span: 12 }, }, }; const handleFinish = (values) => { const newTotals = CalculateJob({ ...job, ...values }, bodyshop.shoprates); mutationUpdateJob({ variables: { jobId: job.id, job: { ...values, clm_total: newTotals.totals.total_repairs.toFormat("0.00"), owner_owing: newTotals.custPayable.total.toFormat("0.00"), job_totals: JSON.stringify(newTotals), }, }, }).then((r) => { notification["success"]({ message: t("jobs.successes.savetitle"), }); refetch().then((r) => form.resetFields()); }); }; return ( }>
console.log("a,b", a, b)} name='JobDetailForm' onFinish={handleFinish} {...formItemLayout} autoComplete={"off"} initialValues={{ ...job, loss_date: job.loss_date ? moment(job.loss_date) : null, }}> history.push({ search: `?tab=${key}` })}> {t("menus.jobsdetail.claimdetail")} } key='claimdetail'> {t("menus.jobsdetail.insurance")} } key='insurance'> {t("menus.jobsdetail.repairdata")} } key='repairdata'> {t("menus.jobsdetail.financials")} } key='financials'> {t("menus.jobsdetail.partssublet")} } key='partssublet'> {t("menus.jobsdetail.labor")} } key='labor'> {t("menus.jobsdetail.dates")} } key='dates'> } {t("jobs.labels.documents")} } key='documents'> {t("jobs.labels.notes")} } key='notes'> {t("jobs.labels.audit")} } key='audit'>
); } export default connect(mapStateToProps, null)(JobsDetailPage);