From b9212d1241f16e517106911e41ac3cf250016d59 Mon Sep 17 00:00:00 2001 From: randy-ar Date: Tue, 13 Jan 2026 12:03:45 +0700 Subject: [PATCH] fix(FE): delete dummy data and separate service api file --- .../report/finance/tab/DebtSupplierTab.tsx | 22 +- src/dummy/report/debt-supplier.dummy.json | 292 ------------------ src/dummy/report/debt-supplier.dummy.ts | 29 -- src/services/api/report/debt-supplier.ts | 39 +++ src/services/api/report/finance-report.ts | 24 -- 5 files changed, 49 insertions(+), 357 deletions(-) delete mode 100644 src/dummy/report/debt-supplier.dummy.json delete mode 100644 src/dummy/report/debt-supplier.dummy.ts create mode 100644 src/services/api/report/debt-supplier.ts diff --git a/src/components/pages/report/finance/tab/DebtSupplierTab.tsx b/src/components/pages/report/finance/tab/DebtSupplierTab.tsx index 1cad0397..5a72ea3c 100644 --- a/src/components/pages/report/finance/tab/DebtSupplierTab.tsx +++ b/src/components/pages/report/finance/tab/DebtSupplierTab.tsx @@ -13,7 +13,6 @@ import Table from '@/components/Table'; import { isResponseSuccess } from '@/lib/api-helper'; import { formatCurrency, formatDate, formatNumber } from '@/lib/helper'; import { SupplierApi } from '@/services/api/master-data'; -import { FinanceApi } from '@/services/api/report/finance-report'; import { DebtRow, DebtSupplier } from '@/types/api/report/debt-supplier'; import { generateDebtSupplierExcel } from '@/components/pages/report/finance/export/DebtSupplierExportXLSX'; import { generateDebtSupplierPDF } from '@/components/pages/report/finance/export/DebtSupllierExportPDF'; @@ -23,6 +22,7 @@ import { useCallback, useMemo, useState } from 'react'; import toast from 'react-hot-toast'; import useSWR from 'swr'; import Pagination from '@/components/Pagination'; +import { DebtSupplierApi } from '@/services/api/report/debt-supplier'; const DebtSupplierTab = () => { // ===== STATE MANAGEMENT ===== @@ -41,7 +41,7 @@ const DebtSupplierTab = () => { const [filterSupplier, setFilterSupplier] = useState([]); const [filterStartDate, setFilterStartDate] = useState(''); const [filterEndDate, setFilterEndDate] = useState(''); - const [filterDataType, setFilterDataType] = useState(); + const [filterDateType, setFilterDateType] = useState(); const [filterErrors, setFilterErrors] = useState>({}); const filterModal = useModal(); @@ -96,7 +96,7 @@ const DebtSupplierTab = () => { filterSupplier.length > 0 ? filterSupplier.map((v) => String(v.value)).join(',') : undefined, - filter_by: filterDataType?.value || 'received_date', + filter_by: filterDateType?.value, start_date: filterStartDate || undefined, end_date: filterEndDate || undefined, page: currentPage, @@ -107,7 +107,7 @@ const DebtSupplierTab = () => { } : null, ([, params]) => - FinanceApi.getDebtSupplierReport( + DebtSupplierApi.getDebtSupplierReport( params.supplier_ids, params.filter_by?.toString(), params.start_date, @@ -116,9 +116,6 @@ const DebtSupplierTab = () => { params.limit ) ); - // const { data: debtSupplier, isLoading } = useSWR(FinanceApi.basePath, () => - // FinanceApi.getDebtSupplierReport() - // ); const data: DebtSupplier[] = useMemo( () => @@ -141,15 +138,15 @@ const DebtSupplierTab = () => { filterSupplier.length > 0 ? filterSupplier.map((v) => String(v.value)).join(',') : undefined, - filter_by: 'received_date' as const, + filter_by: filterDateType?.value?.toString(), start_date: filterStartDate || undefined, end_date: filterEndDate || undefined, - date_type: filterDataType ? filterDataType.value : undefined, + date_type: filterDateType ? filterDateType.value : undefined, limit: 100, page: 1, }; - const response = await FinanceApi.getDebtSupplierReport( + const response = await DebtSupplierApi.getDebtSupplierReport( params.supplier_ids, params.filter_by, params.start_date, @@ -602,11 +599,12 @@ const DebtSupplierTab = () => { label='Filter Berdasarkan' placeholder='Pilih Filter Berdasarkan' options={dataTypeOptions} - value={filterDataType} + value={filterDateType} onChange={(val) => { - setFilterDataType(val ? (val as OptionType) : undefined); + setFilterDateType(val ? (val as OptionType) : undefined); }} className={{ wrapper: 'w-full' }} + isClearable /> diff --git a/src/dummy/report/debt-supplier.dummy.json b/src/dummy/report/debt-supplier.dummy.json deleted file mode 100644 index 27090eb0..00000000 --- a/src/dummy/report/debt-supplier.dummy.json +++ /dev/null @@ -1,292 +0,0 @@ -[ - { - "supplier": { - "id": 1, - "name": "PT CHAROEN POKPHAND INDONESIA Tbk", - "alias": "CPI", - "category": "SAPRONAK" - }, - "initial_balance": -9680000, - "rows": [ - { - "pr_number": "PR-TEST-202501-01", - "po_number": "PO-TEST-202501-01", - "po_date": "2025-01-15", - "received_date": "2025-01-15", - "aging": 0, - "area": { - "id": 1, - "name": "Bandung" - }, - "warehouse": { - "id": 3, - "name": "Gudang Kandang Bandung 1", - "type": "KANDANG", - "area": { - "id": 1, - "name": "Bandung" - } - }, - "due_date": "2025-02-14", - "due_status": "Sudah Jatuh Tempo", - "total_price": 5610000, - "payment_price": 0, - "debt_price": -5610000, - "status": "Belum Lunas", - "travel_number": "-", - "balance": -15290000 - }, - { - "pr_number": "PR-TEST-202501-02", - "po_number": "PO-TEST-202501-02", - "po_date": "2025-01-15", - "received_date": "2025-01-15", - "aging": 0, - "area": { - "id": 1, - "name": "Bandung" - }, - "warehouse": { - "id": 4, - "name": "Gudang Kandang Bandung 2", - "type": "KANDANG", - "area": { - "id": 1, - "name": "Bandung" - } - }, - "due_date": "2025-02-14", - "due_status": "Sudah Jatuh Tempo", - "total_price": 5035000, - "payment_price": 0, - "debt_price": -5035000, - "status": "Belum Lunas", - "travel_number": "-", - "balance": -20325000 - }, - { - "pr_number": "INIT-90001", - "po_number": "SALDO-AWAL", - "po_date": "-", - "received_date": "2026-01-05", - "aging": 0, - "due_date": "-", - "due_status": "-", - "total_price": 0, - "payment_price": -10000000, - "debt_price": -30325000, - "status": "Pembayaran", - "travel_number": "-", - "balance": -30325000 - }, - { - "pr_number": "PR-LTI-9001", - "po_number": "PO-LTI-9001", - "po_date": "2026-01-10", - "received_date": "2026-01-10", - "aging": 2, - "area": { - "id": 1, - "name": "Bandung" - }, - "warehouse": { - "id": 3, - "name": "Gudang Kandang Bandung 1", - "type": "KANDANG", - "area": { - "id": 1, - "name": "Bandung" - } - }, - "due_date": "2026-02-09", - "due_status": "Mendekati Jatuh Tempo", - "total_price": 52500000, - "payment_price": 2000000, - "debt_price": -50500000, - "status": "Belum Lunas", - "travel_number": "SJ-9001", - "balance": -82825000 - }, - { - "pr_number": "PAY-OUT-90001", - "po_number": "PO-LTI-9001", - "po_date": "-", - "received_date": "2026-01-10", - "aging": 0, - "due_date": "-", - "due_status": "-", - "total_price": 0, - "payment_price": 2000000, - "debt_price": -80825000, - "status": "Pembayaran", - "travel_number": "-", - "balance": -80825000 - }, - { - "pr_number": "PR-LTI-0001", - "po_number": "PO-LTI-0001", - "po_date": "2026-01-10", - "received_date": "2026-01-10", - "aging": 2, - "area": { - "id": 1, - "name": "Bandung" - }, - "warehouse": { - "id": 3, - "name": "Gudang Kandang Bandung 1", - "type": "KANDANG", - "area": { - "id": 1, - "name": "Bandung" - } - }, - "due_date": "2026-02-09", - "due_status": "Mendekati Jatuh Tempo", - "total_price": 52500000, - "payment_price": 1800000, - "debt_price": -50700000, - "status": "Belum Lunas", - "travel_number": "3232", - "balance": -133325000 - }, - { - "pr_number": "PAY-OUT-00003", - "po_number": "PO-LTI-0001", - "po_date": "-", - "received_date": "2026-01-10", - "aging": 0, - "due_date": "-", - "due_status": "-", - "total_price": 0, - "payment_price": 2000000, - "debt_price": -131325000, - "status": "Pembayaran", - "travel_number": "-", - "balance": -131325000 - }, - { - "pr_number": "PAY-OUT-90002", - "po_number": "2323", - "po_date": "-", - "received_date": "2026-01-11", - "aging": 0, - "due_date": "-", - "due_status": "-", - "total_price": 0, - "payment_price": 200000, - "debt_price": -131125000, - "status": "Pembayaran", - "travel_number": "-", - "balance": -131125000 - }, - { - "pr_number": "PAY-OUT-00002", - "po_number": "2323", - "po_date": "-", - "received_date": "2026-01-11", - "aging": 0, - "due_date": "-", - "due_status": "-", - "total_price": 0, - "payment_price": 200000, - "debt_price": -130925000, - "status": "Pembayaran", - "travel_number": "-", - "balance": -130925000 - }, - { - "pr_number": "INIT-00001", - "po_number": "PO-LTI-0001", - "po_date": "-", - "received_date": "2026-01-11", - "aging": 0, - "due_date": "-", - "due_status": "-", - "total_price": 0, - "payment_price": -200000, - "debt_price": -131125000, - "status": "Pembayaran", - "travel_number": "-", - "balance": -131125000 - }, - { - "pr_number": "PR-LTI-9002", - "po_number": "PO-LTI-9002", - "po_date": "2026-01-12", - "received_date": "2026-01-12", - "aging": 0, - "area": { - "id": 1, - "name": "Bandung" - }, - "warehouse": { - "id": 3, - "name": "Gudang Kandang Bandung 1", - "type": "KANDANG", - "area": { - "id": 1, - "name": "Bandung" - } - }, - "due_date": "2026-02-11", - "due_status": "Mendekati Jatuh Tempo", - "total_price": 30000000, - "payment_price": 5000000, - "debt_price": -25000000, - "status": "Belum Lunas", - "travel_number": "SJ-9002", - "balance": -161125000 - }, - { - "pr_number": "PAY-OUT-90003", - "po_number": "PO-LTI-9002", - "po_date": "-", - "received_date": "2026-01-12", - "aging": 0, - "due_date": "-", - "due_status": "-", - "total_price": 0, - "payment_price": 5000000, - "debt_price": -156125000, - "status": "Pembayaran", - "travel_number": "-", - "balance": -156125000 - }, - { - "pr_number": "PR-LTI-0002", - "po_number": "PO-LTI-0002", - "po_date": "2026-01-12", - "received_date": "2026-01-12", - "aging": 0, - "area": { - "id": 1, - "name": "Bandung" - }, - "warehouse": { - "id": 4, - "name": "Gudang Kandang Bandung 2", - "type": "KANDANG", - "area": { - "id": 1, - "name": "Bandung" - } - }, - "due_date": "2026-02-11", - "due_status": "Mendekati Jatuh Tempo", - "total_price": 45000000, - "payment_price": 0, - "debt_price": -45000000, - "status": "Belum Lunas", - "travel_number": "232", - "balance": -201125000 - } - ], - "total": { - "aging": 2, - "total_price": 190645000, - "payment_price": 8800000, - "debt_price": -181845000 - } - } -] diff --git a/src/dummy/report/debt-supplier.dummy.ts b/src/dummy/report/debt-supplier.dummy.ts deleted file mode 100644 index dbc9a5c8..00000000 --- a/src/dummy/report/debt-supplier.dummy.ts +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Dummy data for DebtSupplier - * Generated from: debt-supplier.dummy.json - * - * This file is auto-generated. Do not edit manually. - */ - -import { DebtSupplier } from '../../types/api/report/debt-supplier'; -import { BaseApiResponse } from '@/types/api/api-general'; -import dummyData from './debt-supplier.dummy.json'; - -/** - * Get dummy DebtSupplier data - * @returns Promise with BaseApiResponse containing DebtSupplier - */ -export async function getDummyDebtSupplier(): Promise< - BaseApiResponse | undefined -> { - return new Promise((resolve) => { - setTimeout(() => { - resolve({ - code: 200, - status: 'success', - message: 'Data retrieved successfully', - data: dummyData as unknown as DebtSupplier[], - }); - }, 500); - }); -} diff --git a/src/services/api/report/debt-supplier.ts b/src/services/api/report/debt-supplier.ts new file mode 100644 index 00000000..dad46d18 --- /dev/null +++ b/src/services/api/report/debt-supplier.ts @@ -0,0 +1,39 @@ +import { BaseApiService } from '@/services/api/base'; +import { BaseApiResponse } from '@/types/api/api-general'; +import { DebtSupplier } from '@/types/api/report/debt-supplier'; + +export class DebtSupplierApiService extends BaseApiService< + DebtSupplier, + unknown, + unknown +> { + constructor(basePath: string) { + super(basePath); + } + + async getDebtSupplierReport( + supplier_ids?: string, + filter_by?: string, + start_date?: string, + end_date?: string, + page?: number, + limit?: number + ): Promise | undefined> { + return await this.customRequest>( + `debt-supplier`, + { + method: 'GET', + params: { + supplier_ids: supplier_ids, + filter_by: filter_by, + start_date: start_date, + end_date: end_date, + page: page, + limit: limit, + }, + } + ); + } +} + +export const DebtSupplierApi = new DebtSupplierApiService('reports'); diff --git a/src/services/api/report/finance-report.ts b/src/services/api/report/finance-report.ts index db3092fe..e8ec52c8 100644 --- a/src/services/api/report/finance-report.ts +++ b/src/services/api/report/finance-report.ts @@ -37,30 +37,6 @@ export class FinanceApiService extends BaseApiService< } ); } - - async getDebtSupplierReport( - supplier_ids?: string, - filter_by?: string, - start_date?: string, - end_date?: string, - page?: number, - limit?: number - ): Promise | undefined> { - return await this.customRequest>( - `debt-supplier`, - { - method: 'GET', - params: { - supplier_ids: supplier_ids, - filter_by: filter_by, - start_date: start_date, - end_date: end_date, - page: page, - limit: limit, - }, - } - ); - } } // export const FinanceApi = new FinanceApiService('reports');