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 + +