From 7add41ea5a8e982f3845908bfb5e693f8e5b713a Mon Sep 17 00:00:00 2001 From: rstubryan Date: Mon, 12 Jan 2026 17:45:15 +0700 Subject: [PATCH 1/3] refactor(FE): Map approval 6 to green and export FinanceApi --- src/components/pages/expense/ExpenseStatusBadge.tsx | 4 ++++ src/services/api/report/finance-report.ts | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/components/pages/expense/ExpenseStatusBadge.tsx b/src/components/pages/expense/ExpenseStatusBadge.tsx index a70b6454..a7fcb3e9 100644 --- a/src/components/pages/expense/ExpenseStatusBadge.tsx +++ b/src/components/pages/expense/ExpenseStatusBadge.tsx @@ -39,6 +39,10 @@ const ExpenseStatusBadge = ({ approval }: ExpenseStatusBadgeProps) => { case 5: expenseStatusPillBadgeColor = 'green'; break; + + case 6: + expenseStatusPillBadgeColor = 'green'; + break; } if (isLatestApprovalRejected) { diff --git a/src/services/api/report/finance-report.ts b/src/services/api/report/finance-report.ts index 014b9fec..61480fb1 100644 --- a/src/services/api/report/finance-report.ts +++ b/src/services/api/report/finance-report.ts @@ -64,3 +64,7 @@ export class FinanceApiService extends BaseApiService< } export const FinanceApi = new FinanceApiService('reports'); + +// export const FinanceApi = new FinanceApiService( +// 'http://localhost:4010/api/reports/finance' +// ); From e1c0701629d8d34a2371596612d08514e71e5630 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Mon, 12 Jan 2026 21:39:22 +0700 Subject: [PATCH 2/3] refactor(FE): Adapt customer payment report types and exports --- .../finance/export/CustomerPaymentExportPDF.tsx | 9 ++++----- .../finance/export/CustomerPaymentExportXLSX.tsx | 6 ++++-- .../pages/report/finance/tab/CustomerPaymentTab.tsx | 12 ++++++++---- src/services/api/report/finance-report.ts | 8 ++++---- src/types/api/report/customer-payment.d.ts | 13 ++++--------- 5 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/components/pages/report/finance/export/CustomerPaymentExportPDF.tsx b/src/components/pages/report/finance/export/CustomerPaymentExportPDF.tsx index e224d0f0..88c556de 100644 --- a/src/components/pages/report/finance/export/CustomerPaymentExportPDF.tsx +++ b/src/components/pages/report/finance/export/CustomerPaymentExportPDF.tsx @@ -161,10 +161,7 @@ const createPDFDocument = (params: CustomerPaymentExportPDFParams) => { {customerReport.customer.name} - {customerReport.customer_address || ''} - - - NPWP: {customerReport.customer_npwp || '-'} + {customerReport.customer.address || ''} {customerReport.summary && ( @@ -266,7 +263,9 @@ const createPDFDocument = (params: CustomerPaymentExportPDFParams) => { - {formatNumber(item.aging)} hari + + {item.aging_day ? formatNumber(item.aging_day) : '-'} hari + {item.reference || '-'} diff --git a/src/components/pages/report/finance/export/CustomerPaymentExportXLSX.tsx b/src/components/pages/report/finance/export/CustomerPaymentExportXLSX.tsx index 3cc4d67a..d51aa3b7 100644 --- a/src/components/pages/report/finance/export/CustomerPaymentExportXLSX.tsx +++ b/src/components/pages/report/finance/export/CustomerPaymentExportXLSX.tsx @@ -30,9 +30,11 @@ export const generateCustomerPaymentExcel = ( 'Tanggal Realisasi': item.realization_date ? formatDate(item.realization_date, 'DD MMM YYYY') : '', - Aging: formatNumber(item.aging || 0), + Aging: formatNumber(item.aging_day || 0), Referensi: item.reference || '', - 'Nomor Polisi': item.vehicle_plate || '', + 'Nomor Polisi': Array.isArray(item.vehicle_plate) + ? item.vehicle_plate.join(', ') + : '', 'Ekor/Qty': formatNumber(item.qty || 0), 'Berat (Kg)': formatNumber(item.weight || 0), AVG: formatNumber(item.average_weight || 0), diff --git a/src/components/pages/report/finance/tab/CustomerPaymentTab.tsx b/src/components/pages/report/finance/tab/CustomerPaymentTab.tsx index f57f7335..1d8d1993 100644 --- a/src/components/pages/report/finance/tab/CustomerPaymentTab.tsx +++ b/src/components/pages/report/finance/tab/CustomerPaymentTab.tsx @@ -279,10 +279,14 @@ const CustomerPaymentTab = () => { { id: 'aging', header: 'Aging', - accessorKey: 'aging', + accessorKey: 'aging_day', cell: (props) => { - const value = props.row.original.aging; - return
{formatNumber(value)} hari
; + const value = props.row.original.aging_day; + return ( +
+ {value ? formatNumber(value) : '-'} hari +
+ ); }, }, { @@ -662,7 +666,7 @@ const CustomerPaymentTab = () => { Date: Tue, 13 Jan 2026 08:42:07 +0700 Subject: [PATCH 3/3] feat(FE): Add 5MB file size validation for document uploads --- src/components/pages/expense/ExpenseRealizationContent.tsx | 7 +++++++ src/components/pages/expense/ExpenseRequestContent.tsx | 7 +++++++ .../pages/expense/form/ExpenseRealizationForm.tsx | 7 +++++++ 3 files changed, 21 insertions(+) diff --git a/src/components/pages/expense/ExpenseRealizationContent.tsx b/src/components/pages/expense/ExpenseRealizationContent.tsx index ccd57ec3..ea4a0e8d 100644 --- a/src/components/pages/expense/ExpenseRealizationContent.tsx +++ b/src/components/pages/expense/ExpenseRealizationContent.tsx @@ -48,6 +48,13 @@ const ExpenseRealizationContent = ({ const realizationDocumentsChangeHandler = (val: File[]) => { formik.setFieldTouched('documents', true); + + const invalidFiles = val.filter((file) => file.size > 5 * 1024 * 1024); + if (invalidFiles.length > 0) { + toast.error('Ukuran dokumen maksimal 5 MB!'); + return; + } + formik.setFieldValue('documents', val); }; diff --git a/src/components/pages/expense/ExpenseRequestContent.tsx b/src/components/pages/expense/ExpenseRequestContent.tsx index 82c58341..a1ad4643 100644 --- a/src/components/pages/expense/ExpenseRequestContent.tsx +++ b/src/components/pages/expense/ExpenseRequestContent.tsx @@ -251,6 +251,13 @@ const ExpenseRequestContent = ({ const requestDocumentsChangeHandler = (val: File[]) => { formik.setFieldTouched('documents', true); + + const invalidFiles = val.filter((file) => file.size > 5 * 1024 * 1024); + if (invalidFiles.length > 0) { + toast.error('Ukuran dokumen maksimal 5 MB!'); + return; + } + formik.setFieldValue('documents', val); }; diff --git a/src/components/pages/expense/form/ExpenseRealizationForm.tsx b/src/components/pages/expense/form/ExpenseRealizationForm.tsx index 6526b1c1..e214e56f 100644 --- a/src/components/pages/expense/form/ExpenseRealizationForm.tsx +++ b/src/components/pages/expense/form/ExpenseRealizationForm.tsx @@ -223,6 +223,13 @@ const ExpenseRealizationForm = ({ const realizationDocumentsChangeHandler = (val: File[]) => { formik.setFieldTouched('documents', true); + + const invalidFiles = val.filter((file) => file.size > 5 * 1024 * 1024); + if (invalidFiles.length > 0) { + toast.error('Ukuran dokumen maksimal 5 MB!'); + return; + } + formik.setFieldValue('documents', val); };