BOD-51 Added push vehicle updates to job.

This commit is contained in:
Patrick Fic
2020-03-30 10:37:49 -07:00
parent 50ffa863bc
commit bfb8af0a22
7 changed files with 142 additions and 8 deletions

View File

@@ -1,5 +1,5 @@
import React from "react";
import { Button } from "antd";
import { Button, notification } from "antd";
import { useTranslation } from "react-i18next";
import { useMutation } from "@apollo/react-hooks";
import { UPDATE_JOBS } from "../../graphql/jobs.queries";
@@ -31,9 +31,17 @@ export default function OwnerDetailUpdateJobsComponent({
ownr_zip: owner["ownr_zip"]
}
}
});
})
.then(response => {
notification["success"]({ message: t("jobs.successes.updated") });
})
.catch(error => {
notification["error"]({
message: t("jobs.errors.updating", { error: JSON.stringify(error) })
});
});
};
console.log("disabled", disabled);
return (
<Button disabled={disabled} onClick={handlecClick}>
{t("owners.actions.update")}

View File

@@ -1,10 +1,21 @@
import React from "react";
import React, { useState } from "react";
import { Table } from "antd";
import { useTranslation } from "react-i18next";
import { Link } from "react-router-dom";
import CurrencyFormatter from "../../utils/CurrencyFormatter";
export default function VehicleDetailJobsComponent({ vehicle }) {
import { connect } from "react-redux";
import { createStructuredSelector } from "reselect";
import { selectBodyshop } from "../../redux/user/user.selectors";
import VehicleDetailUpdateJobsComponent from "../vehicle-detail-update-jobs/vehicle-detail-update-jobs.component";
const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop
});
export function VehicleDetailJobsComponent({ vehicle, bodyshop }) {
const { t } = useTranslation();
const [selectedJobs, setSelectedJobs] = useState([]);
const columns = [
{
title: t("jobs.fields.ro_number"),
@@ -50,10 +61,33 @@ export default function VehicleDetailJobsComponent({ vehicle }) {
return (
<Table
title={() => (
<div>
<VehicleDetailUpdateJobsComponent
selectedJobs={selectedJobs}
vehicle={vehicle}
disabled={selectedJobs.length === 0}
/>
</div>
)}
pagination={{ position: "bottom" }}
columns={columns.map(item => ({ ...item }))}
rowKey="id"
dataSource={vehicle.jobs}
rowSelection={{
onSelect: (record, selected, selectedRows) => {
setSelectedJobs(selectedRows ? selectedRows.map(i => i.id) : []);
},
selectedRowKeys: selectedJobs,
getCheckboxProps: record => ({
disabled: bodyshop.md_ro_statuses.open_statuses
? !bodyshop.md_ro_statuses.open_statuses.includes(record.status)
: true
})
}}
/>
);
}
export default connect(mapStateToProps, null)(VehicleDetailJobsComponent);

View File

@@ -0,0 +1,44 @@
import React from "react";
import { Button, notification } from "antd";
import { useTranslation } from "react-i18next";
import { useMutation } from "@apollo/react-hooks";
import { UPDATE_JOBS } from "../../graphql/jobs.queries";
export default function VehicleDetailUpdateJobsComponent({
vehicle,
selectedJobs,
disabled
}) {
const { t } = useTranslation();
const [updateJobs] = useMutation(UPDATE_JOBS);
const handlecClick = e => {
updateJobs({
variables: {
jobIds: selectedJobs,
fields: {
plate_no: vehicle["plate_no"],
plate_st: vehicle["plate_st"],
v_vin: vehicle["v_vin"],
v_model_yr: vehicle["v_model_yr"],
v_model_desc: vehicle["v_model_desc"],
v_make_desc: vehicle["v_make_desc"],
v_color: vehicle["v_color"]
}
}
})
.then(response => {
notification["success"]({ message: t("jobs.successes.updated") });
})
.catch(error => {
notification["error"]({
message: t("jobs.errors.updating", { error: JSON.stringify(error) })
});
});
};
return (
<Button disabled={disabled} onClick={handlecClick}>
{t("owners.actions.update")}
</Button>
);
}