[] = [
{
id: 'select',
@@ -202,7 +246,8 @@ const ExpensesTable = () => {
),
cell: ({ row }) => {
const isCheckboxDisabled =
- !row.getCanSelect() || row.original.approval.action === 'REJECTED';
+ !row.getCanSelect() ||
+ row.original.latest_approval.action === 'REJECTED';
return (
@@ -218,61 +263,52 @@ const ExpensesTable = () => {
},
},
{
- accessorKey: 'transaction_date',
+ accessorKey: 'expense_date',
header: 'Tanggal Pengajuan',
+ cell: (props) =>
+ props.row.original.expense_date
+ ? formatDate(props.row.original.expense_date, 'DD MMM YYYY')
+ : '-',
},
{
accessorKey: 'realization_date',
header: 'Tanggal Realisasi',
- cell: (props) => props.getValue() ?? '-',
+ cell: (props) =>
+ props.row.original.realization_date
+ ? formatDate(props.row.original.realization_date, 'DD MMM YYYY')
+ : '-',
},
{
accessorKey: 'location',
header: 'Lokasi',
- cell: (props) => props.row.original.location.name ?? '-',
+ cell: (props) => props.row.original.location?.name ?? '-',
},
{
accessorFn: (row) => row.created_user.name ?? '-',
header: 'Nama Pengaju',
},
{
- accessorFn: (row) => row.vendor.name ?? '-',
+ accessorFn: (row) => row.supplier.name ?? '-',
header: 'Vendor',
},
{
- accessorKey: 'nominal',
+ accessorKey: 'grand_total',
header: 'Nominal',
cell: (props) =>
- props.row.original.nominal
- ? `Rp${formatCurrency(props.row.original.nominal)}`
- : '-',
- },
- {
- accessorKey: 'paid',
- header: 'Sudah Bayar',
- cell: (props) =>
- props.row.original.paid
- ? `Rp${formatCurrency(props.row.original.paid)}`
- : '-',
- },
- {
- accessorKey: 'remaining_cost',
- header: 'Sisa Bayar',
- cell: (props) =>
- props.row.original.remaining_cost
- ? `Rp${formatCurrency(props.row.original.remaining_cost)}`
+ props.row.original.grand_total
+ ? formatCurrency(props.row.original.grand_total)
: '-',
},
{
header: 'Status Pencairan',
cell: (props) => (
-
+
),
},
{
header: 'Status BOP',
cell: (props) => (
-
+
),
},
{
@@ -283,7 +319,7 @@ const ExpensesTable = () => {
const currentRowRelativeIndex =
currentPageRows.findIndex((r) => r.id === props.row.id) + 1;
- const isLast2Rows = currentRowRelativeIndex > currentPageSize - 2;
+ const isLast2Rows = currentRowRelativeIndex > currentPageSize - 3;
const approveClickHandler = () => {
setSelectedExpense(props.row.original);
@@ -314,7 +350,7 @@ const ExpensesTable = () => {
return (
<>
- {currentPageSize > 2 && (
+ {currentPageSize > 3 && (
{
)}
- {currentPageSize <= 2 && (
+ {currentPageSize <= 3 && (
{
const tableEnableRowSelectionHandler: (row: Row) => boolean = (
row
) => {
- return row.original.approval.action !== 'REJECTED';
+ return (
+ row.original.latest_approval.action !== 'REJECTED' &&
+ row.original.latest_approval.step_number !== 5
+ );
};
+ // const bulkApproveClickHandler = () => {
+ // approveModal.openModal();
+ // };
+
+ // const bulkRejectClickHandler = () => {
+ // rejectModal.openModal();
+ // };
+
const bulkApproveClickHandler = () => {
approveModal.openModal();
};
@@ -371,17 +418,26 @@ const ExpensesTable = () => {
const confirmationModalApproveClickHandler = async (notes: string) => {
setIsApproveLoading(true);
- const bulkApproveResponse = await ExpenseApi.bulkApprove(
- selectedRowIds,
- notes
- );
+ let bulkApproveResponse: BaseApiResponse | undefined = undefined;
+
+ if (isAllSelectedRowLatestApprovalOnManager) {
+ bulkApproveResponse = await ExpenseApi.bulkApproveManager(
+ selectedRowIds,
+ notes
+ );
+ } else if (isAllSelectedRowLatestApprovalOnFinance) {
+ bulkApproveResponse = await ExpenseApi.bulkApproveFinance(
+ selectedRowIds,
+ notes
+ );
+ }
if (isResponseSuccess(bulkApproveResponse)) {
refreshExpenses();
approveModal.closeModal();
toast.success(
- `Berhasil approve ${selectedRowIds.length} data transfer ke laying!`
+ `Berhasil approve ${selectedRowIds.length} data biaya operasional!`
);
setRowSelection({});
@@ -389,7 +445,7 @@ const ExpensesTable = () => {
approveModal.closeModal();
toast.error(
- `Gagal approve ${selectedRowIds.length} data transfer ke laying!`
+ `Gagal approve ${selectedRowIds.length} data biaya operasional!`
);
}
@@ -399,24 +455,33 @@ const ExpensesTable = () => {
const confirmationModalRejectClickHandler = async (notes: string) => {
setIsRejectLoading(true);
- const bulkRejectResponse = await ExpenseApi.bulkReject(
- selectedRowIds,
- notes
- );
+ let bulkRejectResponse: BaseApiResponse | undefined = undefined;
+
+ if (isAllSelectedRowLatestApprovalOnManager) {
+ bulkRejectResponse = await ExpenseApi.bulkRejectManager(
+ selectedRowIds,
+ notes
+ );
+ } else if (isAllSelectedRowLatestApprovalOnFinance) {
+ bulkRejectResponse = await ExpenseApi.bulkRejectFinance(
+ selectedRowIds,
+ notes
+ );
+ }
if (isResponseSuccess(bulkRejectResponse)) {
refreshExpenses();
rejectModal.closeModal();
toast.success(
- `Berhasil reject ${selectedRowIds.length} data transfer ke laying!`
+ `Berhasil reject ${selectedRowIds.length} data biaya operasional!`
);
setRowSelection({});
} else {
rejectModal.closeModal();
toast.error(
- `Gagal reject ${selectedRowIds.length} data transfer ke laying!`
+ `Gagal reject ${selectedRowIds.length} data biaya operasional!`
);
}
@@ -506,27 +571,36 @@ const ExpensesTable = () => {
{selectedRowIds.length > 0 && (
<>
- {/* TODO: apply RBAC */}
+
+