Added parts returning as a part of BOD-19

This commit is contained in:
Patrick Fic
2020-05-14 15:46:48 -07:00
parent cc47fd698a
commit 87146fa08d
34 changed files with 816 additions and 184 deletions

View File

@@ -1,21 +1,29 @@
import { Button, Descriptions, Table, Checkbox } from "antd";
import { SyncOutlined } from "@ant-design/icons";
import { Button, Checkbox, Descriptions, Table } from "antd";
import React, { useState } from "react";
import { useTranslation } from "react-i18next";
import { connect } from "react-redux";
import { Link } from "react-router-dom";
import { setModalContext } from "../../redux/modals/modals.actions";
import CurrencyFormatter from "../../utils/CurrencyFormatter";
import { DateFormatter } from "../../utils/DateFormatter";
import { alphaSort } from "../../utils/sorters";
import { SyncOutlined } from "@ant-design/icons";
export default function InvoicesListTableComponent({
const mapDispatchToProps = (dispatch) => ({
setPartsOrderContext: (context) =>
dispatch(setModalContext({ context: context, modal: "partsOrder" })),
});
export function InvoicesListTableComponent({
job,
loading,
invoices,
selectedInvoice,
handleOnRowClick,
refetch,
setPartsOrderContext,
}) {
const { t } = useTranslation();
const [state, setState] = useState({
sortedInfo: {},
});
@@ -61,15 +69,52 @@ export default function InvoicesListTableComponent({
<CurrencyFormatter>{record.total}</CurrencyFormatter>
),
},
{
title: t("invoices.fields.is_credit_memo"),
dataIndex: "is_credit_memo",
key: "is_credit_memo",
sorter: (a, b) => a.is_credit_memo - b.is_credit_memo,
sortOrder:
state.sortedInfo.columnKey === "is_credit_memo" &&
state.sortedInfo.order,
render: (text, record) => <Checkbox checked={record.is_credit_memo} />,
},
{
title: t("general.labels.actions"),
dataIndex: "actions",
key: "actions",
render: (text, record) => (
<Link
to={`/manage/invoices?invoiceid=${record.id}&vendorid=${record.vendorid}`}>
<Button>{t("invoices.actions.edit")}</Button>
</Link>
<div>
<Link
to={`/manage/invoices?invoiceid=${record.id}&vendorid=${record.vendorid}`}>
<Button>{t("invoices.actions.edit")}</Button>
</Link>
<Button
disabled={record.is_credit_memo}
onClick={() =>
setPartsOrderContext({
actions: {},
context: {
jobId: job.id,
vendorId: record.vendorid,
returnFromInvoice: record.id,
invoiceNumber: record.invoice_number,
linesToOrder: record.invoicelines.map((i) => {
return {
line_desc: i.line_desc,
db_price: i.actual_price,
act_price: i.actual_cost,
quantity: i.quantity,
joblineid: i.joblineid,
};
}),
isReturn: true,
},
})
}>
{t("invoices.actions.return")}
</Button>
</div>
),
},
];
@@ -208,7 +253,7 @@ export default function InvoicesListTableComponent({
)}
expandedRowRender={rowExpander}
pagination={{ position: "top", defaultPageSize: 25 }}
columns={columns.map((item) => ({ ...item }))}
columns={columns}
rowKey='id'
dataSource={invoices}
onChange={handleTableChange}
@@ -239,3 +284,4 @@ export default function InvoicesListTableComponent({
/>
);
}
export default connect(null, mapDispatchToProps)(InvoicesListTableComponent);