Added invoice page titling BOD-63
This commit is contained in:
@@ -12992,6 +12992,27 @@
|
||||
</translation>
|
||||
</translations>
|
||||
</concept_node>
|
||||
<concept_node>
|
||||
<name>invoices-list</name>
|
||||
<definition_loaded>false</definition_loaded>
|
||||
<description></description>
|
||||
<comment></comment>
|
||||
<default_text></default_text>
|
||||
<translations>
|
||||
<translation>
|
||||
<language>en-US</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>es-MX</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>fr-CA</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
</translations>
|
||||
</concept_node>
|
||||
<concept_node>
|
||||
<name>jobs</name>
|
||||
<definition_loaded>false</definition_loaded>
|
||||
@@ -13351,6 +13372,27 @@
|
||||
</translation>
|
||||
</translations>
|
||||
</concept_node>
|
||||
<concept_node>
|
||||
<name>invoices-list</name>
|
||||
<definition_loaded>false</definition_loaded>
|
||||
<description></description>
|
||||
<comment></comment>
|
||||
<default_text></default_text>
|
||||
<translations>
|
||||
<translation>
|
||||
<language>en-US</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>es-MX</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>fr-CA</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
</translations>
|
||||
</concept_node>
|
||||
<concept_node>
|
||||
<name>jobs</name>
|
||||
<definition_loaded>false</definition_loaded>
|
||||
|
||||
@@ -4,18 +4,14 @@ import React, { useEffect, useState } from "react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { connect } from "react-redux";
|
||||
import { createStructuredSelector } from "reselect";
|
||||
import { EmailSettings } from "../../emails/constants";
|
||||
import { INSERT_NEW_INVOICE } from "../../graphql/invoices.queries";
|
||||
import { UPDATE_JOB_LINE_STATUS } from "../../graphql/jobs-lines.queries";
|
||||
import { INSERT_NEW_PARTS_ORDERS } from "../../graphql/parts-orders.queries";
|
||||
import { QUERY_ALL_VENDORS_FOR_ORDER } from "../../graphql/vendors.queries";
|
||||
import { INSERT_NEW_INVOICE } from "../../graphql/invoices.queries";
|
||||
import { setEmailOptions } from "../../redux/email/email.actions";
|
||||
import { toggleModalVisible } from "../../redux/modals/modals.actions";
|
||||
import { selectPartsOrder } from "../../redux/modals/modals.selectors";
|
||||
import {
|
||||
selectBodyshop,
|
||||
selectCurrentUser,
|
||||
} from "../../redux/user/user.selectors";
|
||||
import { selectBodyshop, selectCurrentUser } from "../../redux/user/user.selectors";
|
||||
import AlertComponent from "../alert/alert.component";
|
||||
import LoadingSpinner from "../loading-spinner/loading-spinner.component";
|
||||
import PartsOrderModalComponent from "./parts-order-modal.component";
|
||||
@@ -56,8 +52,6 @@ export function PartsOrderModalContainer({
|
||||
const [insertInvoice] = useMutation(INSERT_NEW_INVOICE);
|
||||
|
||||
const handleFinish = async (values) => {
|
||||
//Check if this was actuall an inhouse invoice
|
||||
|
||||
insertPartOrder({
|
||||
variables: {
|
||||
po: [
|
||||
@@ -109,7 +103,7 @@ export function PartsOrderModalContainer({
|
||||
},
|
||||
};
|
||||
|
||||
const invoiceResult = insertInvoice({
|
||||
insertInvoice({
|
||||
variables: { invoice: invoiceToPost },
|
||||
});
|
||||
}
|
||||
@@ -177,19 +171,17 @@ export function PartsOrderModalContainer({
|
||||
<Modal
|
||||
visible={visible}
|
||||
onCancel={() => toggleModalVisible()}
|
||||
width="90%"
|
||||
width='90%'
|
||||
onOk={() => form.submit()}
|
||||
destroyOnClose
|
||||
forceRender
|
||||
>
|
||||
{error ? <AlertComponent message={error.message} type="error" /> : null}
|
||||
forceRender>
|
||||
{error ? <AlertComponent message={error.message} type='error' /> : null}
|
||||
<LoadingSpinner loading={loading}>
|
||||
<Form
|
||||
form={form}
|
||||
autoComplete="no"
|
||||
autoComplete='no'
|
||||
onFinish={handleFinish}
|
||||
initialValues={{ parts_order_lines: { data: initialValues } }}
|
||||
>
|
||||
initialValues={{ parts_order_lines: { data: initialValues } }}>
|
||||
<PartsOrderModalComponent
|
||||
vendorList={(data && data.vendors) || []}
|
||||
sendTypeState={sendTypeState}
|
||||
|
||||
@@ -1,10 +1,30 @@
|
||||
import { Col, Row } from "antd";
|
||||
import React from "react";
|
||||
import React, { useEffect } from "react";
|
||||
import InvoicesByVendorList from "../../components/invoices-by-vendor-list/invoices-by-vendor-list.component";
|
||||
import VendorsList from "../../components/invoices-vendors-list/invoices-vendors-list.component";
|
||||
import InvoiceDetailEditContainer from "../../components/invoice-detail-edit/invoice-detail-edit.container";
|
||||
import { setBreadcrumbs } from "../../redux/application/application.actions";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { connect } from "react-redux";
|
||||
import { createStructuredSelector } from "reselect";
|
||||
|
||||
const mapStateToProps = createStructuredSelector({
|
||||
//currentUser: selectCurrentUser
|
||||
});
|
||||
const mapDispatchToProps = (dispatch) => ({
|
||||
//setUserLanguage: language => dispatch(setUserLanguage(language))
|
||||
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
|
||||
});
|
||||
|
||||
export function InvoicesPageContainer({ setBreadcrumbs }) {
|
||||
const { t } = useTranslation();
|
||||
useEffect(() => {
|
||||
document.title = t("titles.invoices-list");
|
||||
setBreadcrumbs([
|
||||
{ link: "/manage/invoices", label: t("titles.bc.invoices-list") },
|
||||
]);
|
||||
}, [t, setBreadcrumbs]);
|
||||
|
||||
export default function InvoicesPageContainer() {
|
||||
return (
|
||||
<Row>
|
||||
<Col span={8}>
|
||||
@@ -21,3 +41,7 @@ export default function InvoicesPageContainer() {
|
||||
</Row>
|
||||
);
|
||||
}
|
||||
export default connect(
|
||||
mapStateToProps,
|
||||
mapDispatchToProps
|
||||
)(InvoicesPageContainer);
|
||||
|
||||
@@ -838,6 +838,7 @@
|
||||
"courtesycars": "Courtesy Cars",
|
||||
"courtesycars-detail": "Courtesy Car {{number}}",
|
||||
"courtesycars-new": "New Courtesy Car",
|
||||
"invoices-list": "Invoices",
|
||||
"jobs": "Jobs",
|
||||
"jobs-active": "Active Jobs",
|
||||
"jobs-detail": "Job {{number}}",
|
||||
@@ -856,6 +857,7 @@
|
||||
"courtesycars": "Courtesy Cars | $t(titles.app)",
|
||||
"courtesycars-create": "New Courtesy Car | $t(titles.app)",
|
||||
"courtesycars-detail": "Courtesy Car {{id}} | $t(titles.app)",
|
||||
"invoices-list": "Invoices | $t(titles.app)",
|
||||
"jobs": "Active Jobs | $t(titles.app)",
|
||||
"jobs-create": "Create a New Job | $t(titles.app)",
|
||||
"jobsavailable": "Available Jobs | $t(titles.app)",
|
||||
|
||||
@@ -838,6 +838,7 @@
|
||||
"courtesycars": "",
|
||||
"courtesycars-detail": "",
|
||||
"courtesycars-new": "",
|
||||
"invoices-list": "",
|
||||
"jobs": "",
|
||||
"jobs-active": "",
|
||||
"jobs-detail": "",
|
||||
@@ -856,6 +857,7 @@
|
||||
"courtesycars": "",
|
||||
"courtesycars-create": "",
|
||||
"courtesycars-detail": "",
|
||||
"invoices-list": "",
|
||||
"jobs": "Todos los trabajos | $t(titles.app)",
|
||||
"jobs-create": "",
|
||||
"jobsavailable": "Empleos disponibles | $t(titles.app)",
|
||||
|
||||
@@ -838,6 +838,7 @@
|
||||
"courtesycars": "",
|
||||
"courtesycars-detail": "",
|
||||
"courtesycars-new": "",
|
||||
"invoices-list": "",
|
||||
"jobs": "",
|
||||
"jobs-active": "",
|
||||
"jobs-detail": "",
|
||||
@@ -856,6 +857,7 @@
|
||||
"courtesycars": "",
|
||||
"courtesycars-create": "",
|
||||
"courtesycars-detail": "",
|
||||
"invoices-list": "",
|
||||
"jobs": "Tous les emplois | $t(titles.app)",
|
||||
"jobs-create": "",
|
||||
"jobsavailable": "Emplois disponibles | $t(titles.app)",
|
||||
|
||||
Reference in New Issue
Block a user