import { Checkbox, Table, Typography } from "antd"; import React, { useState } from "react"; import { useTranslation } from "react-i18next"; import CurrencyFormatter from "../../utils/CurrencyFormatter"; import { alphaSort } from "../../utils/sorters"; export default function JobReconciliationBillsTable({ billLineState, invoiceLineData, }) { const { t } = useTranslation(); const [state, setState] = useState({ sortedInfo: {}, }); const [selectedLines, setSelectedLines] = billLineState; const columns = [ { title: t("billlines.fields.line_desc"), dataIndex: "line_desc", key: "line_desc", ellipsis: true, width: "10rem", sorter: (a, b) => alphaSort(a.line_desc, b.line_desc), sortOrder: state.sortedInfo.columnKey === "line_desc" && state.sortedInfo.order, }, { title: t("billlines.labels.from"), dataIndex: "from", key: "from", ellipsis: true, render: (text, record) => `${record.bill.vendor && record.bill.vendor.name} / ${ record.bill.invoice_number }`, }, { title: t("billlines.fields.actual_price"), dataIndex: "actual_price", key: "actual_price", sorter: (a, b) => a.actual_price - b.actual_price, width: "7rem", sortOrder: state.sortedInfo.columnKey === "actual_price" && state.sortedInfo.order, render: (text, record) => ( {record.actual_price} ), }, { title: t("billlines.fields.actual_cost"), dataIndex: "actual_cost", key: "actual_cost", sorter: (a, b) => a.actual_cost - b.actual_cost, width: "7rem", sortOrder: state.sortedInfo.columnKey === "actual_cost" && state.sortedInfo.order, render: (text, record) => ( {record.actual_cost} ), }, { title: t("joblines.fields.part_qty"), dataIndex: "quantity", key: "quantity", sorter: (a, b) => a.quantity - b.quantity, width: "4rem", sortOrder: state.sortedInfo.columnKey === "quantity" && state.sortedInfo.order, }, { title: t("bills.fields.is_credit_memo_short"), dataIndex: "is_credit_memo", key: "is_credit_memo", sorter: (a, b) => a.bill.is_credit_memo - b.bill.is_credit_memo, width: "3rem", sortOrder: state.sortedInfo.columnKey === "is_credit_memo" && state.sortedInfo.order, render: (text, record) => ( ), }, ]; const handleTableChange = (pagination, filters, sorter) => { setState({ ...state, filteredInfo: filters, sortedInfo: sorter }); }; const handleOnRowClick = (selectedRecordKeys, selectedRecords) => { setSelectedLines(selectedRecordKeys); }; return (
{t("bills.labels.bills")} { return { disabled: record.deductedfromlbr }; }, }} /> ); }