import { useMutation } from "@apollo/client"; import { Button, Form, Input, notification, Popover, Select, Space, Switch, } from "antd"; import axios from "axios"; import React, { useState } from "react"; import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; import { CONVERT_JOB_TO_RO } from "../../graphql/jobs.queries"; import { insertAuditTrail } from "../../redux/application/application.actions"; import { selectJobReadOnly } from "../../redux/application/application.selectors"; import { selectBodyshop } from "../../redux/user/user.selectors"; import AuditTrailMapping from "../../utils/AuditTrailMappings"; const mapStateToProps = createStructuredSelector({ //currentUser: selectCurrentUser bodyshop: selectBodyshop, jobRO: selectJobReadOnly, }); const mapDispatchToProps = (dispatch) => ({ insertAuditTrail: ({ jobid, operation }) => dispatch(insertAuditTrail({ jobid, operation })), }); export function JobsConvertButton({ bodyshop, job, refetch, jobRO, insertAuditTrail, parentFormIsFieldsTouched, }) { const [visible, setVisible] = useState(false); const [loading, setLoading] = useState(false); const [mutationConvertJob] = useMutation(CONVERT_JOB_TO_RO); const { t } = useTranslation(); const [form] = Form.useForm(); const handleConvert = async ({ employee_csr, category, ...values }) => { if (parentFormIsFieldsTouched()) { alert(t("jobs.labels.savebeforeconversion")); return; } setLoading(true); const res = await mutationConvertJob({ variables: { jobId: job.id, job: { converted: true, ...(bodyshop.enforce_conversion_csr ? { employee_csr } : {}), ...(bodyshop.enforce_conversion_category ? { category } : {}), ...values, }, }, }); if (values.ca_gst_registrant) { await axios.post("/job/totalsssu", { id: job.id, }); } if (!res.errors) { refetch(); notification["success"]({ message: t("jobs.successes.converted"), }); insertAuditTrail({ jobid: job.id, operation: AuditTrailMapping.jobconverted( res.data.update_jobs.returning[0].ro_number ), }); setVisible(false); } setLoading(false); }; const popMenu = (