diff --git a/src/components/pages/report/finance/tab/CustomerPaymentTab.tsx b/src/components/pages/report/finance/tab/CustomerPaymentTab.tsx
index 55cf08f3..e9c20053 100644
--- a/src/components/pages/report/finance/tab/CustomerPaymentTab.tsx
+++ b/src/components/pages/report/finance/tab/CustomerPaymentTab.tsx
@@ -31,7 +31,6 @@ import {
CustomerPaymentFilterSchema,
CustomerPaymentFilterType,
} from '@/components/pages/report/finance/filter/CustomerPaymentFilter';
-import { generateCustomerPaymentExcel } from '@/components/pages/report/finance/export/CustomerPaymentExportXLSX';
import { generateCustomerPaymentPDF } from '@/components/pages/report/finance/export/CustomerPaymentExportPDF';
import { useTabActionsStore } from '@/stores/tab-actions/tab-actions.store';
import CustomerSupplierSkeleton from '@/components/pages/report/finance/skeleton/CustomerSupplierSkeleton';
@@ -55,7 +54,10 @@ const CustomerPaymentTab = ({ tabId }: CustomerPaymentTabProps) => {
// ===== STATE MANAGEMENT =====
const [isPdfExportLoading, setIsPdfExportLoading] = useState(false);
const [isExcelExportLoading, setIsExcelExportLoading] = useState(false);
- const isAnyExportLoading = isPdfExportLoading || isExcelExportLoading;
+ const [isExcelGeneralExportLoading, setIsExcelGeneralExportLoading] =
+ useState(false);
+ const isAnyExportLoading =
+ isPdfExportLoading || isExcelExportLoading || isExcelGeneralExportLoading;
// ===== PAGINATION STATE =====
const [currentPage, setCurrentPage] = useState(1);
@@ -294,28 +296,39 @@ const CustomerPaymentTab = ({ tabId }: CustomerPaymentTabProps) => {
}, [filterParams]);
// ===== EXPORT HANDLERS =====
+ const handleExportExcelGeneral = useCallback(async () => {
+ setIsExcelGeneralExportLoading(true);
+ try {
+ await FinanceApi.exportCustomerPaymentToExcelGeneral(
+ filterParams.customer_ids,
+ filterParams.filter_by,
+ filterParams.start_date,
+ filterParams.end_date
+ );
+ toast.success('Excel General berhasil dibuat dan diunduh.');
+ } catch {
+ toast.error('Gagal membuat Excel General. Silakan coba lagi.');
+ } finally {
+ setIsExcelGeneralExportLoading(false);
+ }
+ }, [filterParams]);
+
const handleExportExcel = useCallback(async () => {
setIsExcelExportLoading(true);
try {
- const allDataForExport = await customerPaymentExport();
-
- if (
- !allDataForExport ||
- !Array.isArray(allDataForExport) ||
- allDataForExport.length === 0
- ) {
- toast.error('Tidak ada data untuk diekspor.');
- return;
- }
-
- await generateCustomerPaymentExcel({ data: allDataForExport });
+ await FinanceApi.exportCustomerPaymentToExcelCustomerPerSheet(
+ filterParams.customer_ids,
+ filterParams.filter_by,
+ filterParams.start_date,
+ filterParams.end_date
+ );
toast.success('Excel berhasil dibuat dan diunduh.');
} catch {
toast.error('Gagal membuat Excel. Silakan coba lagi.');
} finally {
setIsExcelExportLoading(false);
}
- }, [customerPaymentExport]);
+ }, [filterParams]);
const handleExportPdf = useCallback(async () => {
setIsPdfExportLoading(true);
@@ -422,8 +435,19 @@ const CustomerPaymentTab = ({ tabId }: CustomerPaymentTabProps) => {
className='w-full p-3 justify-start text-sm text-base-content/50 font-semibold text-nowrap'
>
- Export to Excel
+ Export to Excel - Customer Per Sheet
+
+