IO-791 Bill Edit with Labor Adjustments confirmation
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { useMutation, useQuery } from "@apollo/client";
|
||||
import { Button, Form } from "antd";
|
||||
import { Button, Form, Popconfirm } from "antd";
|
||||
import moment from "moment";
|
||||
import queryString from "query-string";
|
||||
import React, { useEffect, useState } from "react";
|
||||
@@ -19,6 +19,7 @@ export default function BillDetailEditcontainer() {
|
||||
const search = queryString.parse(useLocation().search);
|
||||
const { t } = useTranslation();
|
||||
const [form] = Form.useForm();
|
||||
const [visible, setVisible] = useState(false);
|
||||
const [updateLoading, setUpdateLoading] = useState(false);
|
||||
const [update_bill] = useMutation(UPDATE_BILL);
|
||||
const [insertBillLine] = useMutation(INSERT_NEW_BILL_LINES);
|
||||
@@ -29,6 +30,15 @@ export default function BillDetailEditcontainer() {
|
||||
skip: !!!search.billid,
|
||||
});
|
||||
|
||||
const handleSave = () => {
|
||||
//It's got a previously deducted bill line!
|
||||
if (data.bills_by_pk.billlines.filter((b) => b.deductedfromlbr).length > 0)
|
||||
setVisible(true);
|
||||
else {
|
||||
form.submit();
|
||||
}
|
||||
};
|
||||
|
||||
const handleFinish = async (values) => {
|
||||
setUpdateLoading(true);
|
||||
//let adjustmentsToInsert = {};
|
||||
@@ -42,7 +52,7 @@ export default function BillDetailEditcontainer() {
|
||||
);
|
||||
|
||||
billlines.forEach((billline) => {
|
||||
const { deductfromlabor, ...il } = billline;
|
||||
const { deductedfromlbr, ...il } = billline;
|
||||
delete il.__typename;
|
||||
|
||||
//Need to compare this line to the previous version of the line to see if there is a change in the adjustments.
|
||||
@@ -52,7 +62,7 @@ export default function BillDetailEditcontainer() {
|
||||
|
||||
if (theOldBillLine) {
|
||||
//It was there! Need to change the diff.
|
||||
if (theOldBillLine.deductfromlabor !== deductfromlabor) {
|
||||
if (theOldBillLine.deductedfromlbr !== deductedfromlbr) {
|
||||
//There's a different
|
||||
}
|
||||
}
|
||||
@@ -64,7 +74,7 @@ export default function BillDetailEditcontainer() {
|
||||
billLineId: il.id,
|
||||
billLine: {
|
||||
...il,
|
||||
deductedfromlbr: deductfromlabor,
|
||||
deductedfromlbr: deductedfromlbr,
|
||||
joblineid: il.joblineid === "noline" ? null : il.joblineid,
|
||||
},
|
||||
},
|
||||
@@ -78,7 +88,7 @@ export default function BillDetailEditcontainer() {
|
||||
billLines: [
|
||||
{
|
||||
...il,
|
||||
deductedfromlbr: deductfromlabor,
|
||||
deductedfromlbr: deductedfromlbr,
|
||||
billid: search.billid,
|
||||
joblineid: il.joblineid === "noline" ? null : il.joblineid,
|
||||
},
|
||||
@@ -93,6 +103,7 @@ export default function BillDetailEditcontainer() {
|
||||
await refetch();
|
||||
form.resetFields();
|
||||
form.resetFields();
|
||||
setVisible(false);
|
||||
setUpdateLoading(false);
|
||||
};
|
||||
|
||||
@@ -109,19 +120,28 @@ export default function BillDetailEditcontainer() {
|
||||
|
||||
return (
|
||||
<LoadingSkeleton loading={loading}>
|
||||
<Form
|
||||
form={form}
|
||||
onFinish={handleFinish}
|
||||
initialValues={transformData(data)}
|
||||
<Popconfirm
|
||||
visible={visible}
|
||||
onConfirm={() => form.submit()}
|
||||
onCancel={() => setVisible(false)}
|
||||
okButtonProps={{ loading: updateLoading }}
|
||||
title={t("bills.labels.editadjwarning")}
|
||||
>
|
||||
<Button
|
||||
htmlType="submit"
|
||||
disabled={exported}
|
||||
onClick={handleSave}
|
||||
loading={updateLoading}
|
||||
type="primary"
|
||||
>
|
||||
{t("general.actions.save")}
|
||||
</Button>
|
||||
</Popconfirm>
|
||||
<Form
|
||||
form={form}
|
||||
onFinish={handleFinish}
|
||||
initialValues={transformData(data)}
|
||||
>
|
||||
<BillFormContainer form={form} billEdit disabled={exported} />
|
||||
<JobDocumentsGallery
|
||||
jobId={data ? data.bills_by_pk.jobid : null}
|
||||
|
||||
Reference in New Issue
Block a user