diff --git a/bodyshop_translations.babel b/bodyshop_translations.babel index 105fb3b01..cbc7e04be 100644 --- a/bodyshop_translations.babel +++ b/bodyshop_translations.babel @@ -18897,6 +18897,27 @@ + + media + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + message false diff --git a/client/src/components/jobs-create-jobs-info/jobs-create-jobs-info.component.jsx b/client/src/components/jobs-create-jobs-info/jobs-create-jobs-info.component.jsx index 533889b96..54708449b 100644 --- a/client/src/components/jobs-create-jobs-info/jobs-create-jobs-info.component.jsx +++ b/client/src/components/jobs-create-jobs-info/jobs-create-jobs-info.component.jsx @@ -1,4 +1,12 @@ -import { Collapse, Form, Input, InputNumber, Select, Switch } from "antd"; +import { + Collapse, + Form, + Input, + InputNumber, + Select, + Space, + Switch, +} from "antd"; import React from "react"; import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; @@ -8,6 +16,8 @@ import FormDatePicker from "../form-date-picker/form-date-picker.component"; import CurrencyInput from "../form-items-formatted/currency-form-item.component"; import FormItemEmail from "../form-items-formatted/email-form-item.component"; import FormItemPhone, { PhoneItemFormatterValidation } from "../form-items-formatted/phone-form-item.component"; +import JobsDetailChangeEstimator from "../jobs-detail-change-estimator/jobs-detail-change-estimator.component"; +import JobsDetailChangeFilehandler from "../jobs-detail-change-filehandler/jobs-detail-change-filehandler.component"; import JobsDetailRatesChangeButton from "../jobs-detail-rates-change-button/jobs-detail-rates-change-button.component"; import JobsDetailRatesParts from "../jobs-detail-rates/jobs-detail-rates.parts.component"; @@ -31,28 +41,34 @@ const mapDispatchToProps = (dispatch) => ({ export function JobsCreateJobsInfo({ bodyshop, form, selected }) { const { t } = useTranslation(); const { getFieldValue } = form; + + const handleInsCoChange = (value) => { + const selectedCompany = bodyshop.md_ins_cos.find((s) => s.name === value); + if (selectedCompany) { + form.setFieldValue("ins_addr1", selectedCompany.street1); + form.setFieldValue("ins_city", selectedCompany.city); + } + }; + return (
- + - + - - - - - - - {bodyshop.md_ins_cos.map((s) => ( {s.name} @@ -66,7 +82,15 @@ export function JobsCreateJobsInfo({ bodyshop, form, selected }) { - + + {t("jobs.fields.ins_ct_ln")} + + + } + name="ins_ct_ln" + > @@ -91,11 +115,24 @@ export function JobsCreateJobsInfo({ bodyshop, form, selected }) { > - + + + + + + - + + {t("jobs.fields.est_ct_fn")} + + + } + name="est_ct_fn" + > diff --git a/client/src/components/jobs-detail-general/jobs-detail-general.component.jsx b/client/src/components/jobs-detail-general/jobs-detail-general.component.jsx index aa53969f3..ac1976e34 100644 --- a/client/src/components/jobs-detail-general/jobs-detail-general.component.jsx +++ b/client/src/components/jobs-detail-general/jobs-detail-general.component.jsx @@ -28,6 +28,15 @@ const lossColDamage = { sm: { span: 24 }, md: { span: 6 }, lg: { span: 4 } }; export function JobsDetailGeneral({ bodyshop, jobRO, job, form }) { const { getFieldValue } = form; const { t } = useTranslation(); + + const handleInsCoChange = (value) => { + const selectedCompany = bodyshop.md_ins_cos.find((s) => s.name === value); + if (selectedCompany) { + form.setFieldValue("ins_addr1", selectedCompany.street1); + form.setFieldValue("ins_city", selectedCompany.city); + } + }; + return (
@@ -58,7 +67,7 @@ export function JobsDetailGeneral({ bodyshop, jobRO, job, form }) { - {bodyshop.md_ins_cos.map((s) => ( {s.name} diff --git a/client/src/components/payment-mark-export-button/payment-mark-export-button-component.jsx b/client/src/components/payment-mark-export-button/payment-mark-export-button-component.jsx index 6b7dce666..59819e03c 100644 --- a/client/src/components/payment-mark-export-button/payment-mark-export-button-component.jsx +++ b/client/src/components/payment-mark-export-button/payment-mark-export-button-component.jsx @@ -1,13 +1,13 @@ -import React from "react"; -import { Button, notification } from "antd"; import { useMutation } from "@apollo/client"; +import { Button, notification } from "antd"; +import React from "react"; import { useTranslation } from "react-i18next"; -import { INSERT_EXPORT_LOG } from "../../graphql/accounting.queries"; -import { setModalContext } from "../../redux/modals/modals.actions"; import { connect } from "react-redux"; -import { UPDATE_PAYMENT } from "../../graphql/payments.queries"; -import { selectCurrentUser } from "../../redux/user/user.selectors"; import { createStructuredSelector } from "reselect"; +import { INSERT_EXPORT_LOG } from "../../graphql/accounting.queries"; +import { UPDATE_PAYMENT } from "../../graphql/payments.queries"; +import { setModalContext } from "../../redux/modals/modals.actions"; +import { selectCurrentUser } from "../../redux/user/user.selectors"; const mapStateToProps = createStructuredSelector({ currentUser: selectCurrentUser @@ -37,7 +37,6 @@ const PaymentMarkForExportButton = ({ bodyshop, payment, refetch, setPaymentCont ] } }); - const paymentUpdateResponse = await updatePayment({ variables: { paymentId: payment.id, @@ -46,16 +45,12 @@ const PaymentMarkForExportButton = ({ bodyshop, payment, refetch, setPaymentCont } } }); - if (!!!paymentUpdateResponse.errors) { notification.open({ type: "success", key: "paymentsuccessmarkforexport", message: t("payments.successes.markexported") }); - - if (refetch) refetch(); - setPaymentContext({ actions: { refetch @@ -65,6 +60,12 @@ const PaymentMarkForExportButton = ({ bodyshop, payment, refetch, setPaymentCont exportedat: today } }); + + if (refetch) + refetch( + paymentUpdateResponse && + paymentUpdateResponse.data.update_payments.returning[0] + ); } else { notification["error"]({ message: t("payments.errors.exporting", { diff --git a/client/src/components/payment-modal/payment-modal.container.jsx b/client/src/components/payment-modal/payment-modal.container.jsx index e398eaf0e..1502f1e48 100644 --- a/client/src/components/payment-modal/payment-modal.container.jsx +++ b/client/src/components/payment-modal/payment-modal.container.jsx @@ -13,8 +13,8 @@ import { selectBodyshop, selectCurrentUser } from "../../redux/user/user.selecto import { GenerateDocument } from "../../utils/RenderTemplate"; import { TemplateList } from "../../utils/TemplateConstants"; import PaymentForm from "../payment-form/payment-form.component"; -import PaymentReexportButton from "../payment-reexport-button/payment-reexport-button.component"; import PaymentMarkForExportButton from "../payment-mark-export-button/payment-mark-export-button-component"; +import PaymentReexportButton from "../payment-reexport-button/payment-reexport-button.component"; const mapStateToProps = createStructuredSelector({ paymentModal: selectPayment, @@ -171,7 +171,6 @@ function PaymentModalContainer({ paymentModal, toggleModalVisible, bodyshop, cur autoComplete={"off"} form={form} layout="vertical" - initialValues={context || {}} disabled={context?.exportedat} > diff --git a/client/src/components/payment-reexport-button/payment-reexport-button.component.jsx b/client/src/components/payment-reexport-button/payment-reexport-button.component.jsx index 2c45785f6..5325231e4 100644 --- a/client/src/components/payment-reexport-button/payment-reexport-button.component.jsx +++ b/client/src/components/payment-reexport-button/payment-reexport-button.component.jsx @@ -1,10 +1,10 @@ -import React from "react"; -import { Button, notification } from "antd"; -import { useTranslation } from "react-i18next"; -import { UPDATE_PAYMENT } from "../../graphql/payments.queries"; import { useMutation } from "@apollo/client"; -import { setModalContext } from "../../redux/modals/modals.actions"; +import { Button, notification } from "antd"; +import React from "react"; +import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; +import { UPDATE_PAYMENT } from "../../graphql/payments.queries"; +import { setModalContext } from "../../redux/modals/modals.actions"; const mapDispatchToProps = (dispatch) => ({ setPaymentContext: (context) => dispatch(setModalContext({ context: context, modal: "payment" })) @@ -23,16 +23,12 @@ const PaymentReexportButton = ({ payment, refetch, setPaymentContext }) => { } } }); - if (!!!paymentUpdateResponse.errors) { notification.open({ type: "success", key: "paymentsuccessexport", message: t("payments.successes.markreexported") }); - - if (refetch) refetch(); - setPaymentContext({ actions: { refetch @@ -42,6 +38,11 @@ const PaymentReexportButton = ({ payment, refetch, setPaymentContext }) => { exportedat: null } }); + if (refetch) + refetch( + paymentUpdateResponse && + paymentUpdateResponse.data.update_payments.returning[0] + ); } else { notification["error"]({ message: t("payments.errors.exporting", { diff --git a/client/src/components/production-board-kanban/production-board-kanban.utils.js b/client/src/components/production-board-kanban/production-board-kanban.utils.js index 55784d81c..74b500143 100644 --- a/client/src/components/production-board-kanban/production-board-kanban.utils.js +++ b/client/src/components/production-board-kanban/production-board-kanban.utils.js @@ -18,8 +18,8 @@ const sortByParentId = (arr) => { //console.log("sortByParentId -> byParentsIdsList", byParentsIdsList); while (byParentsIdsList[parentId]) { - sortedList.push(byParentsIdsList[parentId][0]); - parentId = byParentsIdsList[parentId][0].id; + sortedList.push(...byParentsIdsList[parentId]); //Spread in the whole list in case several items have the same parents. + parentId = byParentsIdsList[parentId][byParentsIdsList[parentId].length -1].id; //Grab the ID from the last one. } if (byParentsIdsList["null"]) byParentsIdsList["null"].map((i) => sortedList.push(i)); diff --git a/client/src/components/shop-info/shop-info.rostatus.component.jsx b/client/src/components/shop-info/shop-info.rostatus.component.jsx index 26bff4c66..b0e664445 100644 --- a/client/src/components/shop-info/shop-info.rostatus.component.jsx +++ b/client/src/components/shop-info/shop-info.rostatus.component.jsx @@ -39,6 +39,14 @@ export function ShopInfoROStatusComponent({ bodyshop, form }) { const [options, setOptions] = useState(form.getFieldValue(["md_ro_statuses", "statuses"]) || []); + const [productionStatus] = useState( + form + .getFieldValue(["md_ro_statuses", "production_statuses"]) + .concat( + form.getFieldValue(["md_ro_statuses", "additional_board_statuses"]) + ) || [] + ); + const handleBlur = () => { setOptions(form.getFieldValue(["md_ro_statuses", "statuses"])); }; @@ -342,7 +350,7 @@ export function ShopInfoROStatusComponent({ bodyshop, form }) { ]} >