Invoice enter modal now saves invoices.

This commit is contained in:
Patrick Fic
2020-03-03 10:24:00 -08:00
parent c8ba3295bf
commit cb0b5c552c
7 changed files with 103 additions and 58 deletions

View File

@@ -1,18 +1,21 @@
import { useQuery } from "@apollo/react-hooks";
import {
PrinterFilled,
FileImageFilled,
EditFilled,
FileImageFilled,
PrinterFilled,
ShoppingFilled
} from "@ant-design/icons";
import { useQuery } from "@apollo/react-hooks";
import { Button, PageHeader, Tag } from "antd";
import React, { useState } from "react";
import { useTranslation } from "react-i18next";
import { connect } from "react-redux";
import { Link } from "react-router-dom";
import { QUERY_JOB_CARD_DETAILS } from "../../graphql/jobs.queries";
import { setModalContext } from "../../redux/modals/modals.actions";
import AlertComponent from "../alert/alert.component";
import LoadingSpinner from "../loading-spinner/loading-spinner.component";
import NoteUpsertModal from "../note-upsert-modal/note-upsert-modal.container";
import ScheduleJobModalContainer from "../schedule-job-modal/schedule-job-modal.container";
//import JobDetailCardsHeaderComponent from "./job-detail-cards.header.component";
import JobDetailCardsCustomerComponent from "./job-detail-cards.customer.component";
import JobDetailCardsDamageComponent from "./job-detail-cards.damage.component";
@@ -23,9 +26,13 @@ import JobDetailCardsNotesComponent from "./job-detail-cards.notes.component";
import JobDetailCardsPartsComponent from "./job-detail-cards.parts.component";
import "./job-detail-cards.styles.scss";
import JobDetailCardsTotalsComponent from "./job-detail-cards.totals.component";
import ScheduleJobModalContainer from "../schedule-job-modal/schedule-job-modal.container";
export default function JobDetailCards({ selectedJob }) {
const mapDispatchToProps = dispatch => ({
setInvoiceEnterContext: context =>
dispatch(setModalContext({ context: context, modal: "invoiceEnter" }))
});
function JobDetailCards({ selectedJob, setInvoiceEnterContext }) {
const { loading, error, data, refetch } = useQuery(QUERY_JOB_CARD_DETAILS, {
fetchPolicy: "network-only",
variables: { id: selectedJob },
@@ -110,7 +117,17 @@ export default function JobDetailCards({ selectedJob }) {
<EditFilled />
{t("jobs.actions.addNote")}
</Button>,
<Button key="postinvoices">
<Button
key="postinvoices"
onClick={() => {
setInvoiceEnterContext({
actions: { refetch: null },
context: {
job: data.jobs_by_pk
}
});
}}
>
<ShoppingFilled />
{t("jobs.actions.postInvoices")}
</Button>
@@ -181,3 +198,4 @@ export default function JobDetailCards({ selectedJob }) {
</div>
);
}
export default connect(null, mapDispatchToProps)(JobDetailCards);