diff --git a/src/apps/wallet-admin/src/home/tabs/payments/PaymentsTab.tsx b/src/apps/wallet-admin/src/home/tabs/payments/PaymentsTab.tsx index 415d1a2ae..d68098173 100644 --- a/src/apps/wallet-admin/src/home/tabs/payments/PaymentsTab.tsx +++ b/src/apps/wallet-admin/src/home/tabs/payments/PaymentsTab.tsx @@ -8,13 +8,11 @@ import { Collapsible, ConfirmModal, LoadingCircles } from '~/libs/ui' import { UserProfile } from '~/libs/core' import { downloadBlob } from '~/libs/shared' -import { editPayment, exportSearchResults, getMemberHandle, getPaymentMethods, getPayments, getTaxForms } from '../../../lib/services/wallet' +import { editPayment, exportSearchResults, getMemberHandle, getPayments } from '../../../lib/services/wallet' import { Winning, WinningDetail } from '../../../lib/models/WinningDetail' import { FilterBar, formatIOSDateString, PaymentView } from '../../../lib' import { ConfirmFlowData } from '../../../lib/models/ConfirmFlowData' import { PaginationInfo } from '../../../lib/models/PaginationInfo' -import { TaxForm } from '../../../lib/models/TaxForm' -import { PaymentProvider } from '../../../lib/models/PaymentProvider' import PaymentEditForm from '../../../lib/components/payment-edit/PaymentEdit' import PaymentsTable from '../../../lib/components/payments-table/PaymentTable' @@ -102,7 +100,7 @@ const ListView: FC = (props: ListViewProps) => { }, []) const convertToWinnings = useCallback( - (payments: WinningDetail[], handleMap: Map, userHasTaxFormSetup: Map, userHasPaymentProvider: Map): ReadonlyArray => payments.map(payment => { + (payments: WinningDetail[], handleMap: Map): ReadonlyArray => payments.map(payment => { const now = new Date() const releaseDate = new Date(payment.releaseDate) const diffMs = releaseDate.getTime() - now.getTime() @@ -129,9 +127,9 @@ const ListView: FC = (props: ListViewProps) => { } if (status === 'ON_HOLD') { - if (!userHasTaxFormSetup.get(payment.winnerId)) { + if (!payment.paymentStatus?.taxFormSetupComplete) { status = 'On Hold (Tax Form)' - } else if (!userHasPaymentProvider.get(payment.winnerId)) { + } else if (!payment.paymentStatus?.payoutSetupComplete) { status = 'On Hold (Payment Provider)' } else { status = 'On Hold (Member)' @@ -169,30 +167,8 @@ const ListView: FC = (props: ListViewProps) => { const payments = await getPayments(pagination.pageSize, (pagination.currentPage - 1) * pagination.pageSize, filters) const winnerIds = payments.winnings.map(winning => winning.winnerId) - const onHoldUserIds = payments.winnings - .filter(winning => winning.details[0].status === 'ON_HOLD') - .map(winning => winning.winnerId) - - const userHasTaxFormSetup: Map = new Map() - const userHasPaymentProvider: Map = new Map() - - try { - const missingTaxForms = await getTaxForms(100, 0, onHoldUserIds) - const missingPaymentProviders = await getPaymentMethods(100, 0, onHoldUserIds) - - missingTaxForms.forms.forEach((form: TaxForm) => { - userHasTaxFormSetup.set(form.userId, form.status === 'ACTIVE') - }) - - missingPaymentProviders.paymentMethods.forEach((method: PaymentProvider) => { - userHasPaymentProvider.set(method.userId, method.status === 'CONNECTED') - }) - } catch (err) { - // Ignore errors - } - const handleMap = await getMemberHandle(winnerIds) - const winningsData = convertToWinnings(payments.winnings, handleMap, userHasTaxFormSetup, userHasPaymentProvider) + const winningsData = convertToWinnings(payments.winnings, handleMap) setWinnings(winningsData) setPagination(payments.pagination) } catch (apiError) { diff --git a/src/apps/wallet-admin/src/lib/models/PaymentProvider.ts b/src/apps/wallet-admin/src/lib/models/PaymentProvider.ts deleted file mode 100644 index 41a9ba5b1..000000000 --- a/src/apps/wallet-admin/src/lib/models/PaymentProvider.ts +++ /dev/null @@ -1,10 +0,0 @@ -export interface PaymentProvider { - id?: number - upmId?: string - userId: string - type: 'Payoneer' | 'Paypal' - name: 'Payoneer' | 'Paypal' - status: string - handle?: string - providerId: string -} diff --git a/src/apps/wallet-admin/src/lib/models/TaxForm.ts b/src/apps/wallet-admin/src/lib/models/TaxForm.ts deleted file mode 100644 index 679f5a833..000000000 --- a/src/apps/wallet-admin/src/lib/models/TaxForm.ts +++ /dev/null @@ -1,12 +0,0 @@ -export interface TaxForm { - id: string; - taxFormId: string; - dateFiled: string; - userId: string; - handle?: string; - taxForm: { - taxFormId: string; - name: string; - } - status: string; -} diff --git a/src/apps/wallet-admin/src/lib/models/WinningDetail.ts b/src/apps/wallet-admin/src/lib/models/WinningDetail.ts index 69985e8a8..8d62e1cf1 100644 --- a/src/apps/wallet-admin/src/lib/models/WinningDetail.ts +++ b/src/apps/wallet-admin/src/lib/models/WinningDetail.ts @@ -8,6 +8,11 @@ export interface PaymentDetail { datePaid: string } +export interface PayoutStatus { + payoutSetupComplete: boolean; + taxFormSetupComplete: boolean; +} + export interface Winning { id: string description: string @@ -42,4 +47,5 @@ export interface WinningDetail { createdAt: string releaseDate: string datePaid: string + paymentStatus?: PayoutStatus } diff --git a/src/apps/wallet-admin/src/lib/services/wallet.ts b/src/apps/wallet-admin/src/lib/services/wallet.ts index 7ba9d7a94..8d21bf23b 100644 --- a/src/apps/wallet-admin/src/lib/services/wallet.ts +++ b/src/apps/wallet-admin/src/lib/services/wallet.ts @@ -4,9 +4,7 @@ import { xhrDeleteAsync, xhrGetAsync, xhrPatchAsync, xhrPostAsync } from '~/libs import { postAsyncWithBlobHandling } from '~/libs/core/lib/xhr/xhr-functions/xhr.functions' import { WalletDetails } from '../models/WalletDetails' -import { TaxForm } from '../models/TaxForm' import { WinningDetail } from '../models/WinningDetail' -import { PaymentProvider } from '../models/PaymentProvider' import { TransactionResponse } from '../models/TransactionId' import { PaginationInfo } from '../models/PaginationInfo' import { WinningsAudit } from '../models/WinningsAudit' @@ -228,58 +226,3 @@ export async function getMemberHandle(userIds: string[]): Promise { - const body = JSON.stringify({ - limit, - offset, - userIds, - }) - - const url = `${baseUrl}/admin/tax-forms` - const response = await xhrPostAsync>(url, body) - - if (response.status === 'error') { - throw new Error('Error fetching tax forms') - } - - if (response.data.forms === null || response.data.forms === undefined) { - response.data.forms = [] - } - - return response.data -} - -export async function getPaymentMethods(limit: number, offset: number, userIds: string[]): Promise<{ - paymentMethods: PaymentProvider[], - pagination: PaginationInfo -}> { - const body = JSON.stringify({ - limit, - offset, - userIds, - }) - - const url = `${baseUrl}/admin/payment-methods` - const response = await xhrPostAsync>(url, body) - - if (response.status === 'error') { - throw new Error('Error fetching payment methods') - } - - if (response.data.paymentMethods === null || response.data.paymentMethods === undefined) { - response.data.paymentMethods = [] - } - - return response.data -}