Added read only invocies. Removed added reducer coe that was needed BOD-408

This commit is contained in:
Patrick Fic
2020-09-28 15:23:28 -07:00
parent cb412f377e
commit 6b6d052e74
17 changed files with 144 additions and 62 deletions

View File

@@ -5,7 +5,10 @@ import queryString from "query-string";
import React, { useEffect, useState } from "react";
import { useTranslation } from "react-i18next";
import { useLocation } from "react-router-dom";
import { UPDATE_BILL_LINE } from "../../graphql/bill-lines.queries";
import {
INSERT_NEW_BILL_LINES,
UPDATE_BILL_LINE,
} from "../../graphql/bill-lines.queries";
import { QUERY_BILL_BY_PK, UPDATE_BILL } from "../../graphql/bills.queries";
import AlertComponent from "../alert/alert.component";
import BillFormContainer from "../bill-form/bill-form.container";
@@ -18,6 +21,7 @@ export default function BillDetailEditcontainer() {
const [form] = Form.useForm();
const [updateLoading, setUpdateLoading] = useState(false);
const [update_bill] = useMutation(UPDATE_BILL);
const [insertBillLine] = useMutation(INSERT_NEW_BILL_LINES);
const [updateBillLine] = useMutation(UPDATE_BILL_LINE);
const { loading, error, data, refetch } = useQuery(QUERY_BILL_BY_PK, {
@@ -37,17 +41,35 @@ export default function BillDetailEditcontainer() {
billlines.forEach((il) => {
delete il.__typename;
updates.push(
updateBillLine({
variables: {
billLineId: il.id,
billLine: {
...il,
joblineid: il.joblineid === "noline" ? null : il.joblineid,
if (il.id) {
updates.push(
updateBillLine({
variables: {
billLineId: il.id,
billLine: {
...il,
joblineid: il.joblineid === "noline" ? null : il.joblineid,
},
},
},
})
);
})
);
} else {
//It's a new line, have to insert it.
updates.push(
insertBillLine({
variables: {
billLines: [
{
...il,
billid: search.billid,
joblineid: il.joblineid === "noline" ? null : il.joblineid,
},
],
},
})
);
}
});
await Promise.all(updates);
@@ -62,6 +84,9 @@ export default function BillDetailEditcontainer() {
if (error) return <AlertComponent message={error.message} type="error" />;
if (!!!search.billid) return <div>{t("bills.labels.noneselected")}</div>;
const exported = data && data.bills_by_pk && data.bills_by_pk.exported;
return (
<LoadingSkeleton loading={loading}>
<Form
@@ -94,10 +119,15 @@ export default function BillDetailEditcontainer() {
: {}
}
>
<Button htmlType="submit" loading={updateLoading} type="primary">
<Button
htmlType="submit"
disabled={exported}
loading={updateLoading}
type="primary"
>
{t("general.actions.save")}
</Button>
<BillFormContainer form={form} billEdit />
<BillFormContainer form={form} billEdit disabled={exported} />
<JobDocumentsGallery
jobId={data ? data.bills_by_pk.jobid : null}
billId={search.billid}